Meet YOLO26: next-gen vision AI.

Link to this sectionСегментация экземпляров#

Instance segmentation examples

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

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



Watch: Run Segmentation with Pretrained Ultralytics YOLO Model in Python.
Совет

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

Link to this sectionМодели#

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

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

Модельразмер
(пиксели)
mAPbox
50-95(e2e)
mAPmask
50-95(e2e)
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(М)
FLOPs
(Б)
YOLO26n-seg64039.633.953.3 ± 0.52.1 ± 0.02.79.1
YOLO26s-seg64047.340.0118.4 ± 0.93.3 ± 0.010.434.2
YOLO26m-seg64052.544.1328.2 ± 2.46.7 ± 0.123.6121.5
YOLO26l-seg64054.445.5387.0 ± 3.78.0 ± 0.128.0139.8
YOLO26x-seg64056.547.0787.0 ± 6.816.4 ± 0.162.8313.5
  • 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
  • Значения Params и FLOPs указаны для объединенной модели после model.fuse(), которая объединяет слои Conv и BatchNorm, а для end2end моделей удаляет вспомогательную «один-ко-многим» голову детекции. Предобученные чекпоинты сохраняют полную архитектуру обучения и могут показывать более высокие значения.

Link to this sectionОбучение#

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

Пример
from ultralytics import YOLO

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

# Train the model
results = model.train(data="coco8-seg.yaml", epochs=100, imgsz=640)

Смотри полные подробности режима train на странице Обучение. Модели сегментации также можно обучать на облачных GPU через платформу Ultralytics.

Link to this sectionФормат набора данных#

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

Link to this sectionВалидация#

Проверь точность обученной модели YOLO26n-seg на наборе данных COCO8-seg. Аргументы не нужны, так как model сохраняет свои data обучения и аргументы в качестве атрибутов модели.

Пример
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-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 containing mAP50-95(B) for each category
metrics.box.image_metrics  # per-image metrics dictionary for det with precision, recall, F1, TP, FP, and FN
metrics.seg.map  # map50-95(M)
metrics.seg.map50  # map50(M)
metrics.seg.map75  # map75(M)
metrics.seg.maps  # a list containing mAP50-95(M) for each category
metrics.seg.image_metrics  # per-image metrics dictionary for seg with precision, recall, F1, TP, FP, and FN

Link to this sectionПредсказание#

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

Пример
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-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 polygons in pixel coordinates
    xyn = result.masks.xyn  # normalized mask polygons
    masks = result.masks.data  # binary masks, shape (N,H,W), dtype torch.uint8

Полную информацию о режиме predict смотри на странице Predict.

Link to this sectionВывод результатов#

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

АтрибутТипФормаОписание
result.masksMasks(N)Маски экземпляров.
result.masks.datatorch.uint8(N,H,W)Бинарные маски, значения 0 или 1.
result.masks.xynp.float32list[(P,2)]Пиксельные полигоны.
result.masks.xynnp.float32list[(P,2)]Нормализованные полигоны.
result.boxesBoxes(N)Прямоугольники/классы/достоверности экземпляров.
result.boxes.clstorch.float32(N,)ID классов; приведите к int для получения названий.

Для получения информации о специфичных для задачи полях Results см. раздел Предсказания по задачам.

Link to this sectionЧем это отличается от семантической сегментации#

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

Link to this sectionЭкспорт#

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

Пример
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-seg.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom-trained model

# Export the model
model.export(format="onnx")

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

ФорматАргумент formatМодельМетаданныеАргументы
PyTorch-yolo26n-seg.pt-
TorchScripttorchscriptyolo26n-seg.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n-seg.onnximgsz, half, int8, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n-seg_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n-seg.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-seg.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n-seg_saved_model/imgsz, keras, int8, nms, batch, data, fraction, device
TF GraphDefpbyolo26n-seg.pbimgsz, batch, device
TF Litetfliteyolo26n-seg.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n-seg_edgetpu.tfliteimgsz, int8, data, fraction, device
TF.jstfjsyolo26n-seg_web_model/imgsz, half, int8, nms, batch, data, fraction, device
PaddlePaddlepaddleyolo26n-seg_paddle_model/imgsz, batch, device
MNNmnnyolo26n-seg.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n-seg_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n-seg_imx_model/imgsz, int8, data, fraction, nms, device
RKNNrknnyolo26n-seg_rknn_model/imgsz, batch, name, int8, data, fraction, device
ExecuTorchexecutorchyolo26n-seg_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n-seg_axelera_model/imgsz, batch, int8, data, fraction, device
DEEPXdeepxyolo26n-seg_deepx_model/imgsz, int8, data, optimize, device
Qualcomm QNNqnnyolo26n-seg_qnn.onnximgsz, batch, name, int8, data, fraction, device

Смотри подробную информацию об export на странице Export.

Link to this sectionFAQ#

Link to this sectionКак мне обучить модель сегментации YOLO26 на собственном наборе данных?#

Чтобы обучить модель сегментации YOLO26 на собственном наборе данных, тебе сначала нужно подготовить его в формате сегментации YOLO. Ты можешь использовать инструменты, такие как JSON2YOLO, для конвертации наборов данных из других форматов. Когда твой набор данных будет готов, ты сможешь обучить модель с помощью Python или команд CLI:

Пример
from ultralytics import YOLO

# Load a pretrained YOLO26 segment model
model = YOLO("yolo26n-seg.pt")

# Train the model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)

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

Link to this sectionВ чем разница между обнаружением объектов и сегментацией экземпляров в YOLO26?#

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

Link to this sectionЗачем использовать YOLO26 для сегментации экземпляров?#

Ultralytics YOLO26 — это современная модель, признанная за свою высокую точность и производительность в реальном времени, что делает ее идеальной для задач сегментации экземпляров. Модели YOLO26 Segment поставляются предварительно обученными на наборе данных COCO, что обеспечивает надежную работу с различными объектами. Кроме того, YOLO поддерживает обучение, проверку, предсказание и экспорт с бесшовной интеграцией, что делает ее крайне универсальной как для исследований, так и для промышленных задач.

Link to this sectionКак мне загрузить и проверить предварительно обученную модель сегментации YOLO?#

Загрузка и проверка предварительно обученной модели сегментации YOLO очень просты. Вот как ты можешь это сделать с помощью Python и CLI:

Пример
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n-seg.pt")

# Validate the model
metrics = model.val()
print("Mean Average Precision for boxes:", metrics.box.map)
print("Mean Average Precision for masks:", metrics.seg.map)

Эти шаги предоставят тебе метрики проверки, такие как средняя точность (mAP), которые имеют решающее значение для оценки производительности модели.

Link to this sectionКак я могу экспортировать модель сегментации YOLO в формат ONNX?#

Экспорт модели сегментации YOLO в формат ONNX прост и может быть выполнен с помощью Python или команд CLI:

Пример
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n-seg.pt")

# Export the model to ONNX format
model.export(format="onnx")

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

Комментарии