YOLOv10 vs. YOLOv5: Глубокий анализ архитектуры и производительности
В быстро развивающейся области компьютерного зрения выбор правильной модели обнаружения объектов имеет решающее значение для успеха проекта. В этом сравнении рассматриваются технические различия между YOLOv10, недавним академическим релизом, ориентированным на обучение без NMS, и YOLOv5, легендарной моделью от Ultralytics, известной своей надежностью и широким распространением в отрасли. Хотя обе модели происходят из семейства You Only Look Once, они отвечают различным инженерным приоритетам и средам развертывания.
Обзоры моделей
YOLOv10: Специалист по эффективности
Выпущенная в мае 2024 года исследователями из Университета Цинхуа, YOLOv10 представляет архитектурные механизмы, разработанные для устранения необходимости в Non-Maximum Suppression (NMS) во время вывода. Благодаря использованию согласованных двойных назначений во время обучения, YOLOv10 стремится уменьшить сквозную задержку, что делает ее сильным кандидатом для периферийных приложений, где важна каждая миллисекунда задержки при выводе.
- Авторы: Ao Wang, Hui Chen, Lihao Liu, и др.
- Организация: Университет Цинхуа
- Дата: 2024-05-23
- Arxiv:YOLOv10: Real-Time End-to-End Object Detection
- GitHub:THU-MIG/yolov10
Ultralytics YOLOv5: Промышленный стандарт
С момента выпуска в 2020 году компанией Ultralytics, YOLOv5 определил простоту использования в AI-сообществе. Он уделяет первостепенное внимание балансу скорости, точности и инженерной полезности. Помимо необработанных метрик, YOLOv5 предлагает зрелую экосистему, легко интегрируясь с инструментами мобильного развертывания, платформами отслеживания экспериментов и рабочими процессами управления наборами данных. Его универсальность выходит за рамки detection и включает в себя классификацию изображений и сегментацию экземпляров.
- Автор: Гленн Джокер
- Организация: Ultralytics
- Дата: 26.06.2020
- GitHub:ultralytics/yolov5
Архитектурные различия
Основное различие заключается в том, как обрабатываются прогнозы. YOLOv5 использует высокооптимизированную архитектуру на основе anchor, которая полагается на NMS для фильтрации перекрывающихся ограничивающих рамок. Этот метод проверен в боях и надежен для различных наборов данных.
В отличие от этого, YOLOv10 использует стратегию последовательного двойного назначения. Это позволяет модели предсказывать одну лучшую рамку для каждого объекта во время инференса, теоретически полностью удаляя шаг NMS. Это сокращение накладных расходов на постобработку является главным преимуществом YOLOv10, предлагая более низкую задержку на периферийных устройствах, таких как NVIDIA Jetson Orin Nano. Кроме того, YOLOv10 включает в себя целостные конструкции эффективности в своей магистральной сети и голове, чтобы минимизировать параметры (params) и операции с плавающей запятой (FLOPs).
Эффективность памяти
Одной из отличительных черт моделей Ultralytics, таких как YOLOv5 (и более новой YOLO11), является их оптимизированное использование памяти. В отличие от некоторых детекторов на основе трансформеров, которые потребляют огромные объемы памяти CUDA, модели Ultralytics разработаны для эффективного обучения на оборудовании потребительского класса, что делает передовые технологии ИИ более доступными.
Метрики производительности
В таблице ниже показаны компромиссы в производительности. YOLOv10, как правило, достигает более высокого среднего значения точности (mAP) с меньшим количеством параметров по сравнению со старой архитектурой YOLOv5. Однако YOLOv5 остается конкурентоспособным по скорости прямого вывода на определенных конфигурациях оборудования, особенно при использовании оптимизированных форматов экспорта, таких как TensorRT или ONNX.
| Модель | размер (пиксели) | 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
Преимущества:
- Без NMS: Удаление этапа non-maximum suppression упрощает конвейер развертывания и стабилизирует задержку inference.
- Эффективность параметров: Достигает высокой точности с меньшим весом модели, что выгодно для устройств с ограниченным объемом памяти.
- Современная точность: Превосходит старые версии YOLO по чистому показателю mAP в бенчмарке COCO .
Слабые стороны:
- Ограниченная универсальность: В первую очередь ориентирован на object detection, отсутствует встроенная поддержка сложных задач, таких как оценка позы или Oriented Bounding Box (OBB) detection, которые есть в новых моделях Ultralytics.
- Развивающаяся экосистема: Как модель, ориентированная на исследования, ей может не хватать обширных плагинов сообщества, проверенных интеграций и корпоративной поддержки, доступных для моделей, разработанных Ultralytics.
Анализ YOLOv5
Преимущества:
- Непревзойденная универсальность: Поддерживает detect, segment и classify прямо из коробки.
- Надежная экосистема: Поддерживается Ultralytics, легко интегрируется с такими инструментами, как Ultralytics HUB, Roboflow и Comet ML.
- Готовность к развертыванию: Существует обширная документация по экспорту в CoreML, TFLite, TensorRT и OpenVINO, обеспечивающая плавный запуск в производство.
- Эффективность обучения: Известна стабильной динамикой обучения и низким потреблением памяти, что делает ее доступной для разработчиков с одно-GPU конфигурациями.
Слабые стороны:
- Устаревающая архитектура: Несмотря на то, что она все еще мощная, ее чистое соотношение mAP/FLOPs было превзойдено более новыми итерациями, такими как YOLOv8 и YOLO11.
- Зависимость от якорей: Полагается на anchor boxes, которые могут потребовать ручной настройки для наборов данных с экстремальными пропорциями объектов.
Идеальные варианты использования
Выбор между этими двумя моделями часто сводится к конкретным ограничениям вашей среды развертывания.
- Выберите YOLOv10, если: Вы создаете специализированную систему обнаружения объектов для встроенного устройства, где устранение вычислительных издержек NMS обеспечивает критическое преимущество в скорости, или если вам требуется абсолютно самый высокий mAP при небольшом объеме модели.
- Выберите YOLOv5, если: Вам нужна надежная многозадачная модель для производственного конвейера. Его способность обрабатывать сегментацию экземпляров и классификацию делает его «швейцарским армейским ножом» для vision AI. Кроме того, если ваша команда полагается на стандартные рабочие процессы MLOps, полная интеграция YOLOv5 в экосистему Ultralytics значительно сокращает время разработки.
Пользовательский опыт и экосистема
Одной из определяющих особенностей моделей Ultralytics является акцент на удобстве для разработчиков. YOLOv5 установила стандарт для принципа «просто работает», и эта философия сохраняется. Пользователи могут обучить модель YOLOv5 на пользовательских данных всего несколькими строками кода, используя предварительно обученные веса для ускорения сходимости.
В отличие от этого, хотя YOLOv10 предоставляет отличные академические результаты, интеграция его в сложные производственные конвейеры может потребовать больше пользовательской разработки. Ultralytics поддерживает активное сообщество с открытым исходным кодом, обеспечивая быстрое устранение ошибок и добавление функций на основе реальных отзывов пользователей.
Сравнение кода
Запуск этих моделей прост. Ниже приведены примеры того, как загружать и прогнозировать с помощью python.
Использование YOLOv10:
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Perform inference on an image
results = model("path/to/image.jpg")
results[0].show()
Использование YOLOv5 (через PyTorch Hub):
import torch
# Load YOLOv5s from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s")
# Perform inference
results = model("path/to/image.jpg")
results.show()
Заключение
Обе модели представляют собой значительные достижения в области компьютерного зрения. YOLOv10 расширяет границы оптимизации задержки благодаря своей конструкции без NMS, что делает его интересным выбором для специализированных высокоскоростных задач detect.
Однако, для большинства разработчиков и предприятий экосистема Ultralytics — представленная здесь неизменной надежностью YOLOv5 и передовой производительностью YOLO11 — предлагает более комплексное решение. Сочетание простоты использования, обширной документации и многозадачности гарантирует, что вы потратите меньше времени на отладку и больше времени на развертывание ценности.
Для тех, кто хочет перейти с YOLOv5, сохранив при этом преимущества экосистемы, мы настоятельно рекомендуем изучить YOLO11, которая обеспечивает самую современную производительность, detectирование без привязки к якорям и поддержку полного спектра задач vision, включая OBB и оценку позы.