Dataset DOTA con OBB
DOTA è un dataset specializzato, incentrato sul rilevamento di oggetti in immagini aeree. Originario della serie di dataset DOTA, offre immagini annotate che catturano una vasta gamma di scene aeree con Oriented Bounding Boxes (OBB).

Caratteristiche principali
Watch: How to Train Ultralytics YOLO26 on the DOTA Dataset for Oriented Bounding Boxes in Google Colab
- Raccolta da vari sensori e piattaforme, con dimensioni delle immagini che variano da 800 × 800 a 20.000 × 20.000 pixel.
- Presenta oltre 1,7 milioni di oriented bounding boxes in 18 categorie.
- Include il rilevamento di oggetti multiscala grazie all'ampia distribuzione delle dimensioni degli oggetti per immagine.
- Le istanze sono annotate da esperti utilizzando quadrilateri arbitrari (8 d.o.f.), che catturano oggetti di diverse scale, orientamenti e forme.
Versioni del Dataset
DOTA-v1.0
- Contiene 15 categorie comuni.
- Comprende 2.806 immagini con 188.282 istanze.
- Rapporti di suddivisione: 1/2 per l'addestramento, 1/6 per la validazione e 1/3 per il test.
DOTA-v1.5
- Incorpora le stesse immagini di DOTA-v1.0.
- Sono annotate anche istanze molto piccole (meno di 10 pixel).
- Aggiunta di una nuova categoria: "container crane".
- Un totale di 403.318 istanze.
- Rilasciato per il DOAI Challenge 2019 on Object Detection in Aerial Images.
DOTA-v2.0
- Raccolte da Google Earth, GF-2 Satellite e altre immagini aeree.
- Contiene 18 categorie comuni.
- Comprende 11.268 immagini con ben 1.793.658 istanze.
- Nuove categorie introdotte: "airport" e "helipad".
- Suddivisione delle immagini:
- Addestramento: 1.830 immagini con 268.627 istanze.
- Validazione: 593 immagini con 81.048 istanze.
- Test-dev: 2.792 immagini con 353.346 istanze.
- Test-challenge: 6.053 immagini con 1.090.637 istanze.
Struttura del dataset
DOTA presenta una struttura organizzata su misura per le sfide di rilevamento oggetti OBB:
- Immagini: Una vasta collezione di immagini aeree ad alta risoluzione che catturano terreni e strutture diverse.
- Oriented Bounding Boxes: Annotazioni sotto forma di rettangoli ruotati che racchiudono gli oggetti a prescindere dal loro orientamento, ideali per catturare oggetti come aerei, navi ed edifici.
Applicazioni
DOTA funge da benchmark per l'addestramento e la valutazione di modelli specificamente adattati all'analisi di immagini aeree. Con l'inclusione delle annotazioni OBB, offre una sfida unica, consentendo lo sviluppo di modelli di rilevamento oggetti specializzati che si occupano delle sfumature delle immagini aeree. Il dataset è particolarmente prezioso per applicazioni nel telerilevamento, nella sorveglianza e nel monitoraggio ambientale.
YAML del dataset
Un file YAML (Yet Another Markup Language) del dataset specifica le directory radice di immagini/etichette, i nomi delle classi e altri metadati importanti. Ultralytics gestisce i file YAML ufficiali per le due release più comunemente utilizzate:
Usa il file YAML corrispondente alla release che hai scaricato, o creane uno personalizzato se stai lavorando con DOTA-v2 o un altro derivato.
# 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
# └── dota1 ← 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.zipSuddividi le immagini DOTA
Le immagini grezze superano abitualmente i 10.000 pixel per lato, quindi è necessario eseguire il tiling prima di fornire i dati a YOLO. Usa l'helper qui sotto per suddividere l'immagine sorgente in ritagli sovrapposti di 1024 × 1024 a scale multiple, mantenendo sincronizzate le annotazioni.
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,
)Mantieni la directory di output organizzata nel layout YOLO standard (images/train, labels/train, ecc.) in modo da poterla richiamare direttamente dal file YAML del dataset.
Utilizzo
Per addestrare un modello sul dataset DOTA v1, puoi utilizzare i seguenti snippet di codice. Fai sempre riferimento alla documentazione del tuo modello per un elenco completo degli argomenti disponibili. Per chi desidera sperimentare prima con un sottoinsieme più piccolo, prendi in considerazione l'utilizzo del dataset DOTA8, che contiene solo 8 immagini per test rapidi.
Ti ricordiamo che tutte le immagini e le relative annotazioni nel dataset DOTAv1 possono essere utilizzate per scopi accademici, ma l'uso commerciale è vietato. La tua comprensione e il rispetto per i desideri dei creatori del dataset sono molto apprezzati!
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)Dati ed annotazioni di esempio
Uno sguardo al dataset ne illustra la profondità:

- Esempi DOTA: Questa istantanea sottolinea la complessità delle scene aeree e l'importanza delle annotazioni Oriented Bounding Box, che catturano gli oggetti nel loro orientamento naturale.
La ricchezza del dataset offre approfondimenti inestimabili sulle sfide di rilevamento oggetti esclusive delle immagini aeree. Il dataset DOTA-v2.0 è diventato particolarmente popolare per progetti di telerilevamento e sorveglianza aerea grazie alle sue annotazioni complete e alle diverse categorie di oggetti.
Citazioni e ringraziamenti
Se utilizzi DOTA nel tuo lavoro, ti preghiamo di citare gli articoli di ricerca pertinenti:
@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}
}Un ringraziamento speciale al team dietro i dataset DOTA per il loro lodevole impegno nella cura di questo dataset. Per una comprensione esaustiva del dataset e delle sue sfumature, visita il sito ufficiale DOTA.
FAQ
Cos'è il dataset DOTA e perché è importante per il rilevamento di oggetti nelle immagini aeree?
Il dataset DOTA è un dataset specializzato incentrato sul rilevamento di oggetti nelle immagini aeree. Presenta Oriented Bounding Boxes (OBB), fornendo immagini annotate da diverse scene aeree. La diversità di DOTA nell'orientamento, nella scala e nella forma degli oggetti attraverso le sue 1,7 milioni di annotazioni e 18 categorie lo rende ideale per sviluppare e valutare modelli su misura per l'analisi di immagini aeree, come quelli utilizzati nella sorveglianza, nel monitoraggio ambientale e nella gestione dei disastri.
In che modo il dataset DOTA gestisce diverse scale e orientamenti nelle immagini?
DOTA utilizza Oriented Bounding Boxes (OBB) per l'annotazione, che sono rappresentati da rettangoli ruotati che racchiudono gli oggetti indipendentemente dal loro orientamento. Questo metodo garantisce che gli oggetti, sia piccoli che inclinati, vengano catturati accuratamente. Le immagini multiscala del dataset, che vanno da 800 × 800 a 20.000 × 20.000 pixel, consentono inoltre di rilevare efficacemente oggetti sia piccoli che grandi. Questo approccio è particolarmente prezioso per le immagini aeree, dove gli oggetti appaiono con angolazioni e scale variabili.
Come posso addestrare un modello utilizzando il dataset DOTA?
Per addestrare un modello sul dataset DOTA, puoi utilizzare il seguente esempio con Ultralytics YOLO:
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)Per ulteriori dettagli su come suddividere e pre-elaborare le immagini DOTA, consulta la sezione sulla suddivisione delle immagini DOTA.
Quali sono le differenze tra DOTA-v1.0, DOTA-v1.5 e DOTA-v2.0?
- DOTA-v1.0: Include 15 categorie comuni in 2.806 immagini con 188.282 istanze. Il dataset è suddiviso in set di addestramento, validazione e test.
- DOTA-v1.5: Si basa su DOTA-v1.0 annotando istanze molto piccole (meno di 10 pixel) e aggiungendo una nuova categoria, "container crane", per un totale di 403.318 istanze.
- DOTA-v2.0: Si espande ulteriormente con annotazioni da Google Earth e GF-2 Satellite, con 11.268 immagini e 1.793.658 istanze. Include nuove categorie come "airport" e "helipad".
Per un confronto dettagliato e specifiche aggiuntive, controlla la sezione sulle versioni del dataset.
Come posso preparare immagini DOTA ad alta risoluzione per l'addestramento?
Le immagini DOTA, che possono essere molto grandi, vengono suddivise in risoluzioni più piccole per un addestramento gestibile. Ecco uno snippet Python per suddividere le immagini:
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,
)Questo processo facilita una migliore efficienza di addestramento e prestazioni del modello. Per istruzioni dettagliate, visita la sezione sulla suddivisione delle immagini DOTA.