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

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

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

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

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

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

YOLOv5: стандарт, основанный на якоре

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

  • Магистраль: Использует магистраль CSPDarknet53 со слоем Focus (в ранних версиях) или слоем stem (в более поздних версиях) для понижения дискретизации изображений.
  • Шея: Включает в себя сеть PANet (Path Aggregation Network) для объединения признаков.
  • Голова: объединенная структура головы, в которой задачи классификации и локализации совместно используют признаки до конечных выходных слоев.

YOLOv8: инноватор без якоря

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

  • Модуль C2f: Заменяет модуль C3, присутствующий в YOLOv5. Модуль C2f (Cross-Stage Partial Bottleneck с двумя свертками) разработан для улучшения градиентного потока и возможностей извлечения признаков при сохранении небольшого веса.
  • Разделенная голова: в отличие от 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. Эффективность вычислений: Хотя в некоторых вариантах модели YOLOv8 имеют немного большее количество FLOP, компромисс дает непропорционально большую точность, обеспечивая лучшую окупаемость вычислительных инвестиций.
  3. Скорость вывода: YOLOv5 остается чрезвычайно быстрым, особенно на старом оборудовании или пограничных устройствах CPU. Однако YOLOv8 оптимизирован для современных графических процессоров и ускорителей, таких как TensorRTчто значительно сокращает разрыв в скорости.

Ultralytics YOLOv8: многозадачная мощь

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

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

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

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

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

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

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

Ultralytics YOLOv5: стандарт наследия

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

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

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

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

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

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

Узнайте больше о 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) является несомненным победителем. Его превосходная точность гарантирует, что ваше приложение останется конкурентоспособным и надежным.
  • Сложные задачи: Для приложений, требующих оценки положения или сегментации, встроенная в YOLOv8 поддержка многозадачности просто незаменима.
  • Высокоточные потребности: В таких областях, как медицинская визуализация или обнаружение дефектов, улучшенная mAP в YOLOv8 позволяет значительно снизить количество ложноотрицательных результатов.

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

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

Заключение

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

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

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


Комментарии