YOLOv8 против YOLOv7: всестороннее техническое сравнение
Область компьютерного зрения постоянно развивается, и новые архитектуры расширяют границы возможного в обнаружении объектов в реальном времени. В этом глубоком обзоре мы сравниваем две очень влиятельные модели: Ultralytics YOLOv8 и YOLOv7. Обе модели оказали значительное влияние на сообщество разработчиков и академические исследования, предлагая уникальные подходы к решению сложных визуальных задач.
Понимание структурных и методологических различий между этими двумя моделями критически важно для инженеров машинного обучения, стремящихся оптимизировать свои конвейеры развертывания. В то время как YOLOv7 представила мощный подход «набор бесплатных улучшений» (bag-of-freebies), ориентированный на высокую пропускную способность, Ultralytics YOLOv8 сосредоточилась на создании целостной, простой в использовании экосистемы, которая балансирует высокую точность с низким потреблением памяти и многофункциональностью.
Ultralytics YOLOv8: универсальный стандарт экосистемы
Выпущенная Ultralytics в начале 2023 года, YOLOv8 представляет собой значительный архитектурный сдвиг по сравнению со своими предшественниками. Она была разработана с нуля, чтобы стать чем-то большим, чем просто детектор объектов реального времени; это единая платформа, способная решать широкий спектр задач компьютерного зрения «из коробки».
- Авторы: Glenn Jocher, Ayush Chaurasia и Jing Qiu
- Организация: Ultralytics
- Дата: 2023-01-10
- GitHub: ultralytics/ultralytics
- Документация: Документация YOLOv8
Архитектурные инновации
YOLOv8 представила инновационную anchor-free (безякорную) детектирующую головку. Это фундаментально упрощает процесс обучения, избавляя от необходимости вручную настраивать anchor boxes (якорные боксы) на основе распределения данных твоего конкретного датасета. Такой конструктивный выбор делает модель крайне надежной и упрощает ее адаптацию для различных условий.
Кроме того, архитектура включает модуль C2f (Cross-Stage Partial bottleneck с двумя свертками) — структурное обновление, которое улучшает поток градиентов и позволяет нейронной сети изучать более богатые представления признаков без существенного увеличения вычислительных затрат. Это делает модель очень эффективной при выполнении инференса через стандартные фреймворки глубокого обучения, такие как PyTorch.
Модели Ultralytics YOLO спроектированы для достижения пиковой эффективности обучения. Как правило, они требуют значительно меньше памяти CUDA во время обучения по сравнению с архитектурами на основе Transformer или более тяжелыми CNN. Это позволяет тебе тренировать модели с большими размерами пакетов (batch sizes) на потребительском оборудовании, ускоряя твой цикл разработки.
YOLOv7: подход «набор бесплатных улучшений»
YOLOv7 была представлена в середине 2022 года и быстро стала популярным базовым решением в академических кругах. Она была сильно сфокусирована на архитектурной перепараметризации и оптимизации градиентного пути для расширения границ обнаружения объектов в реальном времени на мощных GPU.
- Авторы: Chien-Yao Wang, Alexey Bochkovskiy и Hong-Yuan Mark Liao
- Организация: Institute of Information Science, Academia Sinica, Тайвань
- Дата: 2022-07-06
- Arxiv: 2207.02696
- GitHub: WongKinYiu/yolov7
Архитектурные инновации
YOLOv7 использует Extended Efficient Layer Aggregation Network (E-ELAN), что позволяет модели постоянно изучать более разнообразные признаки. Она сильно опирается на якорную (anchor-based) парадигму и представляет обучаемый «набор бесплатных улучшений» — ряд методов оптимизации, которые повышают точность без увеличения затрат на инференс.
Хотя YOLOv7 демонстрирует отличную производительность на стандартных академических бенчмарках, таких как MS COCO dataset, ее архитектура в значительной степени оптимизирована для серверных ускорителей. Экспорт и развертывание этих моделей на граничных устройствах (edge devices) иногда может требовать больше ручной настройки по сравнению с более современными, упрощенными фреймворками.
Детальное сравнение производительности
При оценке этих моделей основным фактором является компромисс между скоростью, точностью и размером модели. В таблице ниже представлены показатели для обеих моделей.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (М) | FLOPs (Б) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
Как видно из данных, YOLOv8x достигает наивысшей абсолютной точности (53.9 mAP), в то время как нано-вариант (YOLOv8n) обеспечивает исключительную скорость инференса и невероятно малый вес. Такое разнообразие делает YOLOv8 гораздо более адаптируемой к ограниченным аппаратным средам.
Преимущество Ultralytics: простота использования и экосистема
Хотя YOLOv7 предоставляет сильные базовые метрики обнаружения, Ultralytics YOLOv8 значительно превосходит ее с точки зрения опыта разработчика, интеграции в экосистему и возможностей для решения множества задач.
Непревзойденная универсальность
YOLOv7 — это прежде всего модель для детектирования с экспериментальными ветками для других задач. В отличие от нее, YOLOv8 изначально поддерживает Object Detection, Instance Segmentation, Image Classification, Pose Estimation и Oriented Bounding Boxes (OBB). Этот единый подход означает, что команда может изучить один API и использовать его для реализации совершенно разных требований проекта.
Оптимизированное развертывание и интеграции
Экспорт модели для продакшена часто может стать «бутылочным горлышком». Пакет Ultralytics позволяет разработчикам экспортировать модели в такие форматы, как ONNX, TensorRT и CoreML с помощью одной строки кода на Python. Это позволяет избежать проблем с поддержкой операторов, которые иногда возникают при экспорте сложных графов на базе якорных моделей.
Более того, YOLOv8 легко интегрируется с инструментами MLOps. Независимо от того, отслеживаешь ли ты свои эксперименты с помощью Weights & Biases или тестируешь развертывание в Hugging Face Spaces, экосистема Ultralytics берет на себя всю тяжелую работу.
Пример кода: обучение и экспорт YOLOv8
Следующий код демонстрирует простоту использования API Ultralytics на Python. Ты можешь пройти путь от инициализации модели до обучения и экспорта для развертывания на граничных устройствах менее чем за десять строк кода.
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:
- Edge AI и IoT-устройства: доступность сверхбыстрых моделей Nano и Small делает YOLOv8 идеальной для оборудования с ограниченными вычислительными ресурсами, такого как смарт-камеры или дроны.
- Многозадачные проекты: если твой конвейер требует отслеживания суставов человека (Pose Estimation) с одновременным картографированием препятствий (Segmentation), YOLOv8 справляется с этим изначально.
- От быстрого прототипирования к производству: обширная документация Ultralytics и удобный API на Python позволяют командам быстрее выводить продукты на рынок.
Когда рассматривать YOLOv7:
- Академическое бенчмаркирование: исследователи, изучающие эффекты методов перепараметризации, часто используют YOLOv7 в качестве стандартного базового уровня, что отражено в ее популярности на Papers With Code.
- Наследуемые серверные конвейеры: если существующий конвейер с интенсивными вычислениями уже строго оптимизирован под специфические якорные выводы YOLOv7, его поддержка может быть практичной в краткосрочной перспективе.
Взгляд в будущее: следующее поколение
Хотя YOLOv8 остается универсальной мощной системой, ландшафт ИИ стремительно меняется. Командам, начинающим новые проекты, мы настоятельно рекомендуем изучить последние достижения в линейке Ultralytics.
Новейшее поколение, YOLO26, представляет собой вершину современного ИИ в компьютерном зрении. Она отличается End-to-End NMS-Free дизайном, исключающим пост-обработку Non-Maximum Suppression для более простого и быстрого развертывания. Благодаря удалению Distribution Focal Loss (DFL) и внедрению вдохновленного LLM оптимизатора MuSGD, YOLO26 предлагает более стабильное обучение и до 43% более быстрый инференс на CPU. Ее передовые функции потерь ProgLoss + STAL значительно улучшают распознавание мелких объектов, что делает ее идеальным выбором для современных граничных вычислений и обработки аэрофотоснимков.
Для пользователей, переходящих с более старых систем, высокопроизводительная YOLO11 и классическая YOLOv5 также остаются полностью поддерживаемыми в рамках единой экосистемы Ultralytics, гарантируя, что независимо от твоих аппаратных ограничений, найдется оптимизированная и высокопроизводительная модель, готовая к развертыванию.