Übersicht über Oriented Bounding Box (OBB) Datensätze
Das Trainieren eines präzisen Objekterkennungs-Modells mit Oriented Bounding Boxes (OBB) erfordert einen gründlichen Datensatz. Dieser Leitfaden erklärt die verschiedenen OBB-Datensatzformate, die mit Ultralytics YOLO Modellen kompatibel sind, und bietet Einblicke in deren Struktur, Anwendung und Methoden für Formatkonvertierungen.
Unterstützte OBB-Datensatzformate
YOLO OBB-Format
Das YOLO OBB-Format definiert Bounding Boxes 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 y4Intern verarbeitet YOLO Verluste und Ausgaben im xywhr-Format, das den Mittelpunkt (xy), die Breite, die Höhe und die Rotation der Bounding Box darstellt.

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.749758Datensatz 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 🚀 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.zipVerwendung
Um ein Modell mit diesen OBB-Formaten zu trainieren:
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 Oriented Bounding Boxes unterstützt:
- DOTA-v1: Die erste Version des DOTA-Datensatzes, die einen umfassenden Satz an Luftbildern mit Oriented Bounding Boxes 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, betont die Erkennung aus Luftperspektiven und enthält Oriented Bounding Boxes mit 1,7 Millionen Instanzen und 11.268 Bildern.
- DOTA8: Ein kleiner Datensatz mit 8 Bildern aus dem vollständigen DOTA-Datensatz, der sich zum Testen von Workflows und Continuous Integration (CI)-Prüfungen des OBB-Trainings im
ultralytics-Repository eignet. - DOTA128: Ein Datensatz mit 128 Bildern aus dem DOTA-Datensatz, wobei alle Bilder im Trainingsordner liegen (verwendet für Training und Validierung), was eine gute Balance zwischen Größe und Diversität zum Testen von OBB-Modellen bietet.
Einbindung deines eigenen OBB-Datensatzes
Wenn du deine eigenen Datensätze mit Oriented Bounding Boxes 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.
Label-Formate 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:
from ultralytics.data.converter import convert_dota_to_yolo_obb
convert_dota_to_yolo_obb("path/to/DOTA")Dieser Konvertierungsmechanismus ist für Datensätze im DOTA-Format hilfreich, um die Übereinstimmung mit dem Ultralytics YOLO OBB-Format sicherzustellen.
Es ist zwingend erforderlich, die Kompatibilität des Datensatzes mit deinem Modell zu validieren und die notwendigen Formatkonventionen einzuhalten. Richtig strukturierte Datensätze sind entscheidend für das Training effizienter Objekterkennungsmodelle mit Oriented 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 sie genauer an das erkannte Objekt anzupassen, anstatt nur achsenparallel zu sein. Dies ist besonders nützlich bei Luft- oder Satellitenaufnahmen, 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 Boxes drehen lassen, um die Objekte besser zu umschließen.
Wie konvertiere ich meine vorhandenen DOTA-Datensatz-Labels in das YOLO OBB-Format für die Verwendung mit Ultralytics YOLO26?
Du kannst DOTA-Datensatz-Labels mithilfe der convert_dota_to_yolo_obb-Funktion von Ultralytics in das YOLO OBB-Format konvertieren. Diese Konvertierung stellt die Kompatibilität mit Ultralytics YOLO Modellen sicher 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 wird deine DOTA-Annotationen in ein YOLO-kompatibles Format umwandeln.
Wie trainiere ich ein YOLO26-Modell mit Oriented Bounding Boxes (OBB) auf meinem Datensatz?
Das Training eines YOLO26-Modells mit OBBs erfordert, dass dein Datensatz im YOLO OBB-Format vorliegt, und dann die Verwendung der Ultralytics API, um das Modell zu trainieren. Hier ist ein Beispiel sowohl in Python als auch in der CLI:
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 Erkennungs-Genauigkeit 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-v1: Die erste Version des DOTA-Datensatzes, die einen umfassenden Satz an Luftbildern mit Oriented Bounding Boxes 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 Oriented Bounding Boxes und 11.268 Bildern, wobei der Schwerpunkt auf der Objekterkennung aus der Luft liegt.
- DOTA8: Ein kleinerer Datensatz mit 8 Bildern aus dem DOTA-Datensatz, der für Tests und Continuous Integration (CI)-Prüfungen verwendet wird.
- DOTA128: Ein Datensatz mit 128 Bildern, wobei alle Bilder im Trainingsordner liegen (verwendet für Training und Validierung), was mehr Diversität als DOTA8 bietet und gleichzeitig überschaubar für die erste OBB-Modellentwicklung und Experimente 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.
Kann ich meinen eigenen Datensatz mit Oriented Bounding Boxes für das YOLO26-Training verwenden, und wenn ja, wie?
Ja, du kannst deinen eigenen Datensatz mit Oriented Bounding Boxes für das YOLO26-Training verwenden. Stelle sicher, dass deine Datensatz-Annotationen in das YOLO OBB-Format konvertiert wurden, was bedeutet, dass die Bounding Boxes durch ihre vier Eckpunkte definiert sind. Du kannst dann eine YAML-Konfigurationsdatei erstellen, in der die Datensatzpfade, Klassen und andere notwendige Details angegeben sind. Weitere Informationen zum Erstellen und Konfigurieren deiner Datensätze findest du im Abschnitt Unterstützte Datensätze.