Zum Inhalt springen

DOTA-Datensatz mit OBB

DOTA ist ein spezieller Datensatz, der sich auf die Objekterkennung in Luftbildern konzentriert. Er stammt aus der DOTA-Datenreihe und bietet kommentierte Bilder, die eine Vielzahl von Luftbildern mit Oriented Bounding Boxes (OBB) erfassen.

DOTA Klassen visuell

Hauptmerkmale

  • Sammlung von verschiedenen Sensoren und Plattformen, mit Bildgrößen von 800 × 800 bis 20.000 × 20.000 Pixeln.
  • Mit mehr als 1,7 Millionen orientierten Bounding Boxes in 18 Kategorien.
  • Umfasst die Erkennung von Objekten auf mehreren Skalen.
  • Die Instanzen werden von Experten mit einem beliebigen Viereck (8 d.o.f.) beschriftet, das Objekte in verschiedenen Größenordnungen, Ausrichtungen und Formen erfasst.

Datensatz-Versionen

DOTA-v1.0

  • Enthält 15 allgemeine Kategorien.
  • Enthält 2.806 Bilder mit 188.282 Instanzen.
  • Aufteilungsverhältnisse: 1/2 für das Training, 1/6 für die Validierung und 1/3 für das Testen.

DOTA-v1.5

  • Beinhaltet die gleichen Bilder wie DOTA-v1.0.
  • Sehr kleine Instanzen (weniger als 10 Pixel) werden ebenfalls mit Anmerkungen versehen.
  • Hinzufügung einer neuen Kategorie: "Containerkran".
  • Insgesamt gibt es 403.318 Fälle.
  • Freigegeben für die DOAI Challenge 2019 zur Objekterkennung in Luftbildern.

DOTA-v2.0

  • Sammlungen von Google Earth, GF-2 Satellite und anderen Luftbildern.
  • Enthält 18 allgemeine Kategorien.
  • Sie umfasst 11.268 Bilder mit satten 1.793.658 Instanzen.
  • Neue Kategorien eingeführt: "Flughafen" und "Hubschrauberlandeplatz".
  • Bildspalten:
    • 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-Herausforderung: 6.053 Bilder mit 1.090.637 Instanzen.

Struktur des Datensatzes

DOTA verfügt über ein strukturiertes Layout, das auf die Herausforderungen der OBB-Objekterkennung zugeschnitten ist:

  • Bilder: Eine große Sammlung von hochauflösenden Luftbildern, die verschiedene Landschaften und Strukturen zeigen.
  • Orientierte Bounding Boxes: Anmerkungen in Form von gedrehten Rechtecken, die Objekte unabhängig von ihrer Ausrichtung umschließen, ideal zum Erfassen von Objekten wie Flugzeugen, Schiffen und Gebäuden.

Anwendungen

DOTA dient als Benchmark für das Training und die Bewertung von Modellen, die speziell für die Analyse von Luftbildern entwickelt wurden. Die Einbeziehung von OBB-Anmerkungen stellt eine einzigartige Herausforderung dar und ermöglicht die Entwicklung von speziellen Objekterkennungsmodellen, die auf die Besonderheiten von Luftbildern abgestimmt sind.

Datensatz YAML

Normalerweise enthalten Datensätze eine YAML-Datei (Yet Another Markup Language), in der die Konfiguration des Datensatzes beschrieben wird. Für DOTA v1 und DOTA v1.5 bietet Ultralytics DOTAv1.yaml und DOTAv1.5.yaml Dateien. Weitere Informationen zu diesen Dateien und zu DOTA v2 findest du im offiziellen DOTA-Repository und in der Dokumentation.

DOTAv1.yaml

# Ultralytics YOLO 🚀, AGPL-3.0 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
#     └── dota1  ← downloads here (2GB)

# 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: ../datasets/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

DOTA Bilder teilen

Um den DOTA-Datensatz zu trainieren, haben wir die hochaufgelösten Original-DOTA-Bilder in Bilder mit einer Auflösung von 1024x1024 aufgespalten und multiskaliert.

Bilder teilen

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

Verwendung

Um ein Modell mit dem DOTA v1-Datensatz zu trainieren, kannst du die folgenden Codeschnipsel verwenden. Eine ausführliche Liste der verfügbaren Argumente findest du immer in der Dokumentation deines Modells.

Warnung

Bitte beachte, dass alle Bilder und zugehörigen Anmerkungen im DOTAv1-Datensatz für akademische Zwecke verwendet werden können, eine kommerzielle Nutzung ist jedoch verboten. Wir schätzen dein Verständnis und deinen Respekt für die Wünsche der Ersteller des Datensatzes sehr!

Beispiel für einen Zug

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 obb train data=DOTAv1.yaml model=yolov8n-obb.pt epochs=100 imgsz=640

Beispieldaten und Anmerkungen

Ein Blick auf den Datensatz verdeutlicht seine Tiefe:

Datensatz Beispielbild

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

Der Reichtum des Datensatzes bietet unschätzbare Einblicke in die Herausforderungen der Objekterkennung, die nur bei Luftbildern auftreten.

Zitate und Danksagungen

Für diejenigen, die DOTA in ihren Bemühungen einsetzen, ist es wichtig, die relevanten Forschungsarbeiten zu zitieren:

@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 geht an das Team hinter den DOTA-Datensätzen für ihre lobenswerte Arbeit bei der Erstellung dieses Datensatzes. Für ein umfassendes Verständnis des Datensatzes und seiner Feinheiten besuche bitte die offizielle DOTA-Website.

FAQ

Was ist der DOTA-Datensatz und warum ist er für die Objekterkennung in Luftbildern wichtig?

Der DOTA-Datensatz ist ein spezieller Datensatz, der sich auf die Objekterkennung in Luftbildern konzentriert. Er besteht aus Oriented Bounding Boxes (OBB) und enthält kommentierte Bilder von verschiedenen Luftbildern. Die Vielfalt der 1,7 Millionen Anmerkungen und 18 Kategorien in Bezug auf Objektorientierung, Maßstab und Form machen DOTA zum idealen Instrument für die Entwicklung und Evaluierung von Modellen, die auf die Analyse von Luftbildern zugeschnitten sind, z. B. für die Überwachung, die Umweltüberwachung und das Katastrophenmanagement.

Wie geht der DOTA-Datensatz mit unterschiedlichen Maßstäben und Ausrichtungen in Bildern um?

DOTA verwendet Oriented Bounding Boxes (OBB) für die Beschriftung, die durch gedrehte Rechtecke dargestellt werden, die Objekte unabhängig von ihrer Ausrichtung einschließen. Diese Methode stellt sicher, dass Objekte, egal ob klein oder in verschiedenen Winkeln, genau erfasst werden. Die Bilder des Datensatzes reichen von 800 × 800 bis zu 20.000 × 20.000 Pixeln und ermöglichen es, sowohl kleine als auch große Objekte effektiv zu erkennen.

Wie kann ich ein Modell mit dem DOTA-Datensatz trainieren?

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

Beispiel für einen Zug

from ultralytics import YOLO

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

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

Wie du die DOTA-Bilder aufteilst und vorverarbeitest, erfährst du im Abschnitt DOTA-Bilder aufteilen.

Was sind die Unterschiede zwischen DOTA-v1.0, DOTA-v1.5 und DOTA-v2.0?

  • DOTA-v1.0: Enthält 15 allgemeine Kategorien in 2.806 Bildern mit 188.282 Instanzen. Der Datensatz ist in Trainings-, Validierungs- und Testdatensätze unterteilt.

  • DOTA-v1.5: Baut auf DOTA-v1.0 auf, indem es sehr kleine Instanzen (weniger als 10 Pixel) annotiert und eine neue Kategorie, "Containerkran", mit insgesamt 403.318 Instanzen hinzufügt.

  • DOTA-v2.0: Erweitert um Anmerkungen von Google Earth und GF-2 Satellite, mit 11.268 Bildern und 1.793.658 Instanzen. Sie enthält neue Kategorien wie "Flughafen" und "Hubschrauberlandeplatz".

Einen detaillierten Vergleich und weitere Einzelheiten findest du im Abschnitt über die Datensatzversionen.

Wie kann ich hochauflösende DOTA-Bilder für die Ausbildung vorbereiten?

DOTA-Bilder, die sehr groß sein können, werden in kleinere Auflösungen aufgeteilt, um sie für die Ausbildung handhabbar zu machen. Hier ist ein Python Snippet zum Aufteilen von Bildern:

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

Dieses Verfahren ermöglicht eine bessere Ausbildungseffizienz und Modellleistung. Detaillierte Anweisungen findest du im Abschnitt DOTA-Bilder teilen.



Erstellt am 2023-11-12, Aktualisiert am 2024-07-04
Autoren: glenn-jocher (10), Laughing-q (1)

Kommentare