Преимущества U-Net для сегментации изображений

Сегодня я прочитал статью «U-Net», в которой предлагается новая сетевая архитектура для сегментации изображений. Источник статьи можно найти в конце статьи.

Сегментация изображения - это задача различения определенных объектов на изображении. Это может быть отграничение пешехода от его окружения для беспилотных автомобилей, отграничение стекла от других объектов для руки робота или, в нашем случае, различение клеток на изображениях светового микроскопа. Авторы сегодняшней статьи предложили новую архитектуру под названием «U-Net», которая выполняет сегментацию изображений, связанную с рекордно низкими ошибками при проблемах сегментации ячеек.

Как описано в предыдущей статье (https://bit.ly/2MgaRHK), глубокое обучение очень хорошо работает с изображениями. Это в основном связано с сверточными нейронными сетями, которые специально разработаны для извлечения функций из изображений. Классические нейронные сети не предполагают никаких временных или пространственных отношений между объектами: объект A и объект B рассматриваются независимо. Поскольку это неверно, когда мы имеем дело со звуками: случайно выбранные фрагменты звуков могут быть бессмысленными сами по себе, но при рассмотрении в правильном порядке и в нужном темпе они могут представлять слова или песни. То же самое и с изображениями: случайный пиксель может ничего не представлять, но взятый вместе со своими соседями, он может представлять объект или животное. По этой причине были предложены новые сетевые архитектуры, учитывающие временную и пространственную когерентность.

Сверточные нейронные сети используют двумерные фильтры (например, 3x3 или 5x5), которые будут сканировать данное изображение и пытаться извлечь из него соответствующие шаблоны. Двумерность фильтров позволяет им понимать пространственно связанные объекты, такие как углы или линии. Затем, с помощью набора преобразований, мы получаем функции с высоким разрешением, которые затем объединяются для прогнозирования соответствующего целевого значения по нашим изображениям. Обычно сверточные нейронные сети используются для классификации изображений, что обычно означает сокращение изображения до одного числа («метка» или «категория»).

Сегментация изображений - это принципиально иная задача. Здесь вместо того, чтобы прогнозировать одну категорию для изображения, мы хотим отделить интересующий объект от всего изображения. Для таких задач можно использовать множество подходов. Первый подход может разделить входное изображение на серию блоков и попытаться классифицировать каждый блок как содержащий наш объект или нет. Это требует тестирования блоков разных размеров (потому что мы не знаем заранее, насколько велик наш объект), это также требует запуска данной сверточной нейронной сети много раз для каждого изображения, и мы получаем только грубую область, где находится наш объект. Второй подход может попытаться классифицировать каждый пиксель нашего изображения как «находящийся в нашем объекте» или «находящийся вне нашего объекта». Это позволяет более четко сегментировать интересующий нас объект, но также требует многократного запуска данной модели для частей каждого изображения.

Авторы сегодняшней статьи предлагают архитектуру, которая как исправляет большинство недостатков предыдущих подходов, так и дает дополнительные преимущества. Архитектура «U-Net» состоит из 2 частей: первая часть представляет собой «классическую» сверточную нейронную сеть, которая сканирует изображение, извлекает из него шаблоны и объединяет их в функции с высоким разрешением. Затем сеть просят масштабировать ее скрытые слои до воссоздания полного двоичного изображения. Задача здесь состоит в том, чтобы взять полное изображение на входе и создать полное изображение на выходе. Выходное изображение содержит только 0 и 1, которые отделяют фон от объекта, который мы хотим различить. Кроме того, эта архитектура содержит связи между ее первым «увеличением разрешения функций / уменьшением разрешения изображения» и вторым «уменьшением разрешения функции / разрешением изображения с повышением разрешения». Эти ссылки состоят из сохранения снимков весов во время первой фазы сети и копирования их во вторую фазу сети. Это заставляет сеть объединять элементы из разных пространственных областей изображения и позволяет более точно локализовать области интересов.

Еще одна уловка, которую предлагают авторы, - это широко использовать увеличение данных для виртуального увеличения количества входных изображений без необходимости дополнительных помеченных данных. Это увеличение данных в основном осуществляется за счет «упругих деформаций», которые представляют собой деформации, которые изменяют форму объектов на изображении и действуют так, как если бы представленные ячейки находились в другом положении.

«U-Net» не требует многократных прогонов для выполнения сегментации изображений и может обучаться с очень небольшим количеством помеченных изображений, которые хорошо подходят для сегментации изображений в биологии или медицине. Авторы протестировали свою архитектуру на нескольких задачах сегментации изображений и получили меньше ошибок, чем современные классические сверточные нейронные сети, при этом они работают быстрее и требуют меньше размеченных данных.

Источник: Роннебергер, О., Фишер, П., Брокс, Т., 2015 г., октябрь. U-net: Сверточные сети для сегментации биомедицинских изображений. В Международной конференции по медицинской обработке изображений и компьютерному вмешательству (стр. 234–241). Спрингер, Чам.