См. код сети сегментации Mask R-CNN здесь.

Что такое семантическая сегментация?

Сегментационные сети — это разновидность нейронных сетей, которые решают задачу семантической сегментации изображений. Если вы не слышали о семантической сегментации,

A) небольшой отказ от ответственности: эта статья может не подойти вам наилучшим образом, потому что я знаю достаточно о глубоком обучении, чтобы сказать некоторые вещи, но также

Б) просто посмотрите на .gif вверху этого поста, и вы интуитивно поймете, что такое сегментация. Пиксели, представляющие фотоны, попадающие в линзу и отражающиеся от определенного объекта, помечаются меткой, соответствующей этому объекту. Другой пример сегментации на следующем изображении:

Обзор основ

Другие классы задач компьютерного зрения (классификация, локализация, обнаружение):

Сети сегментации часто используют сверточные слои; где каждая свертка — это «фильтр» (тензор чисел, которые мы применяем к участкам изображения)

Для более полного понимания свертки просмотрите любое количество других статей/учебников. Обо всем этом я лично узнал из Стэнфордского курса Сверточные нейронные сети для визуального распознавания. Я прошел курс весной 2019 года с Джастином Джонсоном, но я уверен, что качество сегодня такое же или даже лучше. Стэнфорд, безусловно, является огромным магнитом для талантов, и Андрей, автор большинства исходных материалов для курса, теперь является старшим директором по искусственному интеллекту в Tesla. Если вы пройдете этот материал cs231n или другой такой же подробный онлайн-курс и полностью его поймете, оставшаяся часть этой статьи будет для вас прогулкой по парку.

Маска R-CNN

Mask R-CNN — это сеть, лежащая в основе кода, который я разместил ранее.

К. Он и др. (2017) выпустили модель Mask R-CNN, которая превзошла все предыдущие тесты по многим задачам MS COCO². Архитектура Faster R-CNN (S. Ren et al. (2015)) для обнаружения объектов использует сеть предложений регионов (RPN) для предложения кандидатов в ограничивающую рамку. RPN извлекает Region of Interest (RoI), а слой RoIPool вычисляет признаки из этих предложений, чтобы определить координаты ограничивающей рамки и класс объекта. Mask R-CNN — это более быстрая R-CNN с 3 выходными ветвями: первая вычисляет координаты ограничивающей рамки, вторая вычисляет связанный класс, а последняя вычисляет двоичную маску для сегментации объекта. Модель Mask R-CNN вычисляет бинарную маску для объекта для предсказанного класса (стратегия первого экземпляра) вместо классификации каждого пикселя в категорию (стратегия первой сегментации). Двоичная маска имеет фиксированный размер и генерируется FCN для заданной области интереса. Он также использует слой RoIAlign вместо RoIPool, чтобы избежать смещения из-за квантования координат RoI. Особенностью модели Mask R-CNN является ее потеря многозадачности, объединяющая потери координат ограничивающей рамки, прогнозируемого класса и маски сегментации. Модель пытается решить дополнительные задачи, что приводит к повышению производительности каждой отдельной задачи. Лучший Mask R-CNN использует ResNeXt (S. Xie et al. (2016)) для извлечения функций и архитектуры FPN. Он получил 37,1% AP в задаче сегментации COCO 2016 и 41,8% AP в задаче сегментации COCO 2017.

Метрика производительности

Задача обнаружения объектов является одновременно задачей регрессии и классификации. Прежде всего, чтобы оценить пространственную точность, нам нужно удалить блоки с низкой достоверностью (обычно модель выводит гораздо больше блоков, чем реальных объектов). Затем мы используем область Intersection over Union (IoU) со значением от 0 до 1. Она соответствует области перекрытия между предсказанным полем и полем достоверности. Чем выше IoU, тем лучше предсказанное местоположение ящика для данного объекта. Обычно мы сохраняем всех кандидатов ограничивающей рамки с IoU выше некоторого порога.

В бинарной классификации метрика Средняя точность (AP) представляет собой сводку кривой точности-отзыва, подробности представлены здесь. Обычно используемый показатель, используемый для задач обнаружения объектов, называется средняя средняя точность (mAP). Это просто среднее значение средней точности, рассчитанное по всем классам задачи. Метрика mAP позволяет избежать чрезмерной специализации в нескольких классах и, следовательно, слабых результатов в других.

Оценка mAP обычно вычисляется для фиксированного IoU, но большое количество ограничивающих рамок может увеличить количество боксов-кандидатов. Задача COCO разработала официальную метрику, позволяющую избежать чрезмерного количества блоков. Он вычисляет среднее значение оценок mAP для переменных значений IoU, чтобы наказывать большое количество ограничивающих рамок с неправильными классификациями.

Региональная сверточная сеть (R-CNN)

Первые модели интуитивно начинают с поиска области, а затем выполняют классификацию. В R-CNN метод выборочного поиска, разработанный J.R.R. Уйлингс и др. (2012) является альтернативой полному перебору на изображении для фиксации местоположения объекта. Он инициализирует небольшие области изображения и объединяет их в иерархическую группу. Таким образом, последняя группа представляет собой блок, содержащий все изображение. Обнаруженные области объединяются в соответствии с различными цветовыми пространствами и показателями сходства. Результатом является несколько предложений регионов, которые могут содержать объект путем слияния небольших регионов.

Модель R-CNN (Р. Гиршик и др., 2014) сочетает в себе метод выборочного поиска для обнаружения предложений регионов и глубокое обучение для обнаружения объекта в этих регионах. Размер каждого предложения региона изменяется, чтобы соответствовать входным данным CNN, из которых мы извлекаем вектор функций с 4096 измерениями. Вектор признаков передается в несколько классификаторов для получения вероятностей принадлежности к каждому классу. Каждый из этих классов имеет классификатор SVM, обученный делать выводы о вероятности обнаружения этого объекта для заданного вектора признаков. Этот вектор также передает линейный регрессор, чтобы адаптировать формы ограничивающей рамки для предложения региона и, таким образом, уменьшить ошибки локализации.

Модель CNN, описанная авторами, обучена на наборе данных ImageNet 2012 года для исходной задачи классификации изображений. Он настраивается с использованием предложений по регионам, соответствующих IoU больше 0,5, с помощью полей наземной достоверности. Выпускаются две версии: в одной версии используется набор данных PASCAL VOC 2012 года, а в другой — набор данных ImageNet 2013 года с ограничивающими рамками. Классификаторы SVM также обучаются для каждого класса каждого набора данных.

Лучшие модели R-CNN достигли оценки mAP 62,4% по сравнению с набором тестовых данных PASCAL VOC 2012 (увеличение на 22,0 балла по сравнению со вторым лучшим результатом в таблице лидеров) и 31,4% оценки mAP по сравнению с набором данных ImageNet 2013 года (увеличение на 7,1 балла по сравнению с 2013 годом). второй лучший результат в таблице лидеров).

Быстрая сверточная сеть на основе регионов (Fast R-CNN)

Цель быстрой сверточной сети на основе регионов (Fast R-CNN), разработанной R. Girshick (2015) заключается в сокращении затрат времени, связанных с большим количеством моделей, необходимых для анализа всех предложений регионов.

Основная CNN с несколькими сверточными слоями принимает все изображение в качестве входных данных вместо использования CNN для каждого предложения региона (R-CNN). Области интересов (RoI) обнаруживаются с помощью метода выборочного поиска, применяемого к созданным картам объектов. Формально размер карт объектов уменьшается с использованием слоя пула RoI, чтобы получить допустимую область интересов с фиксированной высотой и шириной в качестве гиперпараметров. Каждый слой области интереса передает полностью связанные слои¹, создавая вектор признаков. Вектор используется для прогнозирования наблюдаемого объекта с помощью классификатора softmax и для адаптации локализации ограничительной рамки с помощью линейного регрессора.

Лучшие быстрые R-CNN достигли оценки mAp 70,0% для набора тестовых данных PASCAL VOC 2007 г., 68,8% для набора тестовых данных PASCAL VOC 2010 г. и 68,4% для набора тестовых данных PASCAL VOC 2012 г.

Более быстрая сверточная сеть на основе регионов (Faster R-CNN)

Предложения регионов, обнаруженные с помощью метода выборочного поиска, по-прежнему были необходимы в предыдущей модели, которая требовала значительных вычислительных ресурсов. С. Рен и др. (2016) представили сеть предложений по регионам (RPN) для прямого создания предложений по регионам, прогнозирования ограничивающих рамок и обнаружения объектов. Более быстрая сверточная сеть на основе регионов (Faster R-CNN) представляет собой комбинацию между RPN и моделью Fast R-CNN.

Модель CNN принимает в качестве входных данных все изображение и создает карты характеристик. Окно размером 3x3 скользит по всем картам объектов и выводит вектор признаков, связанный с двумя полностью связанными слоями, один для блочной регрессии и один для блочной классификации. Предложения нескольких регионов предсказываются полностью связанными слоями. Фиксируется максимум k областей, поэтому выходные данные слоя регрессии блоков имеют размер 4k (координаты блоков, их высота и ширина), а выходные данные слоя классификации блоков имеют размер 2k («объективность» баллов чтобы обнаружить объект или нет в коробке). Предложения области k, обнаруженные скользящим окном, называются якорями.

Когда блоки привязки обнаружены, они выбираются путем применения порога к показателю «объективности», чтобы оставить только соответствующие блоки. Эти блоки привязки и карты объектов, вычисленные исходной моделью CNN, подают модель Fast R-CNN.

Faster R-CNN использует RPN, чтобы избежать метода выборочного поиска, ускоряет процессы обучения и тестирования и повышает производительность. RPN использует предварительно обученную модель набора данных ImageNet для классификации и точно настраивает набор данных PASCAL VOC. Затем сгенерированные предложения регионов с якорными полями используются для обучения Fast R-CNN. Этот процесс является итеративным.

Лучшие Faster R-CNN получили оценки mAP 78,8% по сравнению с набором данных теста PASCAL VOC 2007 года и 75,9% по сравнению с набором данных теста PASCAL VOC 2012 года. Они прошли обучение с наборами данных PASCAL VOC и COCO. Одна из этих моделей² работает в 34 раза быстрее, чем Fast R-CNN при использовании метода выборочного поиска.

Региональная полностью сверточная сеть (R-FCN)

Методологии Fast и Faster R-CNN заключаются в обнаружении предложений регионов и распознавании объекта в каждом регионе. Региональная полностью сверточная сеть (R-FCN), выпущенная компанией J. Дай и др. (2016) — это модель только со сверточными слоями³, обеспечивающая полное обратное распространение для обучения и логического вывода. Авторы объединили два основных шага в одну модель, чтобы одновременно учитывать обнаружение объекта (инвариант местоположения) и его положение (вариант местоположения).

Модель ResNet-101 принимает на вход исходное изображение. Последний слой выводит карты объектов, каждая из которых специализируется на обнаружении категории в каком-либо месте. Например, одна карта признаков специализируется на обнаружении кошки, другая — на банане и так далее. Такие карты объектов называются картами оценок с учетом положения, поскольку они учитывают пространственную локализацию конкретного объекта. Он состоит из k*k*(C+1) карт оценок, где k — размер карты оценок, а C — количество классов. Все эти карты образуют банк очков. По сути, мы создаем патчи, которые могут распознавать часть объекта. Например, для k=3 мы можем распознать 3x3 части объекта.

Параллельно нам нужно запустить RPN для создания области интереса (RoI). Наконец, мы разделяем каждую область интереса на ячейки и сверяем их с банком результатов. Если активировано достаточное количество этих частей, то патч голосует «да», я распознал объект.

Дж. Дай и др. (2016) детализировали пример, показанный ниже. На рисунках показана реакция модели R-FCN, специализирующейся на обнаружении человека. Для области интереса в центре изображения (рис. 3) субрегионы на картах признаков специфичны для паттернов, связанных с человеком. Таким образом, они голосуют за да, в этом месте есть человек. На рисунке 4 область интереса смещена вправо и больше не сосредоточена на человеке. Субрегионы на картах объектов не согласны с обнаружением человека, поэтому они голосуют нет, в этом месте нет человека.

Лучшие R-FCN достигли оценки mAP 83,6% для набора тестовых данных PASCAL VOC 2007 года и 82,0%, они были обучены с наборами данных PASCAL VOC 2007, 2012 годов и набором данных COCO. По набору тестовых данных COCO Challenge 2015 они получили 53,2% для IoU = 0,5 и 31,5% для официальной метрики mAP. Авторы заметили, что R-FCN в 2,5–20 раз быстрее, чем аналог Faster R-CNN.

Сверточная сеть на основе области маски (Mask R-CNN)

Еще одно расширение модели Faster R-CNN было выпущено компанией K. Он и др. (2017) добавление параллельной ветви к обнаружению ограничивающей рамки для прогнозирования маски объекта. Маска объекта — это его сегментация по пикселям на изображении. Эта модель превосходит современную в четырех задачах COCO: сегментация экземпляра, обнаружение ограничивающей рамки, обнаружение объекта и обнаружение ключевой точки.

Сверточная сеть на основе области маски (Mask R-CNN) использует более быстрый конвейер R-CNN с тремя выходными ветвями для каждого объекта-кандидата: метка класса, смещение ограничивающей рамки и маска объекта. Он использует сеть региональных предложений (RPN) для создания предложений ограничивающей рамки и одновременно создает три результата для каждой интересующей области (RoI).

Исходный слой RoIPool, используемый в Faster R-CNN, заменен слоем RoIAlign. Он удаляет квантование координат исходной области интереса и вычисляет точные значения местоположений. Слой RoIAlign обеспечивает масштабную эквивалентность и трансляционную эквивалентность предложениям региона.

Модель принимает изображение в качестве входных данных и передает его в сеть ResNeXt со 101 слоем. Эта модель похожа на ResNet, но каждый остаточный блок разрезается на более легкие преобразования, которые объединяются для добавления разреженности в блок. Модель обнаруживает области интереса, которые обрабатываются с использованием уровня RoIAlign. Одна ветвь сети связана с полносвязным слоем для вычисления координат ограничивающих прямоугольников и вероятностей, связанных с объектами. Другая ветвь связана с двумя сверточными слоями, последний вычисляет маску обнаруженного объекта.

Суммируются три функции потерь, связанные с каждой решаемой задачей. Эта сумма сведена к минимуму и дает отличные результаты, поскольку решение задачи сегментации улучшает локализацию и, следовательно, классификацию.

Mask R-CNN достиг оценки mAP 62,3% для IoU = 0,5, 43,4% для IoU = 0,7 и 39,8% для официальной метрики по набору данных COCO test-dev за 2016 год.

Заключение

На протяжении многих лет модели обнаружения объектов, как правило, делают вывод о локализации и классификации одновременно, чтобы иметь полностью дифференцируемую сеть. Таким образом, его можно тренировать от головы до хвоста с обратным распространением. Более того, между последними моделями сделан компромисс между высокой производительностью и возможностью прогнозирования в реальном времени.

Модели, представленные в этом сообщении в блоге, либо точны, либо быстры для вывода. Однако все они имеют сложную и тяжелую архитектуру. Например, модель YOLOv2 составляет около 200 МБ, а лучший NASNet — около 400 МБ. Уменьшение размера при сохранении той же производительности является активной областью исследований по внедрению моделей глубокого обучения в мобильные устройства. Некоторые подробности будут представлены в следующем посте.

¹: Вся архитектура основана на модели VGG16, поэтому она имеет 13 сверточных слоев и 3 полносвязных слоя.

²: Самый быстрый Faster R-CNN имеет архитектуру, вдохновленную моделью ZFNet, представленной M.D. Zeiler and R. Fergus (2013). Обычно используемый Faster R-CNN имеет архитектуру, аналогичную модели VGG16, и в 10 раз быстрее, чем Fast R-CNN.

³: За исключением последнего слоя, который является полносвязным слоем.

⁴: уменьшает пространство объектов по сравнению с предыдущими слоями.

⁵: Подробная информация представлена ​​в предыдущем сообщении в блоге.

Другие сети сегментации

Deeplab пример сети сегментации в PyTorch