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 dataset met 3D-tracking- en bewegingsvoorspellingsgegevens van stedelijke omgevingen met rijke annotaties.
  • COCO: Common Objects in Context (COCO) is een grootschalige dataset voor objectdetectie, segmentatie en ondertiteling met 80 objectcategorieĆ«n.
  • LVIS: Een grootschalige dataset voor objectdetectie, segmentatie en ondertiteling met 1203 objectcategorieĆ«n.
  • COCO8: Een kleinere subset van de eerste 4 afbeeldingen van COCO train en COCO val, geschikt voor snelle tests.
  • Wereldwijde tarwe 2020: Een dataset met afbeeldingen van tarwekoppen voor de Global Wheat Challenge 2020.
  • Objecten365: Een hoogwaardige, grootschalige dataset voor objectdetectie met 365 objectcategorieĆ«n en meer dan 600K geannoteerde afbeeldingen.
  • OpenImagesV7: A comprehensive dataset by Google with 1.7M train images and 42k validation images.
  • SKU-110K: Een dataset met dichte objectdetectie in winkelomgevingen met meer dan 11K afbeeldingen en 1,7 miljoen bounding boxes.
  • VisDrone: Een dataset met objectdetectie- en multi-objectvolggegevens van drone-opnamen met meer dan 10.000 afbeeldingen en videosequenties.
  • VOC: De Pascal Visual Object Classes (VOC) dataset voor objectdetectie en segmentatie met 20 objectklassen en meer dan 11K afbeeldingen.
  • xView: Een dataset voor objectdetectie in overheadbeelden met 60 objectcategorieĆ«n en meer dan 1 miljoen geannoteerde objecten.
  • Roboflow 100: Een diverse benchmark voor objectdetectie met 100 datasets verspreid over zeven beelddomeinen voor een uitgebreide evaluatie van modellen.
  • Hersentumor: Een dataset voor het detecteren van hersentumoren bevat MRI- of CT-scanbeelden met details over de aanwezigheid, locatie en kenmerken van de tumor.
  • Afrikaanse wilde dieren: Een dataset met afbeeldingen van Afrikaanse wilde dieren, waaronder buffels, olifanten, neushoorns en zebra's.
  • Handtekening: Een dataset met afbeeldingen van verschillende documenten met geannoteerde handtekeningen, ter ondersteuning van onderzoek naar documentverificatie en fraudedetectie.

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.

FAQ

Wat is het formaat van de Ultralytics YOLO dataset en hoe structureer je die?

Het Ultralytics YOLO formaat is een gestructureerde configuratie voor het definiƫren van datasets in je trainingsprojecten. Het gaat om het instellen van paden naar je trainings-, validatie- en testafbeeldingen en bijbehorende labels. Bijvoorbeeld:

path: ../datasets/coco8  # dataset root directory
train: images/train  # training images (relative to 'path')
val: images/val  # validation images (relative to 'path')
test:  # optional test images
names:
  0: person
  1: bicycle
  2: car
  # ...

Labels worden opgeslagen in *.txt bestanden met ƩƩn bestand per afbeelding, geformatteerd als class x_center y_center width height met genormaliseerde coƶrdinaten. Voor een gedetailleerde handleiding, zie de COCO8 dataset voorbeeld.

Hoe converteer ik een COCO dataset naar het YOLO formaat?

Je kunt een COCO dataset converteren naar het YOLO formaat met de Ultralytics conversie tools. Hier volgt een snelle methode:

from ultralytics.data.converter import convert_coco

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

Deze code converteert je COCO annotaties naar de indeling YOLO , waardoor naadloze integratie met Ultralytics YOLO modellen mogelijk wordt. Ga voor meer informatie naar Port of Convert Label Formats.

Welke datasets worden ondersteund door Ultralytics YOLO voor objectdetectie?

Ultralytics YOLO ondersteunt een breed scala aan datasets, waaronder:

Elke dataset pagina geeft gedetailleerde informatie over de structuur en het gebruik op maat voor efficiƫnte YOLOv8 training. Bekijk de volledige lijst in het gedeelte Ondersteunde datasets.

Hoe begin ik met het trainen van een YOLOv8 model met mijn dataset?

Om te beginnen met het trainen van een YOLOv8 model, moet je ervoor zorgen dat je dataset correct is geformatteerd en dat de paden zijn gedefinieerd in een YAML bestand. Gebruik het volgende script om te beginnen met trainen:

Voorbeeld

from ultralytics import YOLO

model = YOLO("yolov8n.pt")  # Load a pretrained model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)
yolo detect train data=path/to/your_dataset.yaml model=yolov8n.pt epochs=100 imgsz=640

Raadpleeg het gedeelte Gebruik voor meer details over het gebruik van verschillende modi, waaronder CLI commando's.

Waar kan ik praktische voorbeelden vinden van het gebruik van Ultralytics YOLO voor objectdetectie?

Ultralytics biedt talloze voorbeelden en praktische handleidingen voor het gebruik van YOLOv8 in diverse toepassingen. Bezoek voor een uitgebreid overzicht de Ultralytics Blog waar je casestudies, gedetailleerde tutorials en community stories kunt vinden over objectdetectie, segmentatie en meer met YOLOv8. Kijk voor specifieke voorbeelden in het gedeelte Gebruik in de documentatie.



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

Reacties