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

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

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

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

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

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

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

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

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

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

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

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

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