Перейти к содержимому

Oriented Bounding Boxes Object Detection

Ориентированное обнаружение объектов идет на шаг дальше, чем обнаружение объектов, и вводит дополнительный угол, чтобы точнее находить объекты на изображении.

Результатом работы ориентированного детектора объектов является набор повернутых ограничительных боксов, которые точно окружают объекты на изображении, а также метки классов и баллы доверия для каждого бокса. Обнаружение объектов - хороший выбор, когда тебе нужно определить интересующие тебя объекты в сцене, но не нужно точно знать, где находится объект или его точную форму.

Наконечник

YOLO11 OBB models use the -obb суффикс, то есть yolo11n-obb.pt и предварительно обучены на DOTAv1.



Смотри: Object Detection using Ultralytics YOLO Oriented Bounding Boxes (YOLO-OBB)

Визуальные образцы

Обнаружение кораблей с помощью OBBОбнаружение автомобиля с помощью OBB
Обнаружение кораблей с помощью OBBОбнаружение автомобиля с помощью OBB

Модели

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

Модели автоматически загружаются с последнегорелиза Ultralytics при первом использовании.

МодельРазмер
(пикселей)
mAPtest
50
Скорость
CPU ONNX
(мс)
Speed
T4 TensorRT10
(ms)
params
(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 Значения приведены для одномодельного мультимасштаба на DOTAv1 Набор данных.
    Размножайся с помощью yolo val obb data=DOTAv1.yaml device=0 split=test И отправь объединенные результаты на Оценка DOTA.
  • Скорость Усреднение по изображениям DOTAv1 val с помощью Amazon EC2 P4d например.
    Размножайся с помощью yolo val obb data=DOTAv1.yaml batch=1 device=0|cpu

Поезд

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.

Пример

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



Смотри: How to Train Ultralytics YOLO-OBB (Oriented Bounding Boxes) Models on DOTA Dataset using Ultralytics HUB

Формат датасета

Подробно о формате набора данных OBB можно прочитать в руководстве по набору данных.

Вэл

Validate trained YOLO11n-obb model accuracy on the DOTA8 dataset. No arguments are needed as the model сохраняет свою подготовку data и аргументы в качестве атрибутов модели.

Пример

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

Предсказывай

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

Пример

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



Смотри: How to Detect and Track Storage Tanks using Ultralytics YOLO-OBB | Oriented Bounding Boxes | DOTA

Смотреть полностью predict Подробности о режиме в Предсказывай Страница.

Экспорт

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

Пример

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 аргумент, то есть format='onnx' или format='engine'. Ты можешь предсказывать или проверять непосредственно на экспортированных моделях, то есть yolo predict model=yolo11n-obb.onnx. Примеры использования будут показаны для твоей модели после завершения экспорта.

Форматformat АргументМодельМетаданныеАргументы
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 Край 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

Смотреть полностью export подробности в Экспорт Страница.

ВОПРОСЫ И ОТВЕТЫ

Что такое ориентированные ограничительные рамки (Oriented Bounding Boxes, OBB) и чем они отличаются от обычных ограничительных рамок?

Ориентированные ограничительные рамки (Oriented Bounding Boxes, OBB) включают в себя дополнительный угол, чтобы повысить точность локализации объекта на изображениях. В отличие от обычных ограничивающих боксов, которые представляют собой прямоугольники, выровненные по оси, OBB могут поворачиваться, чтобы лучше соответствовать ориентации объекта. Это особенно полезно для приложений, требующих точного размещения объектов, например, для аэро- или спутниковых снимков(Dataset Guide).

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:

Пример

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

О дополнительных аргументах для тренировки читай в разделе " Конфигурация ".

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:

Пример

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

О форматах экспорта и подробностях читай на странице " Экспорт ".

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:

Пример

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

Полную информацию о проверке смотри в разделе " Вал".

📅 Created 10 months ago ✏️ Updated 7 days ago

Комментарии