Сравнение EfficientDet и YOLOv9#
Ландшафт компьютерного зрения формировался благодаря постоянным прорывам в разработке нейронных сетей. При выборе модели крайне важно найти правильный баланс между вычислительной эффективностью и точностью обнаружения. Google EfficientDet задал высокую планку в 2019 году, представив масштабируемые архитектуры, а выпущенная в 2024 году YOLOv9 расширила возможности обнаружения объектов с помощью программируемой информации о градиентах (PGI).
В этом руководстве представлен подробный технический обзор этих двух моделей, а также современной платформы Ultralytics YOLO26, которая предлагает надежное сквозное решение, оптимизированное для производственных сред.
Архитектуры моделей и инновации#
Понимание внутренней механики EfficientDet и YOLOv9 необходимо для определения оптимальных вариантов их применения.
EfficientDet: составное масштабирование и BiFPN#
Разработанная Google Research, EfficientDet ориентирована на систематическое масштабирование и эффективное объединение признаков. В качестве базовой сети она использует EfficientNet и представляет новую архитектуру сети признаков.
- Авторы: Mingxing Tan, Ruoming Pang и Quoc V. Le
- Организация: Google
- Дата: 20 ноября 2019 года
- Ссылки: Arxiv, GitHub
Ключевые особенности архитектуры: EfficientDet активно использует двунаправленную сеть пирамиды признаков (BiFPN), которая обеспечивает простое и быстрое объединение признаков разных масштабов. Кроме того, в ней применяется метод составного масштабирования, равномерно изменяющий разрешение, глубину и ширину сети. Несмотря на высокую для своего времени точность, EfficientDet сильно зависит от устаревших сред TensorFlow, что усложняет современные конвейеры развертывания.
YOLOv9: устранение информационного узкого места#
Разработанная исследователями из Academia Sinica, YOLOv9 решает проблему деградации информации при прохождении данных через глубокие нейронные сети.
- Авторы: Chien-Yao Wang и Hong-Yuan Mark Liao
- Организация: Institute of Information Science, Academia Sinica
- Дата: 21 февраля 2024 г.
- Ссылки: Arxiv, GitHub, Документация
Ключевые особенности архитектуры: YOLOv9 внедряет программируемую информацию о градиентах (PGI) для обеспечения вспомогательного обучения, благодаря чему критически важные данные сохраняются для надежного обновления весов сети. В ней также используется обобщенная сеть эффективной агрегации слоев (GELAN) для максимальной эффективности параметров. Несмотря на эти усовершенствования, YOLOv9 по-прежнему требует подавления немаксимумов (NMS) на этапе постобработки, что увеличивает задержку.
Сравнение производительности#
При оценке этих моделей анализ эмпирических данных помогает определить, какая архитектура обеспечивает наилучший компромисс для конкретных требований к оборудованию.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| EfficientDet-d0 | 640 | 34.6 | 10.2 | 3.92 | 3.9 | 2.54 |
| EfficientDet-d1 | 640 | 40.5 | 13.5 | 7.31 | 6.6 | 6.1 |
| EfficientDet-d2 | 640 | 43.0 | 17.7 | 10.92 | 8.1 | 11.0 |
| EfficientDet-d3 | 640 | 47.5 | 28.0 | 19.59 | 12.0 | 24.9 |
| EfficientDet-d4 | 640 | 49.7 | 42.8 | 33.55 | 20.7 | 55.2 |
| EfficientDet-d5 | 640 | 51.5 | 72.5 | 67.86 | 33.7 | 130.0 |
| EfficientDet-d6 | 640 | 52.6 | 92.8 | 89.29 | 51.9 | 226.0 |
| EfficientDet-d7 | 640 | 53.7 | 122.0 | 128.07 | 51.9 | 325.0 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
Критический анализ#
YOLOv9 обеспечивает скачок в скорости на целое поколение. Например, YOLOv9e достигает 55.6% mAP при задержке TensorRT 16.77 мс. Для сравнения, EfficientDet-d7 показывает более низкий mAP — 53.7%, но страдает от огромной задержки (128.07 мс), что делает его крайне сложным для развертывания в потоках видео реального времени.
Варианты применения и рекомендации#
Выбор между EfficientDet и YOLOv9 зависит от конкретных требований проекта, ограничений развертывания и предпочтений в отношении экосистемы.
Когда стоит выбрать EfficientDet#
EfficientDet — хороший выбор для:
- Конвейеров Google Cloud и TPU: систем, тесно интегрированных с Google Cloud Vision API или инфраструктурой TPU, где EfficientDet имеет нативную оптимизацию.
- Исследований составного масштабирования: академических бенчмарков, посвящённых изучению влияния сбалансированного масштабирования глубины, ширины и разрешения сети.
- Мобильного развертывания через TFLite: проектов, которым необходим экспорт в TensorFlow Lite для Android или встраиваемых устройств под управлением Linux.
Когда стоит выбрать YOLOv9#
YOLOv9 рекомендуется для:
- Исследований информационного узкого места: академических проектов, изучающих архитектуры Programmable Gradient Information (PGI) и Generalized Efficient Layer Aggregation Network (GELAN).
- Исследований оптимизации потока градиентов: работ, посвященных пониманию и устранению потери информации в слоях глубоких сетей во время обучения.
- Сравнительного тестирования обнаружения с высокой точностью: сценариев, где высокие результаты YOLOv9 на тесте COCO нужны как эталон для архитектурных сравнений.
Когда выбирать Ultralytics (YOLO26)#
Для большинства новых проектов Ultralytics YOLO26 предлагает лучшее сочетание производительности и удобства для разработчиков:
- Развертывания на периферийных устройствах без NMS: приложений, требующих стабильного вывода с низкой задержкой без сложной постобработки с подавлением немаксимумов.
- Сред без GPU: устройств без выделенного ускорения GPU, где до 43% более быстрый вывод YOLO26 на CPU дает решающее преимущество.
- Обнаружения мелких объектов: сложных сценариев, таких как аэрофотосъемка с дронов или анализ данных IoT-сенсоров, где ProgLoss и STAL значительно повышают точность обнаружения крошечных объектов.
Преимущество Ultralytics: выбор YOLO26#
Хотя YOLOv9 и EfficientDet проложили путь, разработчикам, которым нужна действительно современная платформа, готовая к использованию в production, стоит обратить внимание на модели Ultralytics YOLO, в частности на недавно выпущенную YOLO26.
Платформа Ultralytics обеспечивает непревзойденное удобство использования, объединяя мощные локальные скрипты обучения с облачным интерфейсом. YOLO26 представляет собой масштабную переработку дизайна моделей, делая более старые архитектуры устаревшими для многих коммерческих приложений.
Технические особенности YOLO26#
- Сквозная архитектура без NMS: YOLO26 полностью устраняет узкие места постобработки. Благодаря отказу от подавления немаксимумов графы развертывания унифицируются и работают быстрее на периферийных AI-чипах.
- До 43% более быстрый вывод на CPU: Модель тщательно оптимизирована для встраиваемых устройств, что делает ее значительно быстрее YOLOv9 и EfficientDet при отсутствии GPU.
- Оптимизатор MuSGD: Этот гибридный оптимизатор интегрирует инновации LLM в AI для компьютерного зрения, стабилизирует процессы обучения и позволяет моделям быстрее сходиться при меньших затратах ресурсов.
- Низкие требования к памяти: В отличие от архитектур с большим количеством Transformer или неоптимизированных CNN, YOLO26 минимизирует потребление памяти CUDA во время обучения, позволяя использовать большие размеры пакетов на оборудовании потребительского класса.
- ProgLoss + STAL: Улучшенная конструкция функции потерь значительно повышает точность обнаружения небольших объектов, что делает YOLO26 идеальным решением для аэрофотосъемки и сетей IoT.
- Удаление DFL: Упрощенная структура обеспечивает беспрепятственное преобразование в форматы для мобильного развертывания.
К другим надежным вариантам в экосистеме Ultralytics относятся YOLO11 и YOLOv8, которые также обеспечивают универсальность для нескольких задач, включая сегментацию экземпляров и оценку позы.
Упрощенное обучение с Python SDK#
Модели Ultralytics ориентированы на удобство для разработчиков. Обучение современной модели теперь занимает всего несколько строк Python.
from ultralytics import YOLO
# Initialize the state-of-the-art YOLO26 model
model = YOLO("yolo26n.pt")
# Train with optimized memory usage and built-in augmentations
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Validate the model's performance easily
metrics = model.val()
print(f"Validation mAP: {metrics.box.map}")Практические применения#
Выбор между этими архитектурами во многом зависит от целевой среды развертывания.
- Устаревшие облачные развертывания: EfficientDet пользовалась популярностью для пакетной обработки в автономных облачных средах, где требовалась высокая точность, а строгие ограничения реального времени отсутствовали.
- Академические исследования: YOLOv9 остается интересным выбором для исследователей, расширяющих теоретические возможности CNN и анализирующих потоки градиентов через слои сети.
- Периферийные вычисления и IoT: YOLO26 доминирует в реальных приложениях. Ее конвейер без NMS и возможности ориентированных ограничивающих рамок (OBB) делают ее превосходным вариантом для анализа городского трафика, мониторинга товарных запасов в розничной торговле и инспекций с помощью дронов, обеспечивая непревзойденный баланс высокой точности и быстрого вывода.