Zum Inhalt springen

Objektdetektionsdatensätze Übersicht

Das Training eines robusten und präzisen Objekterkennungsmodells erfordert einen umfassenden Datensatz. In diesem Leitfaden werden verschiedene Formate von Datensätzen vorgestellt, die mit dem Modell Ultralytics YOLO kompatibel sind, und es werden Einblicke in ihre Struktur und Verwendung sowie in die Konvertierung zwischen verschiedenen Formaten gegeben.

Unterstützte Dataset-Formate

Ultralytics YOLO Format

Das Format Ultralytics YOLO ist ein Format für die Datensatzkonfiguration, mit dem Sie das Stammverzeichnis des Datensatzes, die relativen Pfade zu den Verzeichnissen der Trainings-, Validierungs- und Testbilder oder *.txt Dateien, die Bildpfade enthalten, und ein Wörterbuch mit Klassennamen. Hier ist ein Beispiel:

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco8/
# Example usage: yolo train data=coco8.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8 ← downloads here (1 MB)

# 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: 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
names:
  0: person
  1: bicycle
  2: car
  3: motorcycle
  4: airplane
  5: bus
  6: train
  7: truck
  8: boat
  9: traffic light
  10: fire hydrant
  11: stop sign
  12: parking meter
  13: bench
  14: bird
  15: cat
  16: dog
  17: horse
  18: sheep
  19: cow
  20: elephant
  21: bear
  22: zebra
  23: giraffe
  24: backpack
  25: umbrella
  26: handbag
  27: tie
  28: suitcase
  29: frisbee
  30: skis
  31: snowboard
  32: sports ball
  33: kite
  34: baseball bat
  35: baseball glove
  36: skateboard
  37: surfboard
  38: tennis racket
  39: bottle
  40: wine glass
  41: cup
  42: fork
  43: knife
  44: spoon
  45: bowl
  46: banana
  47: apple
  48: sandwich
  49: orange
  50: broccoli
  51: carrot
  52: hot dog
  53: pizza
  54: donut
  55: cake
  56: chair
  57: couch
  58: potted plant
  59: bed
  60: dining table
  61: toilet
  62: tv
  63: laptop
  64: mouse
  65: remote
  66: keyboard
  67: cell phone
  68: microwave
  69: oven
  70: toaster
  71: sink
  72: refrigerator
  73: book
  74: clock
  75: vase
  76: scissors
  77: teddy bear
  78: hair drier
  79: toothbrush

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zip

Etiketten für dieses Format sollten in das Format YOLO exportiert werden, mit einer *.txt Datei pro Bild. Wenn ein Bild keine Objekte enthält, wird keine *.txt Datei ist erforderlich. Die *.txt Datei sollte mit einer Zeile pro Objekt formatiert werden in class x_center y_center width height Format. Die Koordinaten der Box müssen in normierte xywh Format (von 0 bis 1). Wenn Ihre Kästchen in Pixeln angegeben sind, sollten Sie dividieren x_center und width nach der 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 einer Etikettendatei

Wenn Sie das Format Ultralytics YOLO verwenden, organisieren Sie Ihre Trainings- und Validierungsbilder und -beschriftungen wie im folgenden Beispiel des COCO8-Datensatzes gezeigt.

Beispiel für die Verzeichnisstruktur eines Datensatzes

Verwendung

Im Folgenden erfahren Sie, wie Sie diese Formate zum Trainieren Ihres Modells verwenden können:

Beispiel

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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=yolo11n.pt epochs=100 imgsz=640

Unterstützte Datensätze

Hier finden Sie 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.
  • COCO8-Graustufen: Eine Graustufenversion von COCO8, die durch Konvertierung von RGB in Graustufen erstellt wird und für die Bewertung von Ein-Kanal-Modellen nützlich ist.
  • COCO8-Multispektral: Eine 10-kanalige multispektrale Version von COCO8, die durch Interpolation von RGB-Wellenlängen erstellt wird und für die spektrale Bewertung von Modellen nützlich ist.
  • COCO128: Eine kleinere Teilmenge der ersten 128 Bilder aus COCO train und COCO val, geeignet für Tests.
  • Global Wheat 2020: Ein Datensatz mit Bildern von Weizenköpfen für die Global Wheat Challenge 2020.
  • Objekte365: 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 mit dichter Objekterkennung in Einzelhandelsumgebungen mit über 11.000 Bildern und 1,7 Millionen Bounding Boxes.
  • HomeObjects-3K Neu 🚀: Ein Datensatz mit Haushaltsgegenständen für den Innenbereich, darunter Betten, Stühle, Fernseher und vieles mehr - ideal für Anwendungen in der intelligenten Hausautomatisierung, Robotik, Augmented Reality und Raumlayoutanalyse.
  • 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 11K 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 umfasst MRT- oder CT-Scan-Bilder mit Angaben zu Vorhandensein, Lage und Merkmalen 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 zur Unterstützung der Dokumentenprüfung und Betrugserkennung.
  • Medizinische Pillen: Ein Datensatz mit Bildern medizinischer Tabletten, die für Anwendungen wie pharmazeutische Qualitätssicherung, Tablettensortierung und Einhaltung gesetzlicher Vorschriften mit Anmerkungen versehen sind.

Hinzufügen eines eigenen Datensatzes

Wenn Sie einen eigenen Datensatz haben und diesen für das Training von Erkennungsmodellen mit dem Format Ultralytics YOLO verwenden möchten, stellen Sie sicher, dass er dem oben unter "Ultralytics YOLO format" angegebenen Format entspricht. Konvertieren Sie Ihre Annotationen in das gewünschte Format und geben Sie die Pfade, Anzahl der Klassen und Klassennamen in der YAML-Konfigurationsdatei an.

Etikettenformate portieren oder konvertieren

COCO-Datensatzformat in YOLO Format

Mit dem folgenden Codeschnipsel können Sie ganz einfach Etiketten aus dem gängigen COCO-Datensatzformat in das YOLO konvertieren:

Beispiel

from ultralytics.data.converter import convert_coco

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

Dieses Konvertierungstool kann verwendet werden, um den COCO-Datensatz oder einen beliebigen Datensatz im COCO-Format in das Ultralytics YOLO zu konvertieren. Dabei werden die JSON-basierten COCO-Annotationen in das einfachere textbasierte YOLO umgewandelt, wodurch sie mit den YOLO Ultralytics kompatibel sind.

Vergewissern Sie sich, dass der Datensatz, den Sie verwenden möchten, mit Ihrem Modell kompatibel ist und den erforderlichen Formatkonventionen entspricht. Korrekt formatierte Datensätze sind entscheidend für das Training erfolgreicher Objekterkennungsmodelle.

FAQ

Was ist das Format des Datensatzes Ultralytics YOLO und wie ist er zu strukturieren?

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

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco8/
# Example usage: yolo train data=coco8.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8 ← downloads here (1 MB)

# 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: 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
names:
  0: person
  1: bicycle
  2: car
  3: motorcycle
  4: airplane
  5: bus
  6: train
  7: truck
  8: boat
  9: traffic light
  10: fire hydrant
  11: stop sign
  12: parking meter
  13: bench
  14: bird
  15: cat
  16: dog
  17: horse
  18: sheep
  19: cow
  20: elephant
  21: bear
  22: zebra
  23: giraffe
  24: backpack
  25: umbrella
  26: handbag
  27: tie
  28: suitcase
  29: frisbee
  30: skis
  31: snowboard
  32: sports ball
  33: kite
  34: baseball bat
  35: baseball glove
  36: skateboard
  37: surfboard
  38: tennis racket
  39: bottle
  40: wine glass
  41: cup
  42: fork
  43: knife
  44: spoon
  45: bowl
  46: banana
  47: apple
  48: sandwich
  49: orange
  50: broccoli
  51: carrot
  52: hot dog
  53: pizza
  54: donut
  55: cake
  56: chair
  57: couch
  58: potted plant
  59: bed
  60: dining table
  61: toilet
  62: tv
  63: laptop
  64: mouse
  65: remote
  66: keyboard
  67: cell phone
  68: microwave
  69: oven
  70: toaster
  71: sink
  72: refrigerator
  73: book
  74: clock
  75: vase
  76: scissors
  77: teddy bear
  78: hair drier
  79: toothbrush

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8.zip

Etiketten werden gespeichert in *.txt Dateien mit einer Datei pro Bild, formatiert als class x_center y_center width height mit normalisierten Koordinaten. Eine ausführliche Anleitung finden Sie in der Beispiel eines COCO8-Datensatzes.

Wie kann ich einen COCO-Datensatz in das Format YOLO konvertieren?

Sie können einen COCO-Datensatz mit Hilfe der Ultralytics in das YOLO konvertieren. Hier ist eine schnelle Methode:

from ultralytics.data.converter import convert_coco

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

Dieser Code konvertiert Ihre COCO-Anmerkungen in das Format YOLO , was eine nahtlose Integration in Ultralytics YOLO Modelle ermöglicht. Weitere Einzelheiten finden Sie im Abschnitt Portieren oder Konvertieren von Etikettenformaten.

Welche Datensätze werden von Ultralytics YOLO zur Objekterkennung unterstützt?

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

Jede Datensatzseite bietet detaillierte Informationen über die Struktur und die Verwendung, die für ein effizientes YOLO11 Training zugeschnitten sind. Die vollständige Liste finden Sie im Abschnitt " Unterstützte Datensätze ".

Wie beginne ich mit dem Training eines YOLO11 Modells mit meinem Datensatz?

Um mit dem Training eines YOLO11 Modells zu beginnen, stellen Sie sicher, dass Ihr Datensatz korrekt formatiert ist und die Pfade in einer YAML-Datei definiert sind. Verwenden Sie das folgende Skript, um mit dem Training zu beginnen:

Beispiel

from ultralytics import YOLO

model = YOLO("yolo11n.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=yolo11n.pt epochs=100 imgsz=640

Weitere Einzelheiten zur Verwendung der verschiedenen Modi, einschließlich der Befehle CLI , finden Sie im Abschnitt " Verwendung".

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

Ultralytics bietet zahlreiche Beispiele und praktische Anleitungen für den Einsatz von YOLO11 in verschiedenen Anwendungen. Einen umfassenden Überblick erhalten Sie im Ultralytics Blog, wo Sie Fallstudien, detaillierte Tutorials und Community-Stories finden, in denen Objekterkennung, Segmentierung und vieles mehr mit YOLO11 vorgestellt werden. Spezifische Beispiele finden Sie im Abschnitt " Verwendung" in der Dokumentation.



📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 22 Tagen

Kommentare