YOLOv5 против EfficientDet#
Когда ты приступаешь к новому проекту по computer vision, выбор правильной архитектуры нейронной сети — это одно из самых важных решений, которые тебе предстоит принять. Это руководство содержит углубленное техническое сравнение между Ultralytics YOLOv5 и EfficientDet от Google. Анализируя их архитектуры, показатели производительности и экосистемы обучения, мы стремимся помочь разработчикам и исследователям выбрать лучшую модель object detection для своих конкретных сред развертывания.
В то время как 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 известна своей высоко оптимизированной архитектурой, которая обеспечивает бесшовный жизненный цикл machine learning. В ней используется модифицированный бэкбон CSPDarknet53 в паре с нейросетевой структурой Path Aggregation Network (PANet), что кардинально улучшает распространение признаков по нескольким пространственным масштабам.
Ключевые достижения включают:
- Mosaic Data Augmentation: Эта техника обучения объединяет четыре различных тренировочных изображения в одну мозаику. Это заставляет модель учиться распознавать объекты в сложных пространственных контекстах и значительно повышает ее способность обнаруживать мелкие цели.
- Автоматическое обучение анкерных боксов: Перед началом обучения YOLOv5 анализирует твои пользовательские training data и автоматически вычисляет оптимальные размеры anchor box с помощью кластеризации методом k-средних.
- Эффективность памяти: По сравнению с тяжелыми моделями на базе Transformer, YOLOv5 поддерживает значительно меньший объем используемой памяти как во время обучения, так и во время инференса, что позволяет ему плавно работать на потребительском оборудовании.
EfficientDet: масштабируемое обнаружение объектов#
Представленный Google Research в 2019 году, EfficientDet был нацелен на создание семейства масштабируемых детекторов объектов. Он базируется на бэкенде классификации изображений EfficientNet и внедряет новый механизм объединения признаков.
- Авторы: Минсин Тан, Руомин Пан и Куок В. Ле
- Организация: Google
- Дата: 2019-11-20
- 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 (Bi-directional Feature Pyramid Network): В отличие от традиционных FPN, которые передают информацию только сверху вниз, BiFPN обеспечивает быстрое и легкое объединение признаков разных масштабов за счет введения обучаемых весов для определения важности различных входных признаков.
- Составное масштабирование: EfficientDet совместно масштабирует разрешение, глубину и ширину для всех сетей бэкенда, сети признаков и сетей предсказания bbox/класса, что позволяет создавать модели от облегченной D0 до массивной D7.
В то время как EfficientDet сильно зависит от экосистемы TensorFlow и библиотек AutoML, YOLOv5 работает нативно в PyTorch, предлагая разработчикам более интуитивный, питонический и удобный для отладки рабочий процесс.
Сравнение производительности и метрик#
При сравнении этих моделей критически важно оценивать их производительность на стандартных бенчмарках, таких как COCO dataset. Таблица ниже иллюстрирует компромиссы между размером, вычислительными затратами (FLOPs) и скоростью инференса.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (М) | FLOPs (Б) |
|---|---|---|---|---|---|---|
| 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 невероятно подходящей для видеоаналитики с высокой пропускной способностью и конвейеров real-time inference. Кроме того, экосистема Ultralytics делает экспорт в такие форматы, как ONNX, CoreML и TensorRT, задачей в одну строку кода.
EfficientDet предлагает отличную эффективность параметров. Для заданного количества параметров модель часто выдает высокий показатель mean Average Precision (mAP). Тем не менее, эта теоретическая эффективность не всегда приводит к ускорению реального времени инференса на пограничных GPU из-за сложной маршрутизации слоя BiFPN, которая может быть ограничена пропускной способностью памяти, а не вычислительной мощностью.
Экосистема и простота использования#
Главное преимущество выбора модели Ultralytics заключается в окружающей экосистеме. YOLOv5 является частью активно поддерживаемого и развиваемого репозитория с огромной поддержкой сообщества.
С появлением платформы Ultralytics Platform ты можешь легко переходить от сбора данных к развертыванию. Эта платформа из коробки поддерживает авторазметку, облачное обучение и мониторинг моделей. В отличие от этого, обучение EfficientDet часто требует преодоления сложностей старых API обнаружения объектов TensorFlow, что может представлять собой крутой порог входа для быстрого прототипирования.
Кроме того, универсальность YOLOv5 выходит за рамки ограничивающих рамок. Благодаря постоянным обновлениям фреймворк Ultralytics нативно поддерживает instance segmentation и image classification, предоставляя единый API для множества задач компьютерного зрения.
Идеальные варианты использования#
- Выбирай YOLOv5, когда: Тебе нужно быстрое прототипирование, беспроблемный опыт обучения и высокооптимизированное развертывание на периферийных устройствах. Она идеально подходит для дронов, retail analytics и мобильных приложений, где критически важна низкая задержка.
- Выбирай EfficientDet, когда: Ты работаешь строго в среде Google Cloud/TensorFlow AutoML и требуешь максимальной точности на параметр без строгих ограничений по задержке в реальном времени.
Новое поколение: знакомство с YOLO26#
Хотя YOLOv5 остается надежной рабочей лошадкой, ландшафт компьютерного зрения продвинулся вперед. Для разработчиков, ищущих абсолютный передовой уровень в 2026 году, YOLO26 представляет собой новую вершину линейки Ultralytics.
Опираясь на наследие своих предшественников (таких как YOLOv8 и YOLO11), YOLOv26 представляет революционные инновации:
- End-to-End NMS-Free дизайн: YOLO26 нативно устраняет необходимость в постобработке Non-Maximum Suppression. Это значительно снижает вариативность задержки и упрощает архитектуру развертывания.
- До 43% более быстрый инференс на CPU: Значительно оптимизированная для edge AI, она обеспечивает беспрецедентную скорость на маломощных периферийных устройствах и стандартных процессорах без выделенных графических ускорителей.
- Оптимизатор MuSGD: Вдохновленный методами обучения больших языковых моделей (LLM), этот гибрид SGD и Muon обеспечивает очень стабильное обучение и быструю сходимость.
- Продвинутые функции потерь: Интеграция ProgLoss и STAL кардинально улучшает распознавание мелких объектов, что жизненно важно для аэрофотоснимков с дронов и robotics.
- Удаление DFL: Благодаря удалению Distribution Focal Loss процесс экспорта модели стал более эффективным, что еще больше улучшило совместимость с различными аппаратными ускорителями.
Пользователи, заинтересованные в изучении других недавних архитектур в экосистеме Ultralytics, также могут сравнить такие модели, как YOLOv10 или RT-DETR.
Python API Ultralytics разработан с учетом обратной и прямой совместимости. Обновление с YOLOv5 до YOLO26 буквально так же просто, как изменение строки весов модели в твоем коде!
Пример кода: обучение и инференс#
Чтобы продемонстрировать непревзойденную простоту использования экосистемы Ultralytics, вот как ты можешь обучить современную модель YOLO и запустить инференс. Этот код на 100% рабочий и автоматически обрабатывает скачивание датасета, циклы обучения и валидацию.
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 гарантирует, что у разработчиков всегда есть лучшие инструменты для решения реальных задач визуального интеллекта.