Meet YOLO26: next-gen vision AI.

Link to this sectionCajas delimitadoras orientadas Detección de objetos#

La detección de objetos orientados va un paso más allá de la detección de objetos estándar al introducir un ángulo adicional para localizar objetos con mayor precisión en una imagen.

El resultado de un detector de objetos orientado es un conjunto de cajas delimitadoras rotadas que encierran con precisión los objetos en la imagen, junto con etiquetas de clase y puntuaciones de confianza para cada caja. Las cajas delimitadoras orientadas son especialmente útiles cuando los objetos aparecen en varios ángulos, como en imágenes aéreas, donde las cajas delimitadoras tradicionales alineadas con los ejes pueden incluir fondo innecesario.

Consejo

Los modelos YOLO26 OBB utilizan el sufijo -obb, es decir, yolo26n-obb.pt, y están preentrenados en DOTAv1.



Watch: How to Detect & Track Objects with Ultralytics YOLO26 Oriented Bounding Boxes (OBB) | Ship Tracking 🚢

Link to this sectionMuestras visuales#

Detección de barcos usando OBBDetección de vehículos usando OBB
Detección de barcos usando OBBDetección de vehículos usando OBB

Link to this sectionModelos#

Los modelos OBB preentrenados de YOLO26 se muestran aquí, los cuales están preentrenados en el conjunto de datos DOTAv1.

Los modelos se descargan automáticamente desde la última versión de Ultralytics en el primer uso.

Modelotamaño
(píxeles)
mAPtest
50-95(e2e)
mAPtest
50(e2e)
Velocidad
CPU ONNX
(ms)
Velocidad
T4 TensorRT10
(ms)
params
(M)
FLOPs
(B)
YOLO26n-obb102452.478.997.7 ± 0.92.8 ± 0.02.514.0
YOLO26s-obb102454.880.9218.0 ± 1.44.9 ± 0.19.855.1
YOLO26m-obb102455.381.0579.2 ± 3.810.2 ± 0.321.2183.3
YOLO26l-obb102456.281.6735.6 ± 3.113.0 ± 0.225.6230.0
YOLO26x-obb102456.781.71485.7 ± 11.530.5 ± 0.957.6516.5
  • Los valores de mAPtest son para un modelo único multiescala en el conjunto de datos DOTAv1.
    Reproduce usando yolo val obb data=DOTAv1.yaml device=0 split=test y envía los resultados combinados a la evaluación de DOTA.
  • Velocidad promediada sobre imágenes de validación de DOTAv1 utilizando una instancia Amazon EC2 P4d.
    Reproduce usando yolo val obb data=DOTAv1.yaml batch=1 device=0|cpu
  • Los valores de Params y FLOPs son para el modelo fusionado tras model.fuse(), que combina las capas Conv y BatchNorm y, para modelos de extremo a extremo, elimina la cabeza de detección auxiliar de uno a muchos. Los puntos de control preentrenados conservan la arquitectura de entrenamiento completa y pueden mostrar conteos más altos.

Link to this sectionEntrenar#

Entrena YOLO26n-obb en el conjunto de datos DOTA8 durante 100 épocas con un tamaño de imagen de 640. Para obtener una lista completa de los argumentos disponibles, consulta la página de Configuración.

Nota

Un OBB y su rotación de 180° son idénticos, por lo que la rotación se define módulo 180° y la caja no tiene dirección. Internamente, el ángulo se almacena en radianes y se normaliza a [-π/4, 3π/4) ([-45°, 135°)), el ancho de la caja w se toma como el lado más largo y el ángulo se define como el ángulo en sentido horario desde el eje x positivo hasta la dirección de w. La forma [0°, 90°) es la convención regularizada al estilo DOTA y no se aplica durante el entrenamiento o la inferencia.

Ejemplo
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.yaml")  # build a new model from YAML
model = YOLO("yolo26n-obb.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo26n-obb.yaml").load("yolo26n-obb.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="dota8.yaml", epochs=100, imgsz=640)


Watch: How to Train Ultralytics YOLO-OBB (Oriented Bounding Boxes) Models on DOTA Dataset using Ultralytics Platform

Link to this sectionFormato de conjunto de datos#

El formato del conjunto de datos OBB se puede encontrar en detalle en la Guía de conjuntos de datos. El formato YOLO OBB designa las cajas delimitadoras por sus cuatro puntos de esquina con coordenadas normalizadas entre 0 y 1, siguiendo esta estructura. Ultralytics Platform admite anotaciones OBB con una herramienta de dibujo de cajas delimitadoras orientadas dedicada:

class_index x1 y1 x2 y2 x3 y3 x4 y4

Internamente, YOLO procesa las pérdidas y salidas en el formato xywhr, que representa el punto central (xy), el ancho, la altura y la rotación de la caja delimitadora.

Link to this sectionValidar#

Valida la precisión del modelo YOLO26n-obb entrenado en el conjunto de datos DOTA8. No se necesitan argumentos, ya que el model conserva sus datos (data) y argumentos de entrenamiento como atributos del modelo.

Ejemplo
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val(data="dota8.yaml")  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95(B)
metrics.box.map50  # map50(B)
metrics.box.map75  # map75(B)
metrics.box.maps  # a list containing mAP50-95(B) for each category
metrics.box.image_metrics  # per-image metrics dictionary with precision, recall, F1, TP, FP, and FN

Link to this sectionPredecir#

Usa un modelo YOLO26n-obb entrenado para realizar predicciones en imágenes.

Ejemplo
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Predict with the model
results = model("https://ultralytics.com/images/boats.jpg")  # predict on an image

# Access the results
for result in results:
    xywhr = result.obb.xywhr  # center-x, center-y, width, height, angle (radians)
    xyxyxyxy = result.obb.xyxyxyxy  # polygon format with 4-points
    names = [result.names[cls.item()] for cls in result.obb.cls.int()]  # class name of each box
    confs = result.obb.conf  # confidence score of each box


Watch: How to Detect and Track Storage Tanks using Ultralytics YOLO-OBB | Oriented Bounding Boxes | DOTA

Consulta los detalles completos del modo predict en la página de Predicción.

Link to this sectionSalida de resultados#

La detección de cajas delimitadoras orientadas devuelve un objeto Results por imagen. El campo de predicción principal es result.obb, que contiene cajas rotadas, IDs de clase y puntuaciones de confianza para cada objeto detectado.

AtributoTipoFormaDescripción
result.obbOBB(N)Cajas orientadas.
result.obb.datatorch.float32(N,7/8)Cajas rotadas crudas con confianza/clase.
result.obb.xywhrtorch.float32(N,5)Cajas rotadas xywhr.
result.obb.xyxyxyxytorch.float32(N,4,2)Cuatro puntos de esquina.
result.obb.conftorch.float32(N,)Puntuaciones de confianza.

For task-specific Results fields across every task, see the Predict Results by Task section.

Link to this sectionExportar#

Exporta un modelo YOLO26n-obb a un formato diferente como ONNX, CoreML, etc.

Ejemplo
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom-trained model

# Export the model
model.export(format="onnx")

Los formatos de exportación disponibles para YOLO26-obb se encuentran en la tabla a continuación. Puedes exportar a cualquier formato usando el argumento format, por ejemplo, format='onnx' o format='engine'. Puedes predecir o validar directamente en modelos exportados, por ejemplo, yolo predict model=yolo26n-obb.onnx. Se muestran ejemplos de uso para tu modelo una vez que se completa la exportación.

FormatoArgumento formatModeloMetadatosArgumentos
PyTorch-yolo26n-obb.pt-
TorchScripttorchscriptyolo26n-obb.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n-obb.onnximgsz, half, int8, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n-obb_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n-obb.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-obb.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n-obb_saved_model/imgsz, keras, int8, nms, batch, data, fraction, device
TF GraphDefpbyolo26n-obb.pbimgsz, batch, device
TF Litetfliteyolo26n-obb.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n-obb_edgetpu.tfliteimgsz, int8, data, fraction, device
TF.jstfjsyolo26n-obb_web_model/imgsz, half, int8, nms, batch, data, fraction, device
PaddlePaddlepaddleyolo26n-obb_paddle_model/imgsz, batch, device
MNNmnnyolo26n-obb.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n-obb_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n-obb_imx_model/imgsz, int8, data, fraction, nms, device
RKNNrknnyolo26n-obb_rknn_model/imgsz, batch, name, int8, data, fraction, device
ExecuTorchexecutorchyolo26n-obb_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n-obb_axelera_model/imgsz, batch, int8, data, fraction, device
DEEPXdeepxyolo26n-obb_deepx_model/imgsz, int8, data, optimize, device
Qualcomm QNNqnnyolo26n-obb_qnn_model/imgsz, batch, name, int8, data, fraction, device

Consulta los detalles completos de export en la página Export.

Link to this sectionAplicaciones en el mundo real#

La detección OBB con YOLO26 tiene numerosas aplicaciones prácticas en diversas industrias:

  • Gestión marítima y portuaria: Detección de barcos y embarcaciones en varios ángulos para la gestión de flotas y supervisión.
  • Planificación urbana: Análisis de edificios e infraestructura a partir de imágenes aéreas.
  • Agricultura: Monitoreo de cultivos y equipos agrícolas a partir de imágenes de drones.
  • Sector energético: Inspección de paneles solares y turbinas eólicas en diferentes orientaciones.
  • Transporte: Seguimiento de vehículos en carreteras y estacionamientos desde varias perspectivas.

Estas aplicaciones se benefician de la capacidad de OBB para ajustarse con precisión a objetos en cualquier ángulo, proporcionando una detección más exacta que las cajas delimitadoras tradicionales.

Link to this sectionPreguntas frecuentes#

Link to this section¿Qué son las Oriented Bounding Boxes (OBB) y en qué se diferencian de las cajas delimitadoras normales?#

Las Oriented Bounding Boxes (OBB) incluyen un ángulo adicional para mejorar la precisión de la localización de objetos en imágenes. A diferencia de las cajas delimitadoras normales, que son rectángulos alineados con los ejes, las OBB pueden rotar para ajustarse mejor a la orientación del objeto. Esto es especialmente útil para aplicaciones que requieren una colocación precisa de los objetos, como imágenes aéreas o de satélite (Guía de datasets).

Link to this section¿Cómo entreno un modelo YOLO26n-obb utilizando un dataset personalizado?#

Para entrenar un modelo YOLO26n-obb con un dataset personalizado, sigue el ejemplo a continuación usando Python o la CLI:

Ejemplo
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n-obb.pt")

# Train the model
results = model.train(data="path/to/custom_dataset.yaml", epochs=100, imgsz=640)

Para ver más argumentos de entrenamiento, consulta la sección de Configuración.

Link to this section¿Qué datasets puedo usar para entrenar modelos YOLO26-OBB?#

Los modelos YOLO26-OBB están preentrenados en datasets como DOTAv1, pero puedes usar cualquier dataset formateado para OBB. Puedes encontrar información detallada sobre los formatos de los datasets OBB en la Guía de datasets.

Link to this section¿Cómo puedo exportar un modelo YOLO26-OBB al formato ONNX?#

Exportar un modelo YOLO26-OBB al formato ONNX es sencillo utilizando Python o la CLI:

Ejemplo
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.pt")

# Export the model
model.export(format="onnx")

Para ver más formatos de exportación y detalles, consulta la página de Exportación.

Link to this section¿Cómo valido la precisión de un modelo YOLO26n-obb?#

Para validar un modelo YOLO26n-obb, puedes usar Python o comandos de la CLI como se muestra a continuación:

Ejemplo
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.pt")

# Validate the model
metrics = model.val(data="dota8.yaml")

Consulta todos los detalles de validación en la sección de Validación.

Comentarios