Passer au contenu

Ensemble de données DOTA avec OBB

DOTA est un ensemble de données spécialisé, mettant l'accent sur la détection d'objets dans les images aériennes. Issu de la série d'ensembles de données DOTA, il propose des images annotées capturant un éventail diversifié de scènes aériennes avec des boîtes englobantes orientées (OBB).

Visuel des classes DOTA

Principales caractéristiques



Regarder : Comment entraîner Ultralytics YOLO11 sur l'ensemble de données DOTA pour les boîtes englobantes orientées dans Google Colab

  • Collecte à partir de divers capteurs et plateformes, avec des tailles d'image allant de 800 × 800 à 20 000 × 20 000 pixels.
  • Comprend plus de 1,7 million de boîtes englobantes orientées dans 18 catégories.
  • Englobe la détection d'objets multi-échelle.
  • Les instances sont annotées par des experts à l'aide de quadrilatères arbitraires (8 d.o.f.), capturant des objets de différentes échelles, orientations et formes.

Versions de l'ensemble de données

DOTA-v1.0

  • Contient 15 catégories courantes.
  • Comprend 2 806 images avec 188 282 instances.
  • Ratios de division : 1/2 pour l'entraînement, 1/6 pour la validation et 1/3 pour les tests.

DOTA-v1.5

DOTA-v2.0

  • Collectes à partir de Google Earth, du satellite GF-2 et d'autres images aériennes.
  • Contient 18 catégories courantes.
  • Comprend 11 268 images avec un nombre impressionnant de 1 793 658 instances.
  • Nouvelles catégories introduites : "aéroport" et "héliport".
  • Divisions d'image :
    • Entraînement : 1 830 images avec 268 627 instances.
    • Validation : 593 images avec 81 048 instances.
    • Test-dev : 2 792 images avec 353 346 instances.
    • Test-challenge : 6 053 images avec 1 090 637 instances.

Structure du jeu de données

DOTA présente une disposition structurée, conçue pour les défis de la détection d'objets OBB :

  • Images : Une vaste collection d'images aériennes haute résolution capturant divers terrains et structures.
  • Boîtes englobantes orientées : Annotations sous forme de rectangles pivotés encapsulant des objets quelle que soit leur orientation, idéales pour capturer des objets tels que des avions, des navires et des bâtiments.

Applications

DOTA sert de référence pour la formation et l'évaluation de modèles spécialement conçus pour l'analyse d'images aériennes. Avec l'inclusion d'annotations OBB, il offre un défi unique, permettant le développement de modèles de détection d'objets spécialisés qui répondent aux nuances de l'imagerie aérienne. L'ensemble de données est particulièrement utile pour les applications de télédétection, de surveillance et de contrôle environnemental.

YAML du jeu de données

Généralement, les ensembles de données intègrent un fichier YAML (Yet Another Markup Language) détaillant la configuration de l'ensemble de données. Pour DOTA v1 et DOTA v1.5, Ultralytics fournit DOTAv1.yaml et DOTAv1.5.yaml fichiers. Pour plus de détails à ce sujet ainsi que sur DOTA v2, veuillez consulter le référentiel et la documentation officiels de DOTA.

DOTAv1.yaml

# 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 (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: 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

Diviser les images DOTA

Pour entraîner l'ensemble de données DOTA, nous divisons les images DOTA originales à haute résolution en images de résolution 1024x1024 de manière multi-échelle. Cette étape de prétraitement est cruciale pour un entraînement efficace, car les images originales peuvent être extrêmement volumineuses.

Diviser les images

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

Utilisation

Pour entraîner un modèle sur le jeu de données DOTA v1, vous pouvez utiliser les extraits de code suivants. Consultez toujours la documentation de votre modèle pour obtenir une liste complète des arguments disponibles. Pour ceux qui souhaitent d'abord expérimenter avec un sous-ensemble plus petit, envisagez d'utiliser le jeu de données DOTA8, qui ne contient que 8 images pour des tests rapides.

Avertissement

Veuillez noter que toutes les images et les annotations associées dans l'ensemble de données DOTAv1 peuvent être utilisées à des fins académiques, mais l'utilisation commerciale est interdite. Votre compréhension et votre respect des souhaits des créateurs de l'ensemble de données sont grandement appréciés !

Exemple d'entraînement

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

Exemple de données et d'annotations

Un aperçu du dataset illustre sa profondeur :

Exemple d'image de l'ensemble de données

  • Exemples DOTA : Cet instantané souligne la complexité des scènes aériennes et l'importance des annotations de boîte englobante orientée, capturant les objets dans leur orientation naturelle.

La richesse de l'ensemble de données offre des informations précieuses sur les défis de la détection d'objets propres à l'imagerie aérienne. L'ensemble de données DOTA-v2.0 est devenu particulièrement populaire pour les projets de télédétection et de surveillance aérienne en raison de ses annotations complètes et de ses diverses catégories d'objets.

Citations et remerciements

Pour ceux qui exploitent DOTA dans leurs efforts, il est pertinent de citer les articles de recherche pertinents :

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

Une note spéciale de gratitude à l'équipe derrière les ensembles de données DOTA pour leurs efforts louables dans la conservation de cet ensemble de données. Pour une compréhension exhaustive de l'ensemble de données et de ses nuances, veuillez visiter le site Web officiel de DOTA.

FAQ

Qu'est-ce que le jeu de données DOTA et pourquoi est-il important pour la détection d'objets dans les images aériennes ?

L'ensemble de données DOTA est un ensemble de données spécialisé axé sur la détection d'objets dans les images aériennes. Il présente des boîtes englobantes orientées (OBB), fournissant des images annotées provenant de diverses scènes aériennes. La diversité de DOTA en termes d'orientation, d'échelle et de forme des objets à travers ses 1,7 million d'annotations et 18 catégories le rend idéal pour développer et évaluer des modèles adaptés à l'analyse d'imagerie aérienne, tels que ceux utilisés dans la surveillance, la surveillance environnementale et la gestion des catastrophes.

Comment l'ensemble de données DOTA gère-t-il les différentes échelles et orientations dans les images ?

DOTA utilise des boîtes englobantes orientées (OBB) pour l'annotation, qui sont représentées par des rectangles pivotés encapsulant les objets quelle que soit leur orientation. Cette méthode garantit que les objets, qu'ils soient petits ou à différents angles, sont capturés avec précision. Les images multi-échelles de l'ensemble de données, allant de 800 × 800 à 20 000 × 20 000 pixels, permettent en outre de détecter efficacement les objets petits et grands. Cette approche est particulièrement utile pour l'imagerie aérienne où les objets apparaissent sous différents angles et à différentes échelles.

Comment puis-je entraîner un modèle en utilisant l'ensemble de données DOTA ?

Pour entraîner un modèle sur le jeu de données DOTA, vous pouvez utiliser l'exemple suivant avec Ultralytics YOLO :

Exemple d'entraînement

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

Pour plus de détails sur la façon de diviser et de prétraiter les images DOTA, consultez la section sur la division des images DOTA.

Quelles sont les différences entre DOTA-v1.0, DOTA-v1.5 et DOTA-v2.0 ?

  • DOTA-v1.0 : Comprend 15 catégories communes dans 2 806 images avec 188 282 instances. L'ensemble de données est divisé en ensembles d'entraînement, de validation et de test.
  • DOTA-v1.5 : S'appuie sur DOTA-v1.0 en annotant de très petites instances (moins de 10 pixels) et en ajoutant une nouvelle catégorie, « grue à conteneurs », totalisant 403 318 instances.
  • DOTA-v2.0 : S'étend davantage avec des annotations de Google Earth et du satellite GF-2, avec 11 268 images et 1 793 658 instances. Il comprend de nouvelles catégories telles que « aéroport » et « héliport ».

Pour une comparaison détaillée et des informations supplémentaires, consultez la section sur les versions de l'ensemble de données.

Comment préparer des images DOTA haute résolution pour l'entraînement ?

Les images DOTA, qui peuvent être très grandes, sont divisées en résolutions plus petites pour faciliter l'entraînement. Voici un extrait de code python pour diviser les images :

Exemple

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

Ce processus facilite une meilleure efficacité de l'entraînement et les performances du modèle. Pour des instructions détaillées, consultez la section sur la division des images DOTA.



📅 Créé il y a 1 an ✏️ Mis à jour il y a 3 mois

Commentaires