Descripción general de los conjuntos de datos de cajas delimitadoras orientadas (OBB)#
Entrenar un modelo preciso de detección de objetos con cajas delimitadoras orientadas (OBB) requiere un conjunto de datos completo. Esta guía explica los distintos formatos de conjuntos de datos OBB compatibles con los modelos Ultralytics YOLO y ofrece información sobre su estructura, aplicación y métodos de conversión entre formatos.
Formatos de conjuntos de datos OBB compatibles#
Formato YOLO OBB#
El formato YOLO OBB define las cajas delimitadoras mediante las coordenadas de sus cuatro vértices, normalizadas entre 0 y 1. Sigue este formato:
class_index x1 y1 x2 y2 x3 y3 x4 y4Internamente, YOLO procesa las pérdidas y las salidas en el formato xywhr, que representa el punto central (xy), el ancho, la altura y la rotación de la caja delimitadora.

Un archivo de etiquetas *.txt de ejemplo para la imagen anterior, que contiene un objeto de la clase 0 en formato OBB, podría tener este aspecto:
0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758Formato YAML del conjunto de datos#
El marco de trabajo de Ultralytics utiliza el formato de archivo YAML para definir el conjunto de datos y la configuración del modelo para entrenar modelos OBB. Este es un ejemplo del formato YAML para definir un conjunto de datos OBB:
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# DOTA8 dataset (8 images from the DOTAv1 split) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/obb/dota8
# Example usage: yolo train model=yolov8n-obb.pt data=dota8.yaml
# parent
# ├── ultralytics
# └── datasets
# └── dota8 ← downloads here (1 MB)
# 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: dota8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 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/dota8.zipCada uno de train, val y test acepta un directorio, una lista de directorios o un archivo *.txt que enumera una ruta de imagen por línea (las rutas que empiezan por ./ se resuelven en relación con el archivo *.txt). Un archivo *.txt resulta útil para entrenar con un subconjunto de un directorio, omitir imágenes sin etiquetar o combinar imágenes de varias fuentes en una misma partición.
path: datasets/dota8 # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
0: planeUso#
Para entrenar un modelo con estos formatos OBB:
from ultralytics import YOLO
# Cargar un modelo YOLO26n-OBB preentrenado
model = YOLO("yolo26n-obb.pt")
# Entrenar el modelo con el conjunto de datos DOTAv1
results = model.train(data="DOTAv1.yaml", epochs=100, imgsz=1024)Conjuntos de datos compatibles#
Actualmente, se admiten los siguientes conjuntos de datos con cajas delimitadoras orientadas. La mayoría también está disponible en Ultralytics Platform, donde puedes explorar las imágenes y anotaciones, consultar las estadísticas de los conjuntos de datos y clonarlos para entrenar en la nube.
- DOTA-v1: La primera versión del conjunto de datos DOTA, que ofrece un amplio conjunto de imágenes aéreas con cajas delimitadoras orientadas para la detección de objetos.
- DOTA-v1.5: Una versión intermedia del conjunto de datos DOTA, con anotaciones adicionales y mejoras respecto a DOTA-v1 para optimizar las tareas de detección de objetos.
- DOTA-v2: DOTA (un conjunto de datos a gran escala para la detección de objetos en imágenes aéreas), versión 2, se centra en la detección desde perspectivas aéreas y contiene cajas delimitadoras orientadas con 1,7 millones de instancias y 11.268 imágenes.
- DOTA8: Un pequeño subconjunto de 8 imágenes del conjunto de datos DOTA completo, adecuado para probar flujos de trabajo y realizar comprobaciones de integración continua (CI) del entrenamiento OBB en el repositorio
ultralytics. - DOTA8 Multispectral: Un subconjunto de 8 imágenes TIFF de 10 canales para probar el entrenamiento OBB multiespectral en Ultralytics Platform.
- DOTA128: Un subconjunto de 128 imágenes del conjunto de datos DOTA, con todas las imágenes en la carpeta train (utilizada tanto para train como para val), que ofrece un buen equilibrio entre tamaño y diversidad para probar modelos OBB.
Incorporar tu propio conjunto de datos OBB#
Si quieres incorporar tus propios conjuntos de datos con cajas delimitadoras orientadas, asegúrate de que sean compatibles con el «formato YOLO OBB» mencionado anteriormente. Convierte tus anotaciones a este formato obligatorio y especifica las rutas, las clases y los nombres de las clases en el archivo de configuración YAML correspondiente.
Convertir formatos de etiquetas#
Convertir el formato del conjunto de datos DOTA al formato YOLO OBB#
Puedes convertir las etiquetas del formato del conjunto de datos DOTA al formato YOLO OBB con este script:
from ultralytics.data.converter import convert_dota_to_yolo_obb
convert_dota_to_yolo_obb("path/to/DOTA")Este mecanismo de conversión es esencial para los conjuntos de datos en formato DOTA, ya que garantiza su compatibilidad con el formato OBB de Ultralytics YOLO.
Es fundamental validar la compatibilidad del conjunto de datos con tu modelo y respetar las convenciones de formato necesarias. Una estructura adecuada de los conjuntos de datos es clave para entrenar modelos eficientes de detección de objetos con cajas delimitadoras orientadas.
Preguntas frecuentes#
Las cajas delimitadoras orientadas (OBB) son un tipo de anotación de caja delimitadora que puede girarse para ajustarse mejor al objeto detectado, en lugar de mantenerse alineada con los ejes. Esto resulta especialmente útil en imágenes aéreas o de satélite, donde los objetos pueden no estar alineados con los ejes de la imagen. En los modelos Ultralytics YOLO, las OBB se representan mediante las coordenadas de sus cuatro vértices en el formato YOLO OBB. Esto permite detectar objetos con mayor precisión, ya que las cajas delimitadoras pueden girarse para ajustarse mejor a ellos.
Puedes convertir las etiquetas del conjunto de datos DOTA al formato YOLO OBB usando la función
convert_dota_to_yolo_obbde Ultralytics. Esta conversión garantiza la compatibilidad con los modelos Ultralytics YOLO y te permite aprovechar las capacidades OBB para mejorar la detección de objetos. Aquí tienes un ejemplo rápido:from ultralytics.data.converter import convert_dota_to_yolo_obb convert_dota_to_yolo_obb("path/to/DOTA")Este script reformatea las anotaciones de DOTA a un formato compatible con YOLO.
Para entrenar un modelo YOLO26 con OBB, asegúrate de que tu conjunto de datos esté en formato YOLO OBB y, a continuación, usa la API de Ultralytics para entrenar el modelo. Aquí tienes un ejemplo tanto en Python como en CLI:
Ejemplofrom ultralytics import YOLO # Crea un modelo YOLO26n-OBB nuevo desde cero model = YOLO("yolo26n-obb.yaml") # Entrena el modelo con el conjunto de datos personalizado results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)Así te aseguras de que el modelo aproveche las anotaciones OBB detalladas para mejorar la precisión de la detección.
Actualmente, Ultralytics admite los siguientes conjuntos de datos para el entrenamiento OBB:
- DOTA-v1: La primera versión del conjunto de datos DOTA, que ofrece un amplio conjunto de imágenes aéreas con cajas delimitadoras orientadas para la detección de objetos.
- DOTA-v1.5: Una versión intermedia del conjunto de datos DOTA, con anotaciones adicionales y mejoras respecto a DOTA-v1 para optimizar las tareas de detección de objetos.
- DOTA-v2: este conjunto de datos incluye 1,7 millones de instancias con cajas delimitadoras orientadas y 11 268 imágenes, centradas principalmente en la detección de objetos desde el aire.
- DOTA8: subconjunto más pequeño, de 8 imágenes, del conjunto de datos DOTA, utilizado para pruebas y comprobaciones de integración continua (CI).
- DOTA128: subconjunto de 128 imágenes, todas en la carpeta train (utilizadas tanto para train como para val), que ofrece más diversidad que DOTA8 y sigue siendo manejable para el desarrollo y la experimentación iniciales con modelos OBB.
Estos conjuntos de datos están diseñados para situaciones en las que las OBB ofrecen una ventaja significativa, como el análisis de imágenes aéreas y satelitales.
Sí, puedes usar tu propio conjunto de datos con cajas delimitadoras orientadas para entrenar YOLO26. Asegúrate de convertir las anotaciones del conjunto de datos al formato YOLO OBB, que define las cajas delimitadoras mediante sus cuatro vértices. Después, puedes crear un archivo de configuración YAML con las rutas del conjunto de datos, las clases y otros datos necesarios. Para obtener más información sobre cómo crear y configurar tus conjuntos de datos, consulta la sección Conjuntos de datos compatibles.



