YOLOv10 против YOLOv5: архитектура и производительность
В быстро развивающейся области компьютерного зрения выбор правильной модели обнаружения объектов имеет решающее значение для успеха проекта. В этом сравнении рассматриваются технические различия между YOLOv10недавно выпущенной академической версией, ориентированной на обучение NMS, и YOLOv5легендарной моделью от Ultralytics , известной своей надежностью и широким распространением в отрасли. Несмотря на то, что обе модели берут свое начало в линейке You Only Look Once, они ориентированы на разные инженерные приоритеты и среды развертывания.
Обзоры моделей
YOLOv10: Специалист по эффективности
Выпущенный в мае 2024 года исследователями из Университета Цинхуа, YOLOv10 представляет архитектурные механизмы, призванные устранить необходимость в немаксимальном подавлении (NMS) во время вывода. Благодаря использованию последовательных двойных назначений во время обучения, YOLOv10 стремится уменьшить сквозную задержку, что делает его сильным кандидатом для граничных приложений, где каждая миллисекунда задержки вывода имеет значение.
- Авторы: Ao Wang, Hui Chen, Lihao Liu, и др.
- Организация: Университет Цинхуа
- Дата: 2024-05-23
- Arxiv:YOLOv10: обнаружение объектов в реальном времени от конца к концу
- GitHub:THU-MIG/yolov10
Ultralytics YOLOv5: отраслевой стандарт
С момента выпуска в 2020 году компанией UltralyticsYOLOv5 определил простоту использования в сообществе ИИ. Приоритетом является баланс скорости, точности и инженерной полезности. Помимо сырых показателей, YOLOv5 предлагает развитую экосистему, легко интегрируясь с мобильными инструментами развертывания, платформами отслеживания экспериментов и рабочими процессами управления наборами данных. Его универсальность выходит за рамки обнаружения и включает в себя классификацию изображений и сегментацию экземпляров.
- Автор: Гленн Джокер
- Организация: Ultralytics
- Дата: 26.06.2020
- GitHub:yolov5
Архитектурные различия
Основное расхождение заключается в способе обработки предсказаний. В YOLOv5 используется высоко оптимизированная архитектура на основе якорей, которая опирается на 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: Устранение шага подавления не-максимальных значений упрощает конвейер развертывания и стабилизирует задержку вывода.
- Эффективность параметров: Достижение высокой точности при меньших весах модели, что выгодно для устройств с ограниченным объемом памяти.
- Современная точность: Превосходит старые версии YOLO по чистому показателю mAP в бенчмарке COCO .
Слабые стороны:
- Ограниченная универсальность: В первую очередь ориентирован на обнаружение объектов, не поддерживая такие сложные задачи, как оценка позы или обнаружение ориентированных границ (Oriented Bounding Box, OBB), которые есть в новых моделях Ultralytics .
- Развивающаяся экосистема: Поскольку модель ориентирована на исследования, ей может не хватать обширного сообщества плагинов, проверенных в боях интеграций и поддержки предприятий, доступных для Ultralytics моделей Ultralytics
Анализ YOLOv5
Преимущества:
- Непревзойденная универсальность: Поддерживает обнаружение, сегментацию и классификацию.
- Надежная экосистема: При поддержке UltralyticsОна легко интегрируется с такими инструментами, как Ultralytics HUB, Roboflow и Comet ML.
- Готовность к развертыванию: Имеется обширная документация по экспорту в CoreML, TFLite, TensorRT и OpenVINO, что обеспечивает беспрепятственное развертывание производства.
- Эффективность обучения: Известен стабильной динамикой обучения и низким потреблением памяти, что делает его доступным для разработчиков с одним GPU процессором.
Слабые стороны:
- Стареющая архитектура: Хотя она все еще мощная, ее чистое соотношение mAP было превзойдено более новыми итерациями, такими как YOLOv8 и YOLO11.
- Зависимость от якорей: Полагается на якорные блоки, которые могут потребовать ручной настройки для наборов данных с экстремальными соотношениями сторон объектов.
Идеальные варианты использования
Выбор между этими двумя вариантами часто сводится к конкретным ограничениям вашей среды развертывания.
- Выбирайте YOLOv10 , если: Вы создаете специализированную систему обнаружения объектов для встраиваемого устройства, где устранение накладных расходов на вычисления NMS обеспечивает критическое преимущество в скорости, или если вам требуется абсолютный максимум mAP при малой занимаемой площади модели.
- Выбирайте YOLOv5 , если: Вам нужна надежная многозадачная модель для производственного конвейера. Способность обрабатывать сегментацию и классификацию экземпляров делает ее "швейцарским армейским ножом" для ИИ зрения. Кроме того, если ваша команда полагается на стандартные рабочие процессы 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, что делает его интересным выбором для специализированных высокоскоростных задач обнаружения.
Однако для большинства разработчиков и предприятий экосистемаUltralytics , представленнаяздесь надежностью YOLOv5 и передовой производительностью YOLO11-предлагает более комплексное решение. Сочетание простоты использования, обширной документации и многозадачных возможностей гарантирует, что вы будете тратить меньше времени на отладку и больше на внедрение.
Тем, кто хочет перейти с YOLOv5 , сохранив при этом преимущества экосистемы, мы настоятельно рекомендуем изучить YOLO11которая обеспечивает современную производительность, обнаружение без якорей и поддержку всего спектра задач технического зрения, включая OBB и оценку позы.