Vai al contenuto

Dataset DOTA con OBB

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

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 Bounding Box orientati in 18 categorie.
  • Comprende il rilevamento di oggetti su più scale.
  • 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 la formazione, 1/6 per la convalida 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.
  • Pubblicato 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.
  • Sono state introdotte nuove categorie: "aeroporto" e "eliporto".
  • Immagine divisa:
    • Formazione: 1.830 immagini con 268.627 istanze.
    • Convalida: 593 immagini con 81.048 istanze.
    • Test-dev: 2.792 immagini con 353.346 istanze.
    • Prova-sfida: 6.053 immagini con 1.090.637 istanze.

Struttura del set di dati

Il DOTA presenta un layout strutturato 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 racchiudono gli oggetti indipendentemente dal loro orientamento, ideali per catturare oggetti come aerei, navi ed edifici.

Applicazioni

DOTA è un punto di riferimento per la formazione e la valutazione di modelli specifici per l'analisi delle immagini aeree. Grazie all'inclusione delle annotazioni OBB, rappresenta una sfida unica, che consente di sviluppare modelli di rilevamento degli oggetti specializzati che si adattano 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 mette a disposizione DOTAv1.yaml e DOTAv1.5.yaml file. Per ulteriori dettagli su questi e su DOTA v2, consulta 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 diviso 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, puoi utilizzare i seguenti frammenti di codice. Fai sempre riferimento alla documentazione del tuo modello per un elenco completo degli argomenti disponibili.

Avvertenze

Ti ricordiamo che tutte le immagini e le annotazioni associate al dataset DOTAv1 possono essere utilizzate per scopi accademici, ma è vietato l'uso commerciale. La tua comprensione e il tuo rispetto per i desideri dei creatori del dataset sono molto apprezzati!

Esempio di treno

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

Dati di esempio e annotazioni

Dando un'occhiata al set di dati si capisce la sua 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 sui problemi di rilevamento degli oggetti che si presentano esclusivamente nelle immagini aeree.

Citazioni e ringraziamenti

Per coloro che sfruttano il DOTA nelle loro imprese, è 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 il loro encomiabile impegno nella cura di questo set di dati. Per una comprensione esaustiva del dataset e delle sue sfumature, visita il sito ufficiale di DOTA.

DOMANDE FREQUENTI

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) e fornisce 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 per la sorveglianza, il monitoraggio ambientale e la gestione dei disastri.

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

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

Come posso addestrare un modello utilizzando il dataset DOTA?

Per addestrare un modello sul dataset DOTA, puoi utilizzare il seguente esempio con Ultralytics YOLO :

Esempio di treno

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

Per maggiori dettagli su come dividere e pre-elaborare le immagini DOTA, consulta 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 set di dati è suddiviso in set di formazione, convalida 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, consulta 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, vengono suddivise 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 della formazione e le prestazioni del modello. Per istruzioni dettagliate, visita la sezione immagini DOTA divise.



Creato 2023-11-12, Aggiornato 2024-07-04
Autori: glenn-jocher (10), Laughing-q (1)

Commenti