YOLOv5 против YOLOv10: эволюция обнаружения объектов в реальном времени
В области обнаружения объектов значительную роль сыграла серияYOLOYou Only Look Once). С момента своего появления YOLO сбалансировала скорость и точность, став основной архитектурой для разработчиков компьютерного зрения. В этом сравнении рассматриваются два поворотных момента в этой истории: Ultralytics YOLOv5являющийся отраслевым стандартом надежности и универсальности, и YOLOv10недавно выпущенный университетом Цинхуа академический продукт, в котором реализовано обнаружение NMS для повышения эффективности.
Обзор моделей
Ultralytics YOLOv5
Выпущено в июне 2020 года Гленом Джошером и Ultralytics, YOLOv5 кардинально изменил подход к развертыванию моделей ИИ. Приоритетом для нее стали удобство использования, экспорт в различные форматыCoreML, ONNX, TFLite) и надежная производительность на граничном оборудовании. Она остается одной из самых популярных и широко используемых моделей видения во всем мире благодаря философии "это просто работает" и широкой поддержке сообщества.
Основные авторы: Гленн Джочер
Организация:Ultralytics
Дата выпуска: 2020-06-26
GitHub:yolov5
YOLOv10
Выпущенная в мае 2024 года исследователями из Университета Цинхуа, YOLOv10 призвана устранить узкие места в постобработке, обнаруженные в предыдущих версиях. Введя последовательные двойные назначения для обучения NMS, она оптимизирует конвейер вывода, снижая задержки и вычислительные затраты.
Основные авторы: Ao Wang, Hui Chen, et al.
Организация: Университет Цинхуа
Дата выхода: 2024-05-23
arXiv:YOLOv10: Обнаружение объектов в реальном времени от конца к концу
Последние инновации
Сравнивая эти сильные архитектуры, разработчики, начинающие новые проекты, должны также оценить YOLO11. Она опирается на сильные стороны обеих архитектур, предлагая современную точность, улучшенное извлечение признаков и встроенную поддержку различных задач, таких как оценка позы и ориентированное обнаружение объектов.
Архитектура и технические инновации
Архитектурные различия между YOLOv5 и YOLOv10 подчеркивают переход от зрелой, основанной на якорях надежности к передовой, безъякорной эффективности.
YOLOv5: стандарт, основанный на якоре
В YOLOv5 используется основа CSPNet (Cross Stage Partial Network), которая позволяет сбалансировать глубину и ширину модели, чтобы минимизировать количество FLOPS и сохранить точность. В ней используются якорные ящики - предопределенныеформы, которые помогают модели предсказывать размеры объектов.
- Магистраль: CSP-Darknet53, ориентированный на градиентный поток.
- Голова: объединенная голова с прогнозированием на основе якорей.
- Постобработка: Требуется немаксимальное подавление (NMS) для фильтрации дублирующих обнаружений.
YOLOv10: Эффективность NMS
YOLOv10 представляет собой целостный дизайн, основанный на эффективности и точности. Его отличительной особенностью является стратегия обученияNMS с использованием последовательных двойных назначений. Это позволяет модели предсказывать ровно одну ограничивающую рамку для каждого объекта во время вывода, полностью устраняя вызывающий задержку шаг NMS .
- Костяк: Усовершенствованный с помощью сверток с большим ядром и частичного самовнимания.
- Head: унифицированная головка, объединяющая назначения меток "один ко многим" и "один к одному".
- Оптимизация: Разработка блоков с учетом ранга для уменьшения избыточности.
Анализ производительности
В следующей таблице приведено сравнение показателей производительности на наборе данныхCOCO . В то время как YOLOv5 остается конкурентоспособным, особенно по скорости CPU для своего варианта Nano, YOLOv10 демонстрирует превосходную эффективность по параметрам и точностиmAP).
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
Метрическая разбивка
- Точность (mAP): YOLOv10 демонстрирует значительный скачок в средней точности. Например, YOLOv10n достигает 39,5 mAP по сравнению с 28,0 mAP YOLOv5n, что делает его гораздо более способным к обнаружению сложных объектов.
- Эффективность: YOLOv10 достигает таких результатов с меньшим количеством параметров (2,3M против 2,6M у модели Nano), демонстрируя преимущества оптимизированного архитектурного дизайна.
- Скорость вывода: YOLOv5n остается невероятно быстрым на CPU(73,6 мс), что очень важно для устройств без GPU , таких как старые модели Raspberry Pi. Однако на аппаратном обеспечении GPU TensorRT) YOLOv10 сохраняет конкурентоспособную скорость, несмотря на более высокую точность.
Сильные и слабые стороны
Ultralytics YOLOv5
- Непревзойденная экосистема: Благодаря многолетней разработке, это одно из самых больших активных сообществ. Проблемы решаются быстро, а ресурсов предостаточно.
- Универсальность: Помимо обнаружения, он поддерживает сегментацию и классификацию изображений.
- Простота использования: API разработан для простоты. Загрузка модели из PyTorch Hub занимает всего одну строку кода.
- Развертывание: Широкая поддержка форматов экспорта позволяет использовать его на любых устройствах - от мобильных телефонов до облачных серверов.
YOLOv10
- Низкая задержка: Устранение NMS значительно сокращает время постобработки, что крайне важно для приложений реального времени, где важна каждая миллисекунда.
- Эффективность работы с параметрами: Обеспечивает более высокую точность на один параметр, что делает его сильным кандидатом для устройств с ограниченным объемом памяти.
- Фокус: Несмотря на свою мощь, он специализируется в основном на обнаружении объектов, не обладая широким спектром многозадачности (например, оценкой позы), присущим серии Ultralytics YOLO (v8, 11).
Требования к памяти
Обе модели спроектированы таким образом, чтобы быть легкими. В отличие от больших трансформаторных моделей, которые потребляют огромные объемы памяти CUDA во время обучения, модели Ultralytics YOLO оптимизированы для эффективности использования памяти, что позволяет обучать их на графических процессорах потребительского класса со скромным объемом VRAM.
Реальные примеры использования
Когда выбирать YOLOv5
YOLOv5 - это прагматичный выбор для производственных систем, требующих стабильности и широкой поддержки платформ.
- Промышленная автоматизация: Широко используется в производстве для контроля качества, где надежность имеет первостепенное значение.
- Мобильные приложения: проверенная совместимость с iOS CoreML) и Android TFLite) делает его идеальным для интеграции с приложениями на устройствах.
- Быстрое прототипирование: Огромное количество руководств и документации позволяет разработчикам пройти путь от концепции до POC за считанные часы.
Когда выбирать YOLOv10
YOLOv10 отлично подходит для сценариев, требующих высочайшего соотношения точности и эффективности.
- Высокоскоростная робототехника: Архитектура NMS уменьшает разброс задержек, что очень важно для контуров управления автономными роботами.
- Академические исследования: Исследователи, желающие провести сравнительный анализ с новейшими парадигмами сквозного обнаружения, найдут архитектуру YOLOv10 новой и эффективной.
- Удаленное наблюдение: Высокий mAP при малом количестве параметров подходит для систем безопасности, работающих в условиях ограниченной пропускной способности или хранения данных.
Обучение и простота использования
Ultralytics уделяет первостепенное внимание оптимизации работы разработчиков. Используете ли вы классический репозиторий YOLOv5 или современный ultralytics Пакет для новых моделей - процесс интуитивно понятный.
Использование YOLOv5
YOLOv5 , как известно, легко загружается через PyTorch Hub для мгновенных выводов.
import torch
# Load YOLOv5s from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s")
# Perform inference on an image
img = "https://ultralytics.com/images/zidane.jpg"
results = model(img)
# Display results
results.show()
Использование YOLOv10
YOLOv10 может быть интегрирован с помощью ultralytics Пакет Python , использующий тот же мощный API.
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Train the model on COCO data
model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference
model.predict("https://ultralytics.com/images/bus.jpg", save=True)
Заключение
Обе архитектуры являются вехами в развитии компьютерного зрения. YOLOv5 остается надежной рабочей лошадкой индустрии - прочной, универсальной и поддерживаемой обширной экосистемой. Это надежный выбор для различных задач развертывания. YOLOv10 расширяет границы эффективности благодаря дизайну NMS, предлагая привлекательную модернизацию для пользователей, ориентированных на задачи обнаружения, которым требуется максимальная точность на ограниченном оборудовании.
Разработчикам, которые ищут лучшее из двух миров - сочетание зрелости экосистемы Ultralytics с ультрасовременной точностью и скоростью - мы рекомендуем обратить внимание на YOLO11. Он объединяет все эти достижения в единый мощный фреймворк, готовый к решению любых задач в области технического зрения.
Чтобы изучить больше сравнений, посмотрите YOLOv5 против YOLOv8 или YOLOv10 против YOLO11.