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

YOLOv8 vs YOLOv7: Подробное техническое сравнение

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

Понимание структурных и методологических различий между этими двумя моделями имеет решающее значение для инженеров машинного обучения, стремящихся оптимизировать свои конвейеры развертывания. В то время как YOLOv7 представил мощный подход «bag-of-freebies», ориентированный на высокую пропускную способность, Ultralytics YOLOv8 сосредоточился на создании целостной, простой в использовании экосистемы, которая сочетает высокую точность с низким потреблением памяти и многозадачной универсальностью.

Ultralytics YOLOv8: Универсальный стандарт экосистемы

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

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

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

Кроме того, архитектура включает модуль C2f (Cross-Stage Partial bottleneck с двумя свертками), структурное усовершенствование, которое улучшает поток градиентов и позволяет нейронной сети изучать более богатые представления признаков без значительного увеличения вычислительных затрат. Это делает модель высокоэффективной при выполнении инференса с помощью стандартных фреймворков глубокого обучения, таких как PyTorch.

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

Эффективность памяти

Модели Ultralytics YOLO разработаны для максимальной эффективности обучения. Они обычно требуют значительно меньше памяти CUDA во время обучения по сравнению с архитектурами на основе трансформеров или более тяжелыми CNN. Это позволяет обучать модели с большими размерами пакетов на потребительском оборудовании, ускоряя ваш цикл разработки.

YOLOv7: Подход "Bag-of-Freebies"

YOLOv7 был представлен в середине 2022 года и быстро стал популярной базовой моделью в академических кругах. Он был сильно сфокусирован на архитектурной репараметризации и оптимизации градиентного пути, чтобы расширить границы обнаружения объектов в реальном времени на высокопроизводительных GPU.

  • Авторы: Чен-Яо Ванг, Алексей Бочковский и Хонг-Юань Марк Ляо
  • Организация: Institute of Information Science, Academia Sinica, Taiwan
  • Дата: 2022-07-06
  • Arxiv:2207.02696
  • GitHub:WongKinYiu/yolov7

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

YOLOv7 использует расширенную эффективную сеть агрегации слоёв (E-ELAN), что позволяет модели непрерывно изучать более разнообразные признаки. Она сильно опирается на парадигму, основанную на якорях, и вводит обучаемый «набор бесплатных приёмов» — набор методов оптимизации, которые повышают точность без увеличения затрат на инференс.

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

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

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

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

Модельразмер
(пиксели)
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
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9

Как показывают данные, YOLOv8x достигает наивысшей абсолютной точности (53.9 mAP), в то время как нано-вариант (YOLOv8n) обеспечивает исключительную скорость вывода и невероятно малый размер. Такое разнообразие делает YOLOv8 гораздо более адаптируемым к аппаратным средам с ограничениями.

Преимущество Ultralytics: Простота использования и экосистема

Хотя YOLOv7 предоставляет сильные необработанные метрики detect, Ultralytics YOLOv8 значительно превосходит ее по опыту разработчика, интеграции в экосистему и возможностям многозадачности.

Непревзойденная универсальность

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

Оптимизированное развертывание и интеграции

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

Кроме того, YOLOv8 легко интегрируется с инструментами MLOps. Будь то отслеживание экспериментов с Weights & Biases или тестирование развертываний на Hugging Face Spaces, экосистема Ultralytics берет на себя всю сложную работу.

Пример кода: Обучение и экспорт YOLOv8

Следующий код демонстрирует простоту Python API Ultralytics. Вы можете перейти от инициализации модели к ее обучению и экспорту для граничного развертывания менее чем за десять строк кода.

from ultralytics import YOLO

# Load a pretrained YOLOv8 nano model for fast inference
model = YOLO("yolov8n.pt")

# Train the model on the COCO8 dataset
# The API handles data loading, augmentation, and logging automatically
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on a test image
predictions = model("https://ultralytics.com/images/bus.jpg")

# Export the trained model to ONNX format for deployment
model.export(format="onnx")

Гибкость развертывания

Использование model.export() Функция обеспечивает прямой мост к высокопроизводительным движкам вывода, позволяя легко интегрировать YOLOv8 в мобильные приложения, встраиваемые системы или высокопроизводительные облачные серверы.

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

Архитектурные различия между двумя моделями определяют их идеальные сценарии развертывания.

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

  • Устройства периферийного ИИ и IoT: Наличие сверхбыстрых моделей Nano и Small делает YOLOv8 идеальным для оборудования с ограниченными вычислительными ресурсами, такого как умные камеры или дроны.
  • Многозадачные проекты: Если ваш конвейер требует отслеживания суставов человека (оценка позы) при одновременном отображении препятствий (сегментация), YOLOv8 поддерживает это нативно.
  • Быстрое прототипирование до производства: Обширная документация Ultralytics и беспрепятственный Python API позволяют командам быстрее выводить продукты на рынок.

Когда рассматривать YOLOv7:

  • Академическое сравнение производительности: Исследователи, изучающие эффекты методов репараметризации, часто используют YOLOv7 в качестве стандартного эталона, что отражено в его популярности на Papers With Code.
  • Устаревшие серверные конвейеры: Если существующий конвейер с интенсивными вычислениями уже строго оптимизирован под специфические выходы якорей YOLOv7, его поддержка может быть практичной в краткосрочной перспективе.

Взгляд в будущее: Следующее поколение

Хотя YOLOv8 остается универсальным мощным инструментом, ландшафт ИИ быстро меняется. Командам, начинающим новые проекты, мы настоятельно рекомендуем изучить последние достижения в линейке Ultralytics.

Новейшее поколение, YOLO26, представляет собой вершину современного ИИ для компьютерного зрения. Оно отличается сквозной безанкерной архитектурой без NMS, исключающей постобработку Non-Maximum Suppression для более простого и быстрого развёртывания. С удалением Distribution Focal Loss (DFL) и внедрением вдохновлённого LLM оптимизатора MuSGD, YOLO26 предлагает более стабильное обучение и до 43% более быстрый инференс на CPU. Его продвинутые функции потерь ProgLoss + STAL значительно улучшают распознавание мелких объектов, делая его идеальным выбором для современных периферийных вычислений и аэрофотосъёмки.

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


Комментарии