НАУКА О ДАННЫХ В РЕАЛЬНОМ МИРЕ

Битва скорости и точности: метаархитектуры обнаружения одиночных и двойных выстрелов - Allegro AI

Путешествие героя к серии CodeBase Deep Learning - Часть IIA

Авторы Гэл Хьямс и Дэн Маловани
Allegro AI Team

Глубокие нейронные сети для задач обнаружения объектов - зрелая область исследований. Тем не менее, правильный компромисс между скоростью и точностью при построении данной модели для целевого варианта использования - это постоянное решение, которое командам необходимо решать с каждой новой реализацией. Несмотря на то, что многие модели обнаружения объектов были исследованы на протяжении многих лет, однократный подход считается оптимальным вариантом компромисса между скоростью и точностью. В этом посте (часть IIA) мы объясняем ключевые различия между однократным (SSD) и двухэтапным подходом. С момента выпуска оригинального SSD было сделано много улучшений. Однако для ясности и простоты мы сосредоточились на исходной мета-архитектуре SSD. В следующем посте (часть IIB) мы покажем вам, как использовать предварительно обученные сети извлечения функций Torchvision для создания вашей собственной модели SSD.

Зачем вообще нужна эта модель SSD?

В задачах обнаружения объектов модель направлена ​​на рисование плотных ограничивающих рамок вокруг желаемых классов на изображении вместе с каждой меткой объекта. См. Рисунок 1 ниже.

Существует два распространенных мета-подхода к захвату объектов: двухзарядное и однократное обнаружение.

Модель двухэтапного обнаружения состоит из двух этапов: предложение региона, затем классификация этих регионов и уточнение прогноза местоположения. Одноразовое обнаружение пропускает этап предложения региона и сразу дает окончательную локализацию и прогноз содержания. Варианты Faster-RCNN являются популярным выбором для использования в моделях с двумя выстрелами, в то время как одноразовый мультибокс-детектор (SSD) и YOLO являются популярными одноразовыми методами. Архитектура YOLO хоть и быстрее SSD, но менее точна.

R-FCN (Полностью сверточные сети на основе регионов) - еще одна популярная двухэтапная мета-архитектура, вдохновленная Faster-RCNN. При таком подходе сеть предложений региона (RPN) предлагает кандидатуры RoI (интересующий регион), которые затем применяются на картах оценок. Все обучаемые слои сверточны и вычисляются для всего изображения. Здесь используются общие вычисления почти всех различных предложенных регионов. Вычислительные затраты на RoI незначительны по сравнению с Fast-RCNN. R-FCN - это своего рода гибрид одноразового и двухзарядного подхода. Если вы действительно посмотрите на это, вы увидите, что это на самом деле двухшаговый подход с некоторыми преимуществами и недостатками одиночного выстрела.

В то время как модели двукратного обнаружения обеспечивают лучшую производительность, однократное обнаружение находится в оптимальном соотношении производительности и скорости / ресурсов. Кроме того, SSD обучается быстрее и быстрее выводит данные, чем детектор с двумя выстрелами. Более быстрое обучение позволяет исследователю эффективно создавать прототипы и экспериментировать без значительных затрат на облачные вычисления. Что еще более важно, свойство быстрого вывода обычно является требованием, когда дело касается приложений реального времени. Поскольку он требует меньше вычислений, он, следовательно, потребляет гораздо меньше энергии на одно предсказание. На этот раз и энергоэффективность открывает новые возможности для широкого спектра применений, особенно на конечных устройствах, и позиционирует SSD как предпочтительный метод обнаружения объектов для многих применений.

В последнее время подходы иерархической деконволюции, такие как деконволюционный SSD (DSSD) и сеть пирамид функций (FPN), стали необходимостью для любой архитектуры обнаружения объектов. Суффикс иерархической деконволюции поверх исходной архитектуры позволяет модели достичь превосходной производительности обобщения для объектов разных размеров, что значительно улучшает обнаружение мелких объектов. Поскольку наша цель здесь - подробно рассказать о различиях между детекторами с одним и двумя выстрелами и о том, как легко создать собственный SSD, мы решили использовать классический SSD и FasterRCNN.

Сравнение однократного обнаружения объекта и двухкратного обнаружения объекта

Быстрее-RCNN:

Более быстрое обнаружение R-CNN происходит в два этапа. Первый этап называется предложение региона. Изображения обрабатываются экстрактором признаков, таким как ResNet50, до выбранного промежуточного сетевого уровня. Затем небольшая полностью связанная сеть скользит по слою объектов, чтобы предсказать предложения бокса, не зависящие от класса, относительно сетки якорей, мозаичных по пространству, масштабу и соотношению сторон (рисунок 3).

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

Хотя Faster-RCNN позволяет избежать дублирования вычислений, разделяя вычисление карты характеристик между этапом предложения и этапом классификации, существует вычисление, которое должно выполняться один раз для каждого региона. Таким образом, время работы Faster-RCNN зависит от количества регионов, предложенных RPN.

SSD:

Мета-архитектура SSD вычисляет локализацию за один последовательный сетевой проход. Подобно Fast-RCNN, алгоритм SSD устанавливает сетку якорей на изображении, разбитую по пространству, масштабу и рамкам соотношения сторон (рисунок 4). В отличие от двухэтапных методов, модель дает вектор прогнозов для каждого из блоков в последовательном сетевом проходе. Этот вектор содержит оценку достоверности для каждого класса, смещение локализации и изменение размера.

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

Многомасштабное вычисление позволяет SSD обнаруживать объекты на карте функций с более высоким разрешением по сравнению с FasterRCNN. FasterRCNN обнаруживает по одной карте функций и чувствителен к компромиссу между разрешением карты функций и зрелостью функций. SSD можно использовать в обоих мирах. При размере изображения 512 × 512 обнаружение FasterRCNN обычно выполняется по карте функций 32 × 32 пикселя (conv5_3), в то время как прогнозирование SSD начинается с карты 64 × 64 (conv4_3) и продолжается на 32 × 32, 16 × 16 все способ 1 × 1 до 7 карт объектов (при использовании экстрактора признаков VGG-16).

Разделение классификаторов для каждой карты функций приводит к неудачной тенденции SSD к отсутствию мелких объектов. Обычно модель не видит достаточно мелких экземпляров каждого класса во время обучения. Увеличение масштаба изображения, которое сжимает или увеличивает обучающие изображения, помогает решить эту проблему обобщения. С другой стороны, SSD имеет тенденцию предсказывать большие объекты более точно, чем FasterRCNN. На рисунке 4 показаны прогнозы привязки для различных карт функций. Почему SSD быстрее, чем Faster-RCNN?

Почему SSD быстрее, чем Faster-RCNN?

Как видно на рис. 6 ниже, архитектура с одним выстрелом быстрее, чем архитектура с двумя выстрелами, при сопоставимой точности. Есть две причины, по которым однократный подход обеспечивает превосходную эффективность:

  1. Сеть региональных предложений и расчет классификации и локализации полностью интегрированы. Это минимизирует избыточные вычисления.
  2. Single-shot устойчив к любому количеству объектов на изображении, а его вычислительная нагрузка зависит только от количества привязок. Однако вычисления Faster-RCNN выполняются повторно для каждой области, что приводит к увеличению вычислительной нагрузки с увеличением количества областей, предложенных RPN. Это количество ограничено гиперпараметром, который для хорошей работы устанавливается достаточно высоким, чтобы вызвать значительные накладные расходы. R-FCN лишь частично минимизирует эту вычислительную нагрузку. На рисунке 6 показано, что помимо присущего твердотельным накопителям таланта избегать избыточных вычислений, эта мета-архитектура успешно использует эффективные экстракторы функций, такие как MobileNet, и значительно превосходит двухшаговые архитектуры, когда дело доходит до получения от таких быстрых моделей.

Почему SSD менее точен, чем Faster-RCNN?

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

Двухступенчатые детекторы легко справляются с этим дисбалансом. RPN сужает количество возможных местоположений объектов, отфильтровывая большинство фоновых экземпляров. Вдобавок к этому эвристика выборки, такая как онлайн-анализ сложных примеров, снабжает детектор второго этапа двухступенчатой ​​модели сбалансированными выборками переднего и заднего плана. Напротив, слой обнаружения одноэтапной модели подвергается воздействию гораздо большего набора возможных местоположений объектов, большинство из которых являются фоновыми экземплярами, которые плотно покрывают пространственные положения, масштабы и соотношения сторон во время обучения. Хотя двухэтапные эвристические методы классификатора также могут применяться, они неэффективны для обучения однократной модели, поскольку в процедуре обучения по-прежнему преобладают легко классифицируемые фоновые примеры. Подход Focal Loss концентрирует потери на обучении на сложных случаях, которые, как правило, являются примерами переднего плана. При этом он работает, чтобы сбалансировать несбалансированное соотношение фон / передний план и выводит одноразовый детектор в зал славы точности модели обнаружения объектов.

Итак, какой вердикт: однократным или двухзарядным?

Понятно, что одноразовые детекторы с SSD в качестве их представителя более рентабельны по сравнению с двухзарядными детекторами. Они достигают лучшей производительности в случае использования ограниченных ресурсов. Более того, когда обе метаархитектуры используют быстрый и легкий инструмент для извлечения функций, SSD превосходит модели с двумя выстрелами. С другой стороны, когда вычислительные ресурсы не являются проблемой, двухзвенные детекторы полностью используют экстракторы тяжелых признаков и обеспечивают более надежные результаты. Основная гипотеза относительно этого вопроса заключается в том, что разница в точности заключается в дисбалансе переднего и заднего плана во время тренировки. Использование таких методов, как потеря фокуса, может помочь справиться с этим дисбалансом и сделать одноразовый детектор вашим выбором мета-архитектуры даже с точки зрения точности.

Следующая публикация этой серии, часть IIB, представляет собой учебный код, в котором мы используем полученные здесь знания и демонстрируем, как реализовать мета-архитектуру SSD поверх модели Torchvision.

Первоначально опубликовано на https://allegro.ai 8 марта 2020 г.