YOLOv5 против EfficientDet: оценка архитектур детектирования объектов в реальном времени

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

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

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

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

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

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

Ключевые достижения включают:

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

Узнай больше о YOLOv5

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

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

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

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

  • BiFPN (Bi-directional Feature Pyramid Network): В отличие от традиционных FPN, которые передают информацию только сверху вниз, BiFPN обеспечивает быстрое и простое многомасштабное объединение признаков путем внедрения обучаемых весов для определения важности различных входных данных.
  • Составное масштабирование: EfficientDet совместно масштабирует разрешение, глубину и ширину для всех бэкбонов, сетей признаков и сетей предсказания bbox/классов, что позволяет создавать модели от облегченной D0 до массивной D7.

Узнай больше об EfficientDet

Различия во фреймворках

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

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

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

Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(М)
FLOPs
(Б)
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4
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). Однако эта теоретическая эффективность не всегда переходит в более быстрое время инференса на edge-устройствах из-за сложной маршрутизации слоя BiFPN, которая может быть ограничена пропускной способностью памяти, а не вычислительной мощностью.

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

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

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

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

Идеальные сценарии использования

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

Новое поколение: знакомство с YOLO26

Хотя YOLOv5 остается надежной «рабочей лошадкой», ландшафт компьютерного зрения шагнул вперед. Для разработчиков, ищущих абсолютный state-of-the-art в 2026 году, YOLO26 представляет новую вершину линейки Ultralytics.

Опираясь на наследие своих предшественников (таких как YOLOv8 и YOLO11), YOLO26 внедряет революционные инновации:

  • Сквозной дизайн без NMS: YOLO26 нативно исключает необходимость в постпроцессинге NMS (Non-Maximum Suppression). Это значительно снижает вариативность задержек и упрощает архитектуру развертывания.
  • Up to 43% Faster CPU Inference: Heavily optimized for edge AI, it brings unprecedented speeds to low-power edge devices and standard CPUs without dedicated GPUs.
  • Оптимизатор MuSGD: Вдохновленный методами обучения больших языковых моделей (LLM), этот гибрид SGD и Muon обеспечивает очень стабильное обучение и быструю сходимость.
  • Продвинутые функции потерь: Интеграция ProgLoss и STAL радикально улучшает распознавание мелких объектов, что жизненно важно для аэрофотосъемки с дронов и робототехники.
  • Удаление 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 гарантирует, что у разработчиков всегда есть лучшие инструменты для решения реальных задач визуального интеллекта.

Комментарии