Семантическая сегментация — это задача компьютерного зрения, при которой каждому пикселю изображения присваивается класс: например, дорога, небо, человек или дерево. Такой подход помогает модели понять не только что есть на картинке, но и где именно проходит граница каждой области.
Содержание статьи
Как устроена семантическая сегментация
Семантическая сегментация делит изображение на области и помечает каждый пиксель по смысловому классу. Если на фото есть улица, машина и тротуар, модель отмечает все пиксели дороги как дорогу, все пиксели машины как машину, а фон разбивает на свои категории.
Это один из видов сегментации изображений. Его задача — не просто найти объект, а построить точную карту областей внутри кадра. На выходе получается карта сегментации, где каждая зона имеет свой класс.
Важный нюанс: модель не различает отдельные объекты одного типа. Если на изображении три человека, все их пиксели будут отнесены к классу «человек» без разделения на конкретные экземпляры.
Чем семантическая сегментация отличается от других видов сегментации
Главное отличие в том, что семантическая сегментация маркирует пиксели по классу, а не по отдельному объекту. Она отвечает на вопрос: к какому типу относится эта часть изображения.
Рядом с ней обычно рассматривают ещё два подхода: сегментацию экземпляров и паноптическую сегментацию. Они решают похожие, но не одинаковые задачи.
| Подход | Что делает | Что получает модель на выходе |
| Семантическая сегментация | Присваивает класс каждому пикселю | Области типа «небо», «дорога», «дерево», «человек» |
| Сегментация экземпляров | Выделяет отдельные объекты одного класса | Раздельные маски для каждого человека, автомобиля или животного |
| Паноптическая сегментация | Объединяет оба подхода | И класс пикселя, и идентификатор объекта там, где это нужно |
Если упростить, семантическая сегментация видит «машины вообще», а сегментация экземпляров — «эту машину, ту машину и ещё одну». Паноптическая сегментация пытается совместить оба уровня понимания в одной разметке.
Зачем нужна семантическая сегментация
Семантическая сегментация нужна там, где важно понимать структуру сцены на уровне пикселей. Она позволяет точно отделять объекты от фона и определять границы областей, а не ограничиваться прямоугольной рамкой вокруг объекта.
Это особенно полезно в задачах, где грубого определения недостаточно. Классификация изображения отвечает на вопрос «что изображено». Детекция объектов отвечает на вопрос «где примерно расположен объект». Сегментация идёт дальше и показывает точную форму и контур области.
Из-за этого её используют в анализе медицинских изображений, в системах помощи водителю, в спутниковой съёмке, робототехнике и других задачах, где ошибка на границе объекта может менять итоговый результат.
Как работает семантическая сегментация
Модель получает изображение и строит карту сегментации, в которой каждый пиксель окрашен в цвет своего класса. По сути это новая версия исходной картинки, где вместо обычных цветов используются метки категорий.
Отдельные области на такой карте называют масками сегментации. Маска показывает, какие пиксели принадлежат конкретному классу. Если на изображении есть дерево на фоне поля и неба, результат может содержать отдельные маски для дерева, земли и неба.
Чтобы получить такой результат, нейросеть должна решить две задачи одновременно: сгруппировать связанные пиксели и правильно определить, что именно изображено в каждой группе. Для этого применяются модели глубокого обучения, обученные на заранее размеченных наборах данных.
Во время обучения сеть сравнивает свой прогноз с эталонной разметкой и постепенно корректирует внутренние параметры. За счёт этого она учится лучше выделять контуры, учитывать контекст и различать похожие области.
Какие данные нужны для обучения
Для обучения семантической сегментации нужны изображения с попиксельной разметкой. Это значит, что каждому пикселю заранее назначен правильный класс.
Такая разметка заметно сложнее обычных меток уровня «на изображении есть кошка» или рамок вокруг объектов. Поэтому наборы данных для сегментации обычно трудоёмкие в подготовке и детализированы сильнее, чем во многих других задачах машинного обучения.
В открытом доступе есть несколько широко используемых наборов данных:
- Pascal VOC — содержит разные классы объектов, рамки и карты сегментации.
- MS COCO — применяется в задачах детекции, сегментации и описания изображений.
- Cityscapes — ориентирован на городские сцены и часто используется в задачах автономного транспорта.
Качество разметки здесь критично. Если модель учат распознавать дорогу, пешеходов и велосипедистов, ей нужны точные границы классов. Иначе она начнёт путать важные объекты с фоном или, наоборот, видеть препятствия там, где их нет.
Какие архитектуры используют для семантической сегментации
Для семантической сегментации применяют нейросетевые архитектуры, которые сохраняют пространственную структуру изображения и умеют восстанавливать детали после сжатия признаков. Чаще всего в этой области упоминают FCN, U-Net, DeepLab и PSPNet.
У всех этих моделей одна общая задача: извлечь признаки изображения и затем вернуть их к формату, подходящему для попиксельной классификации. Но делают они это по-разному.
FCN
FCN, или полностью сверточная сеть, — одна из базовых архитектур для семантической сегментации. Она заменяет плотные слои на сверточные блоки и позволяет получать карту классов для всего изображения.
Такой подход удобен, потому что сеть работает с пространственной структурой кадра на всех этапах. Это помогает не терять связь между признаками и их расположением.
- Понижение разрешения уменьшает размер карты признаков и позволяет извлекать более абстрактные характеристики изображения.
- Повышение разрешения возвращает карту признаков к размеру исходного изображения.
- Max-pooling выбирает наиболее выраженные признаки внутри локальной области и упрощает дальнейший анализ.
U-Net
U-Net — архитектура, в которой есть кодировщик и декодировщик. Кодировщик сжимает изображение и извлекает признаки, а декодировщик восстанавливает детали и формирует итоговую карту сегментации.
Эта схема хорошо подходит для задач, где важны мелкие границы и точная локализация. Поэтому U-Net часто связывают с анализом медицинских изображений.
Ключевая особенность U-Net — skip-connections, или пропуски между слоями. Они передают информацию от ранних уровней сети к более поздним и помогают сохранить детали, которые могли потеряться при уменьшении разрешения.
DeepLab
DeepLab — семейство моделей, созданное для более точной сегментации с сохранением полезного контекста. В этой архитектуре используется дилатированная, или atrous, свёртка.
Такой механизм позволяет расширять поле зрения сети без обычного грубого уменьшения разрешения. За счёт этого модель лучше учитывает окружение объекта и точнее определяет границы областей.
В описании DeepLab также часто упоминается использование CRF, условного случайного поля, для дополнительного уточнения сегментации на уровне пикселей.
PSPNet
PSPNet добавляет к базовой схеме пирамидальный анализ сцены. Это помогает модели учитывать контекст сразу на нескольких масштабах.
Если объект занимает маленькую часть кадра, локальной информации может быть мало. Если смотреть только на крупный фрагмент, можно потерять детали. PSPNet пытается удержать оба уровня сразу, объединяя признаки из разных областей изображения.
Почему сегментация сложнее обычной классификации и детекции
Семантическая сегментация сложнее, потому что модель должна принимать решение для каждого пикселя, а не для изображения целиком или нескольких прямоугольников. Ошибка даже на небольшой границе уже влияет на итоговую карту.
Здесь мало понять общий смысл сцены. Нужно ещё провести точное разделение между соседними областями, которые могут быть похожи по цвету, текстуре или освещению.
Например, дорога и тротуар часто находятся рядом. Тень может искажать границу. Небо может сливаться с яркими объектами. Из-за этого модели приходится одновременно учитывать локальные признаки и широкий контекст сцены.
Где применяют семантическую сегментацию
Семантическую сегментацию применяют там, где системе нужно понимать состав изображения на детальном уровне. Она особенно полезна, когда важны форма области, её площадь и точные границы.
Типовые направления использования можно свести к нескольким группам:
- Медицина — выделение тканей, органов и подозрительных областей на снимках.
- Автономный транспорт — разделение дороги, разметки, пешеходов, автомобилей и фона.
- Спутниковые и аэрофотоснимки — анализ дорог, водоёмов, зданий, растительности и других зон.
- Робототехника — понимание сцены для навигации и взаимодействия с объектами.
- Промышленный контроль — выделение дефектов, материалов или технологических зон на изображении.
Что важно запомнить о семантической сегментации
Семантическая сегментация — это попиксельная классификация изображения. Она присваивает каждому пикселю смысловой класс и строит карту областей, которая показывает структуру сцены гораздо точнее, чем обычная классификация или детекция объектов.
Этот подход входит в более широкую область сегментации изображений наряду с сегментацией экземпляров и паноптической сегментацией. Для его работы нужны размеченные данные и архитектуры, способные одновременно учитывать контекст сцены и мелкие визуальные детали.