Zum Inhalt springen

Übersicht über die Objektdetektionsdatensätze

Um ein robustes und genaues Modell zur Objekterkennung zu trainieren, ist ein umfassender Datensatz erforderlich. In diesem Leitfaden werden verschiedene Formate von Datensätzen vorgestellt, die mit dem Modell Ultralytics YOLO kompatibel sind, und es wird erläutert, wie sie aufgebaut und verwendet werden und wie man zwischen verschiedenen Formaten konvertiert.

Unterstützte Datensatzformate

Ultralytics YOLO Format

Das Format Ultralytics YOLO ist ein Konfigurationsformat für Datensätze, mit dem du das Stammverzeichnis des Datensatzes, die relativen Pfade zu den Verzeichnissen für Trainings-, Validierungs- und Testbilder oder *.txt Dateien mit Bildpfaden und ein Wörterbuch mit Klassennamen. Hier ist ein Beispiel:

# 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 für dieses Format sollten in das Format YOLO exportiert werden, mit einer *.txt Datei pro Bild. Wenn es keine Objekte in einem Bild gibt, wird keine *.txt Datei ist erforderlich. Die *.txt Datei mit einer Zeile pro Objekt formatiert werden. class x_center y_center width height Format. Die Box-Koordinaten müssen in normalisierte xywh Format (von 0 bis 1). Wenn deine Kästchen in Pixeln angegeben sind, solltest du dividieren x_center und width durch die Bildbreite, und y_center und height nach Bildhöhe. Die Klassennummern sollten einen Null-Index haben (mit 0 beginnen).

Beispiel für ein beschriftetes Bild

Die Etikettendatei, die dem obigen Bild entspricht, enthält 2 Personen (Klasse 0) und ein Unentschieden (Klasse 27):

Beispiel Etikettendatei

Wenn du das Format Ultralytics YOLO verwendest, organisierst du deine Trainings- und Validierungsbilder und Beschriftungen wie im folgenden Beispiel des COCO8-Datensatzes.

Beispiel für die Verzeichnisstruktur der Datensätze

Verwendung

Hier erfährst du, wie du diese Formate nutzen kannst, um dein Modell zu trainieren:

Beispiel

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

Unterstützte Datensätze

Hier ist eine Liste der unterstützten Datensätze und eine kurze Beschreibung für jeden:

  • Argoverse: Ein Datensatz mit 3D-Tracking- und Bewegungsvorhersagedaten aus städtischen Umgebungen mit umfangreichen Anmerkungen.
  • COCO: Common Objects in Context (COCO) ist ein umfangreicher Datensatz zur Objekterkennung, Segmentierung und Beschriftung mit 80 Objektkategorien.
  • LVIS: Ein umfangreicher Datensatz zur Objekterkennung, Segmentierung und Beschriftung mit 1203 Objektkategorien.
  • COCO8: Eine kleinere Teilmenge der ersten 4 Bilder aus COCO train und COCO val, geeignet für schnelle Tests.
  • Global Wheat 2020: Ein Datensatz mit Bildern von Weizenköpfen für die Global Wheat Challenge 2020.
  • Objects365: Ein hochwertiger, umfangreicher Datensatz zur Objekterkennung mit 365 Objektkategorien und über 600.000 kommentierten Bildern.
  • OpenImagesV7: Ein umfassender Datensatz von Google mit 1,7 Millionen Trainingsbildern und 42.000 Validierungsbildern.
  • SKU-110K: Ein Datensatz zur dichten Objekterkennung in Einzelhandelsumgebungen mit über 11.000 Bildern und 1,7 Millionen Bounding Boxes.
  • VisDrone: Ein Datensatz mit Objekterkennungs- und Multi-Objektverfolgungsdaten aus von Drohnen aufgenommenen Bildern mit über 10.000 Bildern und Videosequenzen.
  • VOC: Der Pascal Visual Object Classes (VOC)-Datensatz zur Objekterkennung und -segmentierung mit 20 Objektklassen und über 11.000 Bildern.
  • xView: Ein Datensatz zur Objekterkennung in Overhead-Bildern mit 60 Objektkategorien und über 1 Million kommentierter Objekte.
  • Roboflow 100: Ein vielseitiger Benchmark zur Objekterkennung mit 100 Datensätzen aus sieben Bildbereichen für eine umfassende Modellbewertung.
  • Hirntumor: Ein Datensatz zur Erkennung von Hirntumoren enthält MRT- oder CT-Bilder mit Details über das Vorhandensein, die Lage und die Merkmale des Tumors.
  • Afrikanische Wildtiere: Ein Datensatz mit Bildern von afrikanischen Wildtieren, darunter Büffel, Elefanten, Nashörner und Zebras.
  • Unterschrift: Ein Datensatz mit Bildern verschiedener Dokumente mit kommentierten Unterschriften, der die Forschung zur Dokumentenprüfung und Betrugserkennung unterstützt.

Hinzufügen deines eigenen Datensatzes

Wenn du deinen eigenen Datensatz hast und ihn für das Training von Erkennungsmodellen mit dem Format Ultralytics YOLO verwenden möchtest, stelle sicher, dass er dem oben unter "Ultralytics YOLO Format" angegebenen Format entspricht. Konvertiere deine Annotationen in das erforderliche Format und gib die Pfade, die Anzahl der Klassen und die Klassennamen in der YAML-Konfigurationsdatei an.

Etikettenformate portieren oder konvertieren

COCO-Datensatzformat zu YOLO Format

Mit dem folgenden Codeschnipsel kannst du ganz einfach Etiketten aus dem beliebten COCO-Datensatzformat in das YOLO Format konvertieren:

Beispiel

from ultralytics.data.converter import convert_coco

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

Mit diesem Konvertierungstool kannst du den COCO-Datensatz oder jeden anderen Datensatz im COCO-Format in das Format Ultralytics YOLO umwandeln.

Vergiss nicht, zu überprüfen, ob der Datensatz, den du verwenden möchtest, mit deinem Modell kompatibel ist und den notwendigen Formatkonventionen entspricht. Ordnungsgemäß formatierte Datensätze sind entscheidend für das Training erfolgreicher Modelle zur Objekterkennung.

FAQ

Was ist das Ultralytics YOLO Datensatzformat und wie ist es zu strukturieren?

Das Format Ultralytics YOLO ist eine strukturierte Konfiguration zur Definition von Datensätzen in deinen Trainingsprojekten. Dabei werden die Pfade zu deinen Trainings-, Validierungs- und Testbildern sowie die entsprechenden Beschriftungen festgelegt. Zum Beispiel:

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
  # ...

Etiketten werden gespeichert in *.txt Dateien mit einer Datei pro Bild, formatiert als class x_center y_center width height mit normalisierten Koordinaten. Eine detaillierte Anleitung findest du in der Beispiel für den COCO8-Datensatz.

Wie konvertiere ich einen COCO-Datensatz in das Format YOLO ?

Mit den Konvertierungstools von Ultralytics kannst du einen COCO-Datensatz in das Format YOLO umwandeln. Hier ist eine schnelle Methode:

from ultralytics.data.converter import convert_coco

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

Dieser Code wandelt deine COCO-Anmerkungen in das Format YOLO um und ermöglicht so eine nahtlose Integration in Ultralytics YOLO Modelle. Weitere Informationen findest du im Abschnitt Portieren oder Konvertieren von Etikettenformaten.

Welche Datensätze werden von Ultralytics YOLO für die Objekterkennung unterstützt?

Ultralytics YOLO unterstützt eine breite Palette von Datensätzen, darunter:

Auf jeder Datensatzseite findest du detaillierte Informationen über die Struktur und die Verwendung, die für ein effizientes YOLOv8 Training zugeschnitten sind. Die vollständige Liste findest du im Abschnitt " Unterstützte Datensätze ".

Wie trainiere ich ein YOLOv8 Modell mit meinem Datensatz?

Um mit dem Training eines YOLOv8 Modells zu beginnen, stelle sicher, dass dein Datensatz richtig formatiert ist und die Pfade in einer YAML-Datei definiert sind. Verwende das folgende Skript, um mit dem Training zu beginnen:

Beispiel

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

Weitere Informationen zur Verwendung der verschiedenen Modi, einschließlich der Befehle CLI , findest du im Abschnitt " Verwendung".

Wo finde ich praktische Beispiele für die Verwendung von Ultralytics YOLO zur Objekterkennung?

Ultralytics bietet zahlreiche Beispiele und praktische Anleitungen für den Einsatz von YOLOv8 in verschiedenen Anwendungen. Einen umfassenden Überblick findest du im Ultralytics Blog, wo du Fallstudien, ausführliche Tutorials und Community-Stories findest, die die Objekterkennung, Segmentierung und vieles mehr mit YOLOv8 zeigen. Konkrete Beispiele findest du im Abschnitt " Verwendung" in der Dokumentation.



Erstellt 2023-11-12, Aktualisiert 2024-07-04
Autoren: glenn-jocher (10), RizwanMunawar (2), IvorZhu331 (1), Laughing-q (1)

Kommentare