Image Segmentation
Сегментация изображений разделяет изображение на области пикселей, точно показывая, где находится каждый класс или объект. Сравниваются семантическая, экземплярная и паноптическая сегментация.
Сегментация изображений — задача компьютерного зрения, в которой изображение делится на области посредством разметки пикселей. Результат представляет собой набор масок, точно показывающих, какие пиксели принадлежат какому классу или объекту. В отличие от детекции объектов, которая находит каждый объект с помощью прямоугольной ограничивающей рамки, включающей также фон, сегментация точно обводит контур каждого объекта или области. Она намного детальнее, чем классификация изображений, присваивающая одну метку всему изображению. Такая точность важна, когда решение зависит от площади, контура или контакта между объектами: например, при измерении опухоли или определении свободного пространства перед автомобилем.
Типы сегментации изображений#
Задачи сегментации различаются тем, что означает метка пикселя. В компьютерном зрении различают «объекты» — исчисляемые сущности, например людей и машины, — и «фоновые области» — бесформенные регионы, например дорогу, траву и небо.
- Семантическая сегментация: присваивает класс каждому пикселю, охватывая и объекты, и фоновые области, и объединяет все объекты одного класса в одну область.
- Экземплярная сегментация: обнаруживает каждый исчисляемый объект и назначает ему собственную маску и идентификатор, поэтому два соприкасающихся человека остаются раздельными; пиксели фона не получают меток.
- Паноптическая сегментация: присваивает класс каждому пикселю и добавляет идентификатор экземпляра пикселям исчисляемых объектов, объединяя два предыдущих подхода.
- Интерактивная сегментация: возвращает маску области, указанной щелчком мыши, рамкой или текстовым запросом пользователя, как это делают модели с поддержкой запросов, например Segment Anything Model (SAM).
Первые три типа отвечают на разные вопросы, поэтому выбрать подходящий несложно:
Как работают модели сегментации#
Классические методы группируют пиксели по низкоуровневым признакам, таким как интенсивность, цвет и границы: пороговая обработка методом Оцу, наращивание областей, алгоритм водораздела, кластеризация цветов методом k-means и разрезы графа. OpenCV реализует несколько таких методов; они остаются полезными для чистых изображений, снятых в контролируемых условиях, например деталей с подсветкой на конвейере. Эти методы группируют пиксели, не понимая, что обозначает каждая группа.
Модели глубокого обучения учатся определять и границы, и смысл областей по размеченным маскам. Сети типа «кодировщик-декодировщик», например U-Net, уменьшают разрешение изображения, чтобы учесть контекст, а затем увеличивают его до исходного разрешения и предсказывают класс каждого пикселя. Модели для экземплярной сегментации, например Mask R-CNN и модели сегментации YOLO, добавляют голову масок к детектору объектов, а модели на основе трансформеров, например Mask2Former, выполняют семантическую, экземплярную и паноптическую сегментацию с помощью одной архитектуры. Фундаментальные модели с поддержкой запросов расширили сегментацию на произвольные объекты: SAM появилась в 2023 году после обучения на 1,1 миллиарда масок из 11 миллионов изображений, SAM 2 добавила поддержку видео в 2024 году, а SAM 3 вышла в ноябре 2025 года и сегментирует каждый экземпляр понятия, указанного в текстовом запросе. Поскольку полигоны и маски отдельных пикселей размечать гораздо дольше, чем рамки, эти модели с поддержкой запросов теперь создают черновые обучающие маски по одному щелчку мыши.
Тип задачи также определяет форму выходных данных. Ultralytics YOLO26 выпускается в виде отдельных семейств моделей: -seg для экземплярной сегментации и -sem для семантической сегментации. Разница видна, если запустить обе модели на одной фотографии:
from ultralytics import YOLO
# Загружаем модель экземплярной сегментации и модель семантической сегментации
instance_model = YOLO("yolo26n-seg.pt")
semantic_model = YOLO("yolo26n-sem.pt")
# Сегментируем одно и то же изображение улицы обеими моделями
image = "https://ultralytics.com/images/bus.jpg"
instance_results = instance_model(image)
semantic_results = semantic_model(image)
# Результат экземплярной сегментации: одна бинарная маска на каждый обнаруженный объект, размерность (objects, height, width)
print(instance_results[0].masks.data.shape)
# Результат семантической сегментации: одна карта классов для всего изображения, размерность (height, width)
print(semantic_results[0].semantic_mask.data.shape)Первое измерение выходного массива экземплярной сегментации равно числу обнаруженных объектов, поэтому результаты можно подсчитывать. Для каждого типа результата используется своя метрика: средняя точность (mAP) по маскам для экземплярной сегментации, среднее пересечение над объединением (IoU) для семантической сегментации и качество паноптической сегментации (PQ) для паноптической сегментации.
Примеры применения в реальных условиях#
- Анализ медицинских изображений: радиологические инструменты обводят органы, опухоли и поражения на снимках КТ и МРТ, чтобы измерить их объём и спланировать операцию или лучевую терапию.
- Автономное вождение: системы восприятия сегментируют дорогу, тротуар, транспортные средства и пешеходов в каждом кадре, чтобы определить пространство, доступное для движения.
- Анализ спутниковых снимков: карты земного покрова помечают каждый пиксель как воду, лес, сельскохозяйственные угодья или здания, чтобы отслеживать изменения со временем.
- Редактирование фото и видео: удаление фона, размытие в портретном режиме и замена неба используют маски людей и неба, вычисленные на устройстве.
- Робототехника и производство: роботы используют маски объектов, чтобы вычислять точки захвата деталей неправильной формы, а системы контроля измеряют точную площадь дефектов, например царапин и трещин.










