Zum Inhalt springen

Überblick über Datensätze mit orientierten Begrenzungsrahmen (OBB)

Das Training eines präzisen Objekterkennungsmodells mit orientierten Begrenzungsrahmen (OBB) erfordert einen umfassenden Datensatz. Dieser Leitfaden erläutert 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 legt Begrenzungsrahmen durch ihre vier Eckpunkte fest, wobei die Koordinaten 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 xywhr Format, das den BegrenzungsrahmenMittelpunkt (xy), die Breite, die Höhe und die Drehung von 's darstellt.

OBB-Formatbeispiele

Ein Beispiel für eine *.txt Beschriftungsdatei für das obige Bild, das ein Objekt der Klasse 0 im OBB-Format enthält, könnte wie folgt 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 split DOTAv1 dataset 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 (1MB)

# 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

Nutzung

So trainieren Sie ein Modell mit diesen OBB-Formaten:

Beispiel

from ultralytics import YOLO

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

# Train the model on the DOTAv1 dataset
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)
# Train a new YOLO11n-OBB model on the DOTAv1 dataset
yolo obb train data=DOTAv1.yaml model=yolo11n-obb.pt 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 von Luftaufnahmen mit Oriented Bounding Boxes für die Objekterkennung bereitstellt.
  • DOTA-v1.5: Eine Zwischenversion des DOTA-Datensatzes, die zusätzliche Anmerkungen und Verbesserungen gegenüber DOTA-v1 für verbesserte Objekterkennungsaufgaben bietet.
  • DOTA-v2: DOTA (A Large-scale Dataset for Object Detection in Aerial Images) Version 2, betont die Erkennung aus der Luftperspektive und enthält Oriented Bounding Boxes mit 1,7 Millionen Instanzen und 11.268 Bildern.
  • DOTA8: Ein kleiner 8-Bild-Ausschnitt des vollständigen DOTA-Datensatzes, der sich für das Testen von Workflows und Continuous Integration (CI)-Prüfungen des OBB-Trainings in der eignet ultralytics Repository.

Einbinden Ihres eigenen OBB-Datensatzes

Für diejenigen, die ihre eigenen Datensätze mit Oriented Bounding Boxes einführen möchten, stellen Sie die Kompatibilität mit dem oben genannten "YOLO OBB-Format" sicher. Konvertieren Sie Ihre Anmerkungen in dieses erforderliche Format und geben Sie die Pfade, Klassen und Klassennamen in einer entsprechenden YAML-Konfigurationsdatei an.

Beschriftungsformate konvertieren

DOTA-Datensatzformat zu YOLO-OBB-Format

Die Übertragung von Beschriftungen vom DOTA-Datensatzformat in 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, um die Ausrichtung auf das Ultralytics YOLO OBB-Format sicherzustellen.

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

FAQ

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

Ausgerichtete Begrenzungsrahmen (Oriented Bounding Boxes, OBBs) sind eine Art von Begrenzungsrahmen-Annotation, bei der der Rahmen gedreht werden kann, um sich besser an dem zu erkennenden Objekt auszurichten, anstatt nur achsenorientiert zu sein. Dies ist besonders nützlich bei 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 Begrenzungsrahmen drehen können, um besser zu den Objekten zu passen.

Wie konvertiere ich meine vorhandenen DOTA-Datensatzbeschriftungen in das YOLO-OBB-Format zur Verwendung mit Ultralytics YOLO11?

Sie können DOTA-Datensatzbeschriftungen mit dem folgenden Tool in das YOLO OBB-Format konvertieren: convert_dota_to_yolo_obb Funktion von Ultralytics. Diese Konvertierung gewährleistet die Kompatibilität mit den Ultralytics YOLO-Modellen, sodass Sie die OBB-Funktionen für eine verbesserte Objekterkennung nutzen können. 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 Ihre DOTA-Annotationen in ein YOLO-kompatibles Format um.

Wie trainiere ich ein YOLO11-Modell mit orientierten Begrenzungsrahmen (OBB) auf meinem Datensatz?

Das Trainieren eines YOLO11-Modells mit OBBs erfordert, dass sich Ihr Datensatz im YOLO-OBB-Format befindet und Sie 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 YOLO11n-OBB model from scratch
model = YOLO("yolo11n-obb.yaml")

# Train the model on the custom dataset
results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)
# Train a new YOLO11n-OBB model on the custom dataset
yolo obb train data=your_dataset.yaml model=yolo11n-obb.yaml epochs=100 imgsz=640

Dadurch wird sichergestellt, dass Ihr Modell die detaillierten OBB-Annotationen für eine verbesserte Genauigkeit der Erkennung 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 von Luftaufnahmen mit Oriented Bounding Boxes für die Objekterkennung bereitstellt.
  • DOTA-v1.5: Eine Zwischenversion des DOTA-Datensatzes, die zusätzliche Anmerkungen und Verbesserungen gegenüber DOTA-v1 für verbesserte Objekterkennungsaufgaben bietet.
  • DOTA-v2: Dieser Datensatz enthält 1,7 Millionen Instanzen mit orientierten Begrenzungsrahmen und 11.268 Bilder, wobei der Schwerpunkt hauptsächlich auf der Objekterkennung aus der Luft liegt.
  • DOTA8: Eine kleinere, aus 8 Bildern bestehende Teilmenge des DOTA-Datensatzes, die für Tests und Continuous Integration (CI)-Prüfungen verwendet wird.

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 orientierten Begrenzungsrahmen für das YOLO11-Training verwenden, und wenn ja, wie?

Ja, Sie können Ihren eigenen Datensatz mit ausgerichteten Begrenzungsrahmen für das YOLO11-Training verwenden. Stellen Sie sicher, dass Ihre Datensatzanmerkungen in das YOLO-OBB-Format konvertiert werden, das die Definition von Begrenzungsrahmen durch ihre vier Eckpunkte beinhaltet. Anschließend können Sie eine YAML-Konfigurationsdatei erstellen, in der die Datensatzpfade, Klassen und andere erforderliche Details angegeben werden. Weitere Informationen zum Erstellen und Konfigurieren Ihrer Datensätze finden Sie im Abschnitt Unterstützte Datensätze.



📅 Vor 1 Jahr erstellt ✏️ Vor 10 Tagen aktualisiert

Kommentare