Ориентированные ограничивающие рамки Обнаружение объектов
Обнаружение ориентированных объектов - это шаг вперед по сравнению со стандартным обнаружением объектов, поскольку для более точного определения местоположения объектов на изображении вводится дополнительный угол.
Результатом работы ориентированного детектора объектов является набор повернутых ограничительных рамок, в которые точно заключены объекты на изображении, а также метки классов и баллы доверия для каждой рамки. Ориентированные ограничительные рамки особенно полезны, когда объекты появляются под разными углами, например, на аэрофотоснимках, где традиционные ограничительные рамки, выровненные по оси, могут включать ненужный фон.
Наконечник
YOLO11 Модели OBB используют -obb
суффикс, т.е. yolo11n-obb.pt
и предварительно обучены на DOTAv1.
Смотреть: Обнаружение объектов с помощью Ultralytics YOLO Oriented Bounding Boxes (YOLO-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 подробно описан в Руководстве по набору данных. Формат YOLO OBB обозначает ограничивающие поля по их четырем угловым точкам с координатами, нормированными между 0 и 1, следуя следующей структуре:
Внутри компании YOLO потери и выходы обрабатываются в xywhr
формат, который представляет ограничительная рамкацентральную точку (xy), ширину, высоту и вращение.
Вэл
Проверка обученной модели 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
Предсказать
Используйте обученную модель 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
# Access the results
for result in results:
xywhr = result.keypoints.xy # 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
Смотреть: Как обнаружить и отследить резервуары с помощью Ultralytics YOLO -OBB | Oriented Bounding Boxes | DOTA
Смотреть полностью predict
подробности о режиме в Предсказать страница.
Экспорт
Экспортируйте модель YOLO11n-obb в другой формат, например ONNX, CoreML и т. д.
Пример
Доступные форматы экспорта 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 , nms , batch |
ONNX | onnx |
yolo11n-obb.onnx |
✅ | imgsz , half , dynamic , simplify , opset , nms , batch |
OpenVINO | openvino |
yolo11n-obb_openvino_model/ |
✅ | imgsz , half , dynamic , int8 , nms , batch , data |
TensorRT | engine |
yolo11n-obb.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , nms , batch , data |
CoreML | coreml |
yolo11n-obb.mlpackage |
✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolo11n-obb_saved_model/ |
✅ | imgsz , keras , int8 , nms , batch |
TF GraphDef | pb |
yolo11n-obb.pb |
❌ | imgsz , batch |
TF Lite | tflite |
yolo11n-obb.tflite |
✅ | imgsz , half , int8 , nms , batch , data |
TF Край TPU | edgetpu |
yolo11n-obb_edgetpu.tflite |
✅ | imgsz |
TF.js | tfjs |
yolo11n-obb_web_model/ |
✅ | imgsz , half , int8 , nms , 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 , data |
RKNN | rknn |
yolo11n-obb_rknn_model/ |
✅ | imgsz , batch , name |
Смотреть полностью export
подробности в Экспорт страница.
Применение в реальном мире
Обнаружение OBB с помощью YOLO11 имеет множество практических применений в различных отраслях промышленности:
- Морское и портовое управление: Обнаружение кораблей и судов под разными углами для управления флотом и мониторинга.
- Градостроительство: Анализ зданий и инфраструктуры на основе аэрофотоснимков.
- Сельское хозяйство: Мониторинг посевов и сельскохозяйственного оборудования с помощью беспилотных летательных аппаратов.
- Энергетический сектор: Осмотр солнечных панелей и ветряных турбин в разных ориентациях.
- Транспорт: Отслеживание транспортных средств на дорогах и парковках с различных точек зрения.
Эти приложения выигрывают от способности OBB точно подгонять объекты под любым углом, обеспечивая более точное обнаружение, чем традиционные ограничительные рамки.
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
Что такое ориентированные ограничительные рамки (Oriented Bounding Boxes, OBB) и чем они отличаются от обычных ограничительных рамок?
Ориентированные ограничительные рамки (ОБК) включают дополнительный угол для повышения точности локализации объектов на изображениях. В отличие от обычных ограничивающих рамок, которые представляют собой прямоугольники, выровненные по оси, OBB могут поворачиваться, чтобы лучше соответствовать ориентации объекта. Это особенно полезно для приложений, требующих точного размещения объектов, таких как аэро- или спутниковые снимки(Dataset Guide).
Как обучить модель YOLO11n-obb с помощью пользовательского набора данных?
Чтобы обучить модель YOLO11n-obb на пользовательском наборе данных, следуйте приведенному ниже примеру, используя Python или CLI:
Пример
Дополнительные аргументы для обучения см. в разделе Конфигурация.
Какие наборы данных можно использовать для обучения моделей YOLO11-OBB?
YOLO11-Модели OBB предварительно обучаются на таких наборах данных, как DOTAv1, но вы можете использовать любой набор данных, отформатированный для OBB. Подробную информацию о форматах наборов данных OBB можно найти в Руководстве по наборам данных.
Как экспортировать модель YOLO11-OBB в формат ONNX ?
Экспорт модели YOLO11-OBB в формат ONNX осуществляется с помощью Python или CLI:
Пример
Дополнительные сведения о форматах экспорта см. на странице Экспорт.
Как проверить точность модели YOLO11n-obb?
Для проверки модели YOLO11n-obb можно использовать команды Python или CLI , как показано ниже:
Пример
Подробную информацию о проверке можно найти в разделе Val.