Перейти к содержанию

YOLOv5 против YOLOv10: Эволюция в области обнаружения объектов в реальном времени

Ландшафт object detection был значительно сформирован серией You Only Look Once (YOLO). С момента своего создания YOLO балансировала между скоростью и точностью, став основной архитектурой для разработчиков компьютерного зрения. В этом сравнении исследуются два поворотных момента в этой истории: Ultralytics YOLOv5, отраслевой стандарт надежности и универсальности, и YOLOv10, недавний академический выпуск Университета Цинхуа, который представляет detect без NMS для повышения эффективности.

Обзор модели

Ultralytics YOLOv5

Выпущено в июне 2020 года Гленом Джошером и Ultralytics, YOLOv5 кардинально изменил подход к развертыванию моделей ИИ. Приоритетом для нее стали удобство использования, экспорт в различные форматыCoreML, ONNX, TFLite) и надежная производительность на граничном оборудовании. Она остается одной из самых популярных и широко используемых моделей видения во всем мире благодаря философии "это просто работает" и широкой поддержке сообщества.

Основные авторы: Glenn Jocher
Организация:Ultralytics
Дата выпуска: 2020-06-26
GitHub:ultralytics/yolov5

Узнайте больше о YOLOv5

YOLOv10

Выпущенная в мае 2024 года исследователями из Университета Цинхуа, YOLOv10 стремится устранить узкие места постобработки, обнаруженные в предыдущих версиях. Внедряя согласованные двойные назначения для обучения без NMS, она оптимизирует конвейер вывода, уменьшая задержку и вычислительные издержки.

Основные авторы: Ao Wang, Hui Chen и др.
Организация: Университет Цинхуа
Дата выпуска: 2024-05-23
arXiv:YOLOv10: Обнаружение объектов в реальном времени

Узнайте больше о YOLOv10

Последние инновации

Сравнивая эти мощные архитектуры, разработчикам, начинающим новые проекты, также следует оценить YOLO11. Он опирается на сильные стороны обеих, предлагая современную точность, улучшенное извлечение признаков и встроенную поддержку различных задач, таких как оценка позы и обнаружение ориентированных объектов.

Архитектура и технические инновации

Архитектурные различия между YOLOv5 и YOLOv10 подчеркивают переход от проверенной временем надежности, основанной на anchor-based подходе, к передовой эффективности anchor-free.

YOLOv5: Стандарт на основе Anchor

YOLOv5 использует бэкбон CSPNet (Cross Stage Partial Network), который балансирует глубину и ширину модели, чтобы минимизировать FLOPS, сохраняя при этом точность. Он опирается на anchor boxes — предопределенные формы, которые помогают модели предсказывать размеры объектов.

  • Backbone: CSP-Darknet53, ориентированный на поток градиентов.
  • Head: Связанная голова с прогнозированием на основе якорей.
  • Постобработка: Требуется Non-Maximum Suppression (NMS) для фильтрации дублирующихся detect.

YOLOv10: Эффективность без NMS

YOLOv10 представляет целостный дизайн, ориентированный на эффективность и точность. Его выдающейся особенностью является стратегия NMS-free training с использованием согласованных двойных назначений. Это позволяет модели прогнозировать ровно одну ограничивающую рамку для каждого объекта во время inference, полностью устраняя этап NMS, вызывающий задержку.

  • Backbone: Улучшен с помощью сверток с большими ядрами и частичного самовнимания.
  • Head: Унифицированная голова, объединяющая назначения меток «один ко многим» и «один к одному».
  • Оптимизация: Блочная структура, управляемая ранжированием, для уменьшения избыточности.

Анализ производительности

В следующей таблице сравниваются метрики производительности на COCO dataset. Хотя YOLOv5 остается конкурентоспособной, особенно по скорости CPU для своего Nano варианта, YOLOv10 демонстрирует превосходную эффективность с точки зрения параметров и точности (mAP).

Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4

Разбивка по метрикам

  • Точность (mAP): YOLOv10 демонстрирует значительный скачок в средней точности. Например, YOLOv10n достигает 39.5 mAP по сравнению с 28.0 mAP у YOLOv5n, что делает его гораздо более способным detect сложные объекты.
  • Эффективность: YOLOv10 достигает этих результатов с меньшим количеством параметров (2,3M против 2,6M для Nano модели), демонстрируя преимущества своей оптимизированной архитектурной конструкции.
  • Скорость инференса: YOLOv5n остается невероятно быстрым на CPU (73,6 мс), что критически важно для периферийных устройств без GPU, таких как старые Raspberry Pi. Однако на GPU (TensorRT) YOLOv10 поддерживает конкурентоспособную скорость, несмотря на более высокую точность.

Сильные и слабые стороны

Ultralytics YOLOv5

  • Непревзойденная экосистема: Поддерживаемый годами разработки, он имеет одно из крупнейших активных сообществ. Проблемы решаются быстро, и ресурсов предостаточно.
  • Универсальность: Помимо detect, он изначально поддерживает image segmentation и classification.
  • Простота использования: API разработан для простоты. Загрузка модели из PyTorch Hub занимает одну строку кода.
  • Развертывание: Обширная поддержка форматов экспорта гарантирует, что он работает на всем, от мобильных телефонов до облачных серверов.

YOLOv10

  • Низкая задержка: Удаление NMS значительно сокращает время постобработки, что жизненно важно для приложений реального времени, где важна каждая миллисекунда.
  • Эффективность параметров: Он обеспечивает более высокую точность на параметр, что делает его сильным кандидатом для устройств с ограниченным объемом памяти или хранилища.
  • Фокус: Будучи мощным, он в основном специализируется на обнаружении объектов, и ему не хватает встроенной многозадачности (например, оценки позы), которая есть в серии Ultralytics YOLO (v8, 11).

Требования к памяти

Обе модели разработаны как легковесные. В отличие от больших transformer-моделей, которые потребляют огромные объемы памяти CUDA во время обучения, модели Ultralytics YOLO оптимизированы для эффективного использования памяти, что позволяет обучать их на GPU потребительского класса со скромным объемом VRAM.

Реальные примеры использования

Когда следует выбирать YOLOv5

YOLOv5 — это прагматичный выбор для производственных систем, требующих стабильности и широкой поддержки платформ.

  • Промышленная автоматизация: Широко используется в производстве для контроля качества, где надежность имеет первостепенное значение.
  • Мобильные приложения: Его проверенная совместимость с iOS (CoreML) и Android (TFLite) делает его идеальным для интеграции приложений на устройстве.
  • Быстрое прототипирование: Огромный объем учебных пособий и документации позволяет разработчикам перейти от концепции к POC за несколько часов.

Когда следует выбирать YOLOv10

YOLOv10 отлично подходит для сценариев, требующих максимального соотношения точности и эффективности.

  • Высокоскоростная робототехника: Архитектура без NMS снижает дисперсию задержки, что имеет решающее значение для контуров управления автономных роботов.
  • Академические исследования: Исследователи, стремящиеся провести бенчмаркинг по сравнению с новейшими парадигмами end-to-end detection, сочтут архитектуру YOLOv10 новой и эффективной.
  • Удаленное наблюдение: Высокий mAP с низким количеством параметров подходит для систем безопасности, работающих с ограниченной пропускной способностью или объемом хранилища.

Обучение и простота использования

Ultralytics уделяет первостепенное внимание оптимизации работы разработчиков. Независимо от того, используете ли вы классический репозиторий YOLOv5 или современный ultralytics пакетом для новых моделей этот процесс интуитивно понятен.

Использование YOLOv5

YOLOv5 очень легко загрузить через PyTorch Hub для мгновенного inference.

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, предлагая убедительное обновление для пользователей, которые специально сосредоточены на задачах detect и которым необходимо максимизировать точность на оборудовании с ограниченными ресурсами.

Для разработчиков, стремящихся к абсолютному лучшему из обоих миров — сочетанию зрелости экосистемы Ultralytics с современной точностью и скоростью, — мы рекомендуем изучить YOLO11. Он объединяет эти достижения в единую мощную структуру, готовую к любой задаче машинного зрения.

Чтобы изучить другие сравнения, ознакомьтесь с YOLOv5 vs. YOLOv8 или YOLOv10 vs. YOLO11.


Комментарии