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 dataset exhaustivo. Esta guía explica los diversos formatos de datasets OBB compatibles con los modelos Ultralytics YOLO, ofreciendo información sobre su estructura, aplicación y métodos para la conversión de formatos.
Formatos de conjuntos de datos OBB admitidos
Formato YOLO OBB
El formato YOLO OBB designa los cuadros delimitadores por sus cuatro puntos de esquina con coordenadas normalizadas entre 0 y 1. Sigue este formato:
class_index x1 y1 x2 y2 x3 y3 x4 y4
Internamente, YOLO procesa las pérdidas y las salidas en el xywhr
formato, que representa el cuadro delimitadorel punto central (xy), el ancho, la altura y la rotación de.
Un ejemplo de *.txt
archivo de etiqueta para la imagen de arriba, que contiene un objeto de clase 0
en formato OBB, podría verse así:
0 0.780811 0.743961 0.782371 0.74686 0.777691 0.752174 0.776131 0.749758
Formato YAML del conjunto de datos
El framework de Ultralytics utiliza un formato de archivo YAML para definir la configuración del dataset y del modelo para el entrenamiento de Modelos OBB. Aquí tienes un ejemplo del formato YAML utilizado para definir un dataset OBB:
ultralytics/cfg/datasets/dota8.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# DOTA8 dataset 8 images from split DOTAv1 dataset 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 (1MB)
# 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.zip
Uso
Para entrenar un modelo utilizando estos formatos OBB:
Ejemplo
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
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 y mejoras adicionales con respecto a DOTA-v1 para mejorar 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, enfatiza 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 pequeño subconjunto 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
ultralytics
repositorio.
Incorporando tu propio conjunto de datos OBB
Para aquellos que deseen introducir sus propios conjuntos de datos con cuadros delimitadores orientados, asegúrese de que sean compatibles con el "formato YOLO OBB" mencionado anteriormente. Convierta sus anotaciones a este formato requerido y detalle las rutas, las clases y los nombres de las clases en un archivo de configuración YAML correspondiente.
Convertir Formatos de Etiqueta
Formato del conjunto de datos DOTA a formato YOLO OBB
La transición de etiquetas del formato de conjunto de datos DOTA al formato YOLO OBB se puede lograr con este script:
Ejemplo
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 el formato DOTA, lo que garantiza la alineación con el formato OBB de Ultralytics YOLO.
Es imprescindible validar la compatibilidad del conjunto de datos con su modelo y adherirse a las convenciones de formato necesarias. Los conjuntos de datos estructurados adecuadamente son fundamentales para entrenar modelos eficientes de detección de objetos con cajas delimitadoras orientadas.
Preguntas frecuentes
¿Qué son los cuadros delimitadores orientados (OBB) y cómo se utilizan en los modelos Ultralytics YOLO?
Las cajas delimitadoras orientadas (OBB) son un tipo de anotación de caja delimitadora donde la caja se puede rotar para alinearse más estrechamente con el objeto que se detecta, en lugar de estar simplemente alineada con los ejes. Esto es particularmente útil en imágenes aéreas o de satélite donde los objetos podrían no estar alineados con los ejes de la imagen. En los modelos Ultralytics YOLO, las OBB se representan por sus cuatro puntos de esquina en el formato YOLO OBB. Esto permite una detección de objetos más precisa, ya que las cajas delimitadoras pueden rotar para ajustarse mejor a los objetos.
¿Cómo convierto las etiquetas de mi conjunto de datos DOTA existente al formato YOLO OBB para usar con Ultralytics YOLO11?
Puede convertir las etiquetas del conjunto de datos DOTA al formato YOLO OBB utilizando el convert_dota_to_yolo_obb
función de Ultralytics. Esta conversión garantiza la compatibilidad con los modelos YOLO de Ultralytics, lo que le permite aprovechar las capacidades de OBB para una detección de objetos mejorada. Aquí tiene 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á sus anotaciones DOTA a un formato compatible con YOLO.
¿Cómo entreno un modelo YOLO11 con cajas delimitadoras orientadas (OBB) en mi conjunto de datos?
Entrenar un modelo YOLO11 con OBB implica asegurarse de que su conjunto de datos esté en el formato YOLO OBB y luego usar la API de Ultralytics para entrenar el modelo. Aquí tienes un ejemplo tanto en python como en la CLI:
Ejemplo
from ultralytics import YOLO
# Create a new YOLO11n-OBB model from scratch
model = YOLO("yolo11n-obb.yaml")
# Train the model on the custom dataset
results = model.train(data="your_dataset.yaml", epochs=100, imgsz=640)
# Train a new YOLO11n-OBB model on the custom dataset
yolo obb train data=your_dataset.yaml model=yolo11n-obb.yaml epochs=100 imgsz=640
Esto asegura que tu modelo aproveche las anotaciones OBB detalladas para una mejor precisión en la detección.
¿Qué conjuntos de datos se admiten actualmente para el entrenamiento de OBB en los modelos YOLO de Ultralytics?
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 y mejoras adicionales con respecto a DOTA-v1 para mejorar las tareas 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).
Estos conjuntos de datos están diseñados para escenarios en los que las OBB ofrecen una ventaja significativa, como el análisis de imágenes aéreas y de satélite.
¿Puedo usar mi propio conjunto de datos con cuadros delimitadores orientados para el entrenamiento de YOLO11 y, de ser así, cómo?
Sí, puedes utilizar tu propio conjunto de datos con bounding boxes orientados para el entrenamiento de YOLO11. Asegúrate de que las anotaciones de tu conjunto de datos se conviertan al formato YOLO OBB, que implica definir los bounding boxes por 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 la creación y configuración de tus conjuntos de datos, consulta la sección Conjuntos de datos admitidos.