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.



Erstellt am 2023-11-12, Aktualisiert am 2024-05-22
Autoren: RizwanMunawar (2), glenn-jocher (8), IvorZhu331 (1), Laughing-q (1)

Kommentare