[Из песочницы] Новая архитектура нейросети — EfficientDet
Привет, Хабр! представляю вашему вниманию перевод статьи «EfficientDet: Scalable and Efficient Object Detection» автора Mingxing Tan, Ruoming Pang, Quoc V. Le.
В последние годы был достигнут огромный прогресс в направлении более точного обнаружения объектов, в то же время современные детекторы объектов также становятся все более затратными. Затраты на вычислительные процессы и дорогостоящие вычисления сдерживают их развертывание во многих реальных приложениях, таких как робототехника и автомобили с автопилотом, где размер модели и задержка сильно ограничены. Учитывая эти ограниченные ресурсы реального мира, эффективность модели становится все более важной для обнаружения объектов.
Было много предыдущих работ, направленных на разработку более эффективных архитектур детекторов. Часто такие работы имеют тенденцию достигать большей эффективности, жертвуя точностью. Возникает естественный вопрос: можно ли построить масштабируемую архитектуру обнаружения с более высокой точностью и большей эффективностью при широком спектре ограничений ресурсов? Создатели EfficientDet считают, что нашли ответ на этот вопрос.
EfficientDet: масштабируемое и эффективное обнаружение объектов
В приведенной выше таблице видно, что EfficientDet
достигает гораздо более высокой точности при меньшем количестве вычислений,
чем другие детекторы.
Что же представляет из себя архитектура EfficientDet?
Общая архитектура EfficientDet в значительной степени соответствует парадигме одноступенчатых (one-stage) детекторов. За основу взята EfficientNet, предобученная на ImageNet, к ней приделан слой со взвешенной двунаправленной
пирамидой признаков (BiFPN), за которым идёт классовая и блочная сеть для генерации предсказаний класса объекта и ограничивающего прямоугольника соответственно.
Немного о BiFPN:
Идея создания двунаправленной пирамиды признаков появилась после изучения производительности и эффективности сетей для улучшения масштабирования: FPN, PANet и NAS-FPN. PANet достигает лучшей точности, чем FPN и NAS-FPN, но с затратами на большее количество параметров и вычислений. Чтобы повысить эффективность модели, предлагалось несколько оптимизаций для кросс-масштабных соединений:
- во-первых, удалить те узлы, которые имеют только один входной фронт. Интуиция проста: если у узла есть только один входной фронт без объединения функций, то он будет иметь меньший вклад в сеть объектов, которая нацелена на объединение различных функций. Это приводит к упрощенной PANet, как показано на рисунке 2 (е);
- Во-вторых, добавить дополнительное ребро из исходного ввода в выходной узел, если они находятся на одном уровне, чтобы объединить больше функций без дополнительных затрат, как показано на рисунке 2 (е);
- В-третьих, в отличие от PANet, который имеет только один путь сверху вниз и один путь снизу вверх, мы рассматриваем каждый двунаправленный (сверху вниз и снизу вверх) путь как один слой сети объектов и повторяем один и тот же уровень несколько раз, чтобы включить более высокоуровневый фьюжн.
Конструкция сети признаков —
(a) FPN вводит нисходящий путь для того чтобы сплавить многомасштабные характеристики от уровня 3 к 7 (P3 — P7);
(b) PANet добавляет дополнительный путь снизу вверх поверх FPN;
© NAS-FPN использует нейронную архитектуру
поиск для поиска нерегулярной топологии сети объектов;
(d) добавляет дорогие соединения от всех входных объектов к выходным объектам;
(e) упрощает панель путем удаления некоторых узлов;
(f) наш BiFPN с более лучшими компромиссами точности и эффективности.
В таблице показано, как начиная с RetinaNet (ResNet50 + FPN), энкодер был заменен на EfficientNet-B3, а затем базовый FPN был заменен на BiFPN, точность при каждом изменении выростала.
Также в EfficientDet используется хитрая фунцкия вместо SoftMax, в основе которой лежит метод быстрой нормализации слияния, который обеспечивает такую же точность, что и слияние на основе Softmax, но работает быстрее в 1,26-1,31 раза на графических процессорах.
Также была улучшена производительность в классификации изображений с помощью совместного увеличения всех размеров сети, глубины и входного разрешения.
На графике показано сравнение различных методов масштабирования. Все методы улучшают точность, но комплексный метод масштабирования обеспечивает лучшую компромиссную точность и эффективность.
На рисунке можно увидеть сравнение размера модели и задержки вывода:
задержка измеряется с размером батча 1 на одной и той же машине,
оснащенной графическим процессором Titan V и процессором Xeon. AN обозначает AmoebaNet + NAS-FPN, предобученную с аугментациями.
Вывод:
В результате систематического изучения различных вариантов проектирования архитектуры сети для эффективного обнаружения объектов предложена взвешенная двунаправленная функциональная сеть и настраиваемый метод составного масштабирования для повышения точности и эффективности. На основе этих оптимизаций было разработано новое семейство детекторов под названием EfficientDet, которые последовательно достигают большей точности и эффективности, чем предшествующий уровень техники, при широком спектре ограничений по ресурсам. В частности, наш EfficientDet-D7 достигает современной точности с меньшим количеством параметров и FLOPS, чем лучший из существующих детекторов. EfficientDet также в 3,2 раза быстрее на GPU и в 8,1 раза быстрее на CPU.
Источник: Mingxing Tan Ruoming Pang Quoc V. Le
Google Research, Brain Team «EfficientDet: Scalable and Efficient Object Detection»
arxiv.org/abs/1911.09070