paint-brush
11 Torchvision-Datensätze für Computer Vision, die Sie kennen müssenvon@datasets
7,691 Lesungen
7,691 Lesungen

11 Torchvision-Datensätze für Computer Vision, die Sie kennen müssen

Zu lang; Lesen

Torchvision bietet Zugriff auf vorgefertigte Datensätze, Modelle und Transformationen, die speziell für Computer-Vision-Aufgaben entwickelt wurden. Die Datensätze werden vorverarbeitet, beschriftet und in Formaten organisiert, die einfach geladen und verwendet werden können. Torchvision unterstützt außerdem sowohl CPU- als auch GPU-Beschleunigung und ist damit ein flexibles und leistungsstarkes Tool für die Entwicklung von Computer-Vision-Anwendungen.
featured image - 11 Torchvision-Datensätze für Computer Vision, die Sie kennen müssen
Open Datasets Compiled by HackerNoon HackerNoon profile picture

Computer Vision ist ein Bereich mit erheblichem Wachstum und zahlreichen praktischen Anwendungen, die von selbstfahrenden Autos bis hin zu Gesichtserkennungssystemen reichen. Eine der größten Herausforderungen in diesem Bereich besteht jedoch darin, qualitativ hochwertige Datensätze zum Trainieren von Modellen für maschinelles Lernen zu erhalten.


Um dieser Herausforderung zu begegnen, bietet Torchvision Zugriff auf vorgefertigte Datensätze, Modelle und Transformationen, die speziell für Computer-Vision-Aufgaben entwickelt wurden. Torchvision unterstützt außerdem sowohl CPU- als auch GPU-Beschleunigung und ist damit ein flexibles und leistungsstarkes Tool für die Entwicklung von Computer-Vision-Anwendungen.

Was sind „Torchvision-Datensätze“?

Bei Torchvision-Datensätzen handelt es sich um Sammlungen beliebter Datensätze, die häufig in der Bildverarbeitung zum Entwickeln und Testen von Modellen für maschinelles Lernen verwendet werden. Mit Torchvision-Datensätzen können Entwickler ihre Modelle für maschinelles Lernen für eine Reihe von Aufgaben trainieren und testen, z. B. Bildklassifizierung, Objekterkennung und Segmentierung.

Die Datensätze werden außerdem vorverarbeitet, beschriftet und in Formaten organisiert, die einfach geladen und verwendet werden können.

Liste der Torchvision-Datensätze

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

1. MNIST

Dieser Torchvision-Datensatz ist beliebt und wird häufig in den Bereichen maschinelles Lernen und Computer Vision verwendet. Es besteht aus 70.000 Graustufenbildern der handgeschriebenen Ziffern 0–9, davon 60.000 Bilder zum Training und 10.000 zum Testen. Jedes Bild ist 28 x 28 Pixel groß und verfügt über eine entsprechende Beschriftung, die angibt, welche Ziffern es darstellt.


Um auf diesen Datensatz zuzugreifen, können Sie ihn direkt von herunterladen Kaggle oder laden Sie den Datensatz mit Torchvision:


 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)


Code zum Laden des MNIST-Datensatzes mit dem PyTorch-Torchvision-Paket. Abgerufen von https://pytorch.org/vision/stable/generated/torchvision.datasets.MNIST.html#torchvision.datasets.MNIST am 20.3.2023 .


Eine Darstellung des MNIST-Datensatzes

2. CIFAR-10

Der CIFAR-10-Datensatz besteht aus 60.000 32x32-Farbbildern in 10 Klassen mit 6.000 Bildern pro Klasse. Es verfügt über insgesamt 50.000 Trainingsbilder und 10.000 Testbilder, die weiter in fünf Trainingsstapel und einen Teststapel mit jeweils 10.000 Bildern unterteilt sind.


Dieser Datensatz kann heruntergeladen werden unter Kaggle , oder hier mit Torchvision geladen:


 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)


Beachten Sie, dass Sie die Batchgröße und die Anzahl der Arbeitsprozesse für die Datenlader nach Bedarf anpassen können.


Code zum Laden des CIFAR-10-Datensatzes mit dem PyTorch-Torchvision-Paket. Abgerufen von https://pytorch.org/vision/stable/generated/torchvision.datasets.CIFAR10.html#torchvision.datasets.CIFAR10 am 20.3.2023 .

3. CIFAR-100

Der CIFAR-100-Datensatz enthält 60.000 (50.000 Trainingsbilder und 10.000 Testbilder) 32x32-Farbbilder in 100 Klassen mit 600 Bildern pro Klasse. Die 100 Klassen sind in 20 Superklassen gruppiert, mit einer feinen Bezeichnung zur Bezeichnung ihrer Klasse und einer groben Bezeichnung zur Darstellung der Superklasse, zu der sie gehört.


Um den Torchvision-Datensatz von Kaggle herunterzuladen, besuchen Sie bitte Kaggle Webseite und folgen Sie den dort gegebenen Anweisungen. Wenn Sie den Datensatz lieber über die Torchvision-Bibliothek laden möchten, können Sie alternativ Folgendes tun:


 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)


Code zum Laden des CIFAR-100-Datensatzes mit dem PyTorch-Torchvision-Paket. Abgerufen von https://pytorch.org/vision/stable/generated/torchvision.datasets.CIFAR100.html#torchvision.datasets.CIFAR100 am 20.3.2023 .

4. ImageNet

Der ImageNet-Datensatz in Torchvision enthält etwa 1,2 Millionen Trainingsbilder, 50.000 Validierungsbilder und 100.000 Testbilder. Jedes Bild im Datensatz ist mit einer der 1.000 Kategorien wie „Katze“, „Hund“, „Auto“, „Flugzeug“ usw. gekennzeichnet.


Um diesen Torchvision-Datensatz herunterzuladen, müssen Sie die besuchen Webseite oder in Torchvision laden:


 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))


Code zum Laden des ImageNet-Datensatzes mit dem PyTorch-Torchvision-Paket. Abgerufen von https://pytorch.org/vision/stable/generated/torchvision.datasets.ImageNet.html#torchvision.datasets.ImageNet am 21.3.2023 .


Eine Darstellung des ImageNet-Datensatzes

5. MS Coco

Der Microsoft Common Objects in Context (MS Coco)-Datensatz enthält 328.000 hochwertige visuelle Bilder von Alltagsgegenständen und Menschen, die oft als Standard zum Vergleich der Leistung von Algorithmen bei der Echtzeit-Objekterkennung verwendet werden.


Um diesen Torchvision-Datensatz herunterzuladen, besuchen Sie bitte die Webseite oder in Torchvision laden:


 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)


Stellen Sie sicher, dass Sie die Platzhalter /path/to/dataset durch den tatsächlichen Pfad zu Ihrem Datensatzverzeichnis ersetzen. Passen Sie außerdem den Parameter „batch_size“ an Ihre Anforderungen an.


Code zum Laden des MS Coco-Datensatzes mit dem PyTorch-Torchvision-Paket. Abgerufen von https://pytorch.org/vision/stable/generated/torchvision.datasets.CocoDetection.html#torchvision.datasets.CocoDetection am 21.3.2023 .

6. Mode-MNIST

Der Fashion MNIST-Datensatz wurde von Zalando Research als Ersatz für den ursprünglichen MNIST-Datensatz erstellt. Der Fashion-MNIST-Datensatz besteht aus 70.000 Graustufenbildern (Trainingssatz mit 60.000 und Testsatz mit 10.000) von Kleidungsstücken.


Die Bilder haben eine Größe von 28 x 28 Pixel und repräsentieren 10 verschiedene Klassen von Kleidungsstücken, darunter T-Shirts/Tops, Hosen, Pullover, Kleider, Mäntel, Sandalen, Hemden, Turnschuhe, Taschen und Stiefeletten. Er ähnelt dem ursprünglichen MNIST-Datensatz, weist jedoch aufgrund der größeren Komplexität und Vielfalt der Kleidungsstücke anspruchsvollere Klassifizierungsaufgaben auf.


Dieser Torchvision-Datensatz kann unter heruntergeladen werden Kaggle , oder mit diesem Code geladen:


 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)


Code zum Laden des Fashion-MNIST-Datensatzes mit dem PyTorch-Torchvision-Paket. Abgerufen von https://pytorch.org/vision/stable/generated/torchvision.datasets.FashionMNIST.html#torchvision.datasets.FashionMNIST am 21.3.2023 .

7. SVHN

Der SVHN-Datensatz (Street View House Numbers) ist ein Bilddatensatz, der aus den Street View-Bildern von Google abgeleitet ist und aus zugeschnittenen Bildern von Hausnummern besteht, die aus Bildern auf Straßenebene stammen. Es ist im Vollformat mit allen Hausnummern und ihren Begrenzungsrahmen sowie im beschnittenen Format nur mit den Hausnummern verfügbar. Das Vollformat wird häufig für Objekterkennungsaufgaben verwendet, während das beschnittene Format häufig für Klassifizierungsaufgaben verwendet wird.


Der SVHN-Datensatz ist ebenfalls im Torchvision-Paket enthalten und enthält 73.257 Bilder für das Training, 26.032 Bilder für Tests und 531.131 zusätzliche Bilder für zusätzliche Trainingsdaten.


Um diesen Torchvision-Datensatz herunterzuladen, gehen Sie zu Kaggle oder Sie können es hier laden:


 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)


Code zum Laden des SVHN-Datensatzes mit dem PyTorch-Torchvision-Paket. Abgerufen von https://pytorch.org/vision/stable/generated/torchvision.datasets.SVHN.html#torchvision.datasets.SVHN am 22.3.2023 .

8. STL-10

Der STL-10-Datensatz ist ein Bilderkennungsdatensatz, der aus 10 Klassen mit insgesamt über 6.000 Bildern besteht. STL-10 steht für „Standard Training and Test Set for Image Recognition-10 Classes“ und die 10 Klassen im Datensatz sind:


  • Flugzeug
  • Vogel
  • Auto
  • Katze
  • Reh
  • Hund
  • Pferd
  • Affe
  • Schiff
  • LKW


Um auf diesen Datensatz zuzugreifen, können Sie ihn direkt von herunterladen Kaggle oder laden Sie den Datensatz mit Torchvision:


 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)


Code zum Laden des STL-10-Datensatzes mit dem PyTorch-Torchvision-Paket. Abgerufen von https://pytorch.org/vision/stable/generated/torchvision.datasets.STL10.html#torchvision.datasets.STL10 am 22.3.2023 .

9. CelebA

Bei diesem Torchvision-Datensatz handelt es sich um einen beliebten groß angelegten Datensatz mit Gesichtsattributen, der über 200.000 Bilder von Prominenten umfasst. Es wurde erstmals 2015 von Forschern der Chinesischen Universität Hongkong veröffentlicht. Ein Bild im CelebA besteht aus 40 Gesichtsattributen wie Alter, Haarfarbe, Gesichtsausdruck und Geschlecht. Außerdem wurden diese Bilder aus dem Internet abgerufen und decken ein breites Spektrum an Gesichtsaussehen ab, darunter verschiedene Rassen, Altersgruppen und Geschlechter. Begrenzungsrahmenanmerkungen für die Position des Gesichts in jedem Bild sowie 5 Orientierungspunkte für Augen, Nase und Mund.


Sie können diesen Datensatz unter herunterladen Kaggle oder laden Sie es mit diesem Code:


 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)


Code zum Laden des CelebA-Datensatzes mit dem PyTorch-Torchvision-Paket. Abgerufen von https://pytorch.org/vision/stable/generated/torchvision.datasets.CelebA.html#torchvision.datasets.CelebA am 22.3.2023 .

10. PASCAL VOC

Der VOC-Datensatz (Visual Object Classes) wurde erstmals 2005 im Rahmen der PASCAL VOC Challenge eingeführt, deren Ziel es war, den Stand der Technik in der visuellen Erkennung voranzutreiben. Es besteht aus Bildern von 20 verschiedenen Objektkategorien, darunter Tiere, Fahrzeuge und gewöhnliche Haushaltsgegenstände. Jedes dieser Bilder ist mit den Standorten und Klassifizierungen der Objekte im Bild versehen. Die Anmerkungen umfassen sowohl Begrenzungsrahmen als auch Segmentierungsmasken auf Pixelebene.


Der Datensatz ist in zwei Hauptsätze unterteilt: den Trainings- und den Validierungssatz. Der Trainingssatz enthält etwa 5.000 Bilder mit Anmerkungen, während der Validierungssatz etwa 5.000 Bilder ohne Anmerkungen enthält. Darüber hinaus enthält der Datensatz auch einen Testsatz mit etwa 10.000 Bildern, die Anmerkungen zu diesem Satz sind jedoch nicht öffentlich verfügbar.


Um auf den aktuellen Datensatz zuzugreifen, können Sie ihn von herunterladen Webseite , Kaggle oder lade es in Torchvision:


 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)


Code zum Laden des PASCAL VOC-Datensatzes mit dem PyTorch-Torchvision-Paket. Abgerufen von https://pytorch.org/vision/stable/generated/torchvision.datasets.VOCDetection.html#torchvision.datasets.VOCDetection am 22.3.2023 .

11. Orte365

Der Places365-Datensatz ist ein umfangreicher Szenenerkennungsdatensatz mit mehr als 1,8 Millionen Bildern, der 365 Szenenkategorien abdeckt. Der Places365-Standarddatensatz besteht aus rund 1,8 Millionen Bildern, während der Places365-Challenge-Datensatz 50.000 zusätzliche Validierungsbilder enthält, die für Erkennungsmodelle eine größere Herausforderung darstellen.


Um auf diesen Datensatz zuzugreifen, können Sie verwenden Kaggle oder laden Sie Torchvision hier:


 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)


Code zum Laden des Places365-Datensatzes mit dem PyTorch-Torchvision-Paket. Abgerufen von https://pytorch.org/vision/stable/generated/torchvision.datasets.Places365.html#torchvision.datasets.Places365 am 22.3.2023 .


Eine Darstellung des Places365-Datensatzes

Häufige Anwendungsfälle für Torchvision-Datensätze

MNIST – Dieser Datensatz wird häufig für Bildklassifizierungsaufgaben verwendet, insbesondere für die handschriftliche Ziffernerkennung.


CIFAR-10 Und CIFAR-100 – Diese Datensätze werden häufig für Bildklassifizierungsaufgaben verwendet, insbesondere für die Objekterkennung.


ImageNet – Dieser Torchvision-Datensatz enthält Millionen von Bildern verschiedener Objekte und Tiere und wird häufig für Objekterkennungsaufgaben verwendet.


MS COCO – Dieser Datensatz wird häufig für Objekterkennungs-, Segmentierungs- und Beschriftungsaufgaben verwendet.


Mode-MNIST – Ähnlich wie MNIST wird dieser Datensatz häufig für Bildklassifizierungsaufgaben verwendet, insbesondere für die Erkennung von Modeartikeln.


SVHN – Dieser Datensatz wird häufig für Aufgaben zur Ziffernerkennung verwendet. Es eignet sich besonders zum Entwickeln und Testen von Algorithmen zum Erkennen von Zahlen in realen Umgebungen.


STL-10 – Dieser Torchvision-Datensatz wird häufig für Bildklassifizierungsaufgaben verwendet, insbesondere für die Objekterkennung.


CelebA – Dieser Datensatz wird häufig für Gesichtserkennungs- und Attributklassifizierungsaufgaben verwendet. Es besteht aus Bildern verschiedener Gesichtsausdrücke, Posen und Hintergründe.


Pascal VOC – Dieser Datensatz wird häufig für Objekterkennungs- und Segmentierungsaufgaben verwendet.


Orte365 – Dieser Datensatz wird häufig für Szenenerkennungsaufgaben verwendet. Es besteht aus Bildern verschiedener Innen- und Außenszenen wie Schlafzimmer, Strände und Büros.

Abschließende Gedanken

Torchvision-Datensätze werden häufig zum Trainieren und Bewerten von Modellen für maschinelles Lernen wie Faltungs-Neuronale Netze (CNNs) verwendet, die häufig in Computer-Vision-Anwendungen verwendet werden.


Sie stehen außerdem jedem zum Download und zur kostenlosen Nutzung zur Verfügung.


Das Hauptbild dieses Artikels wurde mit dem AI Stable Diffusion-Modell von HackerNoon unter Verwendung der Eingabeaufforderung „Tausende Bilder in kleinen Frames zusammengefasst“ generiert.


Weitere Datensatz-Listicles:

  1. Excel-Datensätze
  2. Keras-Datensätze
  3. R-Datensätze
  4. PyTorch-Datensätze
  5. Umfassende Datensätze