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

YOLOv7 против EfficientDet: техническое сравнение архитектур object detection в реальном времени

Обнаружение объектов остается краеугольным камнем компьютерного зрения, стимулируя инновации в областях, начиная от автономного вождения и заканчивая медицинской визуализацией. Выбор правильной архитектуры имеет решающее значение для балансировки точности, скорости и вычислительных ресурсов. Этот анализ представляет собой глубокое погружение в YOLOv7 и EfficientDet, две влиятельные модели, которые сформировали ландшафт обнаружения в реальном времени.

Архитектурный дизайн и философия

Принципиальное различие между этими двумя архитектурами заключается в их целях оптимизации. EfficientDet, разработанная командой Google Brain, уделяет первостепенное внимание эффективности параметров и операциям с плавающей запятой (FLOPs). Она использует масштабируемую архитектуру, которая позволяет пользователям линейно обменивать ресурсы на точность. В отличие от нее, YOLOv7, созданная авторами YOLOv4 (Chien-Yao Wang et al.), фокусируется на максимизации скорости inference на GPU-оборудовании, сохраняя при этом современную точность.

EfficientDet: Комбинированное масштабирование и BiFPN

EfficientDet построен на основе EfficientNet, который использует метод составного масштабирования для равномерного масштабирования разрешения, глубины и ширины сети. Ключевым нововведением в EfficientDet является Bi-directional Feature Pyramid Network (BiFPN). В отличие от традиционных FPN, BiFPN обеспечивает простое и быстрое многомасштабное слияние признаков, вводя обучаемые веса для изучения важности различных входных признаков. Эта конструкция делает EfficientDet очень эффективным для edge computing приложений, где память и FLOP строго ограничены.

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

YOLOv7: E-ELAN и повторная параметризация модели

YOLOv7 представляет Extended Efficient Layer Aggregation Network (E-ELAN). Эта архитектура контролирует кратчайшие и длиннейшие пути градиента для улучшения способности сети к обучению, не разрушая исходный путь градиента. Кроме того, YOLOv7 использует ре-параметризацию модели — технику, при которой сложная структура обучения упрощается в оптимизированную структуру inference. Это приводит к созданию модели, устойчивой во время обучения, но чрезвычайно быстрой во время развертывания на GPU.

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

Анализ производительности: Метрики и бенчмарки

При сравнении производительности выбор часто зависит от оборудования, на котором будет производиться развертывание. EfficientDet превосходно работает в средах с низким энергопотреблением (CPU), тогда как YOLOv7 разработан для высокой пропускной способности инференса на GPU.

Модельразмер
(пиксели)
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

Основные выводы

  • Задержка и эффективность (Latency vs. Efficiency): В то время как EfficientDet-d0 использует значительно меньше параметров (3.9M), YOLOv7l предлагает гораздо более высокий mAP (51.4%) с чрезвычайно низкой задержкой на GPU (6.84 мс). Это демонстрирует превосходное использование мощности параллельной обработки YOLOv7.
  • Масштабируемость: EfficientDet обеспечивает детальный путь масштабирования от d0 до d7, позволяя разработчикам точно настраивать размер модели для конкретных ограничений CPU.
  • Высокая точность: В верхнем диапазоне EfficientDet-d7 достигает отличной точности (53,7% mAP), но ценой высокой задержки (~128 мс). YOLOv7x достигает сопоставимой точности (53,1% mAP) при менее чем десятой части времени inference (11,57 мс) на GPU T4.

Рекомендации по аппаратному обеспечению

Если ваша цель развертывания — универсальный CPU или мобильный процессор, то более низкое количество FLOP у моделей EfficientDet (в частности, d0-d2) часто приводит к увеличению времени автономной работы и улучшению терморегуляции. Для периферийных GPU (например, NVIDIA Jetson) или облачных серверов инференса YOLOv7 обеспечивает значительно более высокую частоту кадров для анализа видео в реальном времени.

Методологии и оптимизация обучения

Стратегии обучения для этих моделей отражают их архитектурные цели.

YOLOv7 использует подход "Bag-of-Freebies", включающий методы, которые увеличивают стоимость обучения, но повышают точность, не влияя на скорость inference. Ключевые методы включают в себя:

  • Глубокий контроль от грубого к точному: Вспомогательная головка используется для контроля средних слоев сети со стратегиями назначения меток, которые направляют вспомогательную головку иначе, чем ведущая головка.
  • Динамическое назначение меток: Модель адаптирует назначение объектов ground truth якорям во время обучения, улучшая сходимость.

EfficientDet в значительной степени полагается на AutoML для поиска оптимальной архитектуры backbone и сети признаков. Его обучение обычно включает в себя:

  • Стохастическая глубина: Случайное удаление слоев во время обучения для улучшения обобщения.
  • Активация Swish: Гладкая немонотонная функция, которая стабильно превосходит ReLU в более глубоких сетях.

Преимущество Ultralytics

Несмотря на то, что YOLOv7 и EfficientDet являются мощными, ландшафт компьютерного зрения быстро развивается. Экосистема Ultralytics предлагает современные альтернативы, такие как YOLO11, которые синтезируют лучшие черты предыдущих архитектур, одновременно улучшая опыт разработчиков.

Простота использования и экосистема

Одной из основных проблем с репозиториями, ориентированными на исследования (такими как исходная кодовая база EfficientDet), является сложность интеграции. Ultralytics решает эту проблему с помощью унифицированного пакета Python. Разработчики могут обучать, проверять и развертывать модели всего несколькими строками кода, при поддержке подробной документации и активной поддержки сообщества.

Универсальность и баланс производительности

Модели Ultralytics не ограничиваются ограничивающими рамками. Они изначально поддерживают instance segmentation, оценку позы, классификацию и detect ориентированных объектов (OBB). С точки зрения производительности, современные версии YOLO (такие как YOLOv8 и YOLO11) часто достигают более высокой точности на параметр, чем EfficientDet, и более быстрого вывода, чем YOLOv7, обеспечивая идеальный баланс для реального развертывания.

Память и эффективность обучения

Модели Ultralytics YOLO славятся своей эффективностью использования памяти. Они обычно требуют меньше памяти CUDA во время обучения по сравнению с детекторами на основе Transformer или более старыми масштабируемыми архитектурами. Это позволяет исследователям обучать современные модели на оборудовании потребительского класса. Кроме того, перенос обучения упрощается благодаря высококачественным предварительно обученным весам, доступным для немедленной загрузки.

from ultralytics import YOLO

# Load the latest YOLO11 model
model = YOLO("yolo11n.pt")

# Train on a custom dataset with a single command
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference with high speed
predictions = model("https://ultralytics.com/images/bus.jpg")

Спецификации моделей

YOLOv7

EfficientDet

Реальные примеры использования

Когда следует выбирать EfficientDet

EfficientDet остается сильным кандидатом для встроенных систем, где ускорение GPU недоступно.

  • Мобильные приложения: Приложения Android/iOS, выполняющие обнаружение объектов на CPU.
  • Удаленные IoT-датчики: Устройства с батарейным питанием, отслеживающие изменения окружающей среды, где важен каждый милливатт вычислений.

Когда следует выбирать YOLOv7

YOLOv7 превосходно работает в высокопроизводительных промышленных условиях.

  • Автономное вождение: Обнаружение пешеходов и транспортных средств с высокой частотой кадров для обеспечения безопасности.
  • Умные города: Одновременный анализ нескольких видеопотоков для управления трафиком на периферийных серверах.

Заключение

Обе архитектуры представляют собой важные вехи в компьютерном зрении. EfficientDet продемонстрировал мощь составного масштабирования для эффективности параметров, в то время как YOLOv7 расширил границы возможного с помощью оптимизации задержки GPU.

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

Изучите другие модели

Если вам интересно сравнить другие архитектуры object detection, рассмотрите следующие ресурсы:


Комментарии