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

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

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

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

YOLOv5: проверенный промышленный стандарт

Автор: Гленн Джочер
Организация:Ultralytics
Дата: 2020-06-26
GitHubyolov5
Docsyolov5

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

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

Основные достоинства YOLOv5

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

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

YOLOv8: многозадачная сила

Авторы: Гленн Джочер, Аюш Чаурасия и Цзин Цю
Организация:Ultralytics
Дата: 2023-01-10
GitHubultralytics
Docsyolov8

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

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

Основные достоинства YOLOv8

  • Современная точность: По сравнению с YOLOv5 стабильно достигает более высоких показателей mAP (средняя точность) на COCO и пользовательских наборах данных.
  • Обнаружение без якорей: Избавляет от необходимости вычислять или настраивать якорные поля, упрощая конвейер обучения и улучшая обобщение на объектах с необычным соотношением сторон.
  • Универсальность: Возможность переключаться между обнаружением, сегментацией и оценкой позы с помощью одного и того же API значительно сокращает время разработки сложных проектов.

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

Техническое погружение: Архитектура и производительность

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

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

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

Кроме того, эволюция магистрали с 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, но со значительно меньшим количеством FLOP. Такая эффективность крайне важна для современных приложений 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-DETRYOLOv5 и YOLOv8 отличаются исключительной экономией памяти. Трансформаторы часто требуют значительного объема памяти CUDA и более длительного времени обучения для сходимости. В отличие от них, модели Ultralytics YOLO оптимизированы для работы на GPU и даже CPU потребительского класса, что обеспечивает демократичный доступ к высокопроизводительному ИИ.

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

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

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

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

Когда выбирать YOLOv5

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

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

Когда выбирать YOLOv8

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

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

Заключение

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

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

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

Если вы заинтересованы в изучении новейших технологий обнаружения, обратите внимание на:

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

Комментарии