paint-brush
11 conjuntos de dados Torchvision para visão computacional que você precisa conhecerpor@datasets
6,264 leituras
6,264 leituras

11 conjuntos de dados Torchvision para visão computacional que você precisa conhecer

Muito longo; Para ler

O Torchvision fornece acesso a conjuntos de dados, modelos e transformações pré-construídos especificamente projetados para tarefas de visão computacional. Os conjuntos de dados são pré-processados, rotulados e organizados em formatos que podem ser facilmente carregados e usados. Torchvision também suporta aceleração de CPU e GPU, tornando-se uma ferramenta flexível e poderosa para o desenvolvimento de aplicativos de visão computacional.
featured image - 11 conjuntos de dados Torchvision para visão computacional que você precisa conhecer
Open Datasets Compiled by HackerNoon HackerNoon profile picture

A visão computacional é um campo em crescimento significativo e tem inúmeras aplicações práticas, desde carros autônomos até sistemas de reconhecimento facial. No entanto, um dos maiores desafios neste campo é obter conjuntos de dados de alta qualidade para treinar modelos de aprendizado de máquina.


Para enfrentar esse desafio, o archvision fornece acesso a conjuntos de dados, modelos e transformações pré-construídos especificamente projetados para tarefas de visão computacional. Torchvision também suporta aceleração de CPU e GPU, tornando-se uma ferramenta flexível e poderosa para o desenvolvimento de aplicativos de visão computacional.

O que são “conjuntos de dados do Torchvision”?

Os conjuntos de dados Torchvision são coleções de conjuntos de dados populares comumente usados em visão computacional para desenvolver e testar modelos de aprendizado de máquina. Com os conjuntos de dados do archvision, os desenvolvedores podem treinar e testar seus modelos de aprendizado de máquina em uma variedade de tarefas, como classificação de imagens, detecção de objetos e segmentação.

Os conjuntos de dados também são pré-processados, rotulados e organizados em formatos que podem ser facilmente carregados e usados.

Lista dos conjuntos de dados do Torchvision

  1. MNIST
  2. CIFAR-10
  3. CIFAR-100
  4. ImageNet
  5. COCO
  6. Moda-MNIST
  7. SVHN
  8. STL-10
  9. CelebA
  10. Pascal VOC
  11. Places365

1. MNIST

Este conjunto de dados do archvision é popular e amplamente utilizado nos campos de aprendizado de máquina e visão computacional. Consiste em 70.000 imagens em tons de cinza de dígitos manuscritos de 0 a 9, com 60.000 imagens para treinamento e 10.000 para teste. Cada imagem tem 28x28 pixels de tamanho e possui um rótulo correspondente indicando quais dígitos ela representa.


Para acessar este conjunto de dados, você pode baixá-lo diretamente de Kaggle ou carregue o conjunto de dados usando o archvision:


 import torchvision.datasets as datasets # Load the training dataset train_dataset = datasets.MNIST(root='data/', train=True, transform=None, download=True) # Load the testing dataset test_dataset = datasets.MNIST(root='data/', train=False, transform=None, download=True)


Código para carregar o conjunto de dados MNIST usando o pacote PyTorch Torchvision. Recuperado de https://pytorch.org/vision/stable/generated/torchvision.datasets.MNIST.html#torchvision.datasets.MNIST em 20/3/2023 .


Uma representação do conjunto de dados MNIST

2. CIFAR-10

O conjunto de dados CIFAR-10 consiste em 60.000 imagens coloridas 32x32 em 10 classes, com 6.000 imagens por classe. Ele tem um total de 50.000 imagens de treinamento e 10.000 imagens de teste, divididas em cinco lotes de treinamento e um lote de teste, cada um com 10.000 imagens.


Este conjunto de dados pode ser baixado de Kaggle , ou carregado aqui usando o archvision:


 import torch import torchvision import torchvision.transforms as transforms transform = transforms.Compose( [transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]) trainset = torchvision.datasets.CIFAR10(root='./data', train=True, download=True, transform=transform) testset = torchvision.datasets.CIFAR10(root='./data', train=False, download=True, transform=transform) trainloader = torch.utils.data.DataLoader(trainset, batch_size=4, shuffle=True, num_workers=2) testloader = torch.utils.data.DataLoader(testset, batch_size=4, shuffle=False, num_workers=2)


Observe que você pode ajustar o tamanho do lote e o número de processos de trabalho para os carregadores de dados conforme necessário.


Código para carregar o conjunto de dados CIFAR-10 usando o pacote PyTorch Torchvision. Recuperado de https://pytorch.org/vision/stable/generated/torchvision.datasets.CIFAR10.html#torchvision.datasets.CIFAR10 em 20/3/2023 .

3. CIFAR-100

O conjunto de dados CIFAR-100 tem 60.000 (50.000 imagens de treinamento e 10.000 imagens de teste) 32x32 imagens coloridas em 100 classes, com 600 imagens por classe. As 100 classes são agrupadas em 20 superclasses, com um rótulo fino para denotar sua classe e um rótulo grosso para representar a superclasse a que pertence.


Para baixar o conjunto de dados do archvision do Kaggle, visite o Kaggle local na rede Internet e siga as instruções fornecidas lá. Como alternativa, se preferir carregar o conjunto de dados usando a biblioteca do archvision, você pode fazer o seguinte:


 import torchvision.datasets as datasets import torchvision.transforms as transforms # Define transform to normalize data transform = transforms.Compose([ transforms.ToTensor(), transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]) ]) # Load CIFAR-100 train and test datasets trainset = datasets.CIFAR100(root='./data', train=True, download=True, transform=transform) testset = datasets.CIFAR100(root='./data', train=False, download=True, transform=transform) # Create data loaders for train and test datasets trainloader = torch.utils.data.DataLoader(trainset, batch_size=64, shuffle=True) testloader = torch.utils.data.DataLoader(testset, batch_size=64, shuffle=False)


Código para carregar o conjunto de dados CIFAR-100 usando o pacote PyTorch Torchvision. Recuperado de https://pytorch.org/vision/stable/generated/torchvision.datasets.CIFAR100.html#torchvision.datasets.CIFAR100 em 20/3/2023 .

4. ImageNet

O conjunto de dados ImageNet no archvision contém aproximadamente 1,2 milhão de imagens de treinamento, 50.000 imagens de validação e 100.000 imagens de teste. Cada imagem no conjunto de dados é rotulada com uma das 1.000 categorias, como "gato", "cachorro", "carro", "avião" etc.


Para baixar este conjunto de dados do archvision, você deve visitar o local na rede Internet ou carregue no archvision:


 import torchvision.datasets as datasets import torchvision.transforms as transforms # Set the path to the ImageNet dataset on your machine data_path = "/path/to/imagenet" # Create the ImageNet dataset object with custom options imagenet_train = datasets.ImageNet( root=data_path, split='train', transform=transforms.Compose([ transforms.Resize(256), transforms.RandomCrop(224), transforms.RandomHorizontalFlip(), transforms.ToTensor(), transforms.Normalize( mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]), download=False ) imagenet_val = datasets.ImageNet( root=data_path, split='val', transform=transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize( mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]), download=False ) # Print the number of images in the training and validation sets print("Number of images in the training set:", len(imagenet_train)) print("Number of images in the validation set:", len(imagenet_val))


Código para carregar o conjunto de dados ImageNet usando o pacote PyTorch Torchvision. Recuperado de https://pytorch.org/vision/stable/generated/torchvision.datasets.ImageNet.html#torchvision.datasets.ImageNet em 21/3/2023 .


Uma representação do conjunto de dados ImageNet

5. MS Coco

O conjunto de dados Microsoft Common Objects in Context (MS Coco) contém 328.000 imagens visuais de alta qualidade de objetos do cotidiano e humanos, geralmente usados como padrão para comparar o desempenho de algoritmos na detecção de objetos em tempo real.


Para baixar este conjunto de dados do archvision, visite o local na rede Internet ou carregue no archvision:


 import torch from torchvision import datasets, transforms # Define transformation transform = transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) # Load training dataset train_dataset = datasets.CocoDetection(root='/path/to/dataset/train2017', annFile='/path/to/dataset/annotations/instances_train2017.json', transform=transform) train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=32, shuffle=True) # Load validation dataset val_dataset = datasets.CocoDetection(root='/path/to/dataset/val2017', annFile='/path/to/dataset/annotations/instances_val2017.json', transform=transform) val_loader = torch.utils.data.DataLoader(val_dataset, batch_size=32, shuffle=False)


Certifique-se de substituir os espaços reservados /path/to/dataset pelo caminho real para o diretório do conjunto de dados. Além disso, ajuste o parâmetro batch_size para atender às suas necessidades.


Código para carregar o conjunto de dados MS Coco usando o pacote PyTorch Torchvision. Recuperado de https://pytorch.org/vision/stable/generated/torchvision.datasets.CocoDetection.html#torchvision.datasets.CocoDetection em 21/3/2023 .

6. Moda-MNIST

O conjunto de dados Fashion MNIST foi criado pela Zalando Research como um substituto para o conjunto de dados MNIST original. O conjunto de dados Fashion MNIST consiste em 70.000 imagens em tons de cinza (conjunto de treinamento de 60.000 e um conjunto de teste de 10.000) de itens de vestuário.


As imagens têm tamanho de 28 x 28 pixels e representam 10 classes diferentes de itens de vestuário, incluindo camisetas/blusas, calças, pulôveres, vestidos, casacos, sandálias, camisas, tênis, bolsas e botins. É semelhante ao conjunto de dados MNIST original, mas com tarefas de classificação mais desafiadoras devido à maior complexidade e variedade dos itens de vestuário.


Este conjunto de dados do archvision pode ser baixado em Kaggle , ou carregado usando este código:


 import torch import torchvision import torchvision.transforms as transforms # Define transformations transform = transforms.Compose( [transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))]) # Load the dataset trainset = torchvision.datasets.FashionMNIST(root='./data', train=True, download=True, transform=transform) testset = torchvision.datasets.FashionMNIST(root='./data', train=False, download=True, transform=transform) # Create data loaders trainloader = torch.utils.data.DataLoader(trainset, batch_size=4, shuffle=True, num_workers=2) testloader = torch.utils.data.DataLoader(testset, batch_size=4, shuffle=False, num_workers=2)


Código para carregar o conjunto de dados Fashion-MNIST usando o pacote PyTorch Torchvision. Recuperado de https://pytorch.org/vision/stable/generated/torchvision.datasets.FashionMNIST.html#torchvision.datasets.FashionMNIST em 21/3/2023 .

7. SVHN

O conjunto de dados SVHN (Street View House Numbers) é um conjunto de dados de imagem derivado das imagens do Google Street View, que consiste em imagens recortadas de números de casas tiradas de imagens no nível da rua. Ele está disponível em um formato completo com todos os números das casas e suas caixas delimitadoras e um formato recortado apenas com os números das casas. O formato completo é frequentemente usado para tarefas de detecção de objetos, enquanto o formato recortado é comumente usado para tarefas de classificação.


O conjunto de dados SVHN também está incluído no pacote do archvision e contém 73.257 imagens para treinamento, 26.032 imagens para teste e 531.131 imagens adicionais para dados extras de treinamento.


Para baixar este conjunto de dados do archvision, você pode acessar Kaggle ou você pode carregá-lo aqui:


 import torchvision import torch # Load the train and test sets train_set = torchvision.datasets.SVHN(root='./data', split='train', download=True, transform=torchvision.transforms.ToTensor()) test_set = torchvision.datasets.SVHN(root='./data', split='test', download=True, transform=torchvision.transforms.ToTensor()) # Create data loaders train_loader = torch.utils.data.DataLoader(train_set, batch_size=64, shuffle=True) test_loader = torch.utils.data.DataLoader(test_set, batch_size=64, shuffle=False)


Código para carregar o conjunto de dados SVHN usando o pacote PyTorch Torchvision. Recuperado de https://pytorch.org/vision/stable/generated/torchvision.datasets.SVHN.html#torchvision.datasets.SVHN em 22/3/2023 .

8. STL-10

O conjunto de dados STL-10 é um conjunto de dados de reconhecimento de imagem que consiste em 10 classes, com um total de cerca de 6.000+ imagens. O STL-10 significa “Standard Training and Test Set for Image Recognition-10 classes” e as 10 classes no conjunto de dados são:


  • Avião
  • Pássaro
  • Carro
  • Gato
  • Cervo
  • Cachorro
  • Cavalo
  • Macaco
  • Enviar
  • Caminhão


Para acessar este conjunto de dados, você pode baixá-lo diretamente de Kaggle ou carregue o conjunto de dados usando o archvision:


 import torchvision.datasets as datasets import torchvision.transforms as transforms # Define the transformation to apply to the data transform = transforms.Compose([ transforms.ToTensor(), # Convert PIL image to PyTorch tensor transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)) # Normalize the data ]) # Load the STL-10 dataset train_dataset = datasets.STL10(root='./data', split='train', download=True, transform=transform) test_dataset = datasets.STL10(root='./data', split='test', download=True, transform=transform)


Código para carregar o conjunto de dados STL-10 usando o pacote PyTorch Torchvision. Recuperado de https://pytorch.org/vision/stable/generated/torchvision.datasets.STL10.html#torchvision.datasets.STL10 em 22/3/2023 .

9. CelebA

Este conjunto de dados do archvision é um conjunto de dados popular de atributos faciais em larga escala que compreende mais de 200.000 imagens de celebridades. Foi lançado pela primeira vez por pesquisadores da Universidade Chinesa de Hong Kong em 2015. Uma imagem no CelebA consiste em 40 atributos faciais, como idade, cor do cabelo, expressão facial e sexo. Além disso, essas imagens foram recuperadas da internet e abrangem uma ampla gama de aparências faciais, incluindo diferentes raças, idades e gêneros. Anotações de caixa delimitadora para a localização do rosto em cada imagem, bem como 5 pontos de referência para os olhos, nariz e boca.


Você pode baixar este conjunto de dados em Kaggle ou carregue-o usando este código:


 import torchvision.datasets as datasets import torchvision.transforms as transforms transform = transforms.Compose([ transforms.CenterCrop(178), transforms.Resize(128), transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)) ]) celeba_dataset = datasets.CelebA(root='./data', split='train', transform=transform, download=True)


Código para carregar o conjunto de dados CelebA usando o pacote PyTorch Torchvision. Recuperado de https://pytorch.org/vision/stable/generated/torchvision.datasets.CelebA.html#torchvision.datasets.CelebA em 22/3/2023 .

10. PASCAL VOC

O conjunto de dados VOC (Visual Object Classes) foi introduzido pela primeira vez em 2005 como parte do PASCAL VOC Challenge, que visava o avanço do estado da arte em reconhecimento visual. Consiste em imagens de 20 categorias diferentes de objetos, incluindo animais, veículos e objetos domésticos comuns. Cada uma dessas imagens é anotada com as localizações e classificações dos objetos dentro da imagem. As anotações incluem caixas delimitadoras e máscaras de segmentação em nível de pixel.


O conjunto de dados é dividido em dois conjuntos principais: os conjuntos de treinamento e validação. O conjunto de treinamento contém aproximadamente 5.000 imagens com anotações, enquanto o conjunto de validação contém cerca de 5.000 imagens sem anotações. Além disso, o conjunto de dados também inclui um conjunto de teste com aproximadamente 10.000 imagens, mas as anotações desse conjunto não estão disponíveis publicamente.


Para acessar o conjunto de dados recente, você pode fazer o download do local na rede Internet , Kaggle ou carregue-o no archivision:


 import torch import torchvision from torchvision import transforms # Define transformations to apply to the images transform = transforms.Compose([ transforms.Resize((224, 224)), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) # Load the train and validation datasets train_dataset = torchvision.datasets.VOCDetection(root='./data', year='2007', image_set='train', transform=transform) val_dataset = torchvision.datasets.VOCDetection(root='./data', year='2007', image_set='val', transform=transform) # Create data loaders train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=32, shuffle=True) val_loader = torch.utils.data.DataLoader(val_dataset, batch_size=32, shuffle=False)


Código para carregar o conjunto de dados PASCAL VOC usando o pacote PyTorch Torchvision. Recuperado de https://pytorch.org/vision/stable/generated/torchvision.datasets.VOCDetection.html#torchvision.datasets.VOCDetection em 22/3/2023 .

11. Places365

O conjunto de dados Places365 é um conjunto de dados de reconhecimento de cena em larga escala com mais de 1,8 milhão de imagens cobrindo 365 categorias de cena. O conjunto de dados Places365 Standard consiste em cerca de 1,8 milhão de imagens, enquanto o conjunto de dados Places365-Challenge contém 50.000 imagens de validação adicionais que são mais desafiadoras para modelos de reconhecimento.


Para acessar este conjunto de dados, você pode usar Kaggle ou carregue o archvision aqui:


 import torch import torchvision from torchvision import transforms # Define transformations to apply to the images transform = transforms.Compose([ transforms.Resize((224, 224)), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]) ]) # Load the train and validation datasets train_dataset = torchvision.datasets.Places365(root='./data', split='train-standard', transform=transform) val_dataset = torchvision.datasets.Places365(root='./data', split='val', transform=transform) # Create data loaders train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=32, shuffle=True) val_loader = torch.utils.data.DataLoader(val_dataset, batch_size=32, shuffle=False)


Código para carregar o conjunto de dados Places365 usando o pacote PyTorch Torchvision. Recuperado de https://pytorch.org/vision/stable/generated/torchvision.datasets.Places365.html#torchvision.datasets.Places365 em 22/3/2023 .


Uma representação do conjunto de dados Places365

Casos de uso comuns para conjuntos de dados do Torchvision

MNIST - Este conjunto de dados é comumente usado para tarefas de classificação de imagens, particularmente para reconhecimento de dígitos manuscritos.


CIFAR-10 e CIFAR-100 - Esses conjuntos de dados são comumente usados para tarefas de classificação de imagens, particularmente para reconhecimento de objetos.


ImageNet - Este conjunto de dados do archvision contém milhões de imagens de vários objetos e animais e é comumente usado para tarefas de reconhecimento de objetos.


MS COCO - Este conjunto de dados é comumente usado para tarefas de detecção, segmentação e legendagem de objetos.


Moda-MNIST - Semelhante ao MNIST, este conjunto de dados é comumente usado para tarefas de classificação de imagens, particularmente para reconhecimento de itens de moda.


SVHN - Este conjunto de dados é comumente usado para tarefas de reconhecimento de dígitos. É particularmente útil para desenvolver e testar algoritmos para reconhecer números em configurações do mundo real.


STL-10 - Este conjunto de dados do archvision é comumente usado para tarefas de classificação de imagens, particularmente para reconhecimento de objetos.


CelebA - Este conjunto de dados é comumente usado para tarefas de reconhecimento facial e classificação de atributos. Consiste em imagens de várias expressões faciais, poses e planos de fundo.


Pascal VOC - Este conjunto de dados é comumente usado para tarefas de detecção e segmentação de objetos.


Places365 - Este conjunto de dados é comumente usado para tarefas de reconhecimento de cena. Consiste em imagens de várias cenas internas e externas, como quartos, praias e escritórios.

Pensamentos finais

Os conjuntos de dados Torchvision são frequentemente usados para treinar e avaliar modelos de aprendizado de máquina, como redes neurais convolucionais (CNNs), que são comumente usadas em aplicativos de visão computacional.


Eles também estão disponíveis para qualquer pessoa baixar e usar livremente.


A imagem principal deste artigo foi gerada por meio do modelo AI Stable Diffusion do HackerNoon usando o prompt 'milhares de imagens organizadas juntas em pequenos quadros'.


Mais listas de conjuntos de dados:

  1. Conjuntos de dados do Excel
  2. Conjuntos de dados Keras
  3. Conjuntos de dados R
  4. Conjuntos de dados PyTorch
  5. Abraçando conjuntos de dados