Ultralytics YOLO27:
Get Started

YOLOv5 и EfficientDet#

Приступая к новому проекту в области компьютерного зрения, ты должен принять одно из самых важных решений — выбрать подходящую архитектуру нейронной сети. В этом руководстве подробно сравниваются Ultralytics YOLOv5 и EfficientDet от Google. Анализируя их архитектуры, показатели производительности и экосистемы обучения, мы помогаем разработчикам и исследователям определить, какая модель обнаружения объектов лучше всего подходит для конкретной среды развертывания.

Хотя EfficientDet предложила новые концепции составного масштабирования и объединения признаков, YOLOv5 изменила отрасль, сделав высокопроизводительный ИИ доступным благодаря интуитивно понятной реализации на PyTorch, удобству использования и непревзойдённому балансу скорости и точности.

Ultralytics YOLOv5: доступный отраслевой стандарт#

Выпущенная летом 2020 года, YOLOv5 стала поворотным моментом в развитии семейства YOLO. Перейдя от фреймворка Darknet на C к нативному PyTorch, она стала основной архитектурой для разработчиков, которым нужно быстро создавать, обучать и развертывать модели.

Архитектурные инновации#

YOLOv5 известна высокооптимизированной архитектурой, которая обеспечивает бесперебойный полный цикл машинного обучения. В ней используется модифицированная основа CSPDarknet53 и шея PANet (сеть агрегации путей), что значительно улучшает распространение признаков на нескольких пространственных масштабах.

Ключевые улучшения:

  • Аугментация данных Mosaic: Эта техника обучения объединяет четыре разных обучающих изображения в одну мозаику. Благодаря этому модель учится распознавать объекты в сложных пространственных контекстах и значительно лучше обнаруживает небольшие объекты.
  • Автоматическое обучение якорным рамкам: Перед началом обучения YOLOv5 анализирует твои пользовательские обучающие данные и автоматически вычисляет оптимальные размеры якорных рамок с помощью кластеризации k-средних.
  • Экономное использование памяти: По сравнению с ресурсоёмкими моделями на основе Transformer, YOLOv5 потребляет значительно меньше памяти как при обучении, так и при инференсе, поэтому плавно работает на потребительском оборудовании.

EfficientDet: масштабируемое обнаружение объектов#

Представленная Google Research в 2019 году, EfficientDet должна была стать семейством масштабируемых детекторов объектов. Она использует основу EfficientNet для классификации изображений и предлагает новый механизм объединения признаков.

Архитектурные инновации#

В основе EfficientDet лежит систематический подход к масштабированию и агрегации признаков:

  • Двунаправленная пирамида признаков (BiFPN): В отличие от традиционных FPN, которые передают информацию только сверху вниз, BiFPN обеспечивает быстрое и простое объединение признаков разных масштабов, вводя обучаемые веса для определения важности различных входных признаков.
  • Составное масштабирование: EfficientDet одновременно масштабирует разрешение, глубину и ширину основы, сети признаков и сетей предсказания рамок и классов, обеспечивая диапазон моделей от лёгкой D0 до крупной D7.

Подробнее об EfficientDet

Различия между фреймворками

EfficientDet в значительной степени зависит от экосистемы TensorFlow и библиотек AutoML, тогда как YOLOv5 нативно работает на PyTorch и предлагает, по мнению многих разработчиков, более интуитивный, соответствующий стилю Python и удобный для отладки процесс.

Сравнение производительности и метрик#

При сравнении этих моделей важно оценить их производительность на стандартных бенчмарках, например на датасете COCO. В таблице ниже показаны компромиссы между размером, вычислительной нагрузкой (FLOPs) и скоростью инференса.

Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
YOLOv5n64028.0-1.121.94.5
YOLOv5s64037.4-1.927.216.5
YOLOv5m64045.4-4.0321.249.0
YOLOv5l64049.0-6.6146.5109.1
YOLOv5x64050.7-11.8986.7205.7
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

Сбалансированный анализ#

YOLOv5 выгодно отличается гибкостью развертывания и совместимостью с аппаратным ускорением. Обрати внимание на впечатляющую скорость TensorRT на GPU T4. Благодаря этому YOLOv5 отлично подходит для видеоаналитики с высокой пропускной способностью и конвейеров инференса в реальном времени. Кроме того, экосистема Ultralytics позволяет экспортировать модель в такие форматы, как ONNX, CoreML и TensorRT, одной командой.

EfficientDet эффективно использует параметры. При одинаковом количестве параметров она часто обеспечивает высокую среднюю точность (mAP). Однако такая теоретическая эффективность не всегда приводит к более быстрому инференсу в реальных условиях на периферийных GPU: из-за сложной маршрутизации слоя BiFPN производительность может ограничиваться пропускной способностью памяти, а не вычислениями.

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

Главное преимущество выбора модели Ultralytics — окружающая её экосистема. YOLOv5 входит в активно развиваемый и тщательно поддерживаемый репозиторий с огромным сообществом.

С появлением платформы Ultralytics пользователи могут легко переходить от сбора данных к развертыванию. Платформа сразу поддерживает автоматическую разметку, облачное обучение и мониторинг моделей. В отличие от этого, обучение EfficientDet часто требует разбираться в сложных API обнаружения объектов для старых версий TensorFlow, что может затруднить быстрое создание прототипов.

Кроме того, возможности YOLOv5 выходят за рамки ограничивающих рамок. Благодаря постоянным обновлениям фреймворк Ultralytics нативно поддерживает сегментацию экземпляров и классификацию изображений, предлагая единый API для нескольких задач компьютерного зрения.

Оптимальные сценарии применения#

  • Выбирай YOLOv5, если: тебе нужно быстро создавать прототипы, удобно обучать модели и эффективно развертывать их на периферийных устройствах. Она отлично подходит для дронов, аналитики розничной торговли и мобильных приложений, где критически важна низкая задержка.
  • Выбирай EfficientDet, если: ты работаешь исключительно в среде Google Cloud/TensorFlow AutoML и тебе нужна максимальная точность на параметр без строгих ограничений по задержке в реальном времени.

Следующее поколение: переход на YOLO26#

YOLOv5 остаётся надёжной рабочей моделью, но компьютерное зрение продолжает развиваться. Для разработчиков, которым нужна самая современная модель в 2026 году, YOLO26 стала вершиной линейки Ultralytics.

Развивая наследие предшественников, таких как YOLOv8 и YOLO11, YOLO26 предлагает прорывные инновации:

  • Сквозная архитектура без NMS: опциональная голова один-к-одному в YOLO26 (nms=False) устраняет необходимость в постобработке с подавлением немаксимумов. Это значительно снижает вариативность задержки и упрощает архитектуру развертывания.
  • До 43% более быстрый инференс на CPU: благодаря серьёзной оптимизации для периферийного ИИ модель обеспечивает беспрецедентную скорость на маломощных периферийных устройствах и обычных CPU без выделенных GPU.
  • Оптимизатор MuSGD: этот гибрид SGD и Muon, вдохновлённый методами обучения больших языковых моделей (LLM), обеспечивает стабильное обучение и быструю сходимость.
  • Продвинутые функции потерь: применение ProgLoss и STAL значительно повышает качество распознавания небольших объектов, что особенно важно для изображений с дронов на большой высоте и робототехники.
  • Удаление DFL: удаление Distribution Focal Loss упрощает экспорт модели и дополнительно повышает совместимость с различными аппаратными ускорителями.

Тем, кто хочет изучить другие современные архитектуры экосистемы Ultralytics, стоит также сравнить такие модели, как YOLOv10 или RT-DETR.

Переход — это просто

API Python Ultralytics разработан с учётом обратной и прямой совместимости. Для перехода с YOLOv5 на YOLO26 достаточно просто изменить строку с весами модели в коде!

Пример кода: обучение и инференс#

Чтобы показать, насколько удобно работать с экосистемой Ultralytics, рассмотрим, как обучить современную модель YOLO и выполнить инференс. Этот код полностью готов к запуску и автоматически загружает датасет, выполняет циклы обучения и проводит валидацию.

from ultralytics import YOLO

# Загрузи современную модель (замени 'yolov5su.pt' на 'yolo26n.pt', чтобы протестировать новейшую архитектуру!)
model = YOLO("yolov5su.pt")  # YOLOv5u: веса YOLOv5 без якорей для пакета ultralytics

# Обучи модель на примере датасета COCO8 в течение 20 эпох
results = model.train(data="coco8.yaml", epochs=20, imgsz=640)

# Запусти инференс на изображении из интернета
inference_results = model("https://ultralytics.com/images/bus.jpg")

# Покажи изображение с ограничивающими рамками
inference_results[0].show()

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

Комментарии