Семантическая сегментация — это задача компьютерного зрения, заключающаяся в помещении в один класс связанных элементов изображения.
Семантическая сегментация состоит из трёх этапов:
Классификация: обнаружение и классификация определённого объекта на изображении.
Локализация: нахождение предмета и отрисовка вокруг него ограничивающего прямоугольника.
Сегментация: процесс группировки пикселей в локализованном изображении при помощи маски сегментации.
Существует множество подтипов семантической сегментации, но все они возникают вследствие выбора пары параметров из двух категорий: размерности данных и разрешения выходных аннотаций.
Размерности
Под этим параметром подразумевается количество измерений источника данных. Обычное изображение с камеры — это пример двухмерного объекта, потому что оно имеет только два измерения: высоту и ширину. Трёхмерные данные — это разновидность двухмерных данных с добавлением компонента «глубины». Такими данными могут быть данные лидаров и радаров. Четырёхмерное описание создаётся множеством идущих друг за другом трёхмерных объектов, наложенных на временную ось.
В зависимости от размерности данных при создании масок сегментации используются различные виды семантической сегментации. В случае двухмерной сегментации используется один из двух способов: раскраска на основе пикселей или многоугольников. Так как пиксели — это наименьший компонент в этой модели, каждый из них соответствует одному из классов аннотирования. Это приводит к поточечной сегментации в 3D, где размечается каждая 3D-точка. При наличии достаточного количества точек из одного объекта можно извлечь меш сегментации.
Разрешение
Степень точности результатов аннотирования называется разрешением (granularity). Двумя самыми распространёнными типами являются сегментация классов и экземпляров. В первом типе маска сегментации класса объединяет в себе все области, содержащие члены класса. Во втором случае отдельная маска сегментации создаётся для каждого уникального элемента выбранного класса, позволяя различать разные экземпляры (например, два разных автомобиля).
Какой тип семантической сегментации более полезен в машинном обучении?
Чтобы получить максимальную выгоду от семантической сегментации, следует использовать сегментацию экземпляров. На то есть несколько причин.
Очень адаптируемый формат
После сегментации данных можно обучать множество моделей машинного обучения, в том числе моделей классификации, распознавания, локализации, создания изображений, разделения фона и переднего плана, распознавания рукописного ввода, модификации контента и многих других. Поэтому этот формат используется во многих отраслях, в том числе в беспилотном транспорте, моде, создании фильмов и постпродакшене, сельском хозяйстве, и так далее.
Непревзойдённая точность
Маски сегментации получаются самыми точными, потому что ограничивают позицию только реального предмета. В отличие от них, ограничивающие прямоугольники часто включают в себя соседние области или соединяются с ними. Это вызвано тем, что нежёсткие объекты находятся внутри или поверх других нежёстких объектов.
Одна аннотация с двумя аннотациями
Несмотря на то, что маски сегментации точнее, ограничивающие прямоугольники всё ещё используются во многих процедурах. К счастью, при помощи маски сегментации всегда можно определить ограничивающий прямоугольник объекта.
Несмотря на свои преимущества, у семантической сегментации есть существенные недостатки.
1. Ручное аннотирование — сложная и длительная задача
Создавать семантические маски вручную долго и сложно. Столкнувшись с ситуациями, когда присутствуют неровные формы или границы между объектами неочевидны, разметчик должен точно отслеживать контур каждого объекта (см. изображения ниже). При аннотировании одного кадра без специальных инструментов часто возникают ошибки и несогласованности, а сама работа может занимать более получаса.
2. Полностью автоматизированные методы неспособны обеспечить высококачественные результаты
Разве не здорово было бы обучить нейронную сеть выполнять семантическую сегментацию, а потом получать все аннотации, ничего не делая?
Однако этого не делают из-за несовпадениям между нашим восприятием качества и оценкой точности. Для генерации маски сегментации используется контур предмета, а качество определяется правильно определённым процентом области.
3. На устранение ошибок требуется много времени
Из-за вышеприведённых причин ошибки могут быть дорогостоящими. Для коррекции несовершенной маски сегментации требуется коррекция N дополнительных масок, где N — количество соседних масок (к этому мы вернёмся позже). На изменение маски требуется столько же времени, сколько и на создание её с нуля. Поэтому ручное изменение результатов полностью автоматизированной сегментации невозможно. Единственный способ предотвращения этой проблемы — использование специализированного ПО для аннотирования и адекватно обученных разметчиков.
4. Затраты на аннотирование семантической сегментации
Как вы уже видели, для создания масок сегментации требуются специализированные аннотаторы, оборудование и автоматизация. Это существенного повышает затраты, обычно в несколько раз по сравнению с аннотированием простыми ограничивающими прямоугольниками, что приводит к быстрому исчерпанию бюджета.