Подходы к решению
Рассмотрим простые методы решения задачи семантической сегментации изображений и их ограничения.
Скользящее окно
Поскольку мы уже умеем решать задачу классификации изображений, то мы могли бы сопоставить каждому пикселю тот класс, который ему назначае т классификационная сеть, если её применить к квадратной области изображения с центром в интересуемом пикселе. Тогда для сегментации всего изображения нам бы пришлось просканировать изображение квадратной областью, вычисляя для каждого пикселя в центре области его свой класс.
Это очень неэффективное решение, поскольку требует производить классификацию столько раз, сколько пикселей на изображении. При этом классификатору пришлось бы выделять одни и те же признаки для пересекающихся фрагментов.
Сеть из свёрток
Мы могли бы к изображению применить серию свёрток, как показано ниже (источник):
Каждая свёртка должна иметь шаг (stride) 1 и использовать дополнение (padding) вокруг границ (padding), чтобы размер выхода совпадал с размером входа.
Такой подход эффективнее, чем первый, поскольку признаки, извлекаемые для соседних пикселей по пересекающимся частям изображения, вычисляются однократно и переиспользуются.
Тем не менее, этот подход очень затратен по памяти и вычислениям, поскольку предполагает многократную обработку тензоров высокого пространственного разрешения.
Кодировщик-декодировщик
Третий подход также использует свёрточную архитектуру, но предполагает постепенное уменьшение пространственного разрешения (spatial dimensionality), а затем возврат к исходному разрешению, как показано ниже (источник):
Благодаря тому, что пространственное разрешение снижается, у нас появляется возможность эффективно произвести вычисление сложных признаков.
Свёрточные слои, на которых пространственное разрешение постепенно снижается, называется кодировщиком (encoder).
Классификационные сети векторизовали выход кодировщика и применяли к нему многослойный персептрон. Но в задаче семантической сегментации требуется выдать результат в виде тензора такого же пространственного размера, как входное изображение, поэтому далее к промежуточному представлению, полученному кодировщиком, применяется декодировщик (decoder), состоящий из специальных свёрточных блоков, повышающих пространственное разрешение (upsampling).
Ограничение архитектуры
Ограничение предложенной архитектуры заключается в том, что мы по промежуто чному представлению в низком разрешении (выходу кодировщика) пытаемся восстановить сегментационную карту в высоком разрешении. Это неизбежно будет приводить к потере пространственной информации и неточностям при восстановлении границ между классами.
Более продвинутые методы сегментации, о которых будет рассказано далее, основаны на архитектуре кодировщика-декодировщика и по-разному решают эту проблему.