EfficientDet и YOLOv5#
Выбор оптимальной архитектуры нейросети — ключевой этап любого проекта в области компьютерного зрения. От баланса задержки инференса, эффективности использования параметров и точности обнаружения зависит, насколько хорошо модель будет работать в реальных условиях. В этом подробном техническом руководстве анализируются две влиятельные платформы для обнаружения объектов: EfficientDet от Google и Ultralytics YOLOv5.
Сравнив архитектурные инновации, методики обучения и возможности развертывания, разработчики смогут принять взвешенное решение для конкретной среды развертывания — будь то масштабирование на облачных серверах или запуск на периферийных устройствах с ограниченными ресурсами.
EfficientDet: масштабируемая архитектура с BiFPN#
EfficientDet, разработанная Google Research, призвана систематически масштабировать как базовую сеть, так и сеть признаков, обеспечивая высокую точность при меньшем количестве параметров, чем у предыдущих передовых моделей.
Сведения о модели#
- Авторы: Mingxing Tan, Ruoming Pang и Quoc V. Le
- Организация: Google Research
- Дата: 20 ноября 2019 года
- Arxiv: EfficientDet: масштабируемое и эффективное обнаружение объектов
- GitHub: google/automl/efficientdet
Архитектурные инновации#
EfficientDet использует классификационную модель EfficientNet в качестве базовой сети, применяя метод составного масштабирования, который равномерно изменяет ширину, глубину и разрешение сети. Самый заметный вклад модели в обнаружение объектов — появление двунаправленной пирамидальной сети признаков (BiFPN). В отличие от стандартных пирамидальных сетей признаков, которые просто объединяют признаки сверху вниз, BiFPN поддерживает сложные двунаправленные связи между масштабами и использует обучаемые веса, чтобы определять важность разных входных признаков.
Несмотря на высокую точность, EfficientDet сильно зависит от экосистемы TensorFlow и специальных библиотек AutoML. Из-за этой зависимости интеграция модели в собственные легковесные конвейеры развертывания или среды, предпочитающие динамические вычислительные графы, может быть затруднена.
Ultralytics YOLOv5: демократизация ИИ в реальном времени#
Вскоре после выхода EfficientDet компания Ultralytics представила YOLOv5 — невероятно доступную нативную реализацию архитектуры YOLO на PyTorch, которая произвела революцию в отрасли. Она задала новый стандарт удобства разработки, эффективности обучения и гибкости развертывания в реальном времени.
Сведения о модели#
- Авторы: Glenn Jocher
- Организация: Ultralytics
- Дата: 26 июня 2020 года
- GitHub: ultralytics/yolov5
- Документация: Документация YOLOv5
Архитектурные инновации#
YOLOv5 получила значительные улучшения по сравнению с предшественниками: в ней используется базовая сеть CSPDarknet (Cross-Stage Partial), которая существенно улучшает распространение градиентов и одновременно сокращает общее количество параметров. Кроме того, YOLOv5 использует автоматическую настройку якорных рамок, автоматически рассчитывая оптимальные априорные параметры ограничивающих рамок на основе твоих данных для конкретного обучения и избавляя от необходимости вручную подбирать гиперпараметры.
YOLOv5 также активно использует мозаичную аугментацию данных, объединяя четыре разных изображения в один обучающий фрагмент. Это значительно повышает способность модели обнаруживать мелкие объекты и обобщать контекстную информацию, делая модель очень устойчивой в разнообразных средах.
Производительность и тесты#
Оценка моделей на стандартных тестах, таких как набор данных COCO, крайне важна для понимания компромиссов между точностью и скоростью. В таблице ниже показана производительность моделей EfficientDet и YOLOv5 разных размеров в стандартизированных условиях.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 | 640 | 28.0 | - | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | - | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | - | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | - | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | - | 11.89 | 86.7 | 205.7 |
Анализ компромиссов#
EfficientDet-d7 достигает впечатляющего максимального значения mAP 53,7, но на GPU инференс у этой модели значительно медленнее, чем у архитектур YOLO. YOLOv5, напротив, отлично использует аппаратное ускорение. Вариант YOLOv5n выполняет инференс всего за 1,12 мс на GPU T4 с использованием NVIDIA TensorRT, что делает его гораздо лучше для приложений реального времени, таких как автономное вождение и высокоскоростные производственные линии.
Кроме того, при обучении моделям YOLOv5 требуется гораздо меньше памяти CUDA, чем сложным сетям с составным масштабированием или крупным моделям Transformer. Благодаря такой экономии памяти передовые технологии ИИ становятся доступнее: исследователи могут обучать надежные модели на обычном потребительском оборудовании.
Чтобы добиться максимальной частоты кадров в секунду (FPS) от модели YOLOv5 на периферийных устройствах, экспортируй веса PyTorch в TensorRT для GPU NVIDIA или в OpenVINO для CPU Intel. Этот шаг нередко позволяет удвоить скорость инференса.
Экосистема обучения и удобство разработки#
Главное преимущество экосистемы Ultralytics — удобство и простота работы. Для EfficientDet нужны глубокие знания API обнаружения объектов TensorFlow, а YOLOv5 предлагает единый простой Python API.
За счет качественно поддерживаемой экосистемы Ultralytics разработчики регулярно получают обновления и поддержку активного сообщества, а также могут легко интегрировать инструменты отслеживания экспериментов, такие как Weights & Biases и ClearML.
Пример кода: начало работы с YOLOv5#
Для инференса с предварительно обученной моделью YOLOv5 достаточно нескольких строк кода с помощью пакета Ultralytics для Python:
from ultralytics import YOLO
# Загрузка высокоэффективной модели YOLOv5s
model = YOLO("yolov5su.pt") # YOLOv5u: веса YOLOv5 без якорей для пакета ultralytics
# Запустить инференс на изображении
results = model("https://ultralytics.com/images/zidane.jpg")
# Отображение обнаруженных ограничивающих рамок
results[0].show()Универсальность и реальные сценарии применения#
EfficientDet — это исключительно платформа для обнаружения объектов, что ограничивает ее применение в сложных конвейерах компьютерного зрения. YOLOv5, напротив, развилась и теперь поддерживает множество задач компьютерного зрения. Современные версии модели обеспечивают высокоточную сегментацию экземпляров и классификацию изображений, позволяя разработчикам объединить стек машинного обучения.
Оптимальные сценарии применения#
- EfficientDet: лучше всего подходит для автономной обработки, академических исследований и облачной аналитики, где максимальная точность важнее задержки и доступны серверные TPU или GPU с большим объемом памяти.
- YOLOv5: безусловный выбор для развертывания ИИ на периферийных устройствах. Низкая задержка, малое количество параметров и высокая точность делают эту модель идеальной для аналитики с дронов, автоматизации розничной торговли в реальном времени и мобильных приложений с использованием CoreML или LiteRT.
Следующее поколение: переход на YOLO26#
YOLOv5 остается надежной и широко используемой моделью, но ИИ развивается стремительно. Для команд, начинающих новые проекты или стремящихся добиться максимальной современной производительности, Ultralytics выпустила YOLO26 в январе 2026 года.
YOLO26 переопределяет границу Парето между скоростью и точностью и внедряет революционные изменения архитектуры, упрощая развертывание и ускоряя инференс.
Ключевые улучшения YOLO26#
- Сквозная архитектура без NMS: опциональная сквозная голова YOLO26 (
nms=False) устраняет постобработку с подавлением немаксимумов. Это значительно упрощает логику развертывания и уменьшает разброс задержки — революционный подход, усовершенствованный на основе ранних экспериментов с YOLOv10. - Инференс на CPU до 43% быстрее: специальная оптимизация для периферийных вычислений и маломощных устройств IoT, работающих без выделенных GPU.
- Оптимизатор MuSGD: этот гибрид SGD и Muon, вдохновленный методами обучения больших языковых моделей (например, Kimi K2 от Moonshot AI), переносит инновации из области больших языковых моделей в компьютерное зрение, обеспечивая более быструю сходимость и высокую стабильность обучения.
- ProgLoss + STAL: эти продвинутые функции потерь заметно повышают точность распознавания небольших объектов, что крайне важно для аэрофотосъемки и робототехники.
- Удаление DFL: исключение Distribution Focal Loss значительно упрощает голову модели и улучшает совместимость при экспорте на старое или сильно ограниченное периферийное оборудование.
Для команд, развертывающих конвейеры с несколькими задачами, YOLO26 также предлагает специальные улучшения, например многомасштабный прототип для сегментации и специализированную функцию угловых потерь для ориентированных ограничивающих рамок (OBB). Чтобы узнать о других современных альтернативах в экосистеме, изучи также YOLO11 или архитектуру YOLOv8.
Заключение#
Выбор между EfficientDet и YOLOv5 во многом зависит от целевой платформы развертывания. EfficientDet предлагает математически элегантный подход к масштабированию, подходящий для инференса преимущественно в облаке. Однако превосходное удобство разработки YOLOv5, исключительно быстрые циклы обучения на PyTorch и оптимизированные возможности развертывания на периферийных устройствах делают эту модель предпочтительным выбором для большинства реальных приложений, работающих в реальном времени. Используя комплексные инструменты Ultralytics, команды могут быстрее выводить продукты на рынок и создавать отзывчивые системы ИИ.