Сегментация изображений
Сегментация изображений — это процесс разделения цифрового изображения на множество сегментов (наборов пикселей, также называемых суперпикселями), который упрощает или изменяет представление изображения, делая его более осмысленным и лёгким для анализа. Цель сегментации — выделить на изображении объекты или области, представляющие интерес (например, дорогу, пешехода, опухоль на снимке), путём присвоения каждому пикселю метки, соответствующей определённому классу или объекту. Результатом сегментации является маска — бинарное или многоклассовое изображение, где каждый сегмент обозначен уникальным идентификатором или цветом. В отличие от классификации изображений (присвоение метки всему изображению) и детекции объектов (выделение ограничивающих рамок), сегментация работает на уровне отдельных пикселей, обеспечивая максимальную детализацию.
История
Первые методы сегментации изображений появились в 1960–1970-х годах и основывались на простых пороговых преобразованиях и обнаружении границ. Одним из ранних алгоритмов является метод водораздела (watershed), предложенный С. Бёшером в 1979 году. В 1980-х годах развитие получили статистические подходы, такие как кластеризация k-средних и метод Otsu для автоматического выбора порога. С 1990-х годов начали применяться марковские случайные поля (MRF) и условные случайные поля (CRF), позволяющие учитывать пространственные зависимости между пикселями.
Переломным моментом стало внедрение методов глубокого обучения, особенно свёрточных нейронных сетей (CNN). В 2015 году была предложена архитектура U-Net (О. Роннебергер и др.), изначально разработанная для сегментации биомедицинских изображений. Она стала стандартом де-факто благодаря своей способности работать с малым количеством обучающих данных и высокой точности. В 2017 году появилась архитектура Mask R-CNN (К. Хе и др.), объединившая детекцию объектов и сегментацию экземпляров. С 2020-х годов активно развиваются методы на основе трансформеров (например, Vision Transformer, SegFormer), которые превосходят CNN по качеству на крупных наборах данных.
Классификация методов сегментации
Методы сегментации изображений делятся на несколько категорий в зависимости от подхода к обработке.
По степени автоматизации
- Ручная сегментация — выполняется человеком (например, врачом на медицинских снимках). Точна, но трудоёмка и субъективна.
- Полуавтоматическая — пользователь задаёт начальные точки или области, алгоритм достраивает (например, алгоритм «умные ножницы»).
- Автоматическая — полностью машинная, без участия человека (например, нейросетевые модели).
По используемой информации
- Пороговая сегментация — основана на сравнении интенсивности пикселя с порогом (глобальным или адаптивным). Простой и быстрый метод, но чувствительный к шуму и перепадам освещения.
- Методы на основе границ — ищут резкие перепады яркости (например, операторы Собела, Кэнни). Результат — контуры объектов, требующие последующей обработки (замыкания).
- Методы на основе областей — объединяют соседние пиксели по критерию однородности (например, выращивание регионов, разделение-слияние).
- Кластеризация — группировка пикселей в пространстве признаков (цвет, текстура). Примеры: k-средних, mean-shift, DBSCAN.
- Методы на основе графов — построение графа, где вершины — пиксели, рёбра — связи между ними. Минимизация энергии разреза (Normalized Cut, Graph Cut).
- Методы глубокого обучения — используют свёрточные и трансформерные архитектуры, обучаемые на размеченных наборах данных.
По типу выходных данных
- Семантическая сегментация — каждому пикселю присваивается метка класса (например, «небо», «дорога», «дерево»). Разные объекты одного класса не различаются (например, все автомобили — один класс).
- Сегментация экземпляров — выделяет каждый отдельный объект (например, каждый автомобиль — отдельный экземпляр). Сочетает детекцию и сегментацию.
- Панонтическая сегментация — объединение семантической и экземплярной: для «stuff» (фон, небо) — семантическая, для «things» (объекты) — экземплярная.
Архитектуры нейронных сетей для сегментации
U-Net
U-Net имеет симметричную структуру «энкодер-декодер» с пропускными соединениями (skip connections). Энкодер (сжатие) извлекает признаки через свёрточные слои и пулинг, декодер (расширение) восстанавливает пространственное разрешение. Пропускные соединения передают мелкие детали из энкодера в декодер, что критично для точной локализации. U-Net широко применяется в медицине (сегментация опухолей, клеток), а также в задачах с ограниченным количеством данных.
Mask R-CNN
Расширение Faster R-CNN для сегментации экземпляров. Сначала региональная сеть предложений (RPN) генерирует прямоугольные области, затем для каждой области выполняется классификация, регрессия ограничивающей рамки и бинарная сегментация маски. Mask R-CNN эффективна для одновременного обнаружения и сегментации множества объектов на изображении.
DeepLab (v1–v3+)
Серия моделей от Google, использующая атричные (dilated) свёртки для увеличения поля восприятия без потери разрешения. DeepLabv3+ использует пространственно-пирамидальный пулинг (ASPP) и энкодер-декодер для улучшения границ сегментов. Эта архитектура показывает высокие результаты на наборах данных PASCAL VOC и Cityscapes.
SegFormer
Модель на основе трансформеров, сочетающая иерархический энкодер (Mix Transformer) и лёгкий декодер (MLP). SegFormer не требует позиционного кодирования и показывает отличную производительность на различных разрешениях. Один из лидеров по качеству на бенчмарках (например, ADE20K).
Применение
Медицина
Сегментация изображений широко используется для выделения патологий на снимках МРТ, КТ, рентгеновских и УЗИ. Например, сегментация опухолей головного мозга (наборы данных BraTS), лёгочных узлов, сосудов сетчатки. Автоматическая сегментация позволяет ускорить диагностику и повысить её объективность.
Автономное вождение
В системах помощи водителю (ADAS) и беспилотных автомобилях сегментация дорожной сцены выделяет дорогу, пешеходов, транспортные средства, знаки и препятствия. Набор данных Cityscapes (50 городов) — стандартный бенчмарк для этой задачи.
Сельское хозяйство
Сегментация полей, посевов, сорняков и плодов на спутниковых или дроновых снимках. Помогает в мониторинге состояния растений, оценке урожайности и точном земледелии.
Промышленность и робототехника
Выделение дефектов на поверхности материалов, контроль качества сборки, навигация роботов. Сегментация позволяет роботам захватывать объекты, избегать препятствий и ориентироваться в пространстве.
Обработка видео и дополненная реальность
Сегментация используется для удаления фона (например, в видеоконференциях), наложения виртуальных объектов (AR), анализа видеопотоков.
Метрики оценки качества
Для количественной оценки точности сегментации используются следующие метрики:
- IoU (Intersection over Union) — отношение площади пересечения предсказанной и истинной масок к площади их объединения. Среднее IoU по классам (mIoU) — стандартная метрика.
- Dice coefficient (F1-score) — отношение удвоенного пересечения к сумме площадей. Часто применяется в медицинской сегментации.
- Pixel Accuracy — доля правильно классифицированных пикселей. Простая, но нечувствительна к дисбалансу классов.
- Precision и Recall — для каждого класса отдельно.
Инструменты и библиотеки
Для реализации сегментации изображений существуют специализированные библиотеки и фреймворки:
- OpenCV — классические методы (пороговая, водораздел, k-средних).
- scikit-image — набор алгоритмов сегментации на Python.
- PyTorch / TensorFlow — для глубокого обучения. Включают предобученные модели (например, torchvision, TensorFlow Hub).
- MMSegmentation — библиотека на PyTorch с реализациями U-Net, DeepLab, SegFormer и других.
- Detectron2 (Facebook AI Research) — для сегментации экземпляров (Mask R-CNN).
Проблемы и ограничения
- Необходимость размеченных данных — создание масок требует ручного труда, особенно в медицине и биологии.
- Обобщение — модели, обученные на одном наборе данных, могут плохо работать на других (разные камеры, освещение, стили).
- Вычислительная сложность — современные нейросети требуют мощных GPU, что ограничивает применение на мобильных устройствах.
- Дисбаланс классов — редкие классы (например, дефекты) могут быть плохо сегментированы.
- Размытые границы — объекты с нечёткими краями (например, облака, волосы) сложны для точной сегментации.
Источники
- Ronneberger O., Fischer P., Brox T. U-Net: Convolutional Networks for Biomedical Image Segmentation // MICCAI 2015.
- He K., Gkioxari G., Dollár P., Girshick R. Mask R-CNN // ICCV 2017.
- Chen L.-C., Papandreou G., Kokkinos I., Murphy K., Yuille A. L. DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs // TPAMI 2018.
- Xie E., Wang W., Yu Z., Anandkumar A., Alvarez J. M., Luo P. SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers // NeurIPS 2021.
- Cordts M. et al. The Cityscapes Dataset for Semantic Urban Scene Understanding // CVPR 2016.
- Гонсалес Р., Вудс Р. Цифровая обработка изображений. — М.: Техносфера, 2012.
- Szeliski R. Computer Vision: Algorithms and Applications. — Springer, 2010.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →