Автор: Илья Бакалец

Редактура: Марк Страхов, Тимур Фатыхов

Предисловие

Ранее в обзорах статей мы рассматривали архитектуры нейронных сетей для решения задачи классификации. Сейчас мы предлагаем вам разобраться с архитектурой U-net для решения задачи семантической сегментации. Эта информация будет полезной, поскольку такая задача (в различных своих вариантах) присутствует в арсенале любого CV инженера.

В основе нашего поста — оригинал статьи “U-Net: Convolutional Networks for Biomedical Image Segmentation”. В современных библиотеках реализация архитектуры может отличаться (причем существенно).

Задача сегментации

Давайте сначала разберемся с понятиями:

Вторая задача сложнее первой: она требует не только сегментации объектов на изображении, но и различения экземпляров одного и того же класса объектов. Поэтому для задачи instance segmentation обычно используются более сложные модели (например, Mask R-CNN).

На рисунке ниже представлен пример маски (segmentation map) для задачи семантической сегментации, где каждый пиксель отнесен к определенному классу. Данные взяты с https://www.cityscapes-dataset.com.

Рисунок 1. Segmentation map

Рисунок 1. Segmentation map

Ключевая идея

Авторы статьи реализовали архитектуру из двух частей: contracting path (левая часть) и expansive path (правая часть). Давайте рассмотрим на изображении ниже схематическое представление архитектуры U-net:

Рисунок 2. Архитектура U-net

Рисунок 2. Архитектура U-net

На этом рисунке мы видим: в левой части схемы располагается обычная сверточная нейронная сеть — encoder, а в правой части — decoder. И каждый промежуточный результат encoder’a перед операцией max pooling конкатенируется (skip-connection) с промежуточным результатом правой части архитектуры. Это решает проблему потери информации из-за операции max-pooling.

Архитектура

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

При обучении на цветных данных (RGB) входной тензор будет иметь количество каналов, равное 3-ем.