Overslaan naar inhoud

DOTA Dataset met OBB

DOTA is een gespecialiseerde dataset die de nadruk legt op objectdetectie in luchtfoto's. Deze dataset komt voort uit de DOTA-serie en biedt geannoteerde beelden van een divers scala aan luchtscĆØnes met Oriented Bounding Boxes (OBB).

DOTA klassen visueel

Belangrijkste kenmerken

  • Verzameling van verschillende sensoren en platforms, met beeldformaten van 800 Ɨ 800 tot 20.000 Ɨ 20.000 pixels.
  • Bevat meer dan 1,7 miljoen georiĆ«nteerde begrenzingskaders in 18 categorieĆ«n.
  • Omvat objectdetectie op meerdere schalen.
  • Instanties worden geannoteerd door experts met behulp van willekeurige (8 d.o.f.) vierhoeken, waarbij objecten van verschillende schalen, oriĆ«ntaties en vormen worden vastgelegd.

Versies van datasets

DOTA-v1.0

  • Bevat 15 algemene categorieĆ«n.
  • Bestaat uit 2.806 afbeeldingen met 188.282 instanties.
  • Verhoudingen splitsen: 1/2 voor training, 1/6 voor validatie en 1/3 voor testen.

DOTA-v1.5

  • Bevat dezelfde afbeeldingen als DOTA-v1.0.
  • Zeer kleine instanties (minder dan 10 pixels) worden ook geannoteerd.
  • Toevoeging van een nieuwe categorie: "containerkraan".
  • In totaal 403.318 gevallen.
  • Vrijgegeven voor de DOAI Challenge 2019 over objectdetectie in luchtfoto's.

DOTA-v2.0

  • Verzamelingen van Google Earth, GF-2 Satelliet en andere luchtfoto's.
  • Bevat 18 algemene categorieĆ«n.
  • Bestaat uit 11.268 afbeeldingen met maar liefst 1.793.658 instanties.
  • Nieuwe categorieĆ«n geĆÆntroduceerd: "vliegveld" en "helipad".
  • Beeldsplitsingen:
    • Training: 1.830 afbeeldingen met 268.627 instanties.
    • Validatie: 593 afbeeldingen met 81.048 instanties.
    • Test-dev: 2.792 afbeeldingen met 353.346 instanties.
    • Test-uitdaging: 6.053 afbeeldingen met 1.090.637 instanties.

Structuur dataset

DOTA vertoont een gestructureerde lay-out die is afgestemd op de uitdagingen van OBB-objectdetectie:

  • Afbeeldingen: Een enorme verzameling luchtfoto's met een hoge resolutie die verschillende terreinen en structuren vastleggen.
  • GeoriĆ«nteerde begrenzende vakken: Annotaties in de vorm van geroteerde rechthoeken die objecten insluiten ongeacht hun oriĆ«ntatie, ideaal voor het vastleggen van objecten zoals vliegtuigen, schepen en gebouwen.

Toepassingen

DOTA dient als benchmark voor het trainen en evalueren van modellen die specifiek zijn afgestemd op beeldanalyse vanuit de lucht. Met de opname van OBB annotaties biedt het een unieke uitdaging, die de ontwikkeling mogelijk maakt van gespecialiseerde objectdetectiemodellen die inspelen op de nuances van luchtfoto's.

Dataset YAML

Meestal bevatten datasets een YAML-bestand (Yet Another Markup Language) met de configuratie van de dataset. Voor DOTA v1 en DOTA v1.5 biedt Ultralytics DOTAv1.yaml en DOTAv1.5.yaml bestanden. Voor meer informatie over deze bestanden en DOTA v2 kun je de officiƫle repository en documentatie van DOTA raadplegen.

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

Gesplitste DOTA beelden

Om de DOTA dataset te trainen, splitsen we originele DOTA afbeeldingen met een hoge resolutie op in afbeeldingen met een resolutie van 1024x1024 op een multischaal manier.

Gesplitste afbeeldingen

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

Gebruik

Om een model te trainen op de DOTA v1 dataset, kun je de volgende stukjes code gebruiken. Raadpleeg altijd de documentatie van je model voor een uitgebreide lijst van beschikbare argumenten.

Waarschuwing

Let op: alle afbeeldingen en bijbehorende annotaties in de DOTAv1 dataset kunnen worden gebruikt voor academische doeleinden, maar commercieel gebruik is verboden. Je begrip en respect voor de wensen van de makers van de dataset worden zeer op prijs gesteld!

Voorbeeld trein

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

Voorbeeldgegevens en annotaties

Een blik op de dataset illustreert de diepte ervan:

Voorbeeldafbeelding dataset

  • DOTA voorbeelden: Deze momentopname onderstreept de complexiteit van luchtscĆØnes en het belang van Oriented Bounding Box annotaties, die objecten in hun natuurlijke oriĆ«ntatie vastleggen.

De rijkdom van de dataset biedt inzichten van onschatbare waarde in uitdagingen op het gebied van objectdetectie die exclusief zijn voor luchtfoto's.

Citaten en erkenningen

Voor degenen die DOTA gebruiken bij hun inspanningen, is het relevant om de relevante onderzoekspapers te citeren:

@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}
}

Een speciaal woord van dank aan het team achter de DOTA datasets voor hun prijzenswaardige inzet bij het samenstellen van deze dataset. Ga voor een volledig begrip van de dataset en de nuances naar de officiƫle DOTA website.

FAQ

Wat is de DOTA dataset en waarom is deze belangrijk voor objectdetectie in luchtfoto's?

De DOTA dataset is een gespecialiseerde dataset gericht op objectdetectie in luchtopnames. De set bevat Oriented Bounding Boxes (OBB), met geannoteerde beelden van verschillende luchtopnames. DOTA's diversiteit in oriƫntatie, schaal en vorm van objecten in de 1,7 miljoen annotaties en 18 categorieƫn maakt het ideaal voor het ontwikkelen en evalueren van modellen op maat voor de analyse van luchtfoto's, zoals die worden gebruikt bij bewaking, milieubewaking en rampenbeheer.

Hoe gaat de DOTA dataset om met verschillende schalen en oriƫntaties in afbeeldingen?

DOTA gebruikt Oriented Bounding Boxes (OBB) voor annotatie, die worden voorgesteld door gedraaide rechthoeken die objecten insluiten, ongeacht hun oriĆ«ntatie. Deze methode zorgt ervoor dat objecten, of ze nu klein zijn of onder verschillende hoeken staan, nauwkeurig worden vastgelegd. De multischaal afbeeldingen van de dataset, variĆ«rend van 800 Ɨ 800 tot 20.000 Ɨ 20.000 pixels, maken het verder mogelijk om zowel kleine als grote objecten effectief te detecteren.

Hoe kan ik een model trainen met de DOTA dataset?

Om een model te trainen op de DOTA dataset, kun je het volgende voorbeeld gebruiken met Ultralytics YOLO :

Voorbeeld trein

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

Raadpleeg de sectie DOTA-afbeeldingen splitsen voor meer informatie over het splitsen en voorbewerken van de DOTA-afbeeldingen.

Wat zijn de verschillen tussen DOTA-v1.0, DOTA-v1.5 en DOTA-v2.0?

  • DOTA-v1.0: Bevat 15 algemene categorieĆ«n over 2.806 afbeeldingen met 188.282 instanties. De dataset is verdeeld in een trainings-, validatie- en testset.

  • DOTA-v1.5: Bouwt voort op DOTA-v1.0 door het annoteren van zeer kleine instanties (minder dan 10 pixels) en het toevoegen van een nieuwe categorie, "containerkraan", met een totaal van 403.318 instanties.

  • DOTA-v2.0: Expands further with annotations from Google Earth and GF-2 Satellite, featuring 11,268 images and 1,793,658 instances. It includes new categories like "airport" and "helipad."

Kijk voor een gedetailleerde vergelijking en aanvullende bijzonderheden in het gedeelte over datasetversies.

Hoe kan ik DOTA-afbeeldingen met een hoge resolutie voorbereiden voor training?

DOTA afbeeldingen, die erg groot kunnen zijn, worden gesplitst in kleinere resoluties voor hanteerbare training. Hier is een Python fragment om afbeeldingen op te splitsen:

Voorbeeld

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

Dit proces zorgt voor een betere trainingsefficiƫntie en modelprestaties. Ga voor gedetailleerde instructies naar de sectie gesplitste DOTA afbeeldingen.



Aangemaakt 2023-11-12, Bijgewerkt 2024-07-04
Auteurs: glenn-jocher (10), Laughing-q (1)

Reacties