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 состоит из трёх основных компонентов:
- Backbone (базовая сеть) — EfficientNet-B0–B7. EfficientNet — это семейство свёрточных сетей, оптимизированных с помощью нейронного поиска архитектуры (NAS) и равномерного масштабирования по трём измерениям. Backbone извлекает многоуровневые признаки из входного изображения.
- BiFPN (Bidirectional Feature Pyramid Network) — модифицированная пирамида признаков, которая объединяет информацию с разных уровней детализации (от мелких до крупных объектов). BiFPN использует двунаправленные соединения (снизу вверх и сверху вниз) и взвешенное суммирование признаков с обучаемыми весами, что позволяет сети автоматически определять важность каждого уровня признаков.
- 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).