EfficientDet против YOLOv5: подробное техническое сравнение
Область обнаружения объектов стремительно развивается, что обусловлено постоянной необходимостью балансировать между точностью и вычислительной эффективностью. Две архитектуры, оказавшие значительное влияние на эту область, - EfficientDet, разработанная командой Google Brain, и YOLOv5созданная компанией Ultralytics. Хотя обе модели нацелены на эффективное detect объектов на изображениях, они подходят к проблеме с принципиально разными философиями проектирования и архитектурными стратегиями.
В этом руководстве приводится подробное техническое сравнение, которое поможет разработчикам, исследователям и инженерам выбрать подходящий инструмент для решения конкретных задач компьютерного зрения.
EfficientDet: Масштабируемый и эффективный
Выпущенная в конце 2019 года система EfficientDet была разработана с целью оптимизации точности и эффективности одновременно. Она представила концепцию "Compound Scaling" для обнаружения объектов - метод, который равномерно масштабирует разрешение, глубину и ширину опорной сети.
- Авторы: Мингксинг Тан, Руоминг Панг и Куок В. Ле
- Организация:Google Brain
- Дата: 20 ноября 2019 г.
- Arxiv:EfficientDet: Масштабируемое и эффективное обнаружение объектов
Основные моменты архитектуры
EfficientDet построен на базе EfficientNet и представляет новую сеть слияния признаков, названную BiFPN (Bidirectional Feature Pyramid Network). В отличие от традиционных сетей Feature Pyramid Networks (FPN), которые ограничивают поток информации способом "сверху вниз", BiFPN позволяет осуществлять сложный двунаправленный поток информации между различными слоями разрешения.
В модели также используется Compound Scaling, что позволяет пользователям выбирать из семейства моделей (D0 - D7) в зависимости от ограничений на ресурсы. Это гарантирует, что если у вас больше вычислительных ресурсов, вы можете линейно увеличить размер модели, чтобы получить более высокую точность.
Сильные и слабые стороны
Основная сила EfficientDet заключается в его теоретической эффективности. Он достигает высоких mAP при удивительно низком количестве FLOP (операций с плавающей запятой). Это делает его интересным кандидатом для академических исследований, где эффективность параметров является ключевой метрикой.
Однако EfficientDet страдает от практического недостатка: задержки вывода. Сложные связи в BiFPN и активное использование делимых по глубине сверток, хотя и эффективны с математической точки зрения, часто не полностью оптимизированы на аппаратном обеспечении GPU по сравнению со стандартными свертками. Следовательно, несмотря на меньшее количество FLOP, EfficientDet может работать на GPU медленнее, чем модели с более высокими теоретическими вычислительными затратами.
Узнайте больше об EfficientDet
Ultralytics YOLOv5: производительность и удобство использования в реальном мире
Модель Ultralytics YOLOv5 , вышедшая в 2020 году, ознаменовала собой смену парадигмы. В отличие от своих предшественников, это была первая модель YOLO , реализованная нативно в PyTorchчто сделало ее доступной для широкой экосистемы разработчиков. Приоритетом для нее стало "удобство развертывания" наряду с высокой производительностью.
- Автор: Гленн Джокер
- Организация:Ultralytics
- Дата: 26 июня 2020 г.
- GitHub:yolov5
Основные моменты архитектуры
В YOLOv5 используется основа CSPDarknet, которая оптимизирует градиентный поток и сокращает вычисления. В ней впервые использовано мозаичное наращивание в процессе обучения - техника, которая сшивает четыре изображения вместе, улучшая способность модели detect мелкие объекты и уменьшая необходимость в больших размерах мини-партий.
Архитектура разработана с учетом скорости. Используя стандартные свертки и оптимизированную структуру головки, YOLOv5 максимально использует возможности параллельной обработки современных графических процессоров, что приводит к исключительно низкой задержке вывода.
Преимущество экосистемы Ultralytics
Одним из наиболее значимых преимуществ YOLOv5 является окружающая экосистема. Ultralytics обеспечивает бесшовный рабочий процесс, включая автоматическую генерацию якорей, эволюцию гиперпараметров и поддержку экспорта в ONNX, TensorRT, CoreML и TFLite. Такой подход "батарейки в комплекте" значительно сокращает время от разработки концепции до производства.
Сильные и слабые стороны
YOLOv5 отличается простотой использования и выводами в реальном времени. Простой API и подробная документация позволяют разработчикам обучать пользовательские модели на собственных данных за считанные минуты. В ней сбалансированы скорость и точность, что оптимально для пограничного ИИ и облачных развертываний. В то время как более новые модели, такие как YOLO11 с тех пор превзошли ее по точности, YOLOv5 остается надежной рабочей лошадкой, отвечающей отраслевым стандартам.
Метрики производительности: Скорость против точности
В следующей таблице сравнивается производительность EfficientDet и YOLOv5 на наборе данныхCOCO val2017. Ключевым моментом является различие между теоретической стоимостью (FLOPs) и фактической скоростью (Latency).
| Модель | размер (пиксели) | 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 |
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
С иллюстрациями, YOLOv5 доминирует по задержкам на GPU. Например, YOLOv5s (37,4 mAP) работает при 1,92 мс на GPU T4, в то время как EfficientDet-d0 (34,6 mAP) берет 3,92 мс-делать YOLOv5 грубо В 2 раза быстрее при этом обеспечивая более высокую точность. Это различие увеличивается при использовании более крупных моделей; YOLOv5l (49,0 mAP) почти В 5 раз быстрее чем сопоставимый EfficientDet-d4 (49,7 mAP).
Напротив, EfficientDet демонстрирует лучшие результаты в средах с CPU, где низкое количество FLOP часто лучше отражается на производительности, как это видно на примере скоростиCPU ONNX для меньших вариантов D0.
Идеальные варианты использования
Выбор между этими моделями зависит от ваших конкретных ограничений:
Когда стоит выбрать EfficientDet
- Академический бенчмаркинг: Когда основной целью является демонстрация эффективности параметров или законов масштабирования архитектуры.
- Строгие ограничения CPU : Если развертывание строго ограничено старым CPU оборудованием, где FLOP являются абсолютным узким местом, самые маленькие варианты EfficientDet (D0-D1) обеспечивают конкурентоспособную производительность.
- Исследование: Для изучения вариантов сетей пирамид признаков, таких как BiFPN.
Когда стоит выбрать Ultralytics YOLOv5
- Приложения реального времени: Необходимы для автономных транспортных средств, робототехники и видеонаблюдения, где низкая задержка не является обязательным условием.
- Развертывание на производстве: Хорошо поддерживаемая экосистема и легкий экспорт в такие движки, как TensorRT и OpenVINO , делают YOLOv5 лучшим для коммерческих продуктов.
- Эффективность обучения: Модели YOLOv5 обычно обучаются быстрее и требуют меньше памяти, чем сложные архитектуры, такие как EfficientDet или модели на базе Transformer, что позволяет сократить расходы на облачные вычисления.
- Универсальность: Не ограничиваясь простыми ограничивающими рамками, система Ultralytics позволяет плавно переходить к задачам сегментации и классификации.
Пример кода: Простота Ultralytics
Одной из определяющих особенностей моделей Ultralytics является простота использования. В то время как для реализации EfficientDet часто требуются сложные конфигурации TensorFlow или специальные клоны репозитория, YOLOv5 можно загрузить и запустить с помощью всего нескольких строк кода на Python через PyTorch Hub.
import torch
# Load the YOLOv5s model from the official Ultralytics repository
model = torch.hub.load("ultralytics/yolov5", "yolov5s", pretrained=True)
# Define an image (URL or local path)
img = "https://ultralytics.com/images/zidane.jpg"
# Perform inference
results = model(img)
# Display results
results.print() # Print predictions to console
results.show() # Show image with bounding boxes
Заключение и перспективы на будущее
В то время как EfficientDet стал важной вехой в компьютерном зрении, доказав ценность масштабирования соединений и эффективного объединения признаков, YOLOv5 произвел революцию в отрасли, сделав высокопроизводительное обнаружение объектов доступным, быстрым и легко внедряемым.
Разработчикам, начинающим новый проект сегодня, мы рекомендуем обратить внимание на последние достижения в линейке Ultralytics . YOLO11 опирается на прочный фундамент YOLOv5, предлагая:
- Еще более высокая точность и скорость.
- Встроенная поддержка Оценка позы, Сегментация объектови OBB.
- Унифицированный пакет python
ultralyticsкоторая упрощает весь жизненный цикл MLOps.
Чтобы узнать больше о сравнении моделей Ultralytics с другими архитектурами, ознакомьтесь с нашими сравнениями с YOLOv8 и RT-DETR.