Перейти к содержанию

YOLOv7 против EfficientDet: Глубокое погружение в архитектуры обнаружения объектов в реальном времени

Эволюция обнаружения объектов характеризовалась постоянной борьбой между точностью и эффективностью. Двумя главными конкурентами в этой области являются YOLOv7, веха в семействе «You Only Look Once», выпущенная в 2022 году, и EfficientDet, масштабируемая архитектура Google, выпущенная в конце 2019 года. Хотя обе модели оказали значительное влияние на область компьютерного зрения, они подходят к решению проблемы обнаружения объектов с принципиально разными архитектурными философиями.

В этом руководстве представлено всестороннее техническое сравнение, которое поможет разработчикам, исследователям и инженерам выбрать подходящий инструмент для своих конкретных проектов в области компьютерного зрения. Мы рассмотрим их уникальные архитектуры, показатели производительности, методологии обучения и идеальные сценарии развертывания.

Обзор модели и истоки

Прежде чем углубляться в показатели, необходимо понять происхождение этих моделей.

YOLOv7: Мощный инструмент «Bag-of-Freebies»

Выпущенная в июле 2022 года, YOLOv7 границы возможностей детекторов реального времени. В ней были внедрены архитектурные инновации, предназначенные для оптимизации процесса обучения без увеличения затрат на вывод, концепция, которую авторы назвали «trainable bag-of-freebies» (обучаемый набор бесплатных функций).

Узнайте больше о YOLOv7

EfficientDet: Масштабируемый и эффективный

Разработанная командой Google , EfficientDet сосредоточилась на системном подходе к масштабированию. Она объединила новую взвешенную двунаправленную пирамидальную сеть (BiFPN) с методом составного масштабирования, который равномерно масштабирует разрешение, глубину и ширину.

Архитектурные различия

Основное различие между этими двумя моделями заключается в том, как они обрабатывают агрегацию признаков и масштабирование модели.

Архитектура 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)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
EfficientDet-d064034.610.23.923.92.54
EfficientDet-d164040.513.57.316.66.1
EfficientDet-d264043.017.710.928.111.0
EfficientDet-d364047.528.019.5912.024.9
EfficientDet-d464049.742.833.5520.755.2
EfficientDet-d564051.572.567.8633.7130.0
EfficientDet-d664052.692.889.2951.9226.0
EfficientDet-d764053.7122.0128.0751.9325.0

Критический анализ

  1. Задержка: YOLOv7 значительно быстрее YOLOv7 на GPU . Например, YOLOv7x достигает 53,1% mAP TensorRT ~11,5 мс, тогда как EfficientDet-d7 требует ~128 мс для достижения незначительно более высокого показателя 53,7% mAP. Это делает YOLOv7 в 10 раз быстрее в сценариях с высокой точностью.
  2. Эффективность: EfficientDet-d0 до d2 чрезвычайно легкие с точки зрения FLOP, что делает их подходящими для процессоров с очень низким энергопотреблением, где GPU недоступно. Однако при масштабировании до D4 и выше эффективность снижается по сравнению с YOLO .
  3. Точность: хотя 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 и аэрофотосъемки.

Узнайте больше о YOLO26

Заключение

YOLOv7 EfficientDet заняли прочное место в истории компьютерного зрения. EfficientDet представил элегантные принципы масштабирования, а YOLOv7 подход «bag-of-freebies» для обеспечения скорости в реальном времени. Однако для современных производственных конвейеров, требующих баланса производительности, простоты использования и универсальности, Ultralytics , олицетворяемая YOLOv7 более новой YOLO26, предлагает явное преимущество.

С меньшими требованиями к памяти во время обучения и беспроблемным экспортом в такие форматы, как ONNX и TensorRT, Ultralytics гарантируют, что ваш путь от набора данных до развертывания будет максимально гладким.

Дополнительная литература

  • Модели: Изучите другие архитектуры, такие как YOLOv8, YOLO11и RT-DETR.
  • Платформа: Используйте Ultralytics для управления наборами данных, обучения моделей и простого развертывания.
  • Руководства: узнайте о настройке гиперпараметров, чтобы добиться максимальной производительности ваших моделей.

Комментарии