YOLOv7 против EfficientDet: Глубокое погружение в архитектуры обнаружения объектов в реальном времени
Эволюция обнаружения объектов характеризовалась постоянной борьбой между точностью и эффективностью. Двумя главными конкурентами в этой области являются YOLOv7, веха в семействе «You Only Look Once», выпущенная в 2022 году, и EfficientDet, масштабируемая архитектура Google, выпущенная в конце 2019 года. Хотя обе модели оказали значительное влияние на область компьютерного зрения, они подходят к решению проблемы обнаружения объектов с принципиально разными архитектурными философиями.
В этом руководстве представлено всестороннее техническое сравнение, которое поможет разработчикам, исследователям и инженерам выбрать подходящий инструмент для своих конкретных проектов в области компьютерного зрения. Мы рассмотрим их уникальные архитектуры, показатели производительности, методологии обучения и идеальные сценарии развертывания.
Обзор модели и истоки
Прежде чем углубляться в показатели, необходимо понять происхождение этих моделей.
YOLOv7: Мощный инструмент «Bag-of-Freebies»
Выпущенная в июле 2022 года, YOLOv7 границы возможностей детекторов реального времени. В ней были внедрены архитектурные инновации, предназначенные для оптимизации процесса обучения без увеличения затрат на вывод, концепция, которую авторы назвали «trainable bag-of-freebies» (обучаемый набор бесплатных функций).
- Авторы: Чен-Яо Ванг, Алексей Бочковский и Хонг-Юань Марк Ляо
- Организация: Институт информатики, Academia Sinica, Тайвань
- Дата: 2022-07-06
- Ссылки:Статья на ArXiv | Репозиторий GitHub
EfficientDet: Масштабируемый и эффективный
Разработанная командой Google , EfficientDet сосредоточилась на системном подходе к масштабированию. Она объединила новую взвешенную двунаправленную пирамидальную сеть (BiFPN) с методом составного масштабирования, который равномерно масштабирует разрешение, глубину и ширину.
- Авторы: Мингксинг Тан, Руоминг Панг и Куок В. Ле
- Организация:Google Research
- Дата: 2019-11-20
- Ссылки:Статья на ArXiv | Репозиторий GitHub
Архитектурные различия
Основное различие между этими двумя моделями заключается в том, как они обрабатывают агрегацию признаков и масштабирование модели.
Архитектура YOLOv7
YOLOv7 расширенную сеть агрегации эффективных слоев (E-ELAN). Эта архитектура позволяет модели обучаться более разнообразным особенностям за счет контроля над самыми короткими и самыми длинными градиентными путями, что повышает обучаемость сети без разрушения исходного градиентного пути.
Ключевые архитектурные особенности включают:
- Масштабирование модели: в отличие от составного масштабирования EfficientDet, YOLOv7 одновременно YOLOv7 атрибуты архитектуры (глубину и ширину) в моделях, основанных на конкатенации.
- Вспомогательная головка от грубой к тонкой: использует глубокий надзор, при котором вспомогательная головка генерирует грубые метки для обучения, а ведущая головка занимается тонкой настройкой.
- Перепараметризация: YOLOv7 слои RepConv, которые упрощают сложные структуры времени обучения до стандартных сверток для более быстрого вывода, что является важной техникой для вывода в реальном времени.
Архитектура EfficientDet
EfficientDet построен на основе магистрали EfficientNet и представляет BiFPN.
Ключевые архитектурные особенности включают:
- BiFPN: взвешенная двунаправленная сеть пирамиды признаков, которая позволяет легко и быстро объединять признаки в нескольких масштабах. Она учитывает важность различных входных признаков и повторно применяет нисходящее и восходящее объединение признаков в нескольких масштабах.
- Комбинированное масштабирование: простой, но эффективный коэффициент, который совместно масштабирует ширину, глубину и разрешение сети, позволяя создавать семейство моделей (от D0 до D7), ориентированных на различные ограничения ресурсов.
Сравнение производительности
При сравнении производительности мы рассматриваем среднюю среднюю точность (mAP) на наборе COCO в сопоставлении со скоростью вывода.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| 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 |
Критический анализ
- Задержка: YOLOv7 значительно быстрее YOLOv7 на GPU . Например, YOLOv7x достигает 53,1% mAP TensorRT ~11,5 мс, тогда как EfficientDet-d7 требует ~128 мс для достижения незначительно более высокого показателя 53,7% mAP. Это делает YOLOv7 в 10 раз быстрее в сценариях с высокой точностью.
- Эффективность: EfficientDet-d0 до d2 чрезвычайно легкие с точки зрения FLOP, что делает их подходящими для процессоров с очень низким энергопотреблением, где GPU недоступно. Однако при масштабировании до D4 и выше эффективность снижается по сравнению с YOLO .
- Точность: хотя EfficientDet-d7 обеспечивает впечатляющую точность, вычислительные затраты являются непомерно высокими для приложений, работающих в режиме реального времени. YOLOv7 более оптимальный баланс, сохраняя высокую точность без ущерба для возможностей работы в режиме реального времени.
Обучение и экосистема
Экосистема, окружающая модель, определяет ее практическую ценность для разработчиков. Именно в этом заключается существенная ценность Ultralytics .
Экосистема EfficientDet
EfficientDet в основном основан на TensorFlow . Несмотря на свою мощность, его интеграция в современные конвейеры часто сопряжена с необходимостью навигации по сложным зависимостям.
- Сложность: активации BiFPN и swish могут быть сложнее оптимизировать на некоторых периферийных ускорителях по сравнению со стандартными свертками.
- Обслуживание: Многие репозитории обновляются реже по сравнению с быстрым циклом выпуска обновлений YOLO .
Преимущества экосистемы Ultralytics
Одним из выдающихся преимуществ использования Ultralytics , таких как YOLOv7 и более новых версий), является хорошо поддерживаемая экосистема.
- Простота использования: Ultralytics унифицированный Python , который упрощает обучение, валидацию и развертывание.
- Эффективность обучения: YOLO эффективно используют стандартное GPU , сокращая время и затраты, связанные с обучением на пользовательских наборах данных.
- Требования к памяти: по сравнению со старыми двухступенчатыми детекторами или тяжелыми моделями на основе трансформаторов, YOLOv7 требует меньше CUDA во время обучения, что позволяет использовать более крупные пакеты данных на потребительском оборудовании.
Оптимизированное обучение с Ultralytics
Обучение модели YOLO с помощью API python не составляет труда. Вот как можно начать процесс обучения:
from ultralytics import YOLO
# Load a model
model = YOLO("yolov7.pt") # load a pretrained model
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
Рекомендации по вариантам использования
Когда выбирать YOLOv7
YOLOv7 является предпочтительным выбором для приложений реального времени, где задержка имеет решающее значение.
- Автономное вождение: detect пешеходов, транспортные средства и знаки с высокой частотой кадров, обеспечивая безопасное принятие решений.
- Робототехника: Идеально подходит для интеграции компьютерного зрения в робототехнику, позволяя роботам перемещаться и взаимодействовать с динамичной средой.
- Видеоаналитика: одновременная обработка нескольких видеопотоков для обеспечения безопасности или аналитики в розничной торговле без необходимости использования мощных вычислительных кластеров.
Когда следует выбирать EfficientDet
EfficientDet остается актуальным для специфических сценариев с низким энергопотреблением или там, где размер модели (в МБ) является основным ограничением, а не задержка.
- Мобильные приложения: Более компактные варианты, такие как D0-D1, подходят для мобильных устройств, где объем памяти строго ограничен.
- Устаревшие системы: В средах, уже сильно оптимизированных для экосистем TensorFlow/AutoML, EfficientDet может предложить более простую интеграцию.
- Академические исследования: полезно для изучения эффектов масштабирования соединений или методов слияния функций, когда вывод в реальном времени не является основной целью.
Будущее: переход на YOLO26
Хотя YOLOv7 эффективным инструментом, область компьютерного зрения быстро развивается. Для разработчиков, которые стремятся к максимальной производительности, модель YOLO26, выпущенная в январе 2026 года, представляет собой передовое решение.
YOLO26 основан на наследии предыдущих версий YOLO и имеет сквозную конструкцию NMS. Это устраняет необходимость в постобработке с помощью Non-Maximum Suppression (NMS), упрощая процессы развертывания и повышая скорость вывода.
Ключевые преимущества YOLO26 по сравнению с YOLOv7 EfficientDet включают:
- MuSGD Optimizer: гибрид SGD Muon, привносящий инновации в области обучения LLM в компьютерное зрение для более стабильного обучения и более быстрой конвергенции.
- Оптимизация по краям: благодаря удалению Distribution Focal Loss (DFL) YOLO26 работает на 43 % быстрее на CPU, что делает его еще более подходящим для пограничных устройств, чем EfficientDet.
- Повышенная универсальность: помимо обнаружения, YOLO26 предлагает передовые возможности в области оценки позы, сегментации экземпляров и ориентированных ограничительных рамок (OBB) — и все это в рамках одной платформы.
- ProgLoss + STAL: Улучшенные функции потери обеспечивают заметные улучшения в распознавании мелких объектов, что имеет решающее значение для IoT и аэрофотосъемки.
Заключение
YOLOv7 EfficientDet заняли прочное место в истории компьютерного зрения. EfficientDet представил элегантные принципы масштабирования, а YOLOv7 подход «bag-of-freebies» для обеспечения скорости в реальном времени. Однако для современных производственных конвейеров, требующих баланса производительности, простоты использования и универсальности, Ultralytics , олицетворяемая YOLOv7 более новой YOLO26, предлагает явное преимущество.
С меньшими требованиями к памяти во время обучения и беспроблемным экспортом в такие форматы, как ONNX и TensorRT, Ultralytics гарантируют, что ваш путь от набора данных до развертывания будет максимально гладким.
Дополнительная литература
- Модели: Изучите другие архитектуры, такие как YOLOv8, YOLO11и RT-DETR.
- Платформа: Используйте Ultralytics для управления наборами данных, обучения моделей и простого развертывания.
- Руководства: узнайте о настройке гиперпараметров, чтобы добиться максимальной производительности ваших моделей.