Sparse R-CNN: новый вид детекторов от создателей TikTok

Emil Bogomolov
LabelMe
Published in
5 min readDec 3, 2020

--

Сегодня рассмотрим метод, предложенный исследователями из сразу из четырех организаций, одна из которых ByteDance AI Lab (компания известна приложением TikTok). Они предложили метод детекции объектов на фото, который называется Sparse R-CNN (не путать с ранее уже существовавшим Sparse R-CNN, который использовал sparse-свёртки в 3D Сomputer Vision для сегментации объектов на сканах датасета ScanNet).

Новый метод достигает почти state-of -the-art performance на задаче детектирования объектов и при этом использует только не плотные и обучаемые bounding box proposals.

Релевантные исследования

Проведем небольшой обзор существующих методов детекции и их классификации относительно работы с bounding box proposals.

Плотный метод

Один из широко используемых подходов — это одностадийные детекторы: они в один шаг предсказывают класс и координаты по якорным bounding box, плотно покрывающим картинку различными масштабами и различными соотношениями сторон. Представителями этого класса являются SSD, YOLO, и т.п.

Рассмотрим особенности на примере YOLO. Конечной целью этого алгоритма является предсказание класса объекта на картинке и координат bounding box, который соответствует объекту. Любой из этих bounding box’ов характеризуется следующими параметрами:

  1. координаты центра (bx, by)
  2. ширина (bw)
  3. высота (bh)
  4. лейбл c, соответствующий классу из обучающей выборки (например: машина, светофор или пешеход).

Дополнительно к этому обучается параметр pc, который соответствует вероятности того, что внутри bounding box находится объект переднего плана (т.е. возможна ситуация, что P(C=”Машина”) = 0.8, но pc = 0.1, в этом случае такой объект будет отметаться)

Такой метод является плотным, поскольку он не нацелен на поиск “интересных” регионов (regions of interest) на картинке для дальнейшего предсказания, а сразу даёт оценку для каждой заданной области. В случае с YOLO, картинка разбивается сеткой на 19×19 областей, но в общем случае таких областей может быть столько же, сколько пикселей на картинке, т.е. W×H. Для каждой клетки в сетке выполняется предсказание k bounding box (например, 5). Исходя из этого получается огромное число W×H×k областей на картинке, для каждой из которых одностадийный детектор должен сделать предсказание.

Для каждой клетки в сетке и для каждого ббокса предсказываются bx, by, w, h, c, pc

Переходный dense-to-sparse метод

Существуют также двустадийные детекторы, в своей архитектуре они опираются на пропозалы, сгенерированные с помощью RPN, которая была предложена в статье Faster R-CNN. Такие детекторы доминируют в в качестве уже несколько лет.

Благодаря RPN внутри нейронной сети, последующие части получают разреженный (т.е. не плотный) набор proposals-объектов переднего плана из плотного набора, которые обрабатываются в последующих слоях.

Эти пропозалы получаются таким же способом как и случае одностадийных детекторов, но теперь класс объекта c на этом этапе не предсказывается, а остаётся долько objectness score , т.е. pc. После получения плотного набора proposals, они фильтруются, используя objectness score и меру наложения друг на друга. Затем этот разреженный набор используется для уточнения координат и классов объектов.

Разреженный метод

Авторы этой статьи категоризуют принцип их новой Sparse R-CNN, как расширение существующей парадигмы перехода от основательно плотного набора proposals к dense-to-sparse подходу, новым принципом основательно разреженным.

Здесь изображено как отличается текущий от текущих одно и двустадийных детекторов

В обозреваемой работе не используется RPN, её функция заменена генерацией небольшого количества proposals (авторы указывают число 100). Эти bounding box’ы получены с помощью двух обучаемых частей нейронной сети и называются авторами proposal boxes и proposal features.

Первая часть состоит из 4х значений (x,y,h,w) для каждого пропозала, вторая из векторов длиной 256, в которых закодировано внутреннее представление содержимого этих bounding box’ов (постановка объекта на сцене, его форма, др. характеристики). Обучаемые пропозалы используются как разумная статистика для дальнейшего улучшения предсказаний, а обучаемые proposal features реализуют механизм внимания (attention mechanism). Этот подход вдохновлен более ранней статьёй DETR, где он так же был использован для задачи детекции. Непосредственное применение механизма внимания происходит в голове нейронной сети, которую авторы называют dynamic instance interactive head, рассмотрим ее далее.

Особенности предложенной модели

Как сказано в названии статьи, предлагаемая модель end-to-end, и её архитектура довольно элегантная. Она состоит из FPN-генератора фичей из изображений, двух упомянутых выше proposal boxes и proposal features, а также dynamic instance interactive head, которая является основным вкладом данной статьи в усовершествование архитектур нейронных сетей.

Dynamic instance interactive head

К данным N bounding box proposals, Sparse R-CNN сначала применяет RoIAlign, чтобы извлечь фичи из FPN для каждого региона из пропозалов. Каждый такой регион затем подается в уникальную динамически генерируемую голову для того, чтобы получить точные координаты bounding box’а и класс объекта. Голова генерируется с помощью proposal feature для этого конкретного пропозала.

Proposal features используются как веса для свёртки: на картинке выше они обозначены как “Params.”. Фичи каждого региона RoI обрабатываются с помощью соответствующих ему proposal features внутри свёртки. Таким способом области фичей, с наибольшей информацией об объектах переднего плана, вносят большую лепту в итоговые предсказания. Модуль self-attention встроен в эту динамическую голову: он отвечает за установление связей между объектами на фото и влияет на итоговое предсказание с помощью упомянутой свёртки.

Основные результаты

Авторы приводят несколько сравнительных таблиц, которые демонстрируют производительность нового метода. Sparse R-CNN сравнивается с известными представителями мира детекции: RetinaNet, Faster R-CNN и DETR в двух вариациях бэкбона ResNet50 и ResNet100.

По данным таблицы можно судить, что Sparse R-CNN превосходит RetinaNet и Faster R-CNN в обоих конфигурациях R50 и R100, но он также показывает довольно близкие результаты в сравнении с DETR-based архитектурами.

Согласно авторам статьи, модель DETR на практике dense-to-sparse, набором разреженных запросов она взаимодействует с глобальными (а значит плотными) фичами картинки. Отсюда вытекает новизна статьи в сравнении с DETR.

На картинке выше можно качественно оценить результат работы модели на картинках из COCO Dataset. В первом столбце белым цветом обозначены выученные proposals: они генерируются уникально для каждой новой картинки. В следующих столбцах изображены окончательные, улучшенные из proposals bounding box’ы. Они отличаются, поскольку алгоритм итеративно улучшается: здесь изображены результаты с нескольких таких шагов.

Show me the code!

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

Детали реализации этого метода вы можете найти в репозитории авторов, который базируется на коде модели DETR из статьи группы FAIR и detectron2: https://github.com/PeizeSun/SparseR-CNN

--

--

Emil Bogomolov
LabelMe

Deep Learning enthusiast working as a Research Engineer at ADASE Group at Skoltech University