Meet YOLO26: next-gen vision AI.

Link to this sectionDOTA-Datensatz mit OBB#

DOTA ist ein spezialisierter Datensatz, der sich auf die Objekterkennung in Luftbildern konzentriert. Er stammt aus der DOTA-Reihe von Datensätzen und bietet annotierte Bilder, die eine Vielzahl von Luftaufnahmen mit Oriented Bounding Boxes (OBB) erfassen.

DOTA-Datensatz Objektklassen für die Objekterkennung aus der Luft

Link to this sectionHauptfunktionen#



Watch: How to Train Ultralytics YOLO26 on the DOTA Dataset for Oriented Bounding Boxes in Google Colab
  • Sammlung von verschiedenen Sensoren und Plattformen mit Bildgrößen von 800 × 800 bis zu 20.000 × 20.000 Pixeln.
  • Enthält mehr als 1,7 Millionen orientierte Begrenzungsrahmen über 18 Kategorien hinweg.
  • Ermöglicht multiskalige Objekterkennung dank der großen Bandbreite an Objektgrößen pro Bild.
  • Die Instanzen werden von Experten mithilfe von beliebigen (8 Freiheitsgrade) Vierecken annotiert, um Objekte unterschiedlicher Skalierungen, Ausrichtungen und Formen zu erfassen.

Link to this sectionDatensatz-Versionen#

Link to this sectionDOTA-v1.0#

  • Enthält 15 gängige Kategorien.
  • Umfasst 2.806 Bilder mit 188.282 Instanzen.
  • Aufteilungsverhältnisse: 1/2 für Training, 1/6 für Validierung und 1/3 für Tests.

Link to this sectionDOTA-v1.5#

Link to this sectionDOTA-v2.0#

  • Sammlungen aus Google Earth, GF-2 Satelliten und anderen Luftbildern.
  • Enthält 18 gängige Kategorien.
  • Umfasst 11.268 Bilder mit beeindruckenden 1.793.658 Instanzen.
  • Neue Kategorien eingeführt: "airport" und "helipad".
  • Bildaufteilungen:
    • Training: 1.830 Bilder mit 268.627 Instanzen.
    • Validierung: 593 Bilder mit 81.048 Instanzen.
    • Test-dev: 2.792 Bilder mit 353.346 Instanzen.
    • Test-challenge: 6.053 Bilder mit 1.090.637 Instanzen.

Link to this sectionDatensatzstruktur#

DOTA weist eine strukturierte Anordnung auf, die auf OBB-Objekterkennungs-Herausforderungen zugeschnitten ist:

  • Bilder: Eine riesige Sammlung hochauflösender Luftbilder, die verschiedene Gelände und Strukturen erfassen.
  • Oriented Bounding Boxes: Annotationen in Form von gedrehten Rechtecken, die Objekte unabhängig von ihrer Ausrichtung umschließen, ideal für die Erfassung von Objekten wie Flugzeugen, Schiffen und Gebäuden.

Link to this sectionAnwendungen#

DOTA dient als Benchmark für das Training und die Bewertung von Modellen, die speziell für die Luftbildanalyse entwickelt wurden. Durch die Einbindung von OBB-Annotationen stellt es eine einzigartige Herausforderung dar und ermöglicht die Entwicklung spezialisierter Objekterkennungs-Modelle, die den Nuancen von Luftbildern gerecht werden. Der Datensatz ist besonders wertvoll für Anwendungen in der Fernerkundung, Überwachung und Umweltbeobachtung.

Link to this sectionDatensatz-YAML#

Eine Datensatz-YAML-Datei (Yet Another Markup Language) spezifiziert Bild-/Label-Roots, Klassennamen und andere wichtige Metadaten. Ultralytics pflegt offizielle YAML-Dateien für die zwei am häufigsten verwendeten Releases:

Verwende die YAML, die zu dem von dir heruntergeladenen Release passt, oder erstelle eine benutzerdefinierte YAML, wenn du mit DOTA-v2 oder einem anderen Derivat arbeitest.

DOTAv1.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# DOTA 1.0 dataset https://captain-whu.github.io/DOTA/index.html for object detection in aerial images by Wuhan University
# Documentation: https://docs.ultralytics.com/datasets/obb/dota-v2/
# Example usage: yolo train model=yolov8n-obb.pt data=DOTAv1.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── DOTAv1 ← downloads here (2 GB)

# 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: DOTAv1 # dataset root dir
train: images/train # train images (relative to 'path') 1411 images
val: images/val # val images (relative to 'path') 458 images
test: images/test # test images (optional) 937 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/DOTAv1.zip

Link to this sectionDOTA-Bilder aufteilen#

Die Rohbilder sind routinemäßig über 10.000 Pixel breit, daher ist ein Tiling erforderlich, bevor die Daten in YOLO eingespeist werden. Verwende das untenstehende Hilfsprogramm, um das Quellmaterial in überlappende 1024 × 1024-Zuschnitte bei mehreren Skalierungen zu zerlegen, während die Annotationen synchron gehalten werden.

Bilder aufteilen
from ultralytics.data.split_dota import split_test, split_trainval

# Split train and val set, with labels.
split_trainval(
    data_root="path/to/DOTAv1.0/",
    save_dir="path/to/DOTAv1.0-split/",
    rates=[0.5, 1.0, 1.5],  # multiscale
    gap=500,
)
# Split test set, without labels.
split_test(
    data_root="path/to/DOTAv1.0/",
    save_dir="path/to/DOTAv1.0-split/",
    rates=[0.5, 1.0, 1.5],  # multiscale
    gap=500,
)
Tipp

Halte das Ausgabeverzeichnis im Standard-YOLO-Layout organisiert (images/train, labels/train usw.), damit du direkt aus der Datensatz-YAML darauf verweisen kannst.

Link to this sectionVerwendung#

Um ein Modell mit dem DOTA v1-Datensatz zu trainieren, kannst du die folgenden Code-Snippets verwenden. Schlage immer in der Dokumentation deines Modells nach, um eine vollständige Liste der verfügbaren Argumente zu erhalten. Falls du zuerst mit einer kleineren Teilmenge experimentieren möchtest, ziehe den DOTA8-Datensatz in Betracht, der für schnelle Tests nur 8 Bilder enthält.

Warnung

Bitte beachte, dass alle Bilder und zugehörigen Annotationen im DOTAv1-Datensatz für akademische Zwecke verwendet werden dürfen, eine kommerzielle Nutzung jedoch untersagt ist. Wir wissen dein Verständnis und deinen Respekt für die Wünsche der Datensatzersteller sehr zu schätzen!

Trainingsbeispiel
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)

Link to this sectionBeispieldaten und Annotationen#

Ein Blick auf den Datensatz verdeutlicht seine Tiefe:

DOTA-Datensatz mit orientierten Begrenzungsrahmen-Annotationen

  • DOTA-Beispiele: Dieser Schnappschuss unterstreicht die Komplexität von Luftaufnahmen und die Bedeutung von orientierten Bounding Box-Annotationen, die Objekte in ihrer natürlichen Ausrichtung erfassen.

Der Reichtum des Datensatzes bietet unschätzbare Einblicke in Objekterkennungs-Herausforderungen, die exklusiv für Luftbilder gelten. Der DOTA-v2.0-Datensatz ist aufgrund seiner umfassenden Annotationen und vielfältigen Objektkategorien besonders beliebt für Fernerkundungs- und Luftüberwachungsprojekte geworden.

Link to this sectionZitate und Danksagungen#

Wenn du DOTA für deine Arbeit verwendest, zitiere bitte die relevanten Forschungsarbeiten:

Zitat
@article{9560031,
  author={Ding, Jian and Xue, Nan and Xia, Gui-Song and Bai, Xiang and Yang, Wen and Yang, Michael and Belongie, Serge and Luo, Jiebo and Datcu, Mihai and Pelillo, Marcello and Zhang, Liangpei},
  journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
  title={Object Detection in Aerial Images: A Large-Scale Benchmark and Challenges},
  year={2021},
  volume={},
  number={},
  pages={1-1},
  doi={10.1109/TPAMI.2021.3117983}
}

Ein besonderer Dank gilt dem Team hinter den DOTA-Datensätzen für ihre lobenswerten Bemühungen bei der Kuratierung dieses Datensatzes. Für ein umfassendes Verständnis des Datensatzes und seiner Nuancen besuche bitte die offizielle DOTA-Website.

Link to this sectionFAQ#

Link to this sectionWas ist der DOTA-Datensatz und warum ist er für die Objekterkennung in Luftbildern wichtig?#

Der DOTA-Datensatz ist ein spezialisierter Datensatz mit Schwerpunkt auf Objekterkennung in Luftbildern. Er bietet Oriented Bounding Boxes (OBB) und stellt annotierte Bilder aus verschiedenen Luftbildszenen bereit. DOTAs Vielfalt in Objektorientierung, Skalierung und Form über seine 1,7 Mio. Annotationen und 18 Kategorien hinweg macht ihn ideal für die Entwicklung und Evaluierung von Modellen, die auf die Luftbildanalyse zugeschnitten sind, wie sie z. B. in der Überwachung, Umweltbeobachtung und Katastrophenhilfe eingesetzt werden.

Link to this sectionWie geht der DOTA-Datensatz mit unterschiedlichen Skalierungen und Ausrichtungen in Bildern um?#

DOTA verwendet Oriented Bounding Boxes (OBB) zur Annotation, die durch gedrehte Rechtecke dargestellt werden, welche Objekte unabhängig von ihrer Ausrichtung umschließen. Diese Methode stellt sicher, dass Objekte, ob klein oder in verschiedenen Winkeln, genau erfasst werden. Die multiskaligen Bilder des Datensatzes, die von 800 × 800 bis zu 20.000 × 20.000 Pixeln reichen, erlauben zudem die effektive Erkennung sowohl kleiner als auch großer Objekte. Dieser Ansatz ist besonders wertvoll für Luftbilder, bei denen Objekte in verschiedenen Winkeln und Skalierungen erscheinen.

Link to this sectionWie kann ich ein Modell mit dem DOTA-Datensatz trainieren?#

Um ein Modell auf dem DOTA-Datensatz zu trainieren, kannst du das folgende Beispiel mit Ultralytics YOLO verwenden:

Trainingsbeispiel
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)

Weitere Details dazu, wie du die DOTA-Bilder aufteilst und vorverarbeitest, findest du im Abschnitt DOTA-Bilder aufteilen.

Link to this sectionWas sind die Unterschiede zwischen DOTA-v1.0, DOTA-v1.5 und DOTA-v2.0?#

  • DOTA-v1.0: Enthält 15 gängige Kategorien in 2.806 Bildern mit 188.282 Instanzen. Der Datensatz ist in Trainings-, Validierungs- und Testsets unterteilt.
  • DOTA-v1.5: Baut auf DOTA-v1.0 auf, indem es sehr kleine Instanzen (weniger als 10 Pixel) annotiert und eine neue Kategorie, "container crane", hinzufügt, was insgesamt 403.318 Instanzen ergibt.
  • DOTA-v2.0: Erweitert das Ganze mit Annotationen aus Google Earth und GF-2 Satelliten und bietet 11.268 Bilder mit 1.793.658 Instanzen. Es enthält neue Kategorien wie "airport" und "helipad".

Für einen detaillierten Vergleich und weitere Spezifikationen schau dir den Abschnitt zu den Datensatz-Versionen an.

Link to this sectionWie kann ich hochauflösende DOTA-Bilder für das Training vorbereiten?#

DOTA-Bilder, die sehr groß sein können, werden für ein handhabbares Training in kleinere Auflösungen aufgeteilt. Hier ist ein Python-Snippet zum Aufteilen der Bilder:

Beispiel
from ultralytics.data.split_dota import split_test, split_trainval

# split train and val set, with labels.
split_trainval(
    data_root="path/to/DOTAv1.0/",
    save_dir="path/to/DOTAv1.0-split/",
    rates=[0.5, 1.0, 1.5],  # multiscale
    gap=500,
)
# split test set, without labels.
split_test(
    data_root="path/to/DOTAv1.0/",
    save_dir="path/to/DOTAv1.0-split/",
    rates=[0.5, 1.0, 1.5],  # multiscale
    gap=500,
)

Dieser Prozess erleichtert eine effizientere Trainings- und Modellleistung. Für detaillierte Anweisungen besuche den Abschnitt DOTA-Bilder aufteilen.

Kommentare