Meet YOLO26: next-gen vision AI.

Link to this sectionDataset DOTA con OBB#

DOTA es un dataset especializado que se centra en la detección de objetos en imágenes aéreas. Originado a partir de la serie de datasets DOTA, ofrece imágenes anotadas que capturan una amplia variedad de escenas aéreas con Oriented Bounding Boxes (OBB).

Clases de objetos del dataset DOTA para detección aérea

Link to this sectionCaracterísticas clave#



Watch: How to Train Ultralytics YOLO26 on the DOTA Dataset for Oriented Bounding Boxes in Google Colab
  • Recopilado de varios sensores y plataformas, con tamaños de imagen que varían de 800 × 800 a 20.000 × 20.000 píxeles.
  • Presenta más de 1,7 millones de cajas delimitadoras orientadas en 18 categorías.
  • Abarca la detección de objetos multiescala gracias a la amplia distribución de tamaños de objetos por imagen.
  • Las instancias son anotadas por expertos utilizando cuadriláteros arbitrarios (8 grados de libertad), capturando objetos de diferentes escalas, orientaciones y formas.

Link to this sectionVersiones del dataset#

Link to this sectionDOTA-v1.0#

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

Link to this sectionDOTA-v1.5#

  • Incorpora las mismas imágenes que DOTA-v1.0.
  • También se anotan instancias muy pequeñas (menos de 10 píxeles).
  • Adición de una nueva categoría: "container crane" (grúa portacontenedores).
  • Un total de 403.318 instancias.
  • Lanzado para el DOAI Challenge 2019 on Object Detection in Aerial Images.

Link to this sectionDOTA-v2.0#

  • Recopilaciones de Google Earth, satélite GF-2 y otras imágenes aéreas.
  • Contiene 18 categorías comunes.
  • Comprende 11.268 imágenes con la impresionante cifra de 1.793.658 instancias.
  • Nuevas categorías introducidas: "airport" (aeropuerto) y "helipad" (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.
    • Test-challenge: 6.053 imágenes con 1.090.637 instancias.

Link to this sectionEstructura del dataset#

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

  • Imágenes: Una vasta colección de imágenes aéreas de alta resolución que capturan diversos terrenos y estructuras.
  • Oriented Bounding Boxes: Anotaciones en forma de rectángulos rotados que encierran objetos independientemente de su orientación, ideales para capturar objetos como aviones, barcos y edificios.

Link to this sectionAplicaciones#

DOTA sirve como punto 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, ofrece un desafío único, permitiendo el desarrollo de modelos de detección de objetos especializados que atienden a los matices de las imágenes aéreas. El dataset es particularmente valioso para aplicaciones en teledetección, vigilancia y monitoreo ambiental.

Link to this sectionYAML del dataset#

Un archivo YAML (Yet Another Markup Language) del dataset especifica las rutas raíz de imágenes/etiquetas, los nombres de las clases y otros metadatos importantes. Ultralytics mantiene archivos YAML oficiales para las dos versiones más utilizadas:

Usa el YAML que corresponda a la versión que descargaste, o crea un YAML personalizado si trabajas con DOTA-v2 u otro derivado.

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
#     └── DOTAv1 ← 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.zip

Link to this sectionDividir imágenes DOTA#

Las imágenes sin procesar superan rutinariamente los 10.000 píxeles por lado, por lo que es necesario realizar un mosaico antes de alimentar los datos a YOLO. Usa la herramienta a continuación para fragmentar la imagen original en recortes superpuestos de 1024 × 1024 a múltiples escalas, manteniendo las anotaciones sincronizadas.

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

Mantén el directorio de salida organizado en el formato estándar de YOLO (images/train, labels/train, etc.) para que puedas hacer referencia directamente desde el YAML del dataset.

Link to this sectionUso#

Para entrenar un modelo en el dataset DOTA v1, puedes utilizar los siguientes fragmentos de código. Consulta siempre la documentación de tu modelo para obtener una lista completa de los argumentos disponibles. Si prefieres experimentar primero con un subconjunto más pequeño, considera usar el dataset DOTA8, que contiene solo 8 imágenes para pruebas rápidas.

Advertencia

Ten en cuenta que todas las imágenes y las anotaciones asociadas en el dataset DOTAv1 pueden utilizarse con fines académicos, pero queda prohibido su uso comercial. ¡Agradecemos mucho tu comprensión y respeto por los deseos de los creadores del dataset!

Ejemplo de entrenamiento
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)

Link to this sectionEjemplos de datos y anotaciones#

Echar un vistazo al dataset ilustra su profundidad:

Dataset DOTA con anotaciones de cajas delimitadoras orientadas

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

La riqueza del dataset ofrece información valiosa sobre los desafíos de detección de objetos exclusivos de las imágenes aéreas. El dataset DOTA-v2.0 se ha vuelto especialmente popular para proyectos de teledetección y vigilancia aérea debido a sus anotaciones exhaustivas y diversas categorías de objetos.

Link to this sectionCitas y reconocimientos#

Si utilizas DOTA en tu trabajo, cita los artículos de investigación correspondientes:

Cita
@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 agradecimiento especial al equipo detrás de los datasets DOTA por su encomiable esfuerzo al curar este dataset. Para obtener una comprensión exhaustiva del dataset y sus matices, visita el sitio web oficial de DOTA.

Link to this sectionPreguntas frecuentes#

Link to this section¿Qué es el dataset DOTA y por qué es importante para la detección de objetos en imágenes aéreas?#

El dataset DOTA es un dataset especializado centrado en la detección de objetos en imágenes aéreas. Incluye Oriented Bounding Boxes (OBB), proporcionando imágenes anotadas de diversas escenas aéreas. La diversidad de DOTA en cuanto a orientación, escala y forma de los objetos 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, monitoreo ambiental y gestión de desastres.

Link to this section¿Cómo maneja el dataset DOTA diferentes escalas y orientaciones en las imágenes?#

DOTA utiliza Oriented Bounding Boxes (OBB) para la anotación, las cuales se representan mediante rectángulos rotados que encierran los objetos independientemente de su orientación. Este método garantiza que los objetos, ya sean pequeños o estén en diferentes ángulos, se capturen con precisión. Las imágenes multiescala del dataset, que van de 800 × 800 a 20.000 × 20.000 píxeles, permiten además detectar eficazmente objetos tanto pequeños como grandes. Este enfoque es particularmente valioso para imágenes aéreas donde los objetos aparecen en varios ángulos y escalas.

Link to this section¿Cómo puedo entrenar un modelo usando el dataset DOTA?#

Para entrenar un modelo en el dataset DOTA, puedes usar el siguiente ejemplo con Ultralytics YOLO:

Ejemplo de entrenamiento
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)

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

Link to this section¿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 instancias. El dataset se divide en conjuntos de entrenamiento, validación y prueba.
  • DOTA-v1.5: Se basa en DOTA-v1.0 mediante la anotación de instancias muy pequeñas (menos de 10 píxeles) y la adición de una nueva categoría, "container crane", sumando un total de 403.318 instancias.
  • DOTA-v2.0: Se expande aún más con anotaciones de Google Earth y satélite GF-2, con 11.268 imágenes y 1.793.658 instancias. Incluye nuevas categorías como "airport" y "helipad".

Para una comparación detallada y especificaciones adicionales, consulta la sección de versiones del dataset.

Link to this section¿Cómo puedo preparar imágenes DOTA de alta resolución para el entrenamiento?#

Las imágenes de DOTA, que pueden ser muy grandes, se dividen en resoluciones más pequeñas para un entrenamiento manejable. Aquí tienes un fragmento de código 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 eficiencia de entrenamiento y rendimiento del modelo. Para obtener instrucciones detalladas, visita la sección de dividir imágenes DOTA.

Comentarios