YOLOv5 и EfficientDet#
При начале нового проекта в области компьютерного зрения выбор подходящей архитектуры нейронной сети — одно из самых важных решений, которые тебе предстоит принять. Это руководство содержит подробное техническое сравнение Ultralytics YOLOv5 и EfficientDet от Google. Анализируя их архитектуры, показатели производительности и экосистемы обучения, мы стремимся помочь разработчикам и исследователям определить лучшую модель обнаружения объектов для конкретной среды развертывания.
Хотя EfficientDet представил новые концепции составного масштабирования и слияния признаков, YOLOv5 произвел революцию в отрасли, демократизировав доступ к высокопроизводительному ИИ благодаря невероятно интуитивной реализации на PyTorch, удобству работы и непревзойденному балансу скорости и точности.
Ultralytics YOLOv5: отраслевой стандарт доступности#
Выпущенная летом 2020 года, YOLOv5 ознаменовала переломный момент в развитии YOLO. Перейдя от фреймворка Darknet на C к нативному PyTorch, она стала основной архитектурой для разработчиков, которым нужно быстро создавать, обучать и развертывать модели.
- Авторы: Glenn Jocher
- Организация: Ultralytics
- Дата: 2020-06-26
- GitHub: https://github.com/ultralytics/yolov5
- Документация: https://docs.ultralytics.com/models/yolov5
Архитектурные инновации#
YOLOv5 получила признание благодаря высокооптимизированной архитектуре, ориентированной на бесшовный жизненный цикл машинного обучения. Она использует модифицированную магистраль CSPDarknet53 в связке с сетью агрегации путей (PANet), что значительно улучшает распространение признаков на нескольких пространственных масштабах.
Ключевые улучшения:
- Мозаичное увеличение данных: этот метод обучения объединяет четыре разных обучающих изображения в одну мозаику. Благодаря этому модель учится распознавать объекты в сложных пространственных контекстах, а ее способность обнаруживать небольшие цели значительно повышается.
- Автоматическое обучение якорных рамок: перед началом обучения YOLOv5 анализирует твои пользовательские обучающие данные и автоматически вычисляет оптимальные размеры якорных рамок с помощью кластеризации k-средних.
- Эффективное использование памяти: по сравнению с тяжелыми моделями на основе Transformer YOLOv5 сохраняет значительно меньший объем памяти как во время обучения, так и во время вывода, благодаря чему плавно работает на потребительском оборудовании.
EfficientDet: масштабируемое обнаружение объектов#
Представленная Google Research в 2019 году, EfficientDet была разработана как семейство масштабируемых детекторов объектов. Она использует магистраль EfficientNet для классификации изображений и представляет новый механизм слияния признаков.
- Авторы: Mingxing Tan, Ruoming Pang и Quoc V. Le
- Организация: Google
- Дата: 20.11.2019
- Arxiv: https://arxiv.org/abs/1911.09070
- GitHub: https://github.com/google/automl/tree/master/efficientdet
- Документация: https://github.com/google/automl/tree/master/efficientdet#readme
Архитектурные инновации#
Основное преимущество EfficientDet заключается в системном подходе к масштабированию и агрегации признаков:
- BiFPN (двунаправленная пирамидальная сеть признаков): в отличие от традиционных FPN, которые передают информацию только сверху вниз, BiFPN обеспечивает быстрое и простое слияние признаков разных масштабов благодаря введению обучаемых весов, позволяющих учитывать важность различных входных признаков.
- Составное масштабирование: EfficientDet совместно масштабирует разрешение, глубину и ширину магистрали, сети признаков, а также сетей предсказания рамок и классов, создавая модели от легковесной D0 до массивной D7.
В то время как EfficientDet в значительной степени опирается на экосистему TensorFlow и библиотеки AutoML, YOLOv5 нативно работает в PyTorch, предлагая, по мнению многих разработчиков, более интуитивный, соответствующий стилю Python и удобный для отладки рабочий процесс.
Сравнение производительности и метрик#
При сравнении этих моделей крайне важно оценивать их производительность на стандартных бенчмарках, например на наборе данных COCO. В таблице ниже показаны компромиссы между размером, вычислительной нагрузкой (FLOPs) и скоростью вывода.
| Модель | размер (пиксели) | 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 |
Сбалансированный анализ#
YOLOv5 выделяется гибкостью развертывания и совместимостью с ускорением на реальном оборудовании. Обрати внимание на чрезвычайно высокую скорость TensorRT на GPU T4. Благодаря этому YOLOv5 отлично подходит для высокопроизводительной видеоаналитики и конвейеров вывода в реальном времени. Кроме того, экосистема Ultralytics позволяет экспортировать модели в такие форматы, как ONNX, CoreML и TensorRT, с помощью одной команды.
EfficientDet обеспечивает отличную эффективность использования параметров. При одинаковом количестве параметров она часто достигает высокого значения средней точности (mAP). Однако эта теоретическая эффективность не всегда приводит к более быстрому выводу по фактическому времени на периферийных GPU из-за сложной маршрутизации слоя BiFPN, производительность которого может ограничиваться пропускной способностью памяти, а не вычислениями.
Экосистема и простота использования#
Главное преимущество выбора модели Ultralytics заключается в окружающей ее экосистеме. YOLOv5 входит в активно поддерживаемый и развиваемый репозиторий с огромной поддержкой сообщества.
С появлением Ultralytics Platform пользователи могут беспрепятственно переходить от сбора данных к развертыванию. Платформа из коробки поддерживает автоматическую разметку, облачное обучение и мониторинг моделей. В отличие от этого, обучение EfficientDet часто требует разобраться в сложных устаревших API TensorFlow для обнаружения объектов, что может стать серьезным препятствием для быстрого прототипирования.
Кроме того, универсальность YOLOv5 выходит за рамки ограничивающих рамок. Благодаря постоянным обновлениям фреймворк Ultralytics нативно поддерживает сегментацию экземпляров и классификацию изображений, предоставляя единый API для нескольких задач компьютерного зрения.
Идеальные сценарии использования#
- Выбирай YOLOv5, если: тебе нужны быстрое прототипирование, беспроблемный процесс обучения и высокооптимизированное развертывание на периферийных устройствах. Она идеально подходит для дронов, аналитики розничной торговли и мобильных приложений, где критически важна низкая задержка.
- Выбирай EfficientDet, если: ты работаешь исключительно в среде Google Cloud/TensorFlow AutoML и тебе нужна максимальная точность на параметр без жестких ограничений по задержке в реальном времени.
Следующее поколение: переход к YOLO26#
Хотя YOLOv5 остается надежной рабочей моделью, компьютерное зрение продолжает развиваться. Для разработчиков, которые ищут абсолютный передовой уровень технологий в 2026 году, YOLO26 представляет новую вершину линейки Ultralytics.
Опираясь на наследие предшественников, таких как YOLOv8 и YOLO11, YOLO26 представляет революционные инновации:
- Сквозной дизайн без NMS: YOLO26 нативно устраняет необходимость в постобработке с подавлением немаксимумов. Это значительно уменьшает разброс задержки и упрощает архитектуру развертывания.
- До 43% более быстрый вывод на CPU: модель тщательно оптимизирована для периферийного ИИ, обеспечивая беспрецедентную скорость на маломощных периферийных устройствах и стандартных CPU без выделенных GPU.
- Оптимизатор MuSGD: этот гибрид SGD и Muon, вдохновленный методами обучения больших языковых моделей (LLM), обеспечивает высокую стабильность обучения и быструю сходимость.
- Продвинутые функции потерь: интеграция ProgLoss и STAL значительно улучшает распознавание небольших целей, что крайне важно для съемки с дронов на большой высоте и робототехники.
- Удаление DFL: отказ от Distribution Focal Loss упрощает процесс экспорта модели и дополнительно повышает совместимость с различными аппаратными ускорителями.
Пользователи, желающие изучить другие современные архитектуры в экосистеме Ultralytics, также могут сравнить такие модели, как YOLOv10 или RT-DETR.
Python API Ultralytics разработан с учетом обратной и прямой совместимости. Переход с YOLOv5 на YOLO26 буквально сводится к изменению строки с весами модели в твоем коде!
Пример кода: обучение и вывод#
Чтобы продемонстрировать непревзойденную простоту использования экосистемы Ultralytics, покажем, как можно обучить современную модель YOLO и выполнить с ее помощью вывод. Этот код полностью готов к запуску и автоматически обрабатывает загрузку набора данных, циклы обучения и валидацию.
from ultralytics import YOLO
# Load a modern model (Swap 'yolov5s.pt' for 'yolo26n.pt' to test the newest architecture!)
model = YOLO("yolov5s.pt")
# Train the model on the COCO8 example dataset for 20 epochs
results = model.train(data="coco8.yaml", epochs=20, imgsz=640)
# Run inference on an image from the web
inference_results = model("https://ultralytics.com/images/bus.jpg")
# Display the image with bounding boxes
inference_results[0].show()Ставя во главу угла удобство работы пользователей, поддерживая надежную экосистему и постоянно расширяя границы возможного благодаря таким обновлениям, как YOLO26, Ultralytics гарантирует, что у разработчиков всегда есть лучшие инструменты для решения реальных задач визуального интеллекта.