La visión por computadora es un campo que está experimentando un crecimiento significativo y tiene numerosas aplicaciones prácticas, que van desde automóviles autónomos hasta sistemas de reconocimiento facial. Sin embargo, uno de los principales desafíos en este campo es obtener conjuntos de datos de alta calidad para entrenar modelos de aprendizaje automático.
Para hacer frente a este desafío, torchvision brinda acceso a conjuntos de datos, modelos y transformaciones preconstruidos diseñados específicamente para tareas de visión por computadora. Torchvision también es compatible con la aceleración de CPU y GPU, lo que la convierte en una herramienta flexible y poderosa para desarrollar aplicaciones de visión artificial.
Los conjuntos de datos de Torchvision son colecciones de conjuntos de datos populares comúnmente utilizados en visión artificial para desarrollar y probar modelos de aprendizaje automático. Con los conjuntos de datos de torchvision, los desarrolladores pueden entrenar y probar sus modelos de aprendizaje automático en una variedad de tareas, como la clasificación de imágenes, la detección de objetos y la segmentación.
Los conjuntos de datos también se preprocesan, etiquetan y organizan en formatos que se pueden cargar y usar fácilmente.
Este conjunto de datos de torchvision es popular y se usa ampliamente en los campos del aprendizaje automático y la visión artificial. Consta de 70 000 imágenes en escala de grises de dígitos escritos a mano del 0 al 9, con 60 000 imágenes para entrenamiento y 10 000 para pruebas. Cada imagen tiene un tamaño de 28x28 píxeles y tiene una etiqueta correspondiente que indica qué dígitos representa.
Para acceder a este conjunto de datos, puede descargarlo directamente desde
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 cargar el conjunto de datos MNIST utilizando el paquete PyTorch torchvision. Obtenido de https://pytorch.org/vision/stable/generated/torchvision.datasets.MNIST.html#torchvision.datasets.MNIST el 20/3/2023 .
El conjunto de datos CIFAR-10 consta de 60 000 imágenes en color de 32x32 en 10 clases, con 6000 imágenes por clase. Tiene un total de 50 000 imágenes de entrenamiento y 10 000 imágenes de prueba que se dividen en cinco lotes de entrenamiento y un lote de prueba, cada uno con 10 000 imágenes.
Este conjunto de datos se puede descargar de
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)
Tenga en cuenta que puede ajustar el tamaño del lote y la cantidad de procesos de trabajo para los cargadores de datos según sea necesario.
Código para cargar el conjunto de datos CIFAR-10 usando el paquete PyTorch torchvision. Recuperado de https://pytorch.org/vision/stable/generated/torchvision.datasets.CIFAR10.html#torchvision.datasets.CIFAR10 el 20/3/2023 .
El conjunto de datos CIFAR-100 tiene 60 000 (50 000 imágenes de entrenamiento y 10 000 imágenes de prueba) imágenes en color de 32x32 en 100 clases, con 600 imágenes por clase. Las 100 clases se agrupan en 20 superclases, con una etiqueta fina para indicar su clase y una etiqueta gruesa para representar la superclase a la que pertenece.
Para descargar el conjunto de datos de torchvision de Kaggle, visite Kaggle
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 cargar el conjunto de datos CIFAR-100 usando el paquete PyTorch torchvision. Recuperado de https://pytorch.org/vision/stable/generated/torchvision.datasets.CIFAR100.html#torchvision.datasets.CIFAR100 el 20/3/2023 .
El conjunto de datos de ImageNet en torchvision contiene aproximadamente 1,2 millones de imágenes de entrenamiento, 50 000 imágenes de validación y 100 000 imágenes de prueba. Cada imagen en el conjunto de datos está etiquetada con una de las 1000 categorías, como "gato", "perro", "automóvil", "avión", etc.
Para descargar este conjunto de datos de torchvision, debe visitar el
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 cargar el conjunto de datos de ImageNet usando el paquete PyTorch torchvision. Obtenido de https://pytorch.org/vision/stable/generated/torchvision.datasets.ImageNet.html#torchvision.datasets.ImageNet el 21/3/2023 .
El conjunto de datos Microsoft Common Objects in Context (MS Coco) contiene 328 000 imágenes visuales de alta calidad de objetos cotidianos y humanos, que a menudo se utilizan como estándar para comparar el rendimiento de los algoritmos en la detección de objetos en tiempo real.
Para descargar este conjunto de datos de torchvision, visite el
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)
Asegúrese de reemplazar los marcadores de posición /path/to/dataset con la ruta real a su directorio de conjunto de datos. Además, ajuste el parámetro batch_size para que se ajuste a sus necesidades.
Código para cargar el conjunto de datos de MS Coco utilizando el paquete PyTorch torchvision. Recuperado de https://pytorch.org/vision/stable/generated/torchvision.datasets.CocoDetection.html#torchvision.datasets.CocoDetection el 21/3/2023 .
El conjunto de datos Fashion MNIST fue creado por Zalando Research como reemplazo del conjunto de datos MNIST original. El conjunto de datos Fashion MNIST consta de 70 000 imágenes en escala de grises (un conjunto de entrenamiento de 60 000 y un conjunto de prueba de 10 000) de prendas de vestir.
Las imágenes tienen un tamaño de 28x28 píxeles y representan 10 clases diferentes de prendas de vestir, incluidas camisetas/tops, pantalones, jerséis, vestidos, abrigos, sandalias, camisas, zapatillas, bolsos y botines. Es similar al conjunto de datos original del MNIST, pero con tareas de clasificación más desafiantes debido a la mayor complejidad y variedad de las prendas de vestir.
Este conjunto de datos de torchvision se puede descargar desde
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 cargar el conjunto de datos Fashion-MNIST usando el paquete PyTorch torchvision. Obtenido de https://pytorch.org/vision/stable/generated/torchvision.datasets.FashionMNIST.html#torchvision.datasets.FashionMNIST el 21/3/2023 .
El conjunto de datos SVHN (Street View House Numbers) es un conjunto de datos de imágenes derivado de las imágenes de Street View de Google, que consta de imágenes recortadas de números de casas tomadas de imágenes a nivel de calle. Está disponible en formato completo con todos los números de las casas y sus cuadros delimitadores y en formato recortado con solo los números de las casas. El formato completo se usa a menudo para tareas de detección de objetos, mientras que el formato recortado se usa comúnmente para tareas de clasificación.
El conjunto de datos SVHN también se incluye en el paquete torchvision y contiene 73 257 imágenes para entrenamiento, 26 032 imágenes para prueba y 531 131 imágenes adicionales para datos de entrenamiento adicionales.
Para descargar este conjunto de datos de torchvision, puede ir a
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 cargar el conjunto de datos SVHN usando el paquete PyTorch torchvision. Obtenido de https://pytorch.org/vision/stable/generated/torchvision.datasets.SVHN.html#torchvision.datasets.SVHN el 22/3/2023 .
El conjunto de datos STL-10 es un conjunto de datos de reconocimiento de imágenes que consta de 10 clases, con un total de más de 6000 imágenes. El STL-10 significa "Conjunto estándar de entrenamiento y prueba para el reconocimiento de imágenes-10 clases" y las 10 clases en el conjunto de datos son:
Para acceder a este conjunto de datos, puede descargarlo directamente desde
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 cargar el conjunto de datos STL-10 usando el paquete PyTorch torchvision. Obtenido de https://pytorch.org/vision/stable/generated/torchvision.datasets.STL10.html#torchvision.datasets.STL10 el 22/3/2023 .
Este conjunto de datos de torchvision es un popular conjunto de datos de atributos faciales a gran escala que comprende más de 200 000 imágenes de celebridades. Fue lanzado por primera vez por investigadores de la Universidad China de Hong Kong en 2015. Una imagen en CelebA consta de 40 atributos faciales, como edad, color de cabello, expresión facial y género. Además, estas imágenes se recuperaron de Internet y cubren una amplia gama de apariencias faciales, incluidas diferentes razas, edades y géneros. Anotaciones de cuadro delimitador para la ubicación de la cara en cada imagen, así como 5 puntos de referencia para los ojos, la nariz y la boca.
Puede descargar este conjunto de datos en
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 cargar el conjunto de datos de CelebA usando el paquete PyTorch torchvision. Obtenido de https://pytorch.org/vision/stable/generated/torchvision.datasets.CelebA.html#torchvision.datasets.CelebA el 22/3/2023 .
El conjunto de datos VOC (Visual Object Classes) se introdujo por primera vez en 2005 como parte del Desafío PASCAL VOC, cuyo objetivo era avanzar en el reconocimiento visual de última generación. Consiste en imágenes de 20 categorías de objetos diferentes, incluidos animales, vehículos y objetos domésticos comunes. Cada una de estas imágenes está anotada con las ubicaciones y clasificaciones de los objetos dentro de la imagen. Las anotaciones incluyen cuadros delimitadores y máscaras de segmentación a nivel de píxel.
El conjunto de datos se divide en dos conjuntos principales: los conjuntos de entrenamiento y validación. El conjunto de entrenamiento contiene aproximadamente 5000 imágenes con anotaciones, mientras que el conjunto de validación contiene alrededor de 5000 imágenes sin anotaciones. Además, el conjunto de datos también incluye un conjunto de prueba con aproximadamente 10 000 imágenes, pero las anotaciones para este conjunto no están disponibles públicamente.
Para acceder al conjunto de datos reciente, puede descargar desde el
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 cargar el conjunto de datos PASCAL VOC utilizando el paquete PyTorch torchvision. Obtenido de https://pytorch.org/vision/stable/generated/torchvision.datasets.VOCDetection.html#torchvision.datasets.VOCDetection el 22/3/2023 .
El conjunto de datos de Places365 es un conjunto de datos de reconocimiento de escenas a gran escala con más de 1,8 millones de imágenes que cubren 365 categorías de escenas. El conjunto de datos de Places365 Standard consta de alrededor de 1,8 millones de imágenes, mientras que el conjunto de datos de Places365-Challenge contiene 50 000 imágenes de validación adicionales que son más desafiantes para los modelos de reconocimiento.
Para acceder a este conjunto de datos, puede utilizar
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 cargar el conjunto de datos de Places365 usando el paquete PyTorch torchvision. Obtenido de https://pytorch.org/vision/stable/generated/torchvision.datasets.Places365.html#torchvision.datasets.Places365 el 22/3/2023 .
Los conjuntos de datos de Torchvision a menudo se usan para entrenar y evaluar modelos de aprendizaje automático, como las redes neuronales convolucionales (CNN), que se usan comúnmente en aplicaciones de visión por computadora.
También están disponibles para que cualquiera los descargue y use libremente.
La imagen principal de este artículo se generó a través del modelo AI Stable Diffusion de HackerNoon utilizando el mensaje "miles de imágenes organizadas juntas en marcos pequeños".
Más listas de conjuntos de datos: