EfficientDet и YOLOv9#
Развитие компьютерного зрения определяют непрерывные прорывы в проектировании нейронных сетей. При выборе модели крайне важно найти баланс между вычислительной эффективностью и точностью обнаружения. В 2019 году EfficientDet от Google задала высокую планку, представив масштабируемые архитектуры, а выпущенная в 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
- Организация: Институт информатики, 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.2 | 26.7 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.1 | 76.8 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.5 | 102.8 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 58.1 | 192.5 |
Критический анализ#
YOLOv9 обеспечивает скачок в скорости на целое поколение. Например, YOLOv9e достигает 55.6% mAP при задержке TensorRT 16.77ms. Для сравнения, EfficientDet-d7 показывает более низкий показатель mAP — 53.7%, а его задержка огромна (128.07ms), что делает развертывание модели для видеопотоков в реальном времени крайне сложным.
Сценарии использования и рекомендации#
Выбор между EfficientDet и YOLOv9 зависит от конкретных требований твоего проекта, ограничений развертывания и предпочтений в отношении экосистемы.
Когда стоит выбрать EfficientDet#
EfficientDet — хороший выбор для:
- Google Cloud и конвейеры TPU: Системы, тесно интегрированные с API Google Cloud Vision или инфраструктурой TPU, где EfficientDet оптимизирована изначально.
- Исследования составного масштабирования: Академические исследования и сравнительное тестирование, посвящённые влиянию сбалансированного масштабирования глубины, ширины и разрешения сети.
- Развертывание на мобильных устройствах через LiteRT: Проекты, для которых требуется экспорт в LiteRT (ранее TensorFlow Lite) для Android или встраиваемых устройств с Linux.
Когда выбирать YOLOv9#
YOLOv9 рекомендуется для таких задач:
- Исследование информационного узкого места: Академические проекты, изучающие архитектуры программируемой информации о градиентах (PGI) и обобщённой эффективной сети агрегации слоёв (GELAN).
- Исследования оптимизации потока градиентов: Работы, посвящённые изучению и устранению потери информации в глубоких слоях сети во время обучения.
- Сравнительное тестирование точного детектирования: Сценарии, в которых высокая результативность YOLOv9 на тестах COCO нужна в качестве ориентира для сравнения архитектур.
Когда выбирать Ultralytics (YOLO26)#
Для большинства новых проектов Ultralytics YOLO26 предлагает оптимальное сочетание производительности и удобства разработки:
- Развертывание на периферийных устройствах без NMS: Приложения, которым необходим стабильный инференс с низкой задержкой без усложнения постобработки подавлением немаксимумов.
- Среды только с CPU: Устройства без выделенного ускорителя GPU, где до 43% более быстрый инференс YOLO26 на CPU даёт решающее преимущество.
- Обнаружение небольших объектов: Сложные сценарии, например съёмка с дронов или анализ данных IoT-датчиков, где ProgLoss и STAL заметно повышают точность обнаружения крошечных объектов.
Преимущества Ultralytics: выбор YOLO26#
Хотя YOLOv9 и EfficientDet проложили путь к новым решениям, разработчикам, которым нужна по-настоящему современная и готовая к эксплуатации платформа, стоит рассмотреть модели Ultralytics YOLO, в частности недавно выпущенную YOLO26.
Платформа Ultralytics отличается исключительной простотой использования: она объединяет мощные локальные скрипты обучения с облачным интерфейсом. YOLO26 существенно обновляет архитектуру моделей, делая более старые архитектуры устаревшими для многих коммерческих задач.
Основные технические особенности YOLO26#
- Сквозная архитектура без NMS: необязательная сквозная голова YOLO26 (
nms=False) устраняет узкие места постобработки. Отказ от подавления немаксимумов объединяет графы развертывания и изначально обеспечивает более высокую скорость на периферийных AI-чипах. - Инференс на CPU до 43% быстрее: YOLO26 оптимизирована для встраиваемых устройств; YOLO26n на CPU с ONNX работает до 43% быстрее YOLO11n, когда GPU недоступен.
- Оптимизатор MuSGD: этот гибридный оптимизатор переносит инновации из области LLM в компьютерное зрение и стабилизирует обучение, позволяя моделям быстрее сходиться с меньшими затратами ресурсов.
- Низкие требования к памяти: в отличие от архитектур с большим количеством 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) делают ее оптимальным решением для анализа дорожного движения в умных городах, контроля запасов в рознице и инспекций с помощью дронов, обеспечивая непревзойденный баланс высокой точности и быстрого инференса.