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: Eine Sammlung von Sensordaten, die von autonomen Fahrzeugen gesammelt wurden. Sie enthält 3D-Tracking-Anmerkungen für Fahrzeugobjekte.
  • COCO: Common Objects in Context (COCO) ist ein umfangreicher Datensatz zur Objekterkennung, Segmentierung und Beschriftung mit 80 Objektkategorien.
  • LVIS: LVIS ist ein umfangreicher Datensatz zur Objekterkennung, Segmentierung und Beschriftung mit 1203 Objektkategorien.
  • COCO8: COCO8 ist eine kleinere Teilmenge des COCO-Datensatzes, die leichter und schneller zu trainieren ist.
  • GlobalWheat2020: Ein Datensatz mit Bildern von Weizenköpfen für die Global Wheat Challenge 2020.
  • Objekte365: Ein großer Objektdatensatz mit 365 Objektkategorien und 600k Bildern, der die Forschung zur Objekterkennung voranbringen soll.
  • OpenImagesV7: Ein umfassender Datensatz von Google mit 1,7 Millionen Trainingsbildern und 42.000 Validierungsbildern.
  • SKU-110K: Ein Datensatz mit Bildern von dicht verpackten Einzelhandelsartikeln, der für die Objekterkennung im Einzelhandel gedacht ist.
  • VisDrone: Ein Datensatz, der sich auf Drohnenbilder konzentriert und verschiedene Objektkategorien wie Autos, Fußgänger und Radfahrer enthält.
  • VOC: PASCAL VOC ist ein beliebter Objektdatensatz mit 20 Objektkategorien, darunter Fahrzeuge, Tiere und Möbel.
  • xView: Ein Datensatz mit hochauflösenden Satellitenbildern, der für die Erkennung verschiedener Objektklassen in Überkopfansichten entwickelt wurde.
  • Hirntumor: Dieser Datensatz umfasst MRT- oder CT-Bilder, die Informationen über das Vorhandensein, die Lage und die Merkmale von Hirntumoren enthalten. Er spielt eine wichtige Rolle beim Training von Computer-Vision-Modellen zur automatischen Tumorerkennung, die eine frühzeitige Diagnose und Behandlungsplanung ermöglichen.
  • Afrikanische Wildtiere: Dieser Datensatz enthält Bilder von afrikanischen Wildtieren wie Büffel, Elefanten, Nashörnern und Zebras und ist wichtig für das Training von Computer-Vision-Modellen. Er ist unverzichtbar für die Identifizierung von Tieren in verschiedenen Lebensräumen und leistet einen wichtigen Beitrag zur Wildtierforschung.

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.



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

Kommentare