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

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

Эволюция detect объектов была в значительной степени сформирована семейством моделей YOLO (You Only Look Once). Разработанные компанией Ultralytics, YOLOv5 и YOLOv8 представляют собой поворотные моменты в истории компьютерного зрения. В то время как YOLOv5 зарекомендовала себя как самая любимая и широко используемая в мире архитектура detect благодаря своей простоте и скорости, YOLOv8 представила унифицированную структуру с передовыми архитектурными инновациями для поддержки более широкого спектра задач компьютерного зрения.

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

YOLOv5: Проверенный отраслевой стандарт

Author: Glenn Jocher
Organization:Ultralytics
Date: 2020-06-26
GitHub:https://github.com/ultralytics/yolov5
Docs:https://docs.ultralytics.com/models/yolov5/

Выпущенная в середине 2020 года, YOLOv5 произвела революцию в доступности обнаружения объектов. Это была первая модель YOLO, реализованная изначально в PyTorch, отказавшись от фреймворка Darknet, используемого ее предшественниками. Этот сдвиг значительно упростил разработчикам обучение, развертывание и эксперименты с пользовательскими наборами данных.

YOLOv5 использует основу CSPDarknet и является детектором на основе якорей. Это означает, что он полагается на предопределенные ограничивающие рамки для прогнозирования местоположения объектов. Хотя этот подход требует некоторой настройки гиперпараметров для оптимальной производительности на уникальных наборах данных, он остается весьма эффективным. Его архитектура подчеркивает скорость инференса и низкие требования к памяти, что делает его фаворитом для развертывания на оборудовании с ограниченными ресурсами, таком как Raspberry Pi и ранние поколения NVIDIA Jetson.

Ключевые преимущества YOLOv5

  • Устаревшая стабильность: Годы активного использования в производственных средах сделали его одной из самых стабильных и безошибочных моделей машинного зрения.
  • Оптимизация для периферии: В частности, на старых CPU и определенных мобильных процессорах более простая архитектура YOLOv5 иногда может обеспечивать меньшую задержку при выводе.
  • Обширная экосистема: Огромное сообщество учебных пособий, сторонних интеграций и обсуждений на форумах поддерживает устранение неполадок и разработку.

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

YOLOv8: многозадачный центр

Авторы: Гленн Джохер, Аюш Чаурасия и Цзин Цю
Организация:Ultralytics
Дата: 2023-01-10
GitHub:https://github.com/ultralytics/ultralytics
Документация:https://docs.ultralytics.com/models/yolov8/

YOLOv8 представляет собой значительный шаг вперед, разработанный не только как детектор объектов, но и как комплексный фреймворк для сегментации изображений, оценки позы, классификации и обнаружения ориентированных ограничивающих рамок (OBB).

С точки зрения архитектуры, YOLOv8 переходит к безякорной конструкции с разделенной головой, разделяя задачи определения объекта, классификации и регрессии. Он также представляет модуль C2f (Cross Stage Partial BottleNeck с 2 свертками), который заменяет модуль C3, используемый в YOLOv5. Модуль C2f улучшает распространение градиента и объединение признаков, позволяя модели изучать более сложные закономерности без значительного увеличения вычислительных затрат.

Ключевые преимущества YOLOv8

  • Современная точность: Стабильно достигает более высоких показателей mAP (Mean Average Precision) на COCO и пользовательских наборах данных по сравнению с YOLOv5.
  • Detect без Anchor: Устраняет необходимость вычислять или настраивать anchor boxes, упрощая конвейер обучения и улучшая обобщение для объектов с необычными пропорциями.
  • Универсальность: Возможность переключаться между detect, segment и оценкой позы, используя один и тот же API, значительно сокращает время разработки сложных проектов.

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

Глубокий технический анализ: архитектура и производительность

Переход от YOLOv5 к YOLOv8 ознаменован несколькими изменениями "под капотом", которые приводят к повышению производительности.

Архитектурные сдвиги

Наиболее заметным отличием является detection head. YOLOv5 использует связанный head, где классификация и локализация используют общие признаки. YOLOv8 использует decoupled head, что позволяет сети независимо настраивать веса для определения что такое объект, в отличие от где он находится. Это обычно приводит к лучшей сходимости и более высокой точности.

Кроме того, эволюция магистральной сети от C3 к C2f позволяет YOLOv8 захватывать более богатую информацию о градиентах. Хотя это делает архитектуру немного более сложной, Ultralytics оптимизировала реализацию, чтобы обеспечить высокую эффективность обучения.

Метрики производительности

При сравнении моделей на стандартном наборе данных COCO, YOLOv8 демонстрирует превосходное соотношение точности и вычислительных затрат.

Модельразмер
(пиксели)
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
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8

Как показано, YOLOv8n (Nano) достигает mAP 37.3, практически соответствуя большему YOLOv5s (Small), который набирает 37.4, но со значительно меньшим количеством FLOPs. Эта эффективность имеет решающее значение для современных приложений Edge AI.

Методологии обучения и экосистема

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

Простота использования и API

YOLOv8 представила ultralytics Python пакет, унифицированный CLI и Python интерфейс. Этот пакет эффективно управляет зависимостями и предоставляет согласованный API для обучение, валидацияи предсказание. Интересно, что современный ultralytics пакет также может загружать и запускать модели YOLOv5, устраняя разрыв между поколениями.

from ultralytics import YOLO

# Load a YOLOv8 model (Official)
model_v8 = YOLO("yolov8n.pt")

# Load a YOLOv5 model (Legacy support via Ultralytics package)
model_v5 = YOLO("yolov5nu.pt")

# Training is identical for both
results = model_v8.train(data="coco8.yaml", epochs=100)

Память и эффективность

По сравнению с моделями на основе трансформеров, такими как RT-DETR, YOLOv5 и YOLOv8 отличаются исключительной эффективностью использования памяти. Трансформеры часто требуют значительного объема памяти CUDA и большего времени обучения для сходимости. В отличие от них, модели Ultralytics YOLO оптимизированы для работы на GPU потребительского класса и даже CPU, что демократизирует доступ к высокопроизводительному ИИ.

Интегрированная экосистема

Обе модели полностью совместимы с Ultralytics HUB, что обеспечивает удобное управление набором данных, визуализацию моделей и развертывание в реальных устройствах одним щелчком мыши.

Идеальные варианты использования

Выбор правильной модели часто сводится к конкретной среде, в которой будет развернута модель.

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

YOLOv5 остается отличным выбором для:

  • Устаревшие системы: Обновление существующих конвейеров, где инфраструктура уже построена на основе архитектуры YOLOv5.
  • Специфическое периферийное оборудование: Некоторые старые драйверы NPU (Neural Processing Unit) имеют высокооптимизированную поддержку специально для архитектуры YOLOv5.
  • Сверхнизкая задержка: В сценариях, где важна каждая миллисекунда логического вывода CPU, более простая связанная голова YOLOv5n иногда может предложить преимущество в скорости по сравнению с v8n.

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

YOLOv8 — рекомендуемый выбор для:

  • Новые разработки: Начиная проект сегодня, YOLOv8 (или более новая YOLO11) обеспечивает более перспективный путь.
  • Сложные задачи: Приложения, требующие сегментацию экземпляров (например, анализ медицинских клеток) или detect ключевых точек (например, спортивная аналитика).
  • Высокие требования к точности: Сценарии, в которых пропуск обнаружения имеет решающее значение, например, в системах безопасности автономных транспортных средств или системах охранного наблюдения.

Заключение

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

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

Изучите другие модели

Если вам интересно изучить самые последние достижения в технологии detect, обратите внимание на:

  • YOLO11: Последняя эволюция, предлагающая более быструю обработку и улучшенное извлечение признаков по сравнению с YOLOv8.
  • RT-DETR: Модель на основе трансформера, обеспечивающая высокую точность для приложений реального времени, идеально подходит, когда память GPU не является серьезным ограничением.

Комментарии