YOLOv5 и PP-YOLOE+#
Выбор подходящей архитектуры нейронной сети важен для любого современного проекта в области компьютерного зрения. При выборе моделей для обнаружения объектов в реальном времени разработчикам и исследователям часто приходится искать баланс между точностью, скоростью инференса и простотой развёртывания. В этом техническом сравнении рассматриваются YOLOv5 и PP-YOLOE+, их архитектуры, метрики производительности и методики обучения, чтобы помочь тебе выбрать оптимальное решение для своего приложения.
Архитектуры моделей#
Обе модели оказали значительное влияние на развитие визуального ИИ, но решают задачи обнаружения объектов с помощью разных структурных подходов и зависимостей от фреймворков.
Ultralytics YOLOv5: отраслевой стандарт#
Выпущенная в середине 2020 года, Ultralytics YOLOv5 сделала передовые модели компьютерного зрения доступными широкому кругу пользователей. Созданная на базе PyTorch, она значительно снизила порог входа для разработчиков Python и ML-инженеров по всему миру.
Сведения о YOLOv5:
- Авторы: Glenn Jocher
- Организация: Ultralytics
- Дата: 2020-06-26
- GitHub: ultralytics/yolov5
- Документация: Документация YOLOv5
В YOLOv5 используется модифицированный бэкбон CSPDarknet, который эффективно извлекает насыщенные представления признаков и при этом сохраняет небольшое количество параметров. Модель первой внедрила автоматическое обучение якорных рамок: оптимальные размеры якорей для пользовательских наборов данных рассчитываются ещё до начала обучения. Кроме того, интеграция мозаичного увеличения данных значительно повышает способность модели обнаруживать мелкие объекты и обобщать данные в сложных пространственных контекстах.
Одно из главных преимуществ YOLOv5 — невероятная универсальность. В отличие от стандартных детекторов объектов, семейство YOLOv5 поддерживает классификацию изображений, сегментацию экземпляров и обнаружение объектов с помощью ограничивающих рамок в рамках единого API. Высокооптимизированная архитектура также значительно снижает расход памяти при обучении и инференсе по сравнению с ресурсоёмкими сетями на базе Transformer.
PP-YOLOE+: конкурент на базе PaddlePaddle#
PP-YOLOE+, представленная примерно двумя годами позже, развивает идеи предыдущих версий PP-YOLO. Её разработали, чтобы продемонстрировать возможности фреймворка глубокого обучения Baidu, и внесли несколько архитектурных улучшений для повышения средней точности (Average Precision).
Подробности о PP-YOLOE+:
- Авторы: авторы PaddlePaddle
- Организация: Baidu
- Дата: 2022-04-02
- Arxiv: 2203.16250
- GitHub: PaddlePaddle/PaddleDetection
- Документация: README PP-YOLOE+
PP-YOLOE+ использует безъякорный подход и бэкбон CSPRepResNet. Для повышения точности в ней применяются мощная методика Task Alignment Learning и Efficient Task-aligned Head. PP-YOLOE+ демонстрирует впечатляющие показатели точности, но её основной недостаток — строгая зависимость от фреймворка PaddlePaddle. Это часто усложняет освоение модели и создаёт проблемы совместимости для исследовательских команд и компаний, уже активно использующих PyTorch или TensorFlow.
Производительность и тесты#
При оценке моделей для эксплуатации важно понимать компромиссы между точностью, скоростью инференса и количеством параметров. В таблице ниже приведены основные метрики производительности для вариантов разных размеров.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| PP-YOLOE+t | 640 | 39.9 | - | 2.84 | 4.85 | 19.15 |
| PP-YOLOE+s | 640 | 43.7 | - | 2.62 | 7.93 | 17.36 |
| PP-YOLOE+m | 640 | 49.8 | - | 5.56 | 23.43 | 49.91 |
| PP-YOLOE+l | 640 | 52.9 | - | 8.36 | 52.2 | 110.07 |
| PP-YOLOE+x | 640 | 54.7 | - | 14.3 | 98.42 | 206.59 |
PP-YOLOE+ обеспечивает высокую точность, но YOLOv5 стабильно показывает более высокую скорость инференса TensorRT при любом размере модели. Для развёртывания на периферийных устройствах с ограниченной памятью YOLOv5n предлагает непревзойдённую скорость и чрезвычайно малый размер.
Модели Ultralytics специально разработаны для эффективного обучения. По сравнению с ресурсоёмкими визуальными Transformer-моделями, такими как RT-DETR, YOLOv5 использует значительно меньше памяти CUDA, позволяя обучаться с большим размером пакета или на оборудовании потребительского класса.
Преимущества Ultralytics: экосистема и простота использования#
Ценность архитектуры машинного обучения определяется не только числовыми показателями: важен весь опыт разработчика. Платформа Ultralytics и связанные с ней инструменты с открытым исходным кодом предлагают тщательно проработанную и хорошо поддерживаемую экосистему, значительно ускоряющую циклы разработки.
- Простота использования: Ultralytics избавляет от необходимости писать сложный шаблонный код. Ты можешь обучать, валидировать и тестировать модели с помощью удобного Python API или CLI.
- Гибкость развёртывания: Экспортировать модели очень просто. Одной командой ты можешь преобразовать веса обученной YOLOv5 в такие форматы, как ONNX, TensorRT или OpenVINO, обеспечив широкую совместимость с периферийными и облачными средами.
- Активное сообщество: Активное сообщество обеспечивает частые обновления, подробную документацию и надёжные решения распространённых задач компьютерного зрения.
В отличие от неё, PP-YOLOE+ сильно зависит от сложных файлов конфигурации, специфичных для PaddleDetection. Это может замедлить быстрое прототипирование и усложнить интеграцию в современные конвейеры MLOps.
Практическое применение и примеры кода#
Начать работу с Ultralytics очень просто. Вот полноценный исполняемый пример загрузки предварительно обученной модели YOLOv5, её обучения на пользовательском наборе данных и экспорта результатов:
from ultralytics import YOLO
# Загрузить предварительно обученную малую модель YOLOv5
model = YOLO("yolov5su.pt") # YOLOv5u: веса YOLOv5 без якорей для пакета ultralytics
# Обучи модель на наборе данных COCO8 в течение 50 эпох
train_results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Выполни инференс на тестовом изображении
predict_results = model("https://ultralytics.com/images/bus.jpg")
# Экспорт оптимизированной модели в формат ONNX
path = model.export(format="onnx")Сценарии использования и рекомендации#
Выбор между YOLOv5 и PP-YOLOE+ зависит от требований конкретного проекта, ограничений развёртывания и предпочтений в отношении экосистемы.
Когда стоит выбрать YOLOv5#
YOLOv5 — отличный выбор для:
- Проверенные производственные системы: существующие развертывания, где ценятся длительная история стабильной работы YOLOv5, подробная документация и поддержка большого сообщества.
- Обучение при ограниченных ресурсах: среды с ограниченными ресурсами GPU, где эффективный конвейер обучения YOLOv5 и сниженные требования к памяти дают преимущество.
- Широкая поддержка форматов экспорта: проекты, требующие развертывания во множестве форматов, включая ONNX, TensorRT, CoreML и LiteRT.
Когда выбирать PP-YOLOE+#
PP-YOLOE+ рекомендуется в следующих случаях:
- Интеграция с экосистемой PaddlePaddle: Организации с готовой инфраструктурой на базе фреймворка и инструментов PaddlePaddle от Baidu.
- Развертывание на периферийных устройствах с Paddle Lite: Развертывание на оборудовании со специально оптимизированными ядрами инференса для Paddle Lite или движка инференса Paddle.
- Обнаружение объектов на сервере с высокой точностью: Сценарии, где приоритетом является максимальная точность обнаружения на мощных серверах с GPU, а зависимость от конкретного фреймворка не имеет значения.
Когда выбирать Ultralytics (YOLO26)#
Для большинства новых проектов Ultralytics YOLO26 предлагает оптимальное сочетание производительности и удобства разработки:
- Развертывание на периферийных устройствах без NMS: Приложения, которым необходим стабильный инференс с низкой задержкой без усложнения постобработки подавлением немаксимумов.
- Среды только с CPU: Устройства без выделенного ускорителя GPU, где до 43% более быстрый инференс YOLO26 на CPU даёт решающее преимущество.
- Обнаружение небольших объектов: Сложные сценарии, например съёмка с дронов или анализ данных IoT-датчиков, где ProgLoss и STAL заметно повышают точность обнаружения крошечных объектов.
Другие передовые модели, которые стоит рассмотреть#
YOLOv5 — надёжная и проверенная модель, но компьютерное зрение развивается стремительно. Командам, которые начинают новые проекты, мы настоятельно рекомендуем изучить наши более новые архитектуры.
Ultralytics YOLO26#
Выпущенная в январе 2026 года, YOLO26 стала вершиной наших исследований. Она значительно повышает как точность, так и скорость. Ключевые нововведения:
- Сквозная архитектура без NMS: Развивая идеи YOLOv10, необязательная голова «один к одному» YOLO26 (
nms=False) пропускает этап постобработки подавления немаксимумов (NMS), сокращая задержку и упрощая логику развёртывания. - Удаление DFL: Благодаря удалению Distribution Focal Loss YOLO26 обеспечивает инференс на CPU до 43% быстрее и отлично подходит для периферийных устройств с низким энергопотреблением.
- Оптимизатор MuSGD: Этот гибрид SGD и Muon, вдохновлённый передовыми методами обучения LLM, обеспечивает исключительно стабильное обучение и быструю сходимость.
- ProgLoss + STAL: Эти современные функции потерь заметно повышают качество распознавания мелких объектов, что особенно важно для изображений с дронов и умного сельского хозяйства.
Также можно рассмотреть YOLO11: она демонстрирует отличную производительность и служит надёжным мостом между устаревшими системами и передовыми возможностями YOLO26.
Примеры применения в реальных условиях#
Выбор между YOLOv5 и PP-YOLOE+ в конечном счёте зависит от среды развёртывания и ограничений проекта.
Идеальные сценарии применения YOLOv5: Минимальные требования YOLOv5 к ресурсам и невероятная простота использования делают её оптимальным выбором для периферийного ИИ. Она отлично подходит для приложений, которым нужна высокая частота кадров на ограниченном оборудовании, например для робототехники в реальном времени, интеграции в мобильные приложения и систем мониторинга дорожного движения с несколькими камерами. Возможность выполнять сегментацию экземпляров и классификацию изображений в одном фреймворке делает модель очень универсальной.
Идеальные сценарии применения PP-YOLOE+: PP-YOLOE+ лучше всего подходит для задач, в которых максимальная точность на статичных изображениях важнее ограничений обработки в реальном времени. Модель применяется в узкоспециализированных задачах промышленного контроля, особенно в азиатском производстве, где уже используются технологические стеки на базе Baidu и PaddlePaddle.
Итак, PP-YOLOE+ демонстрирует высокую точность, но модели Ultralytics YOLO сочетают сбалансированную производительность, удобное развёртывание и ориентированный на разработчиков дизайн, помогая успешно доводить проекты компьютерного зрения от идеи до эксплуатации.