Ultralytics YOLOv10 YOLOv5: эволюция обнаружения объектов в реальном времени
Выбор подходящей модели обнаружения объектов предполагает поиск баланса между архитектурной эффективностью, ограничениями развертывания и поддержкой сообщества. В этом всестороннем сравнении рассматриваются технические различия между YOLOv10, академического прорыва в области сквозного обнаружения, и YOLOv5, легендарным отраслевым стандартом, который переопределил простоту использования в компьютерном зрении.
Обе модели представляют собой значительный скачок в YOLO . В то время как YOLOv5 золотой стандарт пользовательского опыта и надежности, YOLOv10 границы задержки, удаляя немаксимальное подавление (NMS) из конвейера вывода. Для разработчиков, которые ищут абсолютную новейшую скорость и сквозную архитектуру, недавно выпущенный Ultralytics основывается на этих принципах с превосходной оптимизацией для периферийных устройств.
Сравнение метрик производительности
В таблице ниже показаны компромиссы между двумя архитектурами с точки зрения производительности. YOLOv10 обеспечивает более высокую точность (mAP) и устраняет NMS , в то время как YOLOv5 очень конкурентоспособным выбором благодаря широкой поддержке развертывания и зрелости.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
YOLOv10: Сквозной инноватор
YOLOv10 парадигмальный сдвиг, устраняя необходимость в использовании алгоритма Non-Maximum Suppression (NMS) во время постобработки. Это позволяет осуществлять действительно сквозное развертывание, сокращая задержку и сложность вывода.
Ключевые архитектурные особенности
- ОбучениеNMS: использует последовательные двойные задания для обучения NMS, что позволяет модели напрямую прогнозировать отдельные ограничивающие рамки.
- Комплексный дизайн эффективности: оптимизирует различные компоненты (такие как магистраль и шея) для уменьшения вычислительной избыточности.
- Пространственно-канальное декуплированное понижающее дискретизирование: улучшает сохранение информации при понижающем масштабировании карты признаков.
- Ранжированный блок-дизайн: адаптирует этапы блока для уменьшения избыточности на основе анализа внутреннего ранжирования.
Авторы: Ао Ван, Хуэй Чен, Лихао Лю и др.
Организация:Университет Цинхуа
Дата: 23.05.2024
Ссылки:Arxiv | GitHub
Сквозная задержка
Благодаря удалению NMS, YOLOv10 сокращает вариативность выводов. В стандартных YOLO NMS зависит от количества обнаруженных объектов, что может приводить к всплескам задержек в сценах с большим количеством объектов. Стабильное время вывода YOLOv10 делает его идеальным решением для систем реального времени со строгими временными ограничениями.
YOLOv5: промышленный стандарт
Выпущенный Ultralytics 2020 году, YOLOv5 в этой области не только благодаря своей архитектуре, но и благодаря доступности. Он сделал приоритетом беспроблемную работу «из коробки», надежную экспортируемость и обширную экосистему поддержки.
Ключевые преимущества
- Зрелая экосистема: обширная документация, учебные материалы и поддержка сообщества упрощают устранение неполадок.
- Широкая совместимость: поддержка экспорта для TFLite, CoreML, ONNX и TensorRT развертывание практически на любом оборудовании, от iOS до периферийных TPU.
- Универсальность: встроенная поддержка сегментации экземпляров и классификации изображений наряду с обнаружением.
- Стабильность обучения: известен своей устойчивостью к изменениям гиперпараметров и надежной конвергенцией на различных пользовательских наборах данных.
Автор: Гленн Джочер
Организация:Ultralytics
Дата: 26.06.2020
Ссылки:GitHub | Документация
Подробное сравнение
Архитектура и Обучение
YOLOv10 оптимизации, подобные Transformer, и усовершенствованную дискриминацию по каналам для достижения высокой точности с меньшим количеством параметров. Его стратегия «последовательного двойного назначения» позволяет ему обучаться сопоставлению «один к одному» во время обучения, устраняя NMS .
YOLOv5 классическую основу CSPDarknet с PANet neck, оптимизированную для баланса скорости и точности. Он использует обнаружение на основе анкеров, которое требует тщательной настройки анкерных рамок для оптимальной производительности на уникальных наборах данных, хотя его функция автоматической эволюции анкеров обрабатывает это автоматически для большинства пользователей.
Варианты использования и реальные применения
Идеальные сценарии для YOLOv10:
- Высокая плотность толпы: в таких случаях NMS замедляет обработку из-за большого количества перекрывающихся прямоугольников.
- Робототехника с низкой задержкой: когда стабильное время вывода имеет решающее значение для контуров управления.
- Академические исследования: для изучения механизмов сквозного обнаружения и стратегий присвоения меток.
Идеальные сценарии для YOLOv5:
- Мобильное развертывание: проверенные конвейеры для iOS Android iOS с использованием TFLite CoreML.
- Промышленная инспекция: где долгосрочная стабильность и воспроизводимость важнее, чем передовые mAP.
- Проекты для начинающих: Самый простой входной уровень для студентов, изучающих компьютерное зрение.
Простота использования и экосистема
YOLOv5 интеграцией в Ultralytics . Пользователи могут визуализировать процессы обучения с помощью Comet , track и беспрепятственно развертывать модели. Ultralytics еще больше упрощает этот процесс, предлагая интерфейс без кода для управления наборами данных и обучения моделей.
Хотя YOLOv10 вPython Ultralytics Python , YOLOv10 использовать привычный синтаксис, он в первую очередь является академическим вкладом. Следовательно, он может не получать такие же частые обновления или глубокое обслуживание, как основные Ultralytics , такие как YOLO11 или передовой YOLO26.
Примеры кода
Обе модели используют единый Ultralytics , что позволяет легко переключаться между ними для проведения тестирования.
from ultralytics import YOLO
# Load a pretrained YOLOv10 model
model_v10 = YOLO("yolov10n.pt")
# Train YOLOv10 on a custom dataset
model_v10.train(data="coco8.yaml", epochs=100, imgsz=640)
# Load a pretrained YOLOv5 model (via the v8/v11/26 compatible loader)
model_v5 = YOLO("yolov5nu.pt")
# Train YOLOv5 using the modern Ultralytics engine
model_v5.train(data="coco8.yaml", epochs=100, imgsz=640)
Заключение: Что выбрать?
Если вашим приоритетом является высочайшая точность и стабильность задержки, особенно в сценах с большим количеством объектов, YOLOv10 является отличным выбором. Его архитектурные инновации дают представление о будущем обнаружения NMS.
Однако, если вам требуется проверенное в боях решение с подробными руководствами по развертыванию, широкой поддержкой оборудования и максимальной стабильностью, YOLOv5 остается мощным инструментом.
Разработчикам, которые хотят получить все самое лучшее —сквозное инференсирование NMS, превосходную точность и полную поддержку Ultralytics — мы настоятельно рекомендуем ознакомиться с YOLO26. YOLO26 включает в себя дизайн NMS, впервые представленный в YOLOv10 усовершенствованный с помощью оптимизатора MuSGD и оптимизированных функций потери, что позволяет ускорить CPU до 43%.
Узнать больше моделей
- YOLO11: Предыдущее поколение SOTA, отличающееся превосходной универсальностью при выполнении различных задач.
- RT-DETR: детектор реального времени на основе трансформатора, который также удаляет NMS.
- YOLO26: новейшая и самая передовая модель от Ultralytics, отличающаяся сквозной обработкой и оптимизацией по краям.