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

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

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

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

Архитектурная эволюция

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

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

YOLOv5 использует схему обнаружения на основе якорей. Это означает, что модель предсказывает смещения от предопределенных «якорных рамок», адаптированных к конкретному набору данных. Хотя этот подход очень эффективен, он часто требует вычисления оптимальных размеров якорей для пользовательских наборов данных, процесс, известный как «autoanchor».

  • Backbone: Использует CSPDarknet53 backbone со слоем Focus (в более ранних версиях) или слоем stem (в более поздних версиях) для уменьшения размера изображений.
  • Neck: Включает PANet (Path Aggregation Network) для слияния признаков.
  • Head: Структура связанной головы, в которой задачи классификации и локализации используют общие функции до финальных выходных слоев.

YOLOv8: инновационная модель без anchor boxes

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

  • C2f Module: Заменяет модуль C3, используемый в YOLOv5. Модуль C2f (Cross-Stage Partial Bottleneck with two convolutions) предназначен для улучшения потока градиентов и возможностей извлечения признаков, сохраняя при этом небольшой размер.
  • Разделенная голова (Decoupled Head): В отличие от YOLOv5, YOLOv8 разделяет задачи определения объектности, классификации и регрессии на отдельные ветви. Это позволяет каждой ветви сосредоточиться на своей конкретной задаче, что приводит к более высокой точности и более быстрой сходимости.
  • Функции потерь: YOLOv8 использует назначение задач и распределенную очаговую потерю, что дополнительно улучшает обработку положительных и отрицательных выборок во время обучения.

YOLO11: Последнее поколение

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

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

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

Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
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
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

Основные выводы

  1. Скачок в точности: YOLOv8n (Nano) достигает огромного скачка в mAP (37,3) по сравнению с YOLOv5n (28,0), что делает самую маленькую модель v8 почти такой же точной, как и более крупная YOLOv5s.
  2. Compute Efficiency: Хотя модели YOLOv8 имеют немного более высокие FLOPs в некоторых вариантах, компромисс дает непропорционально более высокую точность, обеспечивая лучшую отдачу от вычислительных вложений.
  3. Скорость инференса: YOLOv5 остается чрезвычайно быстрым, особенно на устаревшем оборудовании или чисто CPU-based периферийных устройствах. Однако YOLOv8 оптимизирован для современных GPU и ускорителей, таких как TensorRT, что значительно сокращает разрыв в скорости.

Ultralytics YOLOv8: Многозадачная электростанция

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

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

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

  • Современная точность: Обеспечивает превосходную точность обнаружения в таких стандартных тестах, как COCO и Roboflow 100.
  • Унифицированный фреймворк: Основано на ultralytics Пакет Python, обеспечивающий удобство обучения, валидация, и развертывания.
  • Удобство для разработчиков: API невероятно интуитивно понятен. Переключение между задачами (например, от обнаружения к сегментации) часто требует изменения всего одного аргумента в CLI или коде на python.
  • Эффективность обучения: Такие функции, как «умная» аугментация набора данных и автоматическая настройка гиперпараметров, упрощают путь от данных к развернутой модели.

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

  • Использование ресурсов: Более крупные варианты (L и X) могут быть более ресурсоемкими во время обучения по сравнению с их предшественниками v5, требуя больше VRAM на GPU.

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

Ultralytics YOLOv5: Устаревший стандарт

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

YOLOv5 произвел революцию в доступности ИИ. Благодаря использованию PyTorch он сделал обучение пользовательских детекторов объектов доступным для разработчиков с ограниченным опытом в глубоком обучении. Его экосистема огромна, с тысячами учебных пособий, интеграций и реальных развертываний.

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

  • Доказанная стабильность: Годы активного использования в производственных средах сделали YOLOv5 одной из самых стабильных и надежных моделей машинного зрения.
  • Broad Deployment Support: Обширная поддержка форматов экспорта, включая ONNX, CoreML и TFLite, делает его идеальным для различных аппаратных целей, от мобильных телефонов до Raspberry Pi.
  • Экосистема сообщества: Обширное сообщество гарантирует, что решения практически для любого крайнего случая или ошибки легко доступны на форумах и в GitHub issues.

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

  • Более низкий потолок точности: Как модель 2020 года, ее показатели точности отстают от более новых архитектур, таких как v8 и YOLO11.
  • Управление якорями: Требуется расчет anchor box, что может быть проблемой для пользователей с уникальными или сильно различающимися наборами данных.

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

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

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

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

from ultralytics import YOLO

# Load a YOLOv8 model (recommended for new projects)
model_v8 = YOLO("yolov8n.pt")

# Train the model on the COCO8 dataset
results_v8 = model_v8.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on an image
model_v8.predict("https://ultralytics.com/images/bus.jpg", save=True)


# Load a YOLOv5 model (automatically handled by the same package)
model_v5 = YOLO("yolov5su.pt")  # 'u' suffix indicates updated v5 model structure

# The same API works for training and inference
results_v5 = model_v5.train(data="coco8.yaml", epochs=100, imgsz=640)

Преимущества унифицированной экосистемы

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

Рекомендации по вариантам использования

Выбор между YOLOv8 и YOLOv5 зависит от конкретных требований вашего проекта, аппаратных ограничений и целей разработки.

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

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

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

  • Устаревшее обслуживание: Если у вас есть существующий производственный конвейер, построенный на основе YOLOv5, который хорошо работает, миграция может быть не сразу необходимой.
  • Крайние ограничения Edge: Для устройств с крайне низким энергопотреблением, где важна каждая миллисекунда задержки, а точность вторична, более легкие варианты YOLOv5 Nano могут по-прежнему иметь небольшое преимущество в пропускной способности на определенных старых CPU.
  • Совместимость с учебными пособиями: Если вы следуете конкретному устаревшему учебному пособию или курсу, который в значительной степени опирается на оригинальную структуру репозитория YOLOv5.

Заключение

И YOLOv5, и YOLOv8 демонстрируют стремление Ultralytics сделать AI доступным, быстрым и точным. YOLOv5 демократизировал detect объектов, создав огромное сообщество и установив стандарт удобства использования. YOLOv8 развивает эту основу, внедряя архитектурные инновации, которые обеспечивают современную производительность и универсальность.

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

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


Комментарии