YOLO PP-YOLOE+: технический анализ промышленного обнаружения объектов
В конкурентной сфере обнаружения объектов в реальном времени две модели стали важными вехами для промышленного применения: YOLO, разработанная Alibaba Group, и PP-YOLOE+, флагманский детектор из PaddlePaddle компании Baidu. Обе архитектуры уделяют приоритетное внимание балансу между скоростью вывода и точностью обнаружения, но достигают этих целей с помощью совершенно разных инженерных подходов.
В этом всеобъемлющем руководстве анализируются их архитектурные инновации, сравниваются показатели производительности и представлена Ultralytics — модель нового поколения, которая переопределяет стандарты удобства использования и развертывания на периферии.
Обзор DAMO-YOLO
YOLO Distillation-Augmented MOdel) был внедрен для расширения пределов производительности за счет использования автоматизированного проектирования архитектуры и передовых методов обучения.
Авторы: Сяньчжэ Сюй, Ици Цзян, Вэйхуа Чэнь, Илунь Хуан, Юань Чжан и Сюю Сунь
Организация:Alibaba Group
Дата: 23 ноября 2022 г.
Arxiv:YOLO
GitHub:YOLO
Архитектурные инновации
YOLO от традиционного ручного проектирования благодаря использованию нейронного архитектурного поиска (NAS). Его основные компоненты включают:
- MAE-NAS Backbone: структура магистрали обнаруживается автоматически с помощью метода вспомогательных ребер (MAE-NAS) для максимального увеличения пропускной способности при определенных ограничениях по задержке.
- RepGFPN: конструкция с тяжелым шеей, основанная на Generalized Feature Pyramid Network (GFPN). Она использует различные размеры каналов на разных уровнях масштабирования для оптимизации слияния характеристик без значительных вычислительных затрат, характерных для типичных BiFPN.
- ZeroHead: легкая головка обнаружения, которая минимизирует сложность конечных слоев прогнозирования, экономя критические миллисекунды во время вывода.
- AlignedOTA: усовершенствованная стратегия присвоения меток, которая решает проблемы несоответствия между задачами классификации и регрессии во время обучения.
Сильные и слабые стороны
Основная силаYOLO его ориентированной на задержку конструкции. Используя NAS, он извлекает максимальную точность из определенного вычислительного бюджета. Однако эта сложность может быть палкой о двух концах: архитектура на основе NAS может быть сложной для модификации или тонкой настройки для пользовательских наборов данных по сравнению с архитектурами, разработанными вручную. Кроме того, его зависимость от дистилляции (когда большая модель-учитель направляет ученика) добавляет сложности к процессу обучения.
Обзор PP-YOLOE+
PP-YOLOE+ — это усовершенствованная версия PP-YOLOE, которая является основой пакета PaddleDetection. Она в значительной степени ориентирована на универсальность развертывания в облаке и на периферии.
Авторы: PaddlePaddle
Организация:Baidu
Дата: 2 апреля 2022 г.
Arxiv:PP-YOLOE Статья
GitHub:PaddlePaddle
Архитектурные инновации
PP-YOLOE+ основан на парадигме без якорей, уделяя особое внимание уточнению и стабильности обучения:
- CSPRepResStage: Основой является масштабируемая структура CSP (Cross Stage Partial) с перепараметризуемыми остаточными блоками, что позволяет осуществлять извлечение сложных признаков во время обучения и упрощать операции во время вывода.
- Task Alignment Learning (TAL): динамическая схема присвоения меток, которая явно согласовывает опорные точки с объектами реальной действительности на основе как классификационного балла, так и IoU Intersection over Union).
- Эффективное сжатие и возбуждение (ESE): механизм внимания, интегрированный в основу, для улучшения представления характеристик путем перекалибровки реакций характеристик по каналам.
Сильные и слабые стороны
PP-YOLOE+ отличается превосходной интеграцией в экосистему. Являясь частью PaddlePaddle , он обеспечивает надежную поддержку различных целей развертывания, включая серверные графические процессоры и мобильные устройства. Однако его производительность в стандартных PyTorch может быть снижена из-за необходимости конвертировать модели или адаптироваться к специфическому синтаксису PaddlePaddle , что может вызвать трудности у разработчиков, привыкших к стандартному PyTorch конвейерам.
Сравнение производительности
В следующей таблице показаны различия в производительности двух моделей на COCO .
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| DAMO-YOLOt | 640 | 42.0 | - | 2.32 | 8.5 | 18.1 |
| DAMO-YOLOs | 640 | 46.0 | - | 3.45 | 16.3 | 37.8 |
| DAMO-YOLOm | 640 | 49.2 | - | 5.09 | 28.2 | 61.8 |
| DAMO-YOLOl | 640 | 50.8 | - | 7.18 | 42.1 | 97.3 |
| 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 |
Анализ
- Небольшие модели (Nano/Tiny):YOLO обеспечивает более высокую точность (mAP) для небольших вариантов, демонстрируя эффективность своей оптимизированной для NAS основной структуры в ограниченных средах. Однако PP-YOLOE+t значительно меньше по количеству параметров (4,85 млн против 8,5 млн), что может быть предпочтительным для устройств с крайне ограниченным объемом памяти.
- Средние и крупные модели: с увеличением размера модели PP-YOLOE+ демонстрирует более высокую точность, превосходяYOLO средней и крупной категориях (например, 52,9 mAP 50,8 mAP крупной категории).
- Скорость вывода:YOLO превосходную задержку на TensorRT для большинства размеров, подтверждая свою архитектуру «задержка прежде всего». Напротив, PP-YOLOE+s демонстрирует удивительно высокую скорость (2,62 мс), что делает его сильным конкурентом для определенных приложений реального времени.
Преимущество Ultralytics: YOLO26
В то время какYOLO PP-YOLOE+ предлагают привлекательные функции для определенных ниш, Ultralytics представляет собой следующий эволюционный шаг в области компьютерного зрения, устраняя ограничения обоих предшественников за счет радикальных изменений архитектуры и улучшений в области удобства использования.
Почему YOLO26 — лучший выбор
- Сквозной дизайн NMS: в отличие от PP-YOLOE+ и традиционных YOLO , которые требуют немаксимального подавления (NMS) для фильтрации перекрывающихся блоков, YOLO26 является сквозным по своей природе. Это устраняет основное препятствие для развертывания, снижая разброс задержек и упрощая процесс экспорта в такие форматы, как ONNX и CoreML.
- Непревзойденная CPU : оптимизированный специально для пограничных вычислений, YOLO26 обеспечивает на 43 % более быстрое CPU по сравнению с предыдущими поколениями. Это крайне важно для приложений, работающих на Raspberry Pi, мобильных телефонах или стандартных облачных инстансах, где графические процессоры недоступны.
- Улучшенная стабильность обучения: YOLO26 включает в себя оптимизатор MuSGD, гибрид SGD Muon (вдохновленный обучением LLM), обеспечивающий более быструю конвергенцию и более стабильное обучение даже со сложными настраиваемыми наборами данных.
- Упрощенная архитектура: удаление функции распределения фокальных потерь (DFL) упрощает структуру модели, повышая совместимость с маломощными периферийными устройствами и ускорителями, которые испытывают трудности с комплексными функциями потерь.
- Целостная экосистема: с помощью Ultralytics пользователи получают доступ к бесперебойному конвейеру для управления данными, обучения в облаке и развертывания в один клик.
Универсальность, превосходящая возможности обнаружения
В отличие отYOLO в основном ориентирован на обнаружение, YOLO26 изначально поддерживает полный спектр задач, включая сегментацию экземпляров, оценку позы, OBB (ориентированная ограничивающая рамка) и классификацию.
Простота использования
Одной из отличительных черт Ultralytics является удобство для разработчиков. В то время какYOLO PP-YOLOE+ могут потребовать сложных конфигурационных файлов или специальных знаний о фреймворке, YOLO26 можно реализовать всего несколькими строчками кода.
from ultralytics import YOLO
# Load the latest YOLO26 nano model
model = YOLO("yolo26n.pt")
# Train the model on your custom dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Export to ONNX for deployment
model.export(format="onnx")
Реальные примеры использования
- Умная розничная торговля: используйте скорость YOLO26 для мониторинга запасов на полках в режиме реального времени без дорогостоящего GPU .
- Сельское хозяйство: используйте функции ProgLoss + STAL для улучшения распознавания мелких объектов, что необходимо для обнаружения вредителей или подсчета урожая на снимках, сделанных с помощью дронов.
- Производство: внедрение моделей NMS для высокоскоростного контроля качества на сборочных линиях, где постоянная задержка является обязательным условием.
Заключение
Выбор подходящей модели зависит от ваших конкретных ограничений. YOLO — отличный выбор для исследования архитектур NAS и сценариев, в которых приоритетом являются определенные целевые значения TensorRT . PP-YOLOE+ — надежный вариант для тех, кто глубоко интегрирован в экосистему Baidu и нуждается в высокой точности на серверном оборудовании.
Однако для подавляющего большинства разработчиков и предприятий, которые ищут перспективное, простое в использовании и универсальное решение, Ultralytics является лучшим выбором. Его комплексная конструкция, превосходная CPU и поддержка активного сообщества открытого исходного кода делают его идеальным выбором для современных приложений компьютерного зрения.
Пользователи, заинтересованные в других современных опциях, могут ознакомиться с YOLO11 или основанный на трансформере RT-DETR в Ultralytics .