Vai al contenuto

Set di dati DOTA con OBB

DOTA è un set di dati specializzato nel rilevamento di oggetti in immagini aeree. Nato dalla serie di set di dati DOTA, offre immagini annotate che catturano una vasta gamma di scene aeree con OBB (Oriented Bounding Boxes).

Visuale delle classi di DOTA

Caratteristiche principali

  • Raccolta da vari sensori e piattaforme, con dimensioni delle immagini che vanno da 800 × 800 a 20.000 × 20.000 pixel.
  • Presenta più di 1,7 milioni di caselle di delimitazione orientate in 18 categorie.
  • Comprende il rilevamento di oggetti in scala multipla.
  • Le istanze sono annotate da esperti utilizzando quadrilateri arbitrari (8 d.o.f.), catturando oggetti di diverse scale, orientamenti e forme.

Versioni del set di dati

DOTA-v1.0

  • Contiene 15 categorie comuni.
  • Comprende 2.806 immagini con 188.282 istanze.
  • Rapporti di divisione: 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.
  • Vengono annotate anche le istanze molto piccole (meno di 10 pixel).
  • Aggiunta di una nuova categoria: "gru per container".
  • Un totale di 403.318 istanze.
  • Rilasciato per la DOAI Challenge 2019 sul rilevamento di oggetti in immagini aeree.

DOTA-v2.0

  • Collezioni da Google Earth, GF-2 Satellite e altre immagini aeree.
  • Contiene 18 categorie comuni.
  • Comprende 11.268 immagini con ben 1.793.658 istanze.
  • Introduzione di nuove categorie: "aeroporto" e "eliporto".
  • Immagine divisa:
    • Addestramento: 1.830 immagini con 268.627 istanze.
    • Convalida: 593 immagini con 81.048 istanze.
    • Test-dev: 2.792 immagini con 353.346 istanze.
    • Sfida-test: 6.053 immagini con 1.090.637 istanze.

Struttura del set di dati

Il DOTA presenta un layout strutturato e adatto alle sfide di rilevamento degli oggetti OBB:

  • Immagini: Una vasta collezione di immagini aeree ad alta risoluzione che catturano diversi terreni e strutture.
  • Bounding Box orientati: Annotazioni sotto forma di rettangoli ruotati che incapsulano gli oggetti indipendentemente dal loro orientamento, ideali per catturare oggetti come aerei, navi ed edifici.

Applicazioni

DOTA è un punto di riferimento per l'addestramento e la valutazione di modelli specifici per l'analisi delle immagini aeree. Con l'inclusione delle annotazioni OBB, rappresenta una sfida unica, che consente di sviluppare modelli di rilevamento degli oggetti specializzati, adatti alle sfumature delle immagini aeree.

Set di dati YAML

In genere, i set di dati incorporano un file YAML (Yet Another Markup Language) che descrive la configurazione del set di dati. Per DOTA v1 e DOTA v1.5, Ultralytics fornisce DOTAv1.yaml e DOTAv1.5.yaml file. Per ulteriori dettagli su questi e su DOTA v2, consultare il repository ufficiale e la documentazione di DOTA.

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

Immagini di DOTA divise

Per addestrare il dataset DOTA, abbiamo suddiviso le immagini originali di DOTA ad alta risoluzione in immagini con risoluzione 1024x1024 in modo multiscalare.

Immagini divise

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

Utilizzo

Per addestrare un modello sul dataset DOTA v1, si possono utilizzare i seguenti frammenti di codice. Fare sempre riferimento alla documentazione del modello per un elenco completo degli argomenti disponibili.

Avvertenze

Si prega di notare che tutte le immagini e le annotazioni associate nel dataset DOTAv1 possono essere utilizzate per scopi accademici, ma è vietato l'uso commerciale. La vostra comprensione e il vostro rispetto per i desideri dei creatori del dataset sono molto apprezzati!

Esempio di treno

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

Dati e annotazioni di esempio

Uno sguardo al set di dati ne illustra la profondità:

Immagine campione del set di dati

  • Esempi di 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 set di dati offre preziose informazioni sulle sfide di rilevamento degli oggetti, esclusive delle immagini aeree.

Citazioni e ringraziamenti

Per coloro che sfruttano il DOTA nei loro sforzi, è opportuno citare i documenti 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}
}

Una nota speciale di gratitudine al team che si occupa dei dataset DOTA per l'encomiabile impegno profuso nel curare questo set di dati. Per una comprensione esaustiva del dataset e delle sue sfumature, visitate il sito ufficiale di DOTA.

FAQ

Che cos'è il dataset DOTA e perché è importante per il rilevamento di oggetti nelle immagini aeree?

Il dataset DOTA è un dataset specializzato nel rilevamento di oggetti in immagini aeree. È caratterizzato da Oriented Bounding Boxes (OBB), che forniscono immagini annotate di diverse scene aeree. La diversità nell'orientamento, nella scala e nella forma degli oggetti di DOTA, con 1,7 milioni di annotazioni e 18 categorie, lo rende ideale per lo sviluppo e la valutazione di modelli personalizzati per l'analisi delle immagini aeree, come quelli utilizzati nella sorveglianza, nel monitoraggio ambientale e nella gestione dei disastri.

Come gestisce il dataset DOTA le diverse scale e orientamenti delle immagini?

DOTA utilizza per l'annotazione le Oriented Bounding Boxes (OBB), rappresentate da rettangoli ruotati che racchiudono gli oggetti indipendentemente dal loro orientamento. Questo metodo garantisce che gli oggetti, siano essi piccoli o con diverse angolazioni, vengano catturati con precisione. Le immagini multiscala del set di dati, che vanno da 800 × 800 a 20.000 × 20.000 pixel, consentono inoltre di rilevare efficacemente oggetti sia piccoli che grandi.

Come posso addestrare un modello utilizzando il dataset DOTA?

Per addestrare un modello sul dataset DOTA, si può usare il seguente esempio con Ultralytics YOLO :

Esempio di treno

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

Per maggiori dettagli su come dividere e preelaborare le immagini DOTA, consultare la sezione Dividere le immagini DOTA.

Quali sono le differenze tra DOTA-v1.0, DOTA-v1.5 e DOTA-v2.0?

  • DOTA-v1.0: include 15 categorie comuni su 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, "gru per container", per un totale di 403.318 istanze.
  • DOTA-v2.0: Si espande ulteriormente con le annotazioni di Google Earth e GF-2 Satellite, con 11.268 immagini e 1.793.658 istanze. Include nuove categorie come "aeroporto" e "eliporto".

Per un confronto dettagliato e ulteriori specifiche, consultare la sezione Versioni del set di dati.

Come posso preparare immagini DOTA ad alta risoluzione per la formazione?

Le immagini di DOTA, che possono essere molto grandi, sono divise in risoluzioni più piccole per una formazione gestibile. Ecco uno snippet di Python per dividere le immagini:

Esempio

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 consente di migliorare l'efficienza dell'addestramento e le prestazioni del modello. Per istruzioni dettagliate, visitare la sezione immagini DOTA divise.

📅C reato 1 anno fa ✏️ Aggiornato 2 mesi fa

Commenti