Перейти к основному содержимому

Семантическая сегментация

Задача семантической сегментации заключается в классификации каждого пикселя изображения, как, например, показано ниже для случая 3-х классов: человек, велосипед, фон (источник):

Обратим внимание, что в семантической сегментации разные представители класса не различаются. Поэтому в примере выше разные люди и велосипеды помечены одним классом. Это отличает семантическую сегментацию от сегментации экземпляров (instance segmentation) и паноптической сегментации (panoptic segmentation).

Семантическая сегментация имеет многочисленные применения. Перечислим некоторые из них.

  • Выделение на изображениях со снимка городских застройек, сельскохозяйственных площадей и типов посевов на них.

  • Сегментация проблемных регионов на фотографиях и рентгеновских снимках в медицине.

  • В видеопотоке, снимаемом автоуправляемых машин (self-driving cars) сегментировать людей, машины, знаки, дорожные препятствия.

  • Сегментировать разные типы одежды для их замены в виртуальных примерочных (например, Amazon’s Virtual Mirror)

Выходом модели, осуществляющей семантическую сегментацию является матрица того же пространственного размера, что и входное изображение, содержащее метки класса для каждого пикселя (источник):

Технически это реализуется тем, что модель выдаёт тензор вероятностей классов размера C×H×WC\times H\times W, где CC - число классов, а HH и WW - пространственные размеры сегментируемого изображения (источник):

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