YOLOv5 vs. EfficientDet: Подробное техническое сравнение
В развивающемся ландшафте компьютерного зрения выбор правильной архитектуры detect объектов имеет решающее значение для успеха проекта. В этом сравнении рассматриваются две весьма влиятельные модели: Ultralytics YOLOv5, известная своим балансом скорости и простоты использования, и EfficientDet от Google, известная своей масштабируемостью и эффективностью параметров. Изучая их архитектуры, показатели производительности и возможности развертывания, разработчики могут принимать обоснованные решения, соответствующие их конкретным потребностям.
Анализ производительности: Скорость vs. Эффективность
Основное различие между этими двумя архитектурами заключается в их философии проектирования в отношении вычислительных ресурсов и задержки вывода. EfficientDet оптимизирует теоретические FLOPs (операции с плавающей запятой), что делает его привлекательным для академических бенчмарков. И наоборот, YOLOv5 отдает приоритет низкой задержке на практическом оборудовании, особенно GPU, обеспечивая вывод в реальном времени, что необходимо для производственных сред.
В таблице ниже показан этот компромисс на наборе данных COCO val2017. В то время как модели EfficientDet достигают высокого mAP с меньшим количеством параметров, YOLOv5 демонстрирует значительно более быстрое время инференса на графических процессорах NVIDIA T4 с использованием TensorRT.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 достигает молниеносной задержки в 1.12 мс на GPU, значительно опережая самый маленький вариант EfficientDet. Для приложений, где важны миллисекунды, таких как автономные транспортные средства или высокоскоростные производственные линии, это преимущество в скорости имеет решающее значение.
Архитектурные различия
Понимание структурного дизайна каждой модели помогает прояснить их характеристики производительности.
Ultralytics YOLOv5
YOLOv5 использует бэкбон CSPDarknet в сочетании с neck PANet. Эта архитектура предназначена для максимальной оптимизации градиентного потока и эффективности извлечения признаков.
- Backbone: Использует соединения Cross Stage Partial (CSP) для уменьшения избыточной информации о градиентах, улучшая способность к обучению и уменьшая количество параметров.
- Neck: Оснащен сетью агрегирования путей (PANet) для надежного многомасштабного слияния признаков, что улучшает detection объектов различных размеров.
- Head: Стандартная голова обнаружения YOLO на основе якорей напрямую предсказывает классы и ограничивающие рамки.
EfficientDet
EfficientDet построен на основе EfficientNet и представляет собой взвешенную Bi-directional Feature Pyramid Network (BiFPN).
- Backbone: Использует EfficientNet, который масштабирует глубину, ширину и разрешение равномерно, используя составной коэффициент.
- Neck (BiFPN): Сложный уровень интеграции признаков, который позволяет информации течь как сверху вниз, так и снизу вверх, применяя веса к различным входным признакам, чтобы подчеркнуть их важность.
- Составное масштабирование: Ключевая инновация, при которой магистральная сеть, BiFPN и сети прогнозирования ограничивающей рамки/класса масштабируются вместе.
Узнайте больше об EfficientDet
Преимущество Ultralytics: Экосистема и удобство использования
Хотя необработанные метрики важны, опыт разработчиков часто определяет успех проекта. Ultralytics YOLOv5 превосходно предоставляет отточенную, ориентированную на пользователя среду, которая значительно сокращает время разработки.
Простота использования и интеграция
YOLOv5 известен своей «из коробки» удобством использования. Модель можно установить с помощью простой команды pip и использовать с минимальным количеством кода. В отличие от этого, реализации EfficientDet часто требуют более сложной настройки в экосистеме TensorFlow или в конкретных исследовательских репозиториях.
Оптимизированный рабочий процесс
С Ultralytics вы можете перейти от набора данных к обученной модели за считанные минуты. Интеграция с такими инструментами, как Ultralytics HUB, обеспечивает бесперебойное управление моделями, визуализацию и развертывание без обширного шаблонного кода.
Эффективность обучения и память
Модели Ultralytics оптимизированы для эффективности обучения. Они обычно быстрее сходятся и требуют меньше памяти CUDA по сравнению со сложными архитектурами, такими как более высокие уровни масштабирования EfficientDet или модели на основе transformer. Этот более низкий порог входа позволяет разработчикам обучать современные модели на оборудовании потребительского уровня или стандартных облачных экземплярах, таких как Google Colab.
Универсальность и многозадачность
В отличие от стандартной реализации EfficientDet, которая в основном является детектором объектов, фреймворк Ultralytics поддерживает широкий спектр задач. Разработчики могут использовать один и тот же API для сегментации экземпляров и классификации изображений, предоставляя унифицированное решение для различных задач компьютерного зрения.
Идеальные варианты использования
Выбор между YOLOv5 и EfficientDet во многом зависит от ограничений и целей развертывания.
Когда следует выбирать Ultralytics YOLOv5
- Приложения реального времени: Проекты, требующие низкой задержки, такие как видеонаблюдение, робототехника или аналитика спортивных соревнований в реальном времени.
- Развертывание на периферии: Работа на таких устройствах, как NVIDIA Jetson или Raspberry Pi, где эффективное использование GPU/NPU является ключевым фактором.
- Быстрое прототипирование: Когда приоритет отдается быстрым циклам итераций и простоте использования, чтобы быстро продемонстрировать ценность.
- Производственные системы: Для надежных, удобных в обслуживании развертываний, поддерживаемых многочисленным сообществом разработчиков с открытым исходным кодом.
Когда следует выбирать EfficientDet
- Исследования и бенчмаркинг: Академические исследования, посвященные эффективности FLOPs или законам масштабирования архитектуры.
- Оффлайн-обработка: Сценарии, где допустима высокая задержка и цель состоит в том, чтобы выжать последние доли процента точности на статических изображениях.
- Инференс на CPU с низким энергопотреблением: В очень специфических средах только с CPU, где операции BiFPN сильно оптимизированы для конкретного набора инструкций оборудования.
Происхождение и детали модели
Понимание контекста этих моделей дает представление об их целях проектирования.
Ultralytics YOLOv5
- Автор: Гленн Джокер
- Организация:Ultralytics
- Дата: 26.06.2020
- GitHub:ultralytics/yolov5
- Документация:Документация YOLOv5
EfficientDet
- Авторы: Мингксинг Тан, Руоминг Панг, Куок В. Ле
- Организация: Google Research
- Дата: 20.11.2019
- Arxiv:EfficientDet: Масштабируемое и эффективное обнаружение объектов
- GitHub:google/automl/efficientdet
Пример кода: Начало работы с YOLOv5
Ultralytics делает вывод невероятно простым. Ниже приведен допустимый, запускаемый пример использования API python для detect объектов на изображении.
import torch
# Load the YOLOv5s model from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s", pretrained=True)
# Define an image URL
img_url = "https://ultralytics.com/images/zidane.jpg"
# Perform inference
results = model(img_url)
# Display results
results.show()
# Print detection data (coordinates, confidence, class)
print(results.pandas().xyxy[0])
Этот простой фрагмент кода обрабатывает загрузку модели, предварительную обработку изображения, выполнение прямого прохода и декодирование вывода — задачи, которые потребовали бы значительно больше кода при использовании необработанных реализаций EfficientDet.
Заключение
Несмотря на то, что EfficientDet внесла значительный вклад в исследования по масштабированию моделей и эффективности параметров, Ultralytics YOLOv5 остается превосходным выбором для практического применения в реальных условиях. Исключительный баланс скорости и точности в сочетании с процветающей, хорошо поддерживаемой экосистемой гарантирует, что разработчики смогут эффективно создавать, обучать и развертывать решения.
Для тех, кто хочет использовать самые последние достижения в области компьютерного зрения, Ultralytics продолжает внедрять инновации, выходящие за рамки YOLOv5. Такие модели, как YOLOv8 и передовая YOLO11, предлагают дальнейшие улучшения в архитектуре, поддерживая еще больше задач, таких как оценка позы и detectирование ориентированных объектов, сохраняя при этом фирменную простоту использования, которая определяет опыт Ultralytics.
Изучите другие модели
Если вам интересно изучить больше сравнений, чтобы найти идеальную модель для ваших нужд, рассмотрите следующие ресурсы:
- YOLOv5 vs. YOLO11 — Сравните классическую модель с новейшей современной.
- EfficientDet vs. YOLOv8 - Сравнение EfficientDet и YOLOv8.
- YOLOv8 vs. YOLO11 — Понимание достижений в новейшем поколении.
- YOLO11 vs. RT-DETR - Сравните трансформаторы реального времени с YOLO.