Overslaan naar inhoud

Overzicht van datasets voor objectdetectie

Voor het trainen van een robuust en nauwkeurig objectdetectiemodel is een uitgebreide dataset nodig. Deze gids introduceert verschillende formaten van datasets die compatibel zijn met het Ultralytics YOLO model en geeft inzicht in hun structuur, gebruik en hoe te converteren tussen verschillende formaten.

Ondersteunde datasetformaten

Ultralytics YOLO formaat

Het Ultralytics YOLO formaat is een formaat voor datasetconfiguratie waarmee je de hoofdmap van de dataset kunt definiëren, de relatieve paden naar de afbeeldingsmappen voor training/validatie/testen of *.txt bestanden met afbeeldingspaden en een woordenboek met klassennamen. Hier is een voorbeeld:

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco8  # dataset root dir
train: images/train  # train images (relative to 'path') 4 images
val: images/val  # val images (relative to 'path') 4 images
test:  # test images (optional)

# Classes (80 COCO classes)
names:
  0: person
  1: bicycle
  2: car
  # ...
  77: teddy bear
  78: hair drier
  79: toothbrush

Etiketten voor dit formaat moeten worden geëxporteerd naar YOLO formaat met één *.txt bestand per afbeelding. Als er geen objecten in een afbeelding staan, wordt er geen *.txt bestand nodig. De *.txt bestand moet worden opgemaakt met één rij per object in class x_center y_center width height formaat. Boxcoördinaten moeten in genormaliseerde xywh formaat (van 0 tot 1). Als je vakken in pixels zijn, moet je het volgende delen x_center en width per beeldbreedte en y_center en height door afbeeldingshoogte. Klassenummers moeten nul-geïndexeerd zijn (beginnen met 0).

Voorbeeld gelabelde afbeelding

Het labelbestand dat overeenkomt met de bovenstaande afbeelding bevat 2 personen (klasse 0) en een gelijkspel (klasse 27):

Voorbeeld labelbestand

Als je het Ultralytics YOLO formaat gebruikt, organiseer dan je trainings- en validatieafbeeldingen en labels zoals in het COCO8 dataset voorbeeld hieronder.

Voorbeeld dataset mapstructuur

Gebruik

Hier lees je hoe je deze indelingen kunt gebruiken om je model te trainen:

Voorbeeld

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data='coco8.yaml', epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640

Ondersteunde datasets

Hier is een lijst van de ondersteunde datasets en een korte beschrijving voor elk:

  • Argoverse: Een verzameling sensorgegevens verzameld van autonome voertuigen. Het bevat 3D tracking annotaties voor auto-objecten.
  • COCO: Common Objects in Context (COCO) is een grootschalige dataset voor objectdetectie, segmentatie en ondertiteling met 80 objectcategorieën.
  • LVIS: LVIS is een grootschalige dataset voor objectdetectie, segmentatie en ondertiteling met 1203 objectcategorieën.
  • COCO8: COCO8 is een kleinere subset van de COCO dataset, is lichter en sneller te trainen.
  • Wereldwijde tarwe2020: Een dataset met afbeeldingen van tarwekoppen voor de Global Wheat Challenge 2020.
  • Objecten365: Een grootschalige dataset voor objectdetectie met 365 objectcategorieën en 600.000 afbeeldingen, gericht op het bevorderen van onderzoek naar objectdetectie.
  • OpenBeeldenV7: Een uitgebreide dataset van Google met 1,7M train afbeeldingen en 42k validatie afbeeldingen.
  • SKU-110K: Een dataset met afbeeldingen van dicht opeengepakte winkelproducten, bedoeld voor objectdetectie in de winkelomgeving.
  • VisDrone: Een dataset die zich richt op drone-gebaseerde beelden, met verschillende objectcategorieën zoals auto's, voetgangers en fietsers.
  • VOC: PASCAL VOC is een populaire dataset voor objectdetectie met 20 objectcategorieën, waaronder voertuigen, dieren en meubels.
  • xBekijk: Een dataset met satellietbeelden met een hoge resolutie, ontworpen voor de detectie van verschillende objectklassen in bovenaanzichten.
  • Hersentumor: Deze dataset bestaat uit MRI- of CT-scanbeelden die informatie bevatten over de aanwezigheid, locatie en kenmerken van hersentumoren. Het speelt een cruciale rol bij het trainen van computervisiemodellen om tumoridentificatie te automatiseren, wat vroege diagnose en behandelplanning vergemakkelijkt.
  • Afrikaanse dieren: Deze dataset, met beelden van Afrikaanse wilde dieren zoals buffels, olifanten, neushoorns en zebra's, is onmisbaar bij het trainen van computervisiemodellen. Het is onmisbaar voor het identificeren van dieren in verschillende habitats en draagt aanzienlijk bij aan onderzoek naar wilde dieren.

Je eigen dataset toevoegen

Als je een eigen dataset hebt en deze wilt gebruiken voor het trainen van detectiemodellen met het formaat Ultralytics YOLO , zorg er dan voor dat deze het formaat volgt dat hierboven is gespecificeerd onder "Ultralytics YOLO formaat". Converteer je annotaties naar het vereiste formaat en specificeer de paden, het aantal klassen en de klassennamen in het YAML-configuratiebestand.

Labelindelingen overzetten of converteren

COCO-gegevensverzamelingsformaat naar YOLO formaat

Je kunt eenvoudig labels converteren van het populaire COCO dataset formaat naar het YOLO formaat met behulp van het volgende codefragment:

Voorbeeld

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir='path/to/coco/annotations/')

Dit conversieprogramma kan worden gebruikt om de COCO dataset of elke andere dataset in het COCO formaat te converteren naar het Ultralytics YOLO formaat.

Vergeet niet om te controleren of de dataset die je wilt gebruiken compatibel is met je model en de benodigde opmaakconventies volgt. Goed geformatteerde datasets zijn cruciaal voor het trainen van succesvolle objectdetectiemodellen.



Aangemaakt 2023-11-12, Bijgewerkt 2024-04-18
Auteurs: glenn-jocher (7), IvorZhu331 (1), Laughing-q (1), RizwanMunawar (1)

Reacties