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

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

Задача семантической сегментации изображений (semantic segmentation) заключается в классификации каждого пикселя в зависимости от того, какой объект на нём изображён.

Пример семантической сегментации для случая трёх классов (человек, велосипед и фон) показан ниже [1]:

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

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

  • выделение на аэрофотоснимках городских застроек, сельскохозяйственных угодий и необработанных человеком участков местности;

  • сегментация болезненных участков на медицинских фотографиях и рентгеновских снимках;

  • сегментация людей и автомобилей с камер видеонаблюдения;

  • сегментация одежды на человеке для её замены в виртуальных примерочных (например, Amazon’s Virtual Mirror [2]).

Желаемым выходом в задаче семантической сегментации является матрица того же пространственного размера, что и входное изображение, содержащая метки класса для каждого пикселя [1]:

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

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

n=1Nx=1Wy=1Hc=1CI[yn(x,y)=c]lnpθ(y(x,y)=cxn)maxθ,\sum_{n=1}^{N}\sum_{x=1}^{W}\sum_{y=1}^{H}\sum_{c=1}^{C}\mathbb{I}[y_{n}(x,y)=c]\ln p_{\theta}(y(x,y)=c|x_{n})\to\max_{\theta},

где

  • nn - номер изображения в мини-батче, состоящем из NN изображений;

  • W,HW,H - ширина и высота каждого изображения;

  • CC - число классов;

  • θ\theta - параметры сети.

Это эквивалентно минимизации попиксельных кросс-энтропийных потерь.

Литература

  1. jeremyjordan.me: An overview of semantic image segmentation.

  2. geekwire.com: Amazon’s blended-reality mirror shows you wearing virtual clothes in virtual locales.