Сегментация экземпляров
Сегментация объектов - это шаг вперед по сравнению с обнаружением объектов, который заключается в идентификации отдельных объектов на изображении и их выделении из остальной части изображения.
Результатом работы модели сегментации экземпляров является набор масок или контуров, очерчивающих каждый объект на изображении, а также метки классов и баллы доверия для каждого объекта. Сегментация экземпляров полезна, когда вам нужно знать не только местоположение объектов на изображении, но и их точную форму.
Смотреть: Выполните сегментацию с помощью предварительно обученной Ultralytics YOLO модели в Python.
Наконечник
YOLO11 Модели сегментов используют -seg
суффикс, т.е. yolo11n-seg.pt
и предварительно обучены на COCO.
Модели
YOLO11 Здесь показаны предварительно обученные модели Segment. Модели Detect, Segment и Pose предварительно обучены на наборе данных COCO, а модели Classify предварительно обучены на наборе данных ImageNet.
Модели автоматически загружаются из последнейверсии Ultralytics при первом использовании.
Модель | размер (пикселей) |
mAPbox 50-95 |
mAPmask 50-95 |
Скорость CPU ONNX (мс) |
Скорость T4TensorRT10 (мс) |
params (M) |
FLOPs (B) |
---|---|---|---|---|---|---|---|
YOLO11n-seg | 640 | 38.9 | 32.0 | 65.9 ± 1.1 | 1.8 ± 0.0 | 2.9 | 10.4 |
YOLO11s-seg | 640 | 46.6 | 37.8 | 117.6 ± 4.9 | 2.9 ± 0.0 | 10.1 | 35.5 |
YOLO11m-seg | 640 | 51.5 | 41.5 | 281.6 ± 1.2 | 6.3 ± 0.1 | 22.4 | 123.3 |
YOLO11l-seg | 640 | 53.4 | 42.9 | 344.2 ± 3.2 | 7.8 ± 0.2 | 27.6 | 142.2 |
YOLO11x-seg | 640 | 54.7 | 43.8 | 664.5 ± 3.2 | 15.8 ± 0.7 | 62.1 | 319.0 |
- mAPval Значения приведены для одномодельного одномасштабного на COCO val2017 набор данных.
Размножать поyolo val segment data=coco.yaml device=0
- Скорость усреднение по изображениям COCO val с использованием Amazon EC2 P4d например.
Размножать поyolo val segment data=coco.yaml batch=1 device=0|cpu
Поезд
Обучение YOLO11n-seg на наборе данных COCO8-seg в течение 100 эпох при размере изображения 640. Полный список доступных аргументов см. на странице Конфигурация.
Пример
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-seg.yaml") # build a new model from YAML
model = YOLO("yolo11n-seg.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo11n-seg.yaml").load("yolo11n.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo segment train data=coco8-seg.yaml model=yolo11n-seg.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo segment train data=coco8-seg.yaml model=yolo11n-seg.pt epochs=100 imgsz=640
# Build a new model from YAML, transfer pretrained weights to it and start training
yolo segment train data=coco8-seg.yaml model=yolo11n-seg.yaml pretrained=yolo11n-seg.pt epochs=100 imgsz=640
Формат набора данных
YOLO Формат набора данных сегментации подробно описан в Руководстве по набору данных. Чтобы преобразовать существующий набор данных из других форматов (например, COCO и т.д.) в формат YOLO , воспользуйтесь инструментом JSON2YOLO по адресу Ultralytics.
Вэл
Проверка обученной модели YOLO11n-seg точность на наборе данных COCO8-seg. Аргументы не требуются, так как model
сохраняет свою подготовку data
и аргументы как атрибуты модели.
Пример
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-seg.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Validate the model
metrics = model.val() # 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
metrics.seg.map # map50-95(M)
metrics.seg.map50 # map50(M)
metrics.seg.map75 # map75(M)
metrics.seg.maps # a list contains map50-95(M) of each category
Предсказать
Используйте обученную модель YOLO11n-seg для прогнозирования изображений.
Пример
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-seg.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/bus.jpg") # predict on an image
# Access the results
for result in results:
xy = result.masks.xy # mask in polygon format
xyn = result.masks.xyn # normalized
masks = result.masks.data # mask in matrix format (num_objects x H x W)
Смотреть полностью predict
подробности о режиме в Предсказать страница.
Экспорт
Экспортируйте модель YOLO11n-seg в другой формат, например ONNX, CoreML и т. д.
Пример
Доступные форматы экспорта YOLO11-seg приведены в таблице ниже. Вы можете экспортировать в любой формат, используя format
аргумент, т.е. format='onnx'
или format='engine'
. Вы можете прогнозировать или проверять непосредственно на экспортированных моделях, т.е. yolo predict model=yolo11n-seg.onnx
. Примеры использования показаны для вашей модели после завершения экспорта.
Формат | format Аргумент |
Модель | Метаданные | Аргументы |
---|---|---|---|---|
PyTorch | - | yolo11n-seg.pt |
✅ | - |
TorchScript | torchscript |
yolo11n-seg.torchscript |
✅ | imgsz , optimize , nms , batch |
ONNX | onnx |
yolo11n-seg.onnx |
✅ | imgsz , half , dynamic , simplify , opset , nms , batch |
OpenVINO | openvino |
yolo11n-seg_openvino_model/ |
✅ | imgsz , half , dynamic , int8 , nms , batch , data |
TensorRT | engine |
yolo11n-seg.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , nms , batch , data |
CoreML | coreml |
yolo11n-seg.mlpackage |
✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolo11n-seg_saved_model/ |
✅ | imgsz , keras , int8 , nms , batch |
TF GraphDef | pb |
yolo11n-seg.pb |
❌ | imgsz , batch |
TF Lite | tflite |
yolo11n-seg.tflite |
✅ | imgsz , half , int8 , nms , batch , data |
TF Край TPU | edgetpu |
yolo11n-seg_edgetpu.tflite |
✅ | imgsz |
TF.js | tfjs |
yolo11n-seg_web_model/ |
✅ | imgsz , half , int8 , nms , batch |
PaddlePaddle | paddle |
yolo11n-seg_paddle_model/ |
✅ | imgsz , batch |
MNN | mnn |
yolo11n-seg.mnn |
✅ | imgsz , batch , int8 , half |
NCNN | ncnn |
yolo11n-seg_ncnn_model/ |
✅ | imgsz , half , batch |
IMX500 | imx |
yolo11n-seg_imx_model/ |
✅ | imgsz , int8 , data |
RKNN | rknn |
yolo11n-seg_rknn_model/ |
✅ | imgsz , batch , name |
Смотреть полностью export
подробности в Экспорт страница.
ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
Как обучить модель сегментации YOLO11 на пользовательском наборе данных?
Чтобы обучить модель сегментации YOLO11 на пользовательском наборе данных, сначала необходимо подготовить набор данных в формате сегментации YOLO . Для преобразования наборов данных из других форматов можно использовать такие инструменты, как JSON2YOLO. После того как набор данных готов, можно обучать модель с помощью команд Python или CLI :
Пример
Дополнительные аргументы можно найти на странице Конфигурация.
В чем разница между обнаружением объектов и сегментацией экземпляров в YOLO11?
Обнаружение объектов идентифицирует и локализует объекты на изображении, рисуя вокруг них ограничительные рамки, в то время как сегментация экземпляров не только идентифицирует ограничительные рамки, но и определяет точную форму каждого объекта. YOLO11 модели сегментации экземпляров обеспечивают маски или контуры, которые очерчивают каждый обнаруженный объект, что особенно полезно для задач, где важно знать точную форму объектов, таких как медицинская визуализация или автономное вождение.
Зачем использовать YOLO11 для сегментации экземпляров?
Ultralytics YOLO11 это современная модель, которая отличается высокой точностью и производительностью в режиме реального времени, что делает ее идеальной для задач сегментации объектов. YOLO11 Модели сегментов проходят предварительное обучение на наборе данных COCO, что обеспечивает надежную работу с различными объектами. Кроме того, YOLO поддерживает функции обучения, проверки, прогнозирования и экспорта, что делает его очень универсальным как для исследовательских, так и для промышленных приложений.
Как загрузить и проверить предварительно обученную модель сегментации YOLO ?
Загрузка и проверка предварительно обученной модели сегментации YOLO не представляет сложности. Вот как это можно сделать с помощью Python и CLI:
Пример
Эти шаги позволят вам получить такие показатели валидации, как средняя точность (mAP), что очень важно для оценки эффективности модели.
Как экспортировать модель сегментации YOLO в формат ONNX ?
Экспорт модели сегментации YOLO в формат ONNX очень прост и может быть выполнен с помощью команд Python или CLI :
Пример
Более подробную информацию об экспорте в различные форматы см. на странице Экспорт.