Ir al contenido

Conjunto de datos DOTA con OBB

DOTA es un conjunto de datos especializado en la detección de objetos en imágenes aéreas. Procedente de la serie de conjuntos de datos DOTA, ofrece imágenes anotadas que capturan una gran variedad de escenas aéreas con cajas delimitadoras orientadas (OBB).

Visual de las clases de DOTA

Características principales

  • Recogida de diversos sensores y plataformas, con tamaños de imagen que van de 800 × 800 a 20.000 × 20.000 píxeles.
  • Incluye más de 1,7 millones de cuadros orientados en 18 categorías.
  • Abarca la detección multiescala de objetos.
  • Las instancias son anotadas por expertos utilizando cuadriláteros arbitrarios (8 d.o.f.), capturando objetos de diferentes escalas, orientaciones y formas.

Versiones de los conjuntos de datos

DOTA-v1.0

  • Contiene 15 categorías comunes.
  • Comprende 2.806 imágenes con 188.282 instancias.
  • Proporciones de división: 1/2 para el entrenamiento, 1/6 para la validación y 1/3 para la prueba.

DOTA-v1.5

  • Incorpora las mismas imágenes que DOTA-v1.0.
  • También se anotan los casos muy pequeños (menos de 10 píxeles).
  • Adición de una nueva categoría: "grúa de contenedores".
  • Un total de 403.318 casos.
  • Publicado para el DOAI Challenge 2019 sobre detección de objetos en imágenes aéreas.

DOTA-v2.0

  • Recopilaciones de Google Earth, GF-2 Satellite y otras imágenes aéreas.
  • Contiene 18 categorías comunes.
  • Comprende 11.268 imágenes con la friolera de 1.793.658 instancias.
  • Se han introducido nuevas categorías: "aeropuerto" y "helipuerto".
  • Divisiones de imágenes:
    • Entrenamiento: 1.830 imágenes con 268.627 instancias.
    • Validación: 593 imágenes con 81.048 instancias.
    • Test-dev: 2.792 imágenes con 353.346 instancias.
    • Prueba: 6.053 imágenes con 1.090.637 instancias.

Estructura del conjunto de datos

DOTA presenta un diseño estructurado adaptado a los retos de detección de objetos OBB:

  • Imágenes: Una amplia colección de imágenes aéreas de alta resolución que captan diversos terrenos y estructuras.
  • Cuadros delimitadores orientados: Anotaciones en forma de rectángulos girados que encapsulan objetos independientemente de su orientación, ideales para capturar objetos como aviones, barcos y edificios.

Aplicaciones

DOTA sirve de referencia para entrenar y evaluar modelos específicamente adaptados al análisis de imágenes aéreas. Con la inclusión de anotaciones OBB, supone un reto único que permite el desarrollo de modelos de detección de objetos especializados que se adaptan a los matices de las imágenes aéreas.

Conjunto de datos YAML

Normalmente, los conjuntos de datos incorporan un archivo YAML (Yet Another Markup Language) que detalla la configuración del conjunto de datos. Para DOTA v1 y DOTA v1.5, Ultralytics proporciona DOTAv1.yaml y DOTAv1.5.yaml archivos. Para más información sobre estos archivos y sobre DOTA v2, consulte el repositorio y la documentación oficiales de 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

Dividir imágenes DOTA

Para entrenar el conjunto de datos DOTA, dividimos las imágenes DOTA originales de alta resolución en imágenes con una resolución de 1024x1024 de forma multiescala.

Dividir imágenes

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

Utilización

Para entrenar un modelo en el conjunto de datos DOTA v1, puede utilizar los siguientes fragmentos de código. Consulte siempre la documentación de su modelo para obtener una lista completa de los argumentos disponibles.

Advertencia

Tenga en cuenta que todas las imágenes y anotaciones asociadas del conjunto de datos DOTAv1 pueden utilizarse con fines académicos, pero está prohibido su uso comercial. Le agradecemos su comprensión y respeto por los deseos de los creadores del conjunto de datos.

Ejemplo de tren

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

Ejemplos de datos y anotaciones

Un vistazo al conjunto de datos ilustra su profundidad:

Imagen de muestra del conjunto de datos

  • Ejemplos DOTA: Esta instantánea subraya la complejidad de las escenas aéreas y la importancia de las anotaciones Oriented Bounding Box, que capturan los objetos en su orientación natural.

La riqueza del conjunto de datos ofrece valiosas perspectivas sobre los retos de detección de objetos exclusivos de las imágenes aéreas.

Citas y agradecimientos

Para quienes utilicen DOTA en sus esfuerzos, es pertinente citar los trabajos de investigación pertinentes:

@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 especial de agradecimiento al equipo que está detrás de los conjuntos de datos DOTA por su encomiable esfuerzo en la conservación de este conjunto de datos. Para conocer a fondo el conjunto de datos y sus matices, visite el sitio web oficial de DOTA.

PREGUNTAS FRECUENTES

¿Qué es el conjunto de datos DOTA y por qué es importante para la detección de objetos en imágenes aéreas?

El conjunto de datos DOTA está especializado en la detección de objetos en imágenes aéreas. Incluye cajas delimitadoras orientadas (OBB), que proporcionan imágenes anotadas de diversas escenas aéreas. La diversidad de orientaciones, escalas y formas de los objetos de DOTA en sus 1,7 millones de anotaciones y 18 categorías lo hace ideal para desarrollar y evaluar modelos adaptados al análisis de imágenes aéreas, como los utilizados en vigilancia, control medioambiental y gestión de catástrofes.

¿Cómo gestiona el conjunto de datos DOTA las diferentes escalas y orientaciones de las imágenes?

DOTA utiliza Oriented Bounding Boxes (OBB) para la anotación, que se representan mediante rectángulos girados que encapsulan objetos independientemente de su orientación. Este método garantiza que los objetos, ya sean pequeños o se encuentren en ángulos diferentes, se capturen con precisión. Las imágenes multiescala del conjunto de datos, que van de 800 × 800 a 20.000 × 20.000 píxeles, permiten además detectar eficazmente objetos tanto pequeños como grandes.

¿Cómo puedo entrenar un modelo utilizando el conjunto de datos DOTA?

Para entrenar un modelo en el conjunto de datos DOTA, puede utilizar el siguiente ejemplo con Ultralytics YOLO :

Ejemplo de tren

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

Para más detalles sobre cómo dividir y preprocesar las imágenes DOTA, consulte la sección dividir imágenes DOTA.

¿Cuáles son las diferencias entre DOTA-v1.0, DOTA-v1.5 y DOTA-v2.0?

  • DOTA-v1.0: incluye 15 categorías comunes en 2.806 imágenes con 188.282 casos. El conjunto de datos se divide en conjuntos de entrenamiento, validación y prueba.
  • DOTA-v1.5: Se basa en DOTA-v1.0 anotando instancias muy pequeñas (menos de 10 píxeles) y añadiendo una nueva categoría, "grúa de contenedores", con un total de 403.318 instancias.
  • DOTA-v2.0: Se amplía con anotaciones de Google Earth y GF-2 Satellite, con 11.268 imágenes y 1.793.658 instancias. Incluye nuevas categorías como "aeropuerto" y "helipuerto".

Para una comparación detallada y más detalles, consulte la sección de versiones de conjuntos de datos.

¿Cómo puedo preparar imágenes DOTA de alta resolución para la formación?

Las imágenes DOTA, que pueden ser muy grandes, se dividen en resoluciones más pequeñas para un entrenamiento manejable. Aquí tienes un fragmento de Python para dividir imágenes:

Ejemplo

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

Este proceso facilita una mayor eficacia del entrenamiento y un mejor rendimiento del modelo. Para obtener instrucciones detalladas, visite la sección de imágenes DOTA divididas.

Creado hace 1 año ✏️ Actualizado hace 2 meses

Comentarios