Saltar al contenido

Oriented Bounding Boxes Object Detection

La detección de objetos orientada va un paso más allá de la detección de objetos e introduce un ángulo adicional para localizar los objetos con mayor precisión en una imagen.

La salida de un detector de objetos orientado es un conjunto de cuadros delimitadores rotados que encierran exactamente los objetos de la imagen, junto con etiquetas de clase y puntuaciones de confianza para cada cuadro. La detección de objetos es una buena opción cuando necesitas identificar objetos de interés en una escena, pero no necesitas saber exactamente dónde está el objeto ni su forma exacta.

Consejo

YOLO11 OBB models use the -obb sufijo, es decir yolo11n-obb.pt y están preentrenados en DOTAv1.



Observa: Object Detection using Ultralytics YOLO Oriented Bounding Boxes (YOLO-OBB)

Muestras visuales

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

Modelos

YOLO11 pretrained OBB models are shown here, which are pretrained on the DOTAv1 dataset.

Los modelos se descargan automáticamente de la últimaversión de Ultralytics la primera vez que se utilizan.

Modelotamaño
(píxeles)
mAPtest
50
Velocidad
CPU ONNX
(ms)
Speed
T4 TensorRT10
(ms)
parámetros
(M)
FLOPs
(B)
YOLO11n-obb102478.4117.6 ± 0.84.4 ± 0.02.717.2
YOLO11s-obb102479.5219.4 ± 4.05.1 ± 0.09.757.5
YOLO11m-obb102480.9562.8 ± 2.910.1 ± 0.420.9183.5
YOLO11l-obb102481.0712.5 ± 5.013.5 ± 0.626.2232.0
YOLO11x-obb102481.31408.6 ± 7.728.6 ± 1.058.8520.2
  • mAPtest son para multiescala de modelo único en DOTAv1 conjunto de datos.
    Reproducir por yolo val obb data=DOTAv1.yaml device=0 split=test y envía los resultados fusionados a Evaluación DOTA.
  • Velocidad promediadas sobre las imágenes DOTAv1 val utilizando un Amazon EC2 P4d instancia.
    Reproducir por yolo val obb data=DOTAv1.yaml batch=1 device=0|cpu

Tren

Train YOLO11n-obb on the DOTA8 dataset for 100 epochs at image size 640. For a full list of available arguments see the Configuration page.

Ejemplo

from ultralytics import YOLO

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

# Train the model
results = model.train(data="dota8.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo obb train data=dota8.yaml model=yolo11n-obb.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo obb train data=dota8.yaml model=yolo11n-obb.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo obb train data=dota8.yaml model=yolo11n-obb.yaml pretrained=yolo11n-obb.pt epochs=100 imgsz=640



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

Formato del conjunto de datos

El formato del conjunto de datos OBB se encuentra detallado en la Guía del Conjunto de Datos.

Val

Validate trained YOLO11n-obb model accuracy on the DOTA8 dataset. No arguments are needed as the model conserva su formación data y argumentos como atributos del modelo.

Ejemplo

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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 contains map50-95(B) of each category
yolo obb val model=yolo11n-obb.pt data=dota8.yaml  # val official model
yolo obb val model=path/to/best.pt data=path/to/data.yaml  # val custom model

Predecir

Use a trained YOLO11n-obb model to run predictions on images.

Ejemplo

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-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
yolo obb predict model=yolo11n-obb.pt source='https://ultralytics.com/images/boats.jpg'  # predict with official model
yolo obb predict model=path/to/best.pt source='https://ultralytics.com/images/boats.jpg'  # predict with custom model



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

Ver todo predict detalles del modo en el Predecir página.

Exportar

Export a YOLO11n-obb model to a different format like ONNX, CoreML, etc.

Ejemplo

from ultralytics import YOLO

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

# Export the model
model.export(format="onnx")
yolo export model=yolo11n-obb.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

Available YOLO11-obb export formats are in the table below. You can export to any format using the format argumento, es decir format='onnx' o format='engine'. Puedes predecir o validar directamente los modelos exportados, es decir. yolo predict model=yolo11n-obb.onnx. Se muestran ejemplos de uso de tu modelo una vez finalizada la exportación.

Formatoformat ArgumentoModeloMetadatosArgumentos
PyTorch-yolo11n-obb.pt-
TorchScripttorchscriptyolo11n-obb.torchscriptimgsz, optimize, batch
ONNXonnxyolo11n-obb.onnximgsz, half, dynamic, simplify, opset, batch
OpenVINOopenvinoyolo11n-obb_openvino_model/imgsz, half, int8, batch
TensorRTengineyolo11n-obb.engineimgsz, half, dynamic, simplify, workspace, int8, batch
CoreMLcoremlyolo11n-obb.mlpackageimgsz, half, int8, nms, batch
TF SavedModelsaved_modelyolo11n-obb_saved_model/imgsz, keras, int8, batch
TF GraphDefpbyolo11n-obb.pbimgsz, batch
TF Litetfliteyolo11n-obb.tfliteimgsz, half, int8, batch
TF Arista TPUedgetpuyolo11n-obb_edgetpu.tfliteimgsz
TF.jstfjsyolo11n-obb_web_model/imgsz, half, int8, batch
PaddlePaddlepaddleyolo11n-obb_paddle_model/imgsz, batch
MNNmnnyolo11n-obb.mnnimgsz, batch, int8, half
NCNNncnnyolo11n-obb_ncnn_model/imgsz, half, batch

Ver todo export detalles en el Exportar página.

PREGUNTAS FRECUENTES

¿Qué son las cajas delimitadoras orientadas (OBB) y en qué se diferencian de las cajas delimitadoras normales?

Los cuadros delimitadores orientados (OBB) incluyen un ángulo adicional para mejorar la precisión de la localización de objetos en imágenes. A diferencia de los cuadros delimitadores normales, que son rectángulos alineados con el eje, los OBB pueden girar para ajustarse mejor a la orientación del objeto. Esto es especialmente útil para aplicaciones que requieren una localización precisa del objeto, como las imágenes aéreas o por satélite(Guía del Conjunto de Datos).

How do I train a YOLO11n-obb model using a custom dataset?

To train a YOLO11n-obb model with a custom dataset, follow the example below using Python or CLI:

Ejemplo

from ultralytics import YOLO

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

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

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

What datasets can I use for training YOLO11-OBB models?

YOLO11-OBB models are pretrained on datasets like DOTAv1 but you can use any dataset formatted for OBB. Detailed information on OBB dataset formats can be found in the Dataset Guide.

How can I export a YOLO11-OBB model to ONNX format?

Exporting a YOLO11-OBB model to ONNX format is straightforward using either Python or CLI:

Ejemplo

from ultralytics import YOLO

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

# Export the model
model.export(format="onnx")
yolo export model=yolo11n-obb.pt format=onnx

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

How do I validate the accuracy of a YOLO11n-obb model?

To validate a YOLO11n-obb model, you can use Python or CLI commands as shown below:

Ejemplo

from ultralytics import YOLO

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

# Validate the model
metrics = model.val(data="dota8.yaml")
yolo obb val model=yolo11n-obb.pt data=dota8.yaml

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

📅 Created 10 months ago ✏️ Updated 10 days ago

Comentarios