Zum Inhalt springen

Oriented Bounding Box (OBB)-Datensätze Übersicht

Das Training eines präzisen Objekterkennungsmodells mit orientierten Bounding Boxes (OBB) erfordert einen umfassenden Datensatz. Dieser Leitfaden erklärt die verschiedenen OBB-Datensatzformate, die mit Ultralytics YOLO Modellen kompatibel sind, und bietet Einblicke in ihre Struktur, Anwendung und Methoden zur Formatkonvertierung.

Unterstützte OBB-Datensatzformate

YOLO OBB Format

Das YOLO OBB-Format bezeichnet Boundingboxen durch ihre vier Eckpunkte, deren Koordinaten zwischen 0 und 1 normiert sind. Es folgt diesem Format:

class_index, x1, y1, x2, y2, x3, y3, x4, y4

Intern verarbeitet YOLO Verluste und Ausgaben in der xywhr Format, das den Mittelpunkt (xy), die Breite, die Höhe und die Drehung des Begrenzungsrahmens angibt.

Beispiele für das OBB-Format

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

0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758

Verwendung

Um ein Modell mit diesen OBB-Formaten zu trainieren:

Beispiel

from ultralytics import YOLO

# Create a new YOLOv8n-OBB model from scratch
model = YOLO('yolov8n-obb.yaml')

# Train the model on the DOTAv2 dataset
results = model.train(data='DOTAv1.yaml', epochs=100, imgsz=640)
# Train a new YOLOv8n-OBB model on the DOTAv2 dataset
yolo detect train data=DOTAv1.yaml model=yolov8n.pt epochs=100 imgsz=640

Unterstützte Datensätze

Derzeit werden die folgenden Datensätze mit Oriented Bounding Boxes unterstützt:

  • DOTA v2: DOTA (A Large-scale Dataset for Object Detection in Aerial Images), Version 2, legt den Schwerpunkt auf die Erkennung aus der Luftperspektive und enthält orientierte Bounding Boxes mit 1,7 Millionen Instanzen und 11.268 Bildern.

  • DOTA8: Eine kleine Untermenge von 8 Bildern des vollständigen DOTA-Datensatzes, die sich für das Testen von Workflows und Continuous Integration (CI) Checks des OBB-Trainings in der ultralytics Repository.

Deinen eigenen OBB-Datensatz einbinden

Wenn du eigene Datensätze mit orientierten Bounding Boxes einführen möchtest, musst du sicherstellen, dass sie mit dem oben erwähnten "YOLO OBB-Format" kompatibel sind. Konvertiere deine Annotationen in dieses Format und gib die Pfade, Klassen und Klassennamen in einer entsprechenden YAML-Konfigurationsdatei an.

Etikettenformate umwandeln

DOTA-Datensatzformat zu YOLO OBB-Format

Mit diesem Skript kannst du Beschriftungen aus dem DOTA-Datensatzformat in das YOLO OBB-Format umwandeln:

Beispiel

from ultralytics.data.converter import convert_dota_to_yolo_obb

convert_dota_to_yolo_obb('path/to/DOTA')

Dieser Konvertierungsmechanismus ist wichtig für Datensätze im DOTA-Format, da er die Anpassung an das Ultralytics YOLO OBB-Format sicherstellt.

Es ist unerlässlich, die Kompatibilität des Datensatzes mit deinem Modell zu überprüfen und die notwendigen Formatkonventionen einzuhalten. Ordnungsgemäß strukturierte Datensätze sind entscheidend für das Training effizienter Objekterkennungsmodelle mit orientierten Bounding Boxes.



Erstellt am 2023-11-12, Aktualisiert am 2024-01-25
Autoren: glenn-jocher (6)

Kommentare