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.

FAQ

Was sind Oriented Bounding Boxes (OBB) und wie werden sie in Ultralytics YOLO Modellen verwendet?

Oriented Bounding Boxes (OBB) sind eine Art von Bounding Box Annotation, bei der die Box gedreht werden kann, um sich enger an das zu erkennende Objekt anzupassen, anstatt nur an den Achsen ausgerichtet zu sein. Dies ist vor allem bei Luft- oder Satellitenbildern nützlich, bei denen die Objekte möglicherweise nicht an den Bildachsen ausgerichtet sind. In den Modellen von Ultralytics YOLO werden die OBBs durch ihre vier Eckpunkte im YOLO OBB-Format dargestellt. Dies ermöglicht eine genauere Objekterkennung, da die Bounding Boxen gedreht werden können, um die Objekte besser zu erfassen.

Wie konvertiere ich meine bestehenden DOTA-Datensatz-Etiketten in das YOLO OBB-Format zur Verwendung mit Ultralytics YOLOv8 ?

Du kannst DOTA-Datensatzbeschriftungen in das YOLO OBB-Format konvertieren, indem du die convert_dota_to_yolo_obb Funktion von Ultralytics. Diese Konvertierung gewährleistet die Kompatibilität mit den Ultralytics YOLO Modellen und ermöglicht es dir, die OBB-Funktionen für eine verbesserte Objekterkennung zu nutzen. 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-Kommentare in ein YOLO-kompatibles Format um.

Wie trainiere ich ein YOLOv8 Modell mit orientierten Boundingboxen (OBB) auf meinem Datensatz?

Um ein YOLOv8 Modell mit OBBs zu trainieren, musst du sicherstellen, dass dein Datensatz im YOLO OBB-Format vorliegt und dann die Ultralytics API verwenden, um das Modell zu trainieren. Hier ist ein Beispiel in Python und CLI:

Beispiel

from ultralytics import YOLO

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

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

So wird sichergestellt, dass dein Modell die detaillierten OBB-Anmerkungen für eine bessere Erkennungsgenauigkeit nutzt.

Welche Datensätze werden derzeit für das OBB-Training in Ultralytics YOLO Modellen unterstützt?

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

  • DOTA-v2: Dieser Datensatz umfasst 1,7 Millionen Instanzen mit orientierten Bounding Boxes und 11.268 Bilder, die sich hauptsächlich auf die Erkennung von Objekten in der Luft konzentrieren.
  • DOTA8: Eine kleinere Untergruppe des DOTA-Datensatzes mit 8 Bildern, die für Tests und kontinuierliche Integrationsprüfungen (CI) verwendet wird.

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

Kann ich meinen eigenen Datensatz mit orientierten Bounding Boxes für das YOLOv8 Training verwenden und wenn ja, wie?

Ja, du kannst deinen eigenen Datensatz mit orientierten Boundingboxen für das YOLOv8 Training verwenden. Stelle sicher, dass deine Datensätze in das YOLO OBB-Format konvertiert werden, bei dem Bounding Boxes durch ihre vier Eckpunkte definiert werden. Anschließend kannst du eine YAML-Konfigurationsdatei erstellen, in der die Pfade zu den Datensätzen, die Klassen und andere notwendige Details angegeben werden. Weitere Informationen zum Erstellen und Konfigurieren deiner Datensätze findest du im Abschnitt Unterstützte Datensätze.



Erstellt am 2023-11-12, Aktualisiert am 2024-07-23
Autoren: glenn-jocher (11)

Kommentare