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 Format f├╝r die Datensatzkonfiguration, 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 nach Bildbreite und y_center und height nach Bildh├Âhe. Die Klassennummern sollten mit einem Null-Index versehen werden (beginnen mit 0).

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

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.
  • 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 gepackten 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.

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 am 2023-11-12, Aktualisiert am 2024-01-14
Autoren: glenn-jocher (6)

Kommentare