Descripción general de conjuntos de datos de cuadros delimitadores orientados (OBB)#
Entrenar un modelo de detección de objetos preciso con cuadros delimitadores orientados (OBB) requiere un conjunto de datos exhaustivo. Esta guía explica los diversos formatos de conjuntos de datos OBB compatibles con los modelos Ultralytics YOLO, ofreciendo información sobre su estructura, aplicación y métodos para conversiones de formatos.
Formatos de conjuntos de datos OBB admitidos#
Formato YOLO OBB#
El formato YOLO OBB designa los cuadros delimitadores mediante sus cuatro puntos de esquina con coordenadas 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, el cual representa el punto central (xy), el ancho, la altura y la rotación del bounding box.

Un ejemplo de archivo de etiquetas *.txt para la imagen anterior, que contiene un objeto de clase 0 en formato OBB, podría tener el siguiente aspecto:
0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758Formato YAML del dataset#
El framework de Ultralytics utiliza un formato de archivo YAML para definir la configuración del conjunto de datos y del modelo para entrenar modelos OBB. Aquí hay un ejemplo del formato YAML utilizado 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 lista una ruta de imagen por línea (las rutas que empiezan por ./ se resuelven de manera relativa al archivo *.txt). Un archivo *.txt es útil para entrenar en un subconjunto de un directorio, omitir imágenes sin etiquetar o combinar imágenes de múltiples fuentes en una sola 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 usando estos formatos OBB:
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)Conjuntos de datos compatibles#
Actualmente, se admiten los siguientes conjuntos de datos con cuadros delimitadores orientados:
- DOTA-v1: La primera versión del conjunto de datos DOTA, que proporciona un conjunto completo de imágenes aéreas con cuadros delimitadores orientados para la detección de objetos.
- DOTA-v1.5: Una versión intermedia del conjunto de datos DOTA, que ofrece anotaciones adicionales y mejoras con respecto a DOTA-v1 para tareas mejoradas 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, hace hincapié en la detección desde perspectivas aéreas y contiene cuadros delimitadores orientados con 1,7 millones de instancias y 11.268 imágenes.
- DOTA8: Un subconjunto pequeño de 8 imágenes del conjunto de datos DOTA completo, adecuado para probar flujos de trabajo y comprobaciones de integración continua (CI) del entrenamiento OBB en el repositorio
ultralytics. - DOTA8 Multispectral: Un subconjunto TIFF de 8 imágenes y 10 canales para probar el entrenamiento de 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 proporciona un buen equilibrio entre tamaño y diversidad para probar modelos OBB.
Incorpora tu propio conjunto de datos OBB#
Para aquellos que buscan introducir sus propios conjuntos de datos con cuadros delimitadores orientados, asegúrate de la compatibilidad con el "formato YOLO OBB" mencionado anteriormente. Convierte tus anotaciones a este formato requerido y detalla las rutas, las clases y los nombres de las clases en un archivo de configuración YAML correspondiente.
Convertir formatos de etiquetas#
Formato del conjunto de datos DOTA al formato YOLO OBB#
La transición de etiquetas desde el formato del conjunto de datos DOTA al formato YOLO OBB se puede lograr 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 fundamental para los conjuntos de datos en formato DOTA, garantizando la alineación con el formato OBB de Ultralytics YOLO.
Es imperativo validar la compatibilidad del conjunto de datos con tu modelo y cumplir con las convenciones de formato necesarias. Los conjuntos de datos estructurados adecuadamente son fundamentales para entrenar modelos eficientes de detección de objetos con cuadros delimitadores orientados.
FAQ#
Los cuadros delimitadores orientados (OBB) son un tipo de anotación de cuadro delimitador en la que el cuadro se puede rotar para alinearse más estrechamente con el objeto que se está detectando, en lugar de estar simplemente alineado con los ejes. Esto es 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, los OBB se representan mediante sus cuatro puntos de esquina en el formato YOLO OBB. Esto permite una detección de objetos más precisa, ya que los cuadros delimitadores pueden rotar para ajustarse mejor a los objetos.
Puedes convertir las etiquetas del conjunto de datos DOTA al formato YOLO OBB utilizando la función
convert_dota_to_yolo_obbde Ultralytics. Esta conversión garantiza la compatibilidad con los modelos Ultralytics YOLO, permitiéndote aprovechar las capacidades OBB para una detección de objetos mejorada. 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 reformateará tus anotaciones DOTA en un formato compatible con YOLO.
Entrenar un modelo YOLO26 con OBB implica asegurarse de que tu conjunto de datos esté en formato YOLO OBB y luego utilizar la API de Ultralytics para entrenar el modelo. Aquí tienes un ejemplo tanto en Python como en CLI:
Ejemplofrom ultralytics import YOLO # Create a new YOLO26n-OBB model from scratch model = YOLO("yolo26n-obb.yaml") # Train the model on the custom dataset results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)Esto garantiza que tu modelo aproveche las anotaciones OBB detalladas para mejorar la precisión de detección.
Actualmente, Ultralytics admite los siguientes conjuntos de datos para el entrenamiento de OBB:
- DOTA-v1: La primera versión del conjunto de datos DOTA, que proporciona un conjunto completo de imágenes aéreas con cuadros delimitadores orientados para la detección de objetos.
- DOTA-v1.5: Una versión intermedia del conjunto de datos DOTA, que ofrece anotaciones adicionales y mejoras con respecto a DOTA-v1 para tareas mejoradas de detección de objetos.
- DOTA-v2: Este conjunto de datos incluye 1,7 millones de instancias con cuadros delimitadores orientados y 11.268 imágenes, centrándose principalmente en la detección de objetos aéreos.
- DOTA8: Un 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: Un subconjunto de 128 imágenes con todas las imágenes en la carpeta train (utilizada tanto para train como para val), que ofrece más diversidad que DOTA8 a la vez que sigue siendo manejable para el desarrollo inicial y la experimentación de modelos OBB.
Estos conjuntos de datos están adaptados para escenarios donde los 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 cuadros delimitadores orientados para el entrenamiento de YOLO26. Asegúrate de que las anotaciones de tu conjunto de datos estén convertidas al formato YOLO OBB, lo que implica definir los cuadros delimitadores mediante sus cuatro puntos de esquina. A continuación, puedes crear un archivo de configuración YAML que especifique las rutas del conjunto de datos, las clases y otros detalles necesarios. Para obtener más información sobre cómo crear y configurar tus conjuntos de datos, consulta la sección de Conjuntos de datos compatibles.



