Открыть сервисСервис

EfficientDet

EfficientDet — это семейство свёрточных нейронных сетей для задачи обнаружения объектов (object detection), разработанное исследователями Google Research (Mingxing Tan, Ruoming Pang, Quoc V. Le) и представленное в 2020 году. EfficientDet объединяет в себе масштабируемую архитектуру EfficientNet в качестве базовой сети (backbone) и новый механизм BiFPN (Bidirectional Feature Pyramid Network) для агрегации признаков, что позволяет достигать высокого баланса между точностью и вычислительной эффективностью. Семейство включает модели от EfficientDet-D0 (самая лёгкая) до EfficientDet-D7 (самая тяжёлая и точная), которые масштабируются по всем трём измерениям: глубина сети, ширина каналов и разрешение входного изображения.

История

Разработка EfficientDet стала ответом на растущую потребность в эффективных архитектурах для обнаружения объектов, которые могли бы работать в условиях ограниченных вычислительных ресурсов (мобильные устройства, встраиваемые системы) и одновременно обеспечивать высокую точность. До появления EfficientDet лучшие модели, такие как YOLOv3, RetinaNet, Mask R-CNN, часто требовали значительных вычислительных затрат для достижения высоких показателей mAP (mean Average Precision). Исследователи Google предложили подход, основанный на систематическом масштабировании всех компонентов сети, что позволило получить семейство моделей с предсказуемым соотношением производительности и ресурсов.

Статья «EfficientDet: Scalable and Efficient Object Detection» была опубликована на конференции CVPR 2020. В ней авторы продемонстрировали, что EfficientDet-D7 превосходит по точности (mAP) все существовавшие на тот момент модели, включая NAS-FPN (Neural Architecture Search Feature Pyramid Network) и AmoebaNet, при значительно меньшем количестве параметров и операций с плавающей запятой (FLOPs). Например, EfficientDet-D7 достигал 52,2 mAP на наборе данных COCO, что было выше, чем у NAS-FPN (48,5 mAP), при этом используя в 4 раза меньше FLOPs.

Архитектура

Архитектура EfficientDet состоит из трёх основных компонентов:

  1. Backbone (базовая сеть) — EfficientNet-B0–B7. EfficientNet — это семейство свёрточных сетей, оптимизированных с помощью нейронного поиска архитектуры (NAS) и равномерного масштабирования по трём измерениям. Backbone извлекает многоуровневые признаки из входного изображения.
  2. BiFPN (Bidirectional Feature Pyramid Network) — модифицированная пирамида признаков, которая объединяет информацию с разных уровней детализации (от мелких до крупных объектов). BiFPN использует двунаправленные соединения (снизу вверх и сверху вниз) и взвешенное суммирование признаков с обучаемыми весами, что позволяет сети автоматически определять важность каждого уровня признаков.
  3. Head (головка) — два параллельных свёрточных слоя для классификации объектов (классы) и регрессии ограничивающих рамок (bounding boxes). Головка применяется к каждому уровню пирамиды BiFPN.

Масштабирование

Ключевая идея EfficientDet — совместное масштабирование всех трёх компонентов. Авторы ввели составной коэффициент масштабирования φ, который определяет:

  • Глубину backbone (количество слоёв) — пропорционально φ.
  • Ширину backbone (количество каналов) — пропорционально 1.35^φ.
  • Разрешение входного изображения — пропорционально 1.15^φ.
  • Глубину BiFPN (количество повторений пирамиды) — пропорционально φ.
  • Количество каналов в BiFPN — пропорционально 1.35^φ.

Это позволяет получить семейство моделей от D0 (φ=0, 224×224 пикселя, 3,9 млн параметров) до D7 (φ=7, 1536×1536 пикселя, 52 млн параметров). Масштабирование является дискретным: для каждого φ авторы подобрали оптимальные параметры на основе эмпирических экспериментов.

BiFPN

BiFPN отличается от классических Feature Pyramid Networks (FPN) и PANet (Path Aggregation Network) следующими особенностями:

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

Характеристики

Основные характеристики EfficientDet:

  • Точность (mAP) — на наборе данных COCO (Common Objects in Context) модель EfficientDet-D7 достигает 52,2 mAP, что на момент публикации было рекордным показателем среди всех моделей обнаружения объектов.
  • Вычислительная эффективность — EfficientDet-D0 требует всего 0,4 миллиарда FLOPs, что в 28 раз меньше, чем у YOLOv3 (65,5 млрд FLOPs), при аналогичной точности (33,8 mAP против 33,0 mAP). EfficientDet-D7 использует 325 млрд FLOPs, что значительно меньше, чем у NAS-FPN (около 1,2 трлн FLOPs).
  • Количество параметров — от 3,9 млн (D0) до 52 млн (D7). Для сравнения, Mask R-CNN с ResNet-101 имеет около 60 млн параметров, но значительно уступает по точности.
  • Время инференса — на GPU Tesla V100 модель D0 обрабатывает изображение за 10 мс, D7 — за 153 мс. Это делает EfficientDet пригодным для реального времени (real-time) в лёгких версиях.

Применение

EfficientDet нашёл широкое применение в задачах компьютерного зрения, где требуется обнаружение объектов на изображениях и видео:

  • Автономные транспортные средства — обнаружение пешеходов, транспортных средств, дорожных знаков.
  • Робототехника — навигация, манипуляция объектами.
  • Медицинская диагностика — обнаружение опухолей, аномалий на рентгеновских снимках, КТ, МРТ.
  • Системы видеонаблюдения — детекция лиц, подозрительных предметов, подсчёт людей.
  • Промышленный контроль качества — обнаружение дефектов на производственных линиях.
  • Сельское хозяйство — подсчёт растений, обнаружение вредителей.

Благодаря масштабируемости, EfficientDet может использоваться как на мощных серверных GPU, так и на мобильных устройствах (например, через TensorFlow Lite или ONNX Runtime).

Сравнение с другими моделями

EfficientDet превзошёл многие популярные модели по соотношению точность/скорость:

  • YOLOv3 — EfficientDet-D0 при равной точности (33,8 mAP) использует в 28 раз меньше FLOPs. EfficientDet-D3 (45,8 mAP) превосходит YOLOv3 (33,0 mAP) на 12,8 mAP.
  • RetinaNet — EfficientDet-D3 (45,8 mAP) превосходит RetinaNet-ResNet-101 (39,1 mAP) при меньшем количестве параметров (12 млн против 56 млн).
  • Mask R-CNN — EfficientDet-D7 (52,2 mAP) превосходит Mask R-CNN с ResNeXt-101 (42,0 mAP) на 10,2 mAP.
  • NAS-FPN — EfficientDet-D7 (52,2 mAP) превосходит NAS-FPN (48,5 mAP) при в 4 раза меньших FLOPs.

Однако, начиная с 2021 года, появились более современные архитектуры, такие как YOLOv4, YOLOv5, YOLOv8, DETR (Detection Transformer) и DINO, которые в некоторых конфигурациях превзошли EfficientDet по точности или скорости. Тем не менее, EfficientDet остаётся эталоном для задач, где критично соотношение точности и вычислительных затрат.

Критика

Основные замечания к EfficientDet:

  • Сложность реализации — BiFPN и составное масштабирование требуют более сложного кода по сравнению с простыми пирамидами признаков, что затрудняет адаптацию в некоторых фреймворках.
  • Зависимость от EfficientNet — архитектура жёстко привязана к backbone EfficientNet, что ограничивает возможность замены на другие сети (например, MobileNet или ResNet) без потери эффективности.
  • Регрессия точности на малых объектах — несмотря на высокую общую точность, некоторые исследования отмечают, что EfficientDet может уступать специализированным моделям (например, YOLOv4) на задачах с очень мелкими объектами.
  • Отсутствие поддержки сегментации — в отличие от Mask R-CNN, EfficientDet изначально не предназначен для сегментации экземпляров (instance segmentation), хотя может быть адаптирован.

Интересные факты

  • EfficientDet был разработан той же командой, что и EfficientNet, и использует аналогичный принцип составного масштабирования.
  • BiFPN в EfficientDet использует взвешенное суммирование признаков, что является одной из первых реализаций обучаемых весов для пирамид признаков.
  • Модель EfficientDet-D0 может работать на устройствах с ограниченной памятью, например, на Raspberry Pi, при условии использования оптимизированных библиотек (TensorFlow Lite, OpenVINO).
  • В 2020 году EfficientDet занял первое место в лидерборде COCO по точности (mAP) среди всех моделей, не использующих ансамблирование.

Источники

  • Tan, M., Pang, R., & Le, Q. V. (2020). EfficientDet: Scalable and Efficient Object Detection. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR).
  • Tan, M., & Le, Q. V. (2019). EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks. Proceedings of the International Conference on Machine Learning (ICML).
  • Lin, T. Y., et al. (2017). Feature Pyramid Networks for Object Detection. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR).
  • Redmon, J., & Farhadi, A. (2018). YOLOv3: An Incremental Improvement. arXiv preprint arXiv:1804.02767.
  • Ghiasi, G., et al. (2019). NAS-FPN: Learning Scalable Feature Pyramid Architecture for Object Detection. Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR).
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru