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

Сегментация экземпляров

Примеры сегментации экземпляров

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

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



Смотри: Выполни сегментацию с помощью предварительно обученной Ultralytics YOLOv8 модели в Python.

Наконечник

YOLOv8 Модели сегментов используют -seg суффикс, то есть yolov8n-seg.pt и предварительно обучены на COCO.

Модели

YOLOv8 Здесь показаны предварительно обученные модели Segment. Модели Detect, Segment и Pose предварительно обучены на наборе данных COCO, а модели Classify предварительно обучены на наборе данных ImageNet.

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

Модель Размер
(пикселей)
mAPbox
50-95
mAPmask
50-95
Скорость
CPU ONNX
(мс)
Скорость
A100 TensorRT
(мс)
params
(M)
FLOPs
(B)
YOLOv8n-seg 640 36.7 30.5 96.1 1.21 3.4 12.6
YOLOv8s-seg 640 44.6 36.8 155.7 1.47 11.8 42.6
YOLOv8m-seg 640 49.9 40.8 317.0 2.18 27.3 110.2
YOLOv8l-seg 640 52.3 42.6 572.4 2.79 46.0 220.5
YOLOv8x-seg 640 53.4 43.4 712.1 4.02 71.8 344.1
  • mAPval Значения приведены для одномодельного одномасштабного на COCO val2017 Набор данных.
    Размножайся с помощью yolo val segment data=coco.yaml device=0
  • Скорость Усреднение изображений COCO val с помощью Amazon EC2 P4d например.
    Размножайся с помощью yolo val segment data=coco128-seg.yaml batch=1 device=0|cpu

Поезд

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

Пример

from ultralytics import YOLO

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

# Train the model
results = model.train(data='coco128-seg.yaml', epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo segment train data=coco128-seg.yaml model=yolov8n-seg.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo segment train data=coco128-seg.yaml model=yolov8n-seg.pt epochs=100 imgsz=640

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

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

YOLO Формат набора данных сегментации можно подробно изучить в руководстве по набору данных. Чтобы преобразовать существующий набор данных из других форматов (например, COCO и т.д.) в формат YOLO , воспользуйся инструментом JSON2YOLO по адресу Ultralytics.

Вэл

Проверь точность обученной модели YOLOv8n-seg на наборе данных COCO128-seg. Не нужно передавать никаких аргументов в качестве model сохраняет тренировки data и аргументы в качестве атрибутов модели.

Пример

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n-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
yolo segment val model=yolov8n-seg.pt  # val official model
yolo segment val model=path/to/best.pt  # val custom model

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

Используй обученную модель YOLOv8n-seg для выполнения предсказаний на изображениях.

Пример

from ultralytics import YOLO

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

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

Экспорт

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

Пример

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n-seg.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=yolov8n-seg.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

Доступные форматы экспорта YOLOv8-seg приведены в таблице ниже. Ты можешь предсказывать или проверять непосредственно на экспортированных моделях, то есть yolo predict model=yolov8n-seg.onnx. Примеры использования будут показаны для твоей модели после завершения экспорта.

Формат format Аргумент Модель Метаданные Аргументы
PyTorch - yolov8n-seg.pt -
TorchScript torchscript yolov8n-seg.torchscript imgsz, optimize
ONNX onnx yolov8n-seg.onnx imgsz, half, dynamic, simplify, opset
OpenVINO openvino yolov8n-seg_openvino_model/ imgsz, half, int8
TensorRT engine yolov8n-seg.engine imgsz, half, dynamic, simplify, workspace
CoreML coreml yolov8n-seg.mlpackage imgsz, half, int8, nms
TF SavedModel saved_model yolov8n-seg_saved_model/ imgsz, keras
TF GraphDef pb yolov8n-seg.pb imgsz
TF Lite tflite yolov8n-seg.tflite imgsz, half, int8
TF Край TPU edgetpu yolov8n-seg_edgetpu.tflite imgsz
TF.js tfjs yolov8n-seg_web_model/ imgsz, half, int8
PaddlePaddle paddle yolov8n-seg_paddle_model/ imgsz
ncnn ncnn yolov8n-seg_ncnn_model/ imgsz, half

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



Создано 2023-11-12, Обновлено 2024-02-03
Авторы: glenn-jocher (9), Laughing-q (1), AyushExel (1)

Комментарии