YOLO Vision 2026:

Übersicht zu Datensätzen mit orientierten Begrenzungsrahmen (OBB)#

Das Trainieren eines präzisen Objekterkennungs-Modells mit orientierten Bounding-Boxen (OBB) erfordert einen sorgfältigen Datensatz. Dieser Leitfaden erklärt die verschiedenen OBB-Datensatzformate, die mit Ultralytics YOLO-Modellen kompatibel sind, und gibt Einblicke in deren Struktur, Anwendung und Methoden für Formatkonvertierungen.

Unterstützte OBB-Datensatzformate#

YOLO OBB-Format#

Das YOLO OBB-Format definiert Begrenzungsrahmen durch ihre vier Eckpunkte mit Koordinaten, die zwischen 0 und 1 normalisiert sind. Es folgt diesem Format:

class_index x1 y1 x2 y2 x3 y3 x4 y4

Intern verarbeitet YOLO Verluste und Ausgaben im Format xywhr, das den Mittelpunkt (xy), die Breite, die Höhe und die Rotation des Begrenzungsrahmens darstellt.

Oriented bounding box annotation format examples

Ein Beispiel für eine *.txt-Label-Datei für das obige Bild, die ein Objekt der Klasse 0 im OBB-Format enthält, könnte so aussehen:

0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758

Datensatz-YAML-Format#

Das Ultralytics-Framework verwendet ein YAML-Dateiformat, um die Datensatz- und Modellkonfiguration für das Training von OBB-Modellen zu definieren. Hier ist ein Beispiel für das YAML-Format, das zur Definition eines OBB-Datensatzes verwendet wird:

ultralytics/cfg/datasets/dota8.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# DOTA8 dataset (8 images from the DOTAv1 split) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/obb/dota8
# Example usage: yolo train model=yolov8n-obb.pt data=dota8.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── dota8 ← 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: dota8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images

# Classes for DOTA 1.0
names:
  0: plane
  1: ship
  2: storage tank
  3: baseball diamond
  4: tennis court
  5: basketball court
  6: ground track field
  7: harbor
  8: bridge
  9: large vehicle
  10: small vehicle
  11: helicopter
  12: roundabout
  13: soccer ball field
  14: swimming pool

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

Jedes der Formate train, val und test akzeptiert ein Verzeichnis, eine Liste von Verzeichnissen oder eine *.txt-Datei, die einen Bildpfad pro Zeile auflistet (Pfadangaben beginnend mit ./ werden relativ zur *.txt-Datei aufgelöst). Eine *.txt-Datei ist nützlich, um auf einer Teilmenge eines Verzeichnisses zu trainieren, unbeschriftete Bilder zu überspringen oder Bilder aus mehreren Quellen zu einem Split zusammenzuführen.

Bildpfade als `*.txt`-Datei
path: datasets/dota8 # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
  0: plane

Verwendung#

So trainierst du ein Modell unter Verwendung dieser OBB-Formate:

Beispiel
from ultralytics import YOLO

# Create a new YOLO26n-OBB model from scratch
model = YOLO("yolo26n-obb.yaml")

# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)

Unterstützte Datensätze#

Derzeit werden die folgenden Datensätze mit orientierten Begrenzungsrahmen unterstützt:

  • DOTA-v1: Die erste Version des DOTA-Datensatzes, die einen umfassenden Satz von Luftbildern mit orientierten Bounding-Boxen für die Objekterkennung bereitstellt.
  • DOTA-v1.5: Eine Zwischenversion des DOTA-Datensatzes, die zusätzliche Annotationen und Verbesserungen gegenüber DOTA-v1 für erweiterte Objekterkennungsaufgaben bietet.
  • DOTA-v2: DOTA (A Large-scale Dataset for Object Detection in Aerial Images) Version 2 legt den Schwerpunkt auf die Erkennung aus Luftperspektiven und enthält orientierte Bounding-Boxen mit 1,7 Millionen Instanzen und 11.268 Bildern.
  • DOTA8: Eine kleine Teilmenge des vollständigen DOTA-Datensatzes mit 8 Bildern, die sich zum Testen von Arbeitsabläufen und Continuous Integration (CI)-Prüfungen des OBB-Trainings im ultralytics-Repository eignet.
  • DOTA8 Multispectral: Ein aus 8 Bildern und 10 Kanälen bestehender TIFF-Datensatz für das Testen des multispektralen OBB-Trainings auf der Ultralytics Platform.
  • DOTA128: Eine Teilmenge des DOTA-Datensatzes mit 128 Bildern, bei der sich alle Bilder im Ordner „train“ befinden (w sowohl für train als auch für val verwendet), was eine gute Balance zwischen Größe und Vielfalt zum Testen von OBB-Modellen bietet.

Einbindung deines eigenen OBB-Datensatzes#

Wenn du deine eigenen Datensätze mit orientierten Begrenzungsrahmen einbinden möchtest, stelle die Kompatibilität mit dem oben genannten "YOLO OBB-Format" sicher. Konvertiere deine Annotationen in dieses erforderliche Format und gib die Pfade, Klassen und Klassennamen in einer entsprechenden YAML-Konfigurationsdatei an.

Labelformate konvertieren#

DOTA-Datensatzformat in YOLO OBB-Format#

Die Umstellung der Labels vom DOTA-Datensatzformat auf das YOLO OBB-Format kann mit diesem Skript erreicht werden:

Beispiel
from ultralytics.data.converter import convert_dota_to_yolo_obb

convert_dota_to_yolo_obb("path/to/DOTA")

Dieser Konvertierungsmechanismus ist maßgeblich für Datensätze im DOTA-Format und stellt die Kompatibilität mit dem Ultralytics YOLO OBB-Format sicher.

Es ist zwingend erforderlich, die Kompatibilität des Datensatzes mit deinem Modell zu validieren und die notwendigen Formatkonventionen einzuhalten. Korrekt strukturierte Datensätze sind entscheidend für das Training effizienter Objekterkennungsmodelle mit orientierten Begrenzungsrahmen.

FAQ#

  • Orientierte Bounding-Boxen (OBB) sind eine Art von Bounding-Box-Annotation, bei der die Box gedreht werden kann, um sich genauer an das zu erkennende Objekt anzupassen, anstatt nur achsen ausgerichtet zu sein. Dies ist besonders nützlich in Luft- oder Satellitenbildern, bei denen Objekte möglicherweise nicht an den Bildachsen ausgerichtet sind. In Ultralytics YOLO-Modellen werden OBBs durch ihre vier Eckpunkte im YOLO OBB-Format dargestellt. Dies ermöglicht eine genauere Objekterkennung, da sich die Bounding-Boxen drehen lassen, um besser zu den Objekten zu passen.

  • Du kannst DOTA-Datensatz-Labels mithilfe der Funktion convert_dota_to_yolo_obb von Ultralytics in das YOLO OBB-Format konvertieren. Diese Konvertierung gewährleistet die Kompatibilität mit den Ultralytics YOLO-Modellen, sodass du die OBB-Funktionen für eine verbesserte Objekterkennung nutzen kannst. Hier ist ein kurzes Beispiel:

    from ultralytics.data.converter import convert_dota_to_yolo_obb
    
    convert_dota_to_yolo_obb("path/to/DOTA")

    Dieses Skript formatiert deine DOTA-Annotationen in ein YOLO-kompatibles Format um.

  • Das Training eines YOLO26-Modells mit OBBs erfordert, dass dein Datensatz im YOLO OBB-Format vorliegt und du dann die Ultralytics API verwendest, um das Modell zu trainieren. Hier ist ein Beispiel in Python und CLI:

    Beispiel
    from ultralytics import YOLO
    
    # Create a new YOLO26n-OBB model from scratch
    model = YOLO("yolo26n-obb.yaml")
    
    # Train the model on the custom dataset
    results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)

    Dies stellt sicher, dass dein Modell die detaillierten OBB-Annotationen für eine verbesserte Erkennungsgenauigkeit nutzt.

  • Derzeit unterstützt Ultralytics die folgenden Datensätze für das OBB-Training:

    • DOTA-v1: Die erste Version des DOTA-Datensatzes, die einen umfassenden Satz von Luftbildern mit orientierten Bounding-Boxen für die Objekterkennung bereitstellt.
    • DOTA-v1.5: Eine Zwischenversion des DOTA-Datensatzes, die zusätzliche Annotationen und Verbesserungen gegenüber DOTA-v1 für erweiterte Objekterkennungsaufgaben bietet.
    • DOTA-v2: Dieser Datensatz enthält 1,7 Millionen Instanzen mit orientierten Bounding-Boxen und 11.268 Bildern und konzentriert sich hauptsächlich auf die Objekterkennung in Luftbildern.
    • DOTA8: Eine kleinere Teilmenge des DOTA-Datensatzes mit 8 Bildern, die zum Testen und für Continuous Integration-Prüfungen (CI) verwendet wird.
    • DOTA128: Eine Teilmenge mit 128 Bildern, bei der sich alle Bilder im Ordner „train“ befinden (w sowohl für train als auch für val verwendet), die mehr Vielfalt als DOTA8 bietet und gleichzeitig überschaubar für die anfängliche OBB-Modellentwicklung und das Experimentieren bleibt.

    Diese Datensätze sind auf Szenarien zugeschnitten, in denen OBBs einen erheblichen Vorteil bieten, wie z. B. bei der Analyse von Luft- und Satellitenbildern.

  • Ja, du kannst deinen eigenen Datensatz mit orientierten Bounding-Boxen für das YOLO26-Training verwenden. Stelle sicher, dass deine Datensatzannotationen in das YOLO OBB-Format konvertiert werden, was das Definieren von Bounding-Boxen durch ihre vier Eckpunkte beinhaltet. Du kannst dann eine YAML-Konfigurationsdatei erstellen, die die Datensatzpfade, Klassen und andere notwendige Details angibt. Weitere Informationen zum Erstellen und Konfigurieren deiner Datensätze findest du im Abschnitt Unterstützte Datensätze.

Kommentare