Технологии

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

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

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

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

Содержание статьи

Чем сегментация экземпляров отличается от других задач сегментации

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

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

Семантическая сегментация решает другую задачу. Она присваивает каждому пикселю класс, например «дорога», «небо», «человек» или «машина», но не отделяет один объект от другого внутри одного класса. Две стоящие рядом машины могут оказаться одним общим сегментом.

Паноптическая сегментация идёт дальше: она одновременно размечает все пиксели по классам и разделяет отдельные счётные объекты на экземпляры. Это даёт более полное описание сцены, но требует больше вычислений и обычно сложнее в реализации.

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

Главное различие простое: детектирование показывает примерное местоположение объекта, а сегментация экземпляров — его точные границы.

В классическом детекторе результатом часто становится bounding box — прямоугольник вокруг объекта. Такой формат удобен для быстрых систем и базовых сценариев. Но если нужно измерять форму, площадь или отделять близко стоящие объекты, прямоугольника уже мало.

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

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

Семантическая сегментация отвечает на вопрос «какому классу принадлежит этот пиксель?», а сегментация экземпляров — «какому именно объекту принадлежит этот пиксель?».

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

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

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

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

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

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

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

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

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

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

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

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

Большинство современных систем сегментации экземпляров основано на глубоком обучении. Обычно модель сначала извлекает признаки из изображения, а затем строит маски отдельных объектов.

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

На практике распространены два типа моделей:

  • Двухэтапные — сначала находят объекты, потом строят для них маски.
  • Одноэтапные — стараются получать обнаружение и маски параллельно.

Первый подход обычно связывают с более высокой точностью. Второй выбирают в сценариях, где критична скорость обработки.

Какую роль играют сверточные нейронные сети

CNN обрабатывают изображение как массив пикселей и постепенно извлекают из него визуальные признаки: края, текстуры, формы и более сложные паттерны.

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

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

Почему для сегментации важны полносверточные сети

Полносверточные сети, или FCN, позволили перейти от классификации всей картинки к попиксельной разметке.

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

При сильном сжатии часть деталей теряется. Поэтому в более поздних вариантах, например в U-Net, появились пропуски между слоями кодировщика и декодировщика. Они помогают вернуть мелкие детали границ.

Как работает Mask R-CNN

Mask R-CNN — одна из самых известных архитектур для сегментации экземпляров. Она сочетает детектирование объектов и построение масок в одной системе.

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

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

Что представляют собой одноэтапные модели

Одноэтапные модели строятся вокруг идеи ускорить вывод и уменьшить число последовательных операций.

Вместо схемы «сначала найти, потом сегментировать» такие архитектуры стараются решать обе задачи почти одновременно. Это полезно в потоковых сценариях, где изображение нужно обрабатывать быстро, например на производственной линии или в системах, близких к реальному времени.

Один из известных примеров — YOLACT. В таких моделях обычно есть ветка, которая формирует набор прототипов масок, и параллельная ветка, которая предсказывает кандидатов на объекты и связывает их с соответствующими масками.

Как трансформеры используются в сегментации экземпляров

Трансформеры применяются в сегментации экземпляров как альтернатива CNN. Их сильная сторона — работа с глобальным контекстом изображения через механизм внимания.

Вместо локальных сверток такие модели оценивают связи между разными частями изображения. Это помогает лучше учитывать сцену целиком, а не только небольшие соседние области. Проблема в том, что внимание дорого по вычислениям, особенно на больших изображениях.

Поэтому появились варианты, которые уменьшают эту нагрузку. Один из известных подходов — ограничивать внимание окнами и сдвигать их между слоями. Так удаётся сделать обработку масштабируемее без полного отказа от преимуществ трансформеров.

Как обучают модели сегментации экземпляров

Для обучения модели нужны размеченные изображения, где для каждого объекта заданы точные маски. Без такой разметки система не может научиться отделять один экземпляр от другого.

Обучение обычно строится на обратном распространении ошибки. Модель сравнивает своё предсказание с эталонной разметкой и постепенно корректирует внутренние параметры. Качество обучения напрямую зависит от качества исходных аннотаций.

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

По этой причине на практике часто используют крупные открытые наборы данных или дообучают уже подготовленные модели под более узкую задачу.

Какие наборы данных используют чаще всего

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

  • COCO — один из самых известных наборов данных для задач детектирования и сегментации объектов.
  • ADE20K — датасет для сегментации сцен с большим числом семантических классов.
  • Cityscapes — набор изображений городских улиц, часто используемый в задачах транспорта и городской сцены.

Выбор датасета зависит от предметной области. Универсальный набор данных полезен не всегда: модель, обученная на бытовых сценах, не обязательно хорошо перенесётся на медицинские снимки или спутниковые изображения.

Как оценивают качество сегментации экземпляров

Качество сегментации экземпляров обычно оценивают по тому, насколько предсказанная маска совпадает с эталонной и как модель балансирует между пропущенными и ложными находками. Чаще всего для этого используют IoU и AP.

Одна метрика редко даёт полную картину. Поэтому при сравнении моделей обычно смотрят сразу на несколько показателей и на результаты на конкретном эталонном наборе данных.

Что такое IoU

IoU, или Intersection over Union, показывает степень перекрытия между предсказанной маской и эталонной разметкой.

Если модель выделила объект почти точно, пересечение будет большим, а значение IoU — высоким. Если маска ушла в сторону или захватила лишние области, показатель снизится. Для изображений с несколькими объектами часто используют среднее значение по всем экземплярам.

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

Что такое AP

AP, или Average Precision, измеряет качество предсказаний через баланс точности и полноты. Обычно эту метрику считают по кривой precision-recall.

Точность показывает, какая доля положительных предсказаний оказалась верной. Полнота показывает, какую долю истинных объектов модель действительно нашла. Если улучшать только одну из этих сторон, качество системы может казаться выше, чем оно есть на практике, поэтому AP учитывает обе.

Для большей строгости AP нередко считают при заданном пороге IoU. Например, в одном случае предсказание засчитывают только при достаточно хорошем совпадении маски с эталоном, а в другом требования могут быть жёстче.

Когда сегментация экземпляров действительно нужна

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

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

Именно поэтому эта задача остаётся одной из центральных в компьютерном зрении: она даёт более детальное представление о сцене и делает визуальные данные пригодными для следующих этапов анализа.

Краткое сравнение задач компьютерного зрения

Разницу между близкими задачами удобнее видеть в одном месте. Ниже — короткое сопоставление по типу результата.

Задача Что предсказывает модель Отделяет объекты одного класса друг от друга
Детектирование объектов Класс объекта и ограничивающую рамку Да, но без точных границ
Семантическая сегментация Класс для каждого пикселя Нет
Сегментация экземпляров Маску каждого отдельного объекта Да
Паноптическая сегментация Класс всех пикселей и маски отдельных объектов Да