Перейти к содержанию

Ориентированные ограничивающие рамки Обнаружение объектов

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

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

Наконечник

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



Смотреть: Обнаружение объектов с помощью Ultralytics YOLO Oriented Bounding Boxes (YOLO-OBB)

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

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

Модели

YOLO11 Здесь представлены предварительно обученные модели OBB, которые были предварительно обучены на наборе данных DOTAv1.

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

Модель размер
(пикселей)
mAPtest
50
Скорость
CPU ONNX
(мс)
Скорость
T4TensorRT10
(мс)
params
(M)
FLOPs
(B)
YOLO11n-obb 1024 78.4 117.6 ± 0.8 4.4 ± 0.0 2.7 17.2
YOLO11s-obb 1024 79.5 219.4 ± 4.0 5.1 ± 0.0 9.7 57.5
YOLO11m-obb 1024 80.9 562.8 ± 2.9 10.1 ± 0.4 20.9 183.5
YOLO11l-obb 1024 81.0 712.5 ± 5.0 13.5 ± 0.6 26.2 232.0
YOLO11x-obb 1024 81.3 1408.6 ± 7.7 28.6 ± 1.0 58.8 520.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

Поезд

Обучение YOLO11n-obb на наборе данных DOTA8 в течение 100 эпох при размере изображения 640. Полный список доступных аргументов см. на странице Конфигурация.

Пример

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



Смотреть: Как обучить Ultralytics YOLO -OBB (Oriented Bounding Boxes) модели на наборе данных DOTA с помощью Ultralytics HUB.

Формат набора данных

Формат набора данных OBB подробно описан в Руководстве по набору данных.

Вэл

Проверка обученной модели YOLO11n-obb точность на наборе данных DOTA8. Аргументы не требуются, так как 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

Предсказать

Используйте обученную модель YOLO11n-obb для прогнозирования изображений.

Пример

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



Смотреть: Как обнаружить и отследить резервуары с помощью Ultralytics YOLO -OBB | Oriented Bounding Boxes | DOTA

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

Экспорт

Экспортируйте модель YOLO11n-obb в другой формат, например ONNX, CoreML и т. д.

Пример

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

Доступные форматы экспорта YOLO11-obb приведены в таблице ниже. Вы можете экспортировать в любой формат, используя format аргумент, т.е. format='onnx' или format='engine'. Вы можете прогнозировать или проверять непосредственно на экспортированных моделях, т.е. yolo predict model=yolo11n-obb.onnx. Примеры использования показаны для вашей модели после завершения экспорта.

Формат format Аргумент Модель Метаданные Аргументы
PyTorch - yolo11n-obb.pt -
TorchScript torchscript yolo11n-obb.torchscript imgsz, optimize, batch
ONNX onnx yolo11n-obb.onnx imgsz, half, dynamic, simplify, opset, batch
OpenVINO openvino yolo11n-obb_openvino_model/ imgsz, half, int8, batch
TensorRT engine yolo11n-obb.engine imgsz, half, dynamic, simplify, workspace, int8, batch
CoreML coreml yolo11n-obb.mlpackage imgsz, half, int8, nms, batch
TF SavedModel saved_model yolo11n-obb_saved_model/ imgsz, keras, int8, batch
TF GraphDef pb yolo11n-obb.pb imgsz, batch
TF Lite tflite yolo11n-obb.tflite imgsz, half, int8, batch
TF Край TPU edgetpu yolo11n-obb_edgetpu.tflite imgsz
TF.js tfjs yolo11n-obb_web_model/ imgsz, half, int8, batch
PaddlePaddle paddle yolo11n-obb_paddle_model/ imgsz, batch
MNN mnn yolo11n-obb.mnn imgsz, batch, int8, half
NCNN ncnn yolo11n-obb_ncnn_model/ imgsz, half, batch
IMX500 imx yolo11n-obb_imx_model/ imgsz, int8

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

ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ

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

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

Как обучить модель YOLO11n-obb с помощью пользовательского набора данных?

Чтобы обучить модель YOLO11n-obb на пользовательском наборе данных, следуйте приведенному ниже примеру, используя Python или 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

Дополнительные аргументы для обучения см. в разделе Конфигурация.

Какие наборы данных можно использовать для обучения моделей YOLO11-OBB?

YOLO11-Модели OBB предварительно обучаются на таких наборах данных, как DOTAv1, но вы можете использовать любой набор данных, отформатированный для OBB. Подробную информацию о форматах наборов данных OBB можно найти в Руководстве по наборам данных.

Как экспортировать модель YOLO11-OBB в формат ONNX ?

Экспорт модели YOLO11-OBB в формат ONNX осуществляется с помощью Python или 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

Дополнительные сведения о форматах экспорта см. на странице Экспорт.

Как проверить точность модели YOLO11n-obb?

Для проверки модели YOLO11n-obb можно использовать команды Python или CLI , как показано ниже:

Пример

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

Подробную информацию о проверке можно найти в разделе Val.

📅 Создано 10 месяцев назад ✏️ Обновлено 27 дней назад

Комментарии