В предыдущих статьях мы поговорили об основных задачах компьютерного зрения и конкретно о детекции. Теперь пришло время обсудить задачу сегментации во всех ее проявлениях.
Сегментация — разделение изображения на области, внутри которых все пиксели принадлежат одному объекту.
Сегментация часто применяется там, где необходим анализ сцены изображения — в автономном вождении, промышленном визуальном контроле, робототехнике.
Как и детекция, сегментация позволяет выделять на изображении отдельные объекты, но делает это более точно — объект выделяется не ограничивающей рамкой (bounding box), а более точным контуром.
В некотором смысле задача сегментации схожа и с задачей классификации, так как разделение изображения на области — по сути, классификация пикселей входного изображения по принадлежности к объектам. Но, в отличие от задачи классификации, метка касса в данном случае присваивается не изображению в целом, а каждому его пикселю по отдельности.
В начале пути стоит сразу обсудить ключевые термины: things (вещи, объекты) и staff (прочее). Things — счетные объекты на изображении (например, люди, автомобили, птицы, животные и т.д.). Staff — неисчислимые объекты, аморфные области, текстуры, узоры (например, дорога, небо, трава).
Существует три основных вида сегментации: семантическая (Semantic segmentation), паноптическая (Panoptic segmentation) и сегментация экземпляра (Instance segmentation). Разница между ними как раз в том, как именно обрабатываются things и staff на изображении.
Начнем с семантической сегментации (Semantic segmentation). При такой постановке задачи алгоритм концентрируется именно на staff — каждому пикселю изображения присваивается уникальная метка класса на основе текстуры, которую он представляет. Это приводит к тому, что объекты внутри одного класса не разграничиваются между собой: например, на рисунке ниже изображено два льва, но алгоритм относит их к одной текстуре (одному классу) и выделяет их одной областью (lions).
Разметка изображений для семантической сегментации в Mathison
Для семантической сегментации обычно применяются такие архитектуры нейронных сетей, как SegNet, U-Net, DeconvNet и FCNs.
Сегментация экземпляра (Instance segmentation) обычно имеет дело со счетными объектами (things). Это позволяет обнаруживать и выделять отдельно каждый объект или экземпляр класса, присутствующий на изображении. Например, на рисунке ниже каждая из четырех машин выделена как отдельный объект (car1, car2, car3 и car4), как и каждый из двух велосипедов (bike1 и bike2).
Как правило, для сегментации экземпляров используются архитектуры Mask R-CNN, Faster R-CNN, PANet и YOLACT.
Разметка изображений для сегментации экземпляра в Mathison
Итак, семантическая сегментация концентрируется на staff, сегментация экземпляра — на things. Но в идеальном случае мы хотим воспринимать сцену как можно более естественно — то есть, идентифицировать и staff, и things, что позволит лучше работать с реальными изображениями.
Из этих соображений была разработана паноптическая сегментация (Panoptic segmentation) — единый подход к сегментации, при котором каждому пикселю изображения присваивается семантическая метка (как в семантической сегментации) и уникальный идентификатор экземпляра (как в сегментации экземпляра).
При этом каждому пикселю присваивается только один такой набор («семантическая метка (semantic label) + идентификатор экземпляра (instance identifier»). Если объекты пересекаются или перекрывают друг друга, то возникает противоречие, которое обычно решается в пользу экземпляра объекта, так как большим приоритетом при паноптической сегментации обладают объекты (things), а не текстуры (staff).
Таким образом, паноптическая сегментация объединяет в себе преимущества семантической сегментации и сегментации экземпляра: на изображении выделяются семантически значимые области, в пределах которых объекты одного класса выделяются отдельно.
Разметка изображений для паноптической сегментации в Mathison
Большинство моделей паноптической сегментации используют архитектуру Mask R-CNN. В качестве основы архитектуры («скелетной части», backbone) часто используют архитектуры Upset, FPS Net, EPS Net и VPS Net.
Разница между различными видами сегментации. Источник: Kirillov A., He K., Girshick R., Rother C., Dollár P. Panoptic Segmentation / arXiv:1801.00868 [cs], 2019. URL: https://arxiv.org/abs/1801.00868
Как оценивать качество работы модели?
Для каждого вида сегментации существуют свои оценочные метрики — и это снова объясняется разностью в обработке things и staff.
Для семантической сегментации, как правило, используется Intersection over Union (IoU), также называемая коэффициентом Жаккара (Jaccard Index). IoU — это метрика степени пересечения (т.е. сходства) между эталонными контурами сегментов (истинной маской) и контурами, построенными в результате работы модели (прогнозируемой маской). Эталонные контуры (истинная маска) задаются человеком в процессе разметки изображений для тестовой выборки.
Для более надежной оценки, помимо IoU также могут использоваться аналогичная ей метрика Дайса (dice coefficient), pixel accuracy (PA, доля верно классифицированных пикселей изображения) и mean accuracy (средняя доля правильных ответов). Однако все эти показатели не учитывают метки объектов.
Для сегментации экземпляра в качестве стандартной оценочной метрики обычно используется average precision (AP, средняя точность). AP вычисляется в зависимости от заданного порогового значения .
Наконец, в паноптической сегментации используется метрика panoptic quality (PQ), которая оценивает точность предсказанных моделью масок и идентификаторов экземпляра как для объектов (things), так и для текстур (staff). PQ унифицирует оценку по всем классам путем умножения показателей segmentation quality (SQ, качество сегментации) и recognition quality (RQ, качество распознавания). SQ представляет собой среднее значение IoU для сопоставленных сегментов. RQ — значение метрики F1, рассчитанное с использованием значений precision и recall прогнозируемых масок.
Классические алгоритмы сегментации
Как и в случае с детекцией, до появления и активного распространения нейронных сетей, для сегментации изображений использовались классические алгоритмы компьютерного зрения.
Ключевым моментом для таких алгоритмов является выбор признака, определяющего принадлежность пикселя к тому или иному сегменту изображения — иначе говоря, критерия сходства, по которому соседние пиксели можно было бы объединить в одну область. Для изображений в оттенках серого в качестве такого критерия часто использовался уровень серого, для цветных изображений — сходство (однородность) пикселей.
Ранние методы сегментации основаны на поиске границ (edge detection). Принцип их работы заключается в поиске мест, где уровень серого на изображении резко меняется — обычно это верный признак границы области. Обнаружить такие изменения можно, вычислив производную уровня серого, но также часто используется ее разностная аппроксимация или дифференциал. Для обнаружения границ могут использоваться фильтры Собеля, Лапласа, оператор Canny. Последний, как правило, работает лучше других методов и обладает высокой устойчивостью к шумам, но является и более вычислительно сложным.
Обнаружение границ с помощью различных операторов. Источник: 2. Yu Y., Wang C., Fu Q., Kou R., Huang F., Yang B., Yang T., Gao M. Techniques and Challenges of Image Segmentation: A Review//Electronics. – 2023. URL: https://www.researchgate.net/publication/368972710_Techniques_and_Challenges_of_Image_Segmentation_A_Review
Другая популярная стратегия сегментации — последовательное или параллельное разделение изображения на регионы. Такие методы учитывают не только схожесть пикселей, но и их пространственное расположение.
Разделение на области может быть реализовано по пороговому значению, в качестве которого обычно принимается впадина на гистограмме яркости пикселей изображения после некоторой обработки.
Еще один подход — разрастание областей (region growing). Он подразумевает выбор исходных данных (нескольких отдельных пикселей или областей) в качестве точек инициации, после чего алгоритм последовательно анализирует соседние пиксели, постепенно присоединяя их к исходной области (если они достаточно похожи на исходный пример) или выделяя их в отдельную (если они отличаются). Объединение областей или пикселей происходит в соответствии с предопределенным правилом до тех пор, пока дальнейшее объединение будет невозможно.
Методы водораздела (watershed) представляют изображение как карту высот ландшафта, где границы областей — горные вершины, а однородные области — точки локального минимума градиента и точки на склоне, вода с которых «стекает» в этот минимум, образуя область водораздела, «бассейн». Алгоритм водораздела позволяет получить замкнутый контур и обладает высокой эффективностью, но может плохо работать на сложных изображениях.
Еще одна интересная концепция — суперпиксели (superpixels) — серия небольших областей неправильной формы, состоящих из пикселей со сходным расположением и характеристиками (например, яркостью, цветом, текстурой). Использование суперпикселей вместо пикселей для представления объектов позволяет снизить вычислительную сложность обработки изображений, и поэтому часто используется в качестве предварительной обработки.
Методы сегментации изображений, основанные на теории графов, сопоставляют изображение с графом, вершины которого представляют собой пиксели или области, а веса ребер — сходство между ними. Сегментация в этом случае рассматривается как анализ взвешенного графа с использованием методов теории графов, и получение оптимального разделения вершин с помощью глобальной оптимизации графа (например, наименьшего разреза).
Для сегментации также может использоваться метод K-средних, представляющий собой итерационный процесс вычисления центров областей. Метод K-средних обладает хорошей помехоустойчивостью и быстрой сходимостью, но с трудом работает на несмежных областях и может попасть в ловушку локального минимума.
Применение
Как мы уже говорили, сегментация — ключевая технология для анализа сцены изображения, а эта функция востребована во многих сферах.
Например, в области беспилотного транспорта 3D семантическая сегментация используется для идентификации объектов окружающей среды (пешеходов, дорожных знаков, других транспортных средств, препятствий), что позволяет «осознавать» обстановку вокруг. В то же время, для идентификации каждого экземпляра объекта в отдельности применяется сегментация экземпляра — это позволяет повысить точность расчета скорости и расстояния.
В медицине семантическая сегментация и сегментация экземпляра применяются для автоматизированного анализа медицинских снимков: оба метода позволяют выявлять наличие опухолей и других аномалий на МРТ, компьютерной томографии и рентгенографии.
Наконец, семантическая сегментация и сегментация экземпляра позволяют автоматически анализировать спутниковые или аэрофотоснимки, и составлять на их основе карту местности, выделяя реки, океаны, дороги, сельскохозяйственные поля, здания и другие значимые объекты. В некотором смысле эта задача аналогична анализу сцены.
Паноптическая сегментация не только применяется во всех перечисленных сферах, но и показывает более высокое качество работы. В автономном транспорте использование паноптической сегментации позволяет добиваться более точного принятия решений благодаря тому, что маски объектов создаются с точностью до пикселя. В задачах анализа медицинских изображений, аннотирования и аугментации данных, дистанционного зондирования с помощью БПЛА (беспилотных летательных аппаратов), видеонаблюдения и подсчета людей в толпе паноптическая сегментация обеспечивает большую глубину и точность прогнозирования масок и ограничивающих рамок.
Заключение
Сегментация изображений — важная часть революции в области искусственного интеллекта. Это ключевой компонент автономных и интеллектуальных систем в различных отраслях (производство, розничная торговля, здравоохранение, транспорт).
Если раньше применение сегментации изображений в больших масштабах было неэффективным из-за аппаратных ограничений, то сегодня, благодаря графическим процессорам, облачным TPU и периферийным вычислениям (edge computing), использование сегментации в прикладных приложениях стало гораздо более доступным.
За последние несколько лет паноптическая сегментация все более популярна среди исследователей, продвигающих технологии компьютерного зрения. Напротив, семантическая сегментация и сегментация экземпляра чаще применяются в реальном мире, поскольку их алгоритмы лучше изучены и уже успели пройти проверку временем. Так или иначе, все три вида сегментации находят широкое применение в своих сферах.
Источники:
- Shiledarbaxi N. Semantic vs Instance vs Panoptic: Which Image Segmentation Technique To Choose. – URL: https://analyticsindiamag.com/semantic-vs-instance-vs-panoptic-which-image-segmentation-technique-to-choose/
- Yu Y., Wang C., Fu Q., Kou R., Huang F., Yang B., Yang T., Gao M. Techniques and Challenges of Image Segmentation: A Review//Electronics. – 2023. – Vol. 12. – Techniques and Challenges of Image Segmentation. – No. 5. – P. 1199.