DetectoRS - новейшее средство обнаружения объектов от Google Research



Книга DetectoRS - новейшее средство обнаружения объектов от Google Research

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

В июне 2020 команда Google Research совместно с университетом Джона Хопкинса разработала потрясающую архитектуру сетей пирамид признаков (Feature Pyramid Networks) и модуляцию существующих цепочек свёрточных операций. Эти открытия были опубликованы в документе DetectoRS: Detecting objects using Recursive Feature Pyramids and Switchable Atrous Convolutions [1] (ссылка на оригинал в конце статьи), которые можно использовать непосредственно в таких современных backbone-сетях (сетях извлечения признаков; далее просто backbone), как ResNets, ResNeXts и т.д.

В этом документе заявляется о достижении отличного качества обнаружения объектов/сегментации изображений в наборе данных COCO с показателем mAP 54.7% и mask AP 47.1% соответственно.

Здесь мы рассмотрим важнейшие пункты, описанные в вышеупомянутом документе.

Содержание

  1. Введение
  2. Предлагаемый рабочий процесс
  3. Результаты
  4. Заключение
  5. Ссылки

Введение

  • Недавнее внедрение механизма “смотреть и думать дважды” (thinking and looking twice mechanism) в современные двухэтапные детекторы объектов дало многообещающие результаты в задачах сегментации изображений и обнаружения объектов.
  • Детекторы объектов, такие как Faster R-CNN сначала на основе приоритетно-фоновой классификации обнаруживают предположения объектов, которые затем применяются для извлечения богатых семантических признаков, в свою очередь применяемых в задачах классификации и обнаружения.
  • Согласно порядку “смотреть и думать дважды” Cascade R-CNN разработан для уточнения полученных в первой стадии предположений и обогащения их многоступенчатой структурой, как показано на Рис. 1. По мере погружения в эту сеть последующие головные (head) классификаторы и детекторы обучаются на более продвинутых признаках объектов.
Рис. 1 Faster RCNN (слева), Cascade RCNN (справа)
  • Вдохновлённые этим авторы представили новейший подход для использования описанного механизма непосредственно в backbone-сети.
  • Сеть Hybrid Task Cascade они рассматривают как базовую архитектуру для сравнительного анализа.

HTC — это разновидность Cascade Faster R-CNN, имеющая дополнительный модуль для маски сегментации изображения. Визуально она представлена на Рис. 2.

Рис. 2 Cascade Mask R-CNN (вверху). Hybrid Task Cascade (внизу). Зелёными блоками обозначены маски объекта. Изменённый информационный поток HTC позволяет улучшить маски сегментации и ограничительные рамки с помощью чередующегося дизайна, в отличие от Cascade Mask R-CNN, где маски вычисляются параллельно на каждой стадии.

Предложение использовать переключаемые расширенные свёртки (Switchable Atrous Convolutions) и рекурсивные сети признаков (Recursive Feature Networks) на макро- и микроуровнях сети соответственно существенно улучшило современную сеть HTC при почти таком же времени вывода. [1]

Таблица 1. Вывод и сравнение показателей mAP между HTC и DetectoRS

Предлагаемый рабочий процесс

  • Авторы уделили больше внимания текущим уточнениям операций свёртки и сетям пирамид признаков (Feature Pyramid Networks) для внедрения заявленного режима в существующие модели.
  • Двумя существенными открытиями, отмеченными в документе, являются рекурсивные сети пирамид признаков (Recursive Feature Pyramid Networks) и переключаемые расширенные свёртки.
  • На макроуровне авторы представили новую версию пирамид признаков, присоединив прогнозы уровня нисходящего пути к восходящему в качестве цикла обратной связи, как показано на Рис. 3.
Рис. 3 Признак прогноза обратной связи отображается в восходящие слои (Источник: [1])

Разворачивая рекурсивную структуру в последовательную реализацию, мы получаем backbone (извлечение признаков) для детектора объектов, который просматривает изображения по два или более раза. Аналогично “головам” каскадного детектора в Cascade R-CNN, обученным с помощью более избирательных примеров, наша RFP рекурсивно расширяет FPN для генерации всё более мощных представлений [1].

  • На микроуровне авторы предлагают SAC (Switchable Atrous Convolutions), которые получают в качестве ввода карты признаков и свёртывают их, используя различные масштабы свёрток на основе информации глобального контекста и комбинируют вывод при помощи функций переключения, как показано на Рис. 4.
Рис. 4 Функции переключения для разного масштаба свёртки (Источник: [1])

Функции переключения пространственно-зависимы, то есть каждое местоположение карты признаков имеет разные переключатели для контроля вывода SAC. Чтобы использовать SAC в детекторе, мы преобразуем стандартные свёрточные слои 3х3 в восходящей backbone в SAC, что повышает производительность детектора с существенным запасом [1].

Рекурсивные сети пирамид признаков 

Рис. 5 Структура оригинальной FPN
  • Давайте ещё раз вернёмся к структуре основы FPN. Здесь B(i) означает восходящие цепочки субдискретизирующих слоёв, а F(i) восходящую операцию FPN.
  • B(i) получает карту признаков высокого разрешения x(i-1) и преобразует её в альтернативу x(i) низкого разрешения, как показано на Рис. 5.
  • Кроме того, карты прогнозов признаков f(i) передаются в головной отдел прогнозирования для дальнейшего классифицирования и регрессии. Нисходящий слой F(i) получает в качестве ввода восходящую карту признаков x(i) и альтернативу низкого разрешения f(i+1). Все f(i) — это наборы карт прогноза признаков. Их можно обобщить с помощью следующего уравнения:
Источник: [1]

Теперь в рекурсивной пирамиде признаков, как и предполагает название, каждый FPN слой добавляется в стэк T раз. Выходные карты прогноза f(i) на Рис. 5 используются в качестве циклов обратной связи в восходящих цепях субдискритезирующих слоёв B(i) (структуру циклов обратной связи можно представить на основе Рис. 3). Давайте увеличим это изображение, чтобы увидеть, как происходит процесс разворачивания в RFP.

Рис. 6 Двухступенчатая структура рекурсивной пирамиды признаков
  • Выше показано двухэтапное (t=2) разворачивание рекурсивной пирамиды признаков. Области на голубом фоне — это та же самая backbone (либо другая backbone, о чём мы узнаем из раздела деталей реализации), использованная для первой стадии восходящей FPN операции.
  • До повторной передачи карт прогноза признаков f(i) в backbone, они проходят через модуль ASPP. Этот процесс называется трансформацией R(i) карты признаков f(i). Данный проект сети можно обобщить для разных значений стадии составления стэка t при помощи следующего уравнения:
  • Здесь t ∈[2, 3, …, T] — это число необходимых операций развёртки. По умолчанию T = 2.
  • В визуализации RFP есть две основных предпосылки или детали преобразования: ASPP (Atrous Spatial Pyramid Pooling [расширенная пространственная дискретизация пирамиды]) и Fusion Module (модуль слияния).

Модуль ASPP для увеличения поля восприятия сети делает то же самое, но вместо стандартных свёрток или разных размеров ядра используются расширенные свёртки разного масштаба. Его реализацию в RFP можно визуально представить на основе приведённого ниже изображения.

Рис. 7 Структура модуля ASPP
  • Выводимые модулем ASPP признаки напрямую передаются в первый остаточный блок каждого слоя ResNet, который получает в качестве ввода как x(i), так и R(f(i)). Ниже приведено визуальное представление:
Рис. 8 Серым выделен первый остаточный предустановленный блок ResNet. RFP-признаки — это вывод модуля ASPP (Источник: [1])

Вес свёрточного слоя RFP 1х1 инициализируются значением 0, чтобы исключить возможное его влияние при использовании предварительно обученных весов для обучения последующих задач [1]. RFP-признаки применяются только на стадиях t = [2, …, T]. Первая стадия — это операция FPN по умолчанию.

  • Разные сочетания техник слияния признаков (feature fusion) и слоя внимания (attention layer) очень хорошо проявили себя в глубоких сетях при обнаружении разных объектов разного масштаба, продемонстрировав высокий показатель уверенности.
  • Для дальнейших экспериментов с информацией карт авторы добавили Fusion Module, который использует и совмещает карты признаков нисходящей операции FPN (f(i) на Рис. 6) из разных стадий FPN, определяя в их дизайне неявный шлюз особого внимания (attention gate). Ниже вы видите визуальное представление описанного:
Рис. 9 Слияние признаков с неявным механизмом шлюзом особого внимания (Источник: [1]

Модуль слияния признаков применяется только в развёрнутых шагах из t=[2, …, T]. Он берёт текущую только что полученную карту признаков f(i+1) нисходящей операции в развёрнутом шаге t + 1 и f(i) в шаге t соответственно. Сигмоида генерирует промежуточную карту внимания для представленных признаков и используется в агрегации обоих вводов. Выводом этого модуля будет более сфокусированная карта признаков f(i+1) на развёрнутом шаге t+1.

Какая логика кроется за структурой каскадной FPN (или рекурсивной пирамидой признаков)?

  • Нам известно, что при глубоком погружении в сеть семантическая информация об объектах увеличивается и система пытается успешно обучаться, продолжая учитывать глобальный контекст. Кроме того, более ранние слои играют ключевую роль в изучении новой информации, такой как границы и текстуры, выражающие соответствующие отличительные признаки.
  • Каскадное расположение и присоединение выводимых карт к структуре backbone (Рис. 8) на последующих развёрнутых стадиях помогает захватить упущенную информацию об объектах, удерживая во внимании поле восприятия и контекст при помощи ASPP, а также удалить ненужные значения активированных пикселей при помощи неявного слоя внимания на стадии слияния (Fusion Stage). 

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

joe-siyuan-qiao/DetectoRS
DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution …github.com

Переключаемые расширенные свёртки (SAC)

  • Расширенная свёртка — это операция, увеличивающая поле представления без дополнительных вычислений.
Рис. 10 Значение расширения увеличивается слева направо. С его увеличением экспоненциально увеличивается и поле представления (восприятия).
  • Поле восприятия — это важнейший принцип свёрточных нейронных сетей. Большой размер ядра может увеличить выходную контекстную информацию карты признаков за счёт дополнительных вычислений. 

Расширенная свёртка со значением расширения r вводит нулевое значение r — 1 между последующими значениями фильтров, эквивалентно увеличивая размер ядра фильтра k x k в knew = k + (k — 1)(r — 1), не увеличивая при этом число параметров и количество вычислений [1].

  • Как утверждается, свёрточное ядро 3х3 может давать то же поле восприятия, что и 5х5 с фиксированными вычислительными операциями умножения, сохраняя значение расширения как r = 2. 
  • Используя расширенные свёртки с увеличенным значением расширения иногда можно упустить захват локальной информации объектов при меньших масштабах.
  • Условные свёртки, такие как Selective Kernel Networks, Dynamic Convolutions и т.д. относятся к современным хорошо известным реализациям динамической подстройки поля восприятия, основанной на масштабах и контексте объектов. Однако эти реализации оказываются неэффективны при использовании архитектур предварительно обученных сетей.
  • Таким образом, авторы представили новую концепцию условных свёрток, которые можно использовать в качестве стартового варианта для предварительно обученных backbone-сетей. 
Рис. 11 Разбивка стандартной операции свёртки на переключаемые расширенные свёртки со значениями r=1 и r=3 соответственно. Веса совместно используются двумя свёртками (блокирующий механизм) (Источник: [1])
  • Кроме этого, в обзоре свёрток был также представлен очень интуитивный механизм переключения и контекста (Рис. 11), позволяющий генерировать эффективные результаты.
Рис. 12 Остаточный блок с узким местом
  • Все операции свёрток 3х3 в остаточных блоках ResNet изменены в расширенные свёртки с двумя разными значениями расширения, как показано на Рис .11.

Обе операции свёртки используют одни и те же веса w.

Уравнение выше показывает механизм переключения между двумя операциями свёртки. Обе они используют одинаковые веса с разными обучаемыми δw (Источник:[1]).

  • S(x) — это функция переключения, состоящая из слоя усреднённой подвыборки (average pooling layer) с ядром 5х5, сопровождаемым блоком свёртки. Этот переключатель может с помощью слоёв подвыборки собирать статистику карты признаков, которую затем можно использовать для обнаружения объектов при разных масштабах.

Значение, полученное из операции усреднённой выборки, определяет, надо ли увеличивать поле обзора или нет. Если эта операция не активирует пиксели карты признаков, тогда операция свёртки с увеличенным полем обзора (расширенной свёрткой) может оказаться более подходящей для получения лучшей статистики по объекту, если таковая присутствует.

  • Механизм глобального контекста также добавляется до и после каждого блока 3х3. Он представлен свёрточными ядрами 1х1 и глобальным слоем усреднённой подвыборки. Утверждается, что использование глобальной информации более эффективно стабилизирует переключение между двумя операциями свёртки функцией S(x).

Детекторы объектов обычно используют для инициализации весов предварительно обученные чекпоинты. Тем не менее для слоя SAC, преобразованного из стандартного свёрточного слоя, веса для увеличенного значения расширения отсутствуют. Поскольку объекты в разных масштабах с трудом обнаруживаются при использовании одних и тех же весов, логично инициализировать недостающие веса с помощью тех, которые используются в предварительно обученной модели [1]. 

∇w является компенсирующим параметром для расширенных свёрток и инициализируется как ноль. Отличия этих весов представляют собой небольшие значения точности для изначальных предварительно обученных весов, используемых в расширенных свёртках. 

Правильный поток выполнения SAC можно найти в коде по следующей ссылке:

joe-siyuan-qiao/DetectoRS
DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution …github.com

Результаты

  • Авторы использовали в качестве основы структуру Hybrid Task Cascade и для получения DetectoRS добавили поверх него две новейших конструкции.
  • В качестве backbone-архитектуры рассматривались варианты, такие как ResNet-50 и ResNeXt-101–32x4d. Кроме того, все операции свёртки 3х3 были замещены деформируемыми свёртками (Deformable Convolutions).
  • Значения смещения DCN и разница весов ∇w были установлены как 0.
  • Веса и смещения пре- и постконтекста свёрточных ядер 1×1 были установлены как 0 и 1 соответственно.
Таблица 1. Исследование абляции для разных вариаций параметров
  • Из таблицы видно, что разные веса backbone (веса B(t=1) ≠весам B(t=2)) и трёхэтапная развёртка (t=3) дали наилучшие результаты. 
  • Кроме того, использование механизма блокировки весов между двумя расширенными свёртками дало лучшие результаты, чем простое использование ∇w для обучения.
Рис. 13 Сравнение потерь при обучении между исходными показателями HTC и их новейшими альтернативами
Таблица 2. Сравнение DetectoRS с другими детекторами объектов в бенчмарке COCO-test dev

Официальный код на Github: [github]

Заключение

  • Авторы представили две новейшие техники: Switchable Atrous Convolutions (переключаемые расширенные свёртки) и Recursive Feature Pyramid Networks (рекурсивные сети пирамид признаков).
  • При этом они следовали принципу “посмотреть и подумать дважды”, позаимствованному из проектов таких сетей, как Cascade R-CNN, Hybrid Task Cascade и т.д., подключив цикл обратной связи в развёрнутые каскадные FPN.
  • Используя эти новейшие техники с HTC в качестве основы, разработчикам удалось превзойти качество всех существующих моделей обнаружения объектов, а также сегментации образов и паноптической сегментации с показателем COCO mAP 54.7%.

Ссылки (англ.)

[1] DetectoRS: Detecting Objects with Recursive Feature Pyramid and Switchable Atrous Convolution

[2] Hybrid Task Cascade

[3] Deformable Convolution Networks



85   0  
    Ничего не найдено.

Добавить ответ:
Отменить.