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

YOLOv10 vs. YOLOv8: Техническое сравнение для обнаружения объектов в реальном времени

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

В этом руководстве представлено подробное техническое сравнение, которое поможет вам выбрать правильную модель для ваших machine learning projects.

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

Метрики производительности на датасете COCO иллюстрируют различные философии проектирования, лежащие в основе этих моделей. YOLOv10 уделяет большое внимание уменьшению количества параметров и операций с плавающей запятой (FLOPs), часто достигая более высокого mAP (средней Precision) для данного размера модели. Однако YOLOv8 поддерживает высокую скорость inference, особенно на CPU и при экспорте в оптимизированные форматы, такие как TensorRT, балансируя скорость с практическими возможностями развертывания.

Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(M)
FLOPs
(B)
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.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

YOLOv10: Эффективность благодаря архитектурным инновациям

Authors: Ao Wang, Hui Chen, Lihao Liu, et al.
Organization:Tsinghua University
Date: 2024-05-23
Arxiv:YOLOv10: Real-Time End-to-End Object Detection
GitHub:THU-MIG/yolov10

YOLOv10 разработан исследователями из Университета Цинхуа с основной целью: устранить зависимость от немаксимального подавления (NMS) во время постобработки. NMS может быть узким местом в критически важных к задержке приложениях. YOLOv10 представляет согласованную стратегию двойного назначения во время обучения, позволяя модели прогнозировать один лучший ограничивающий прямоугольник для каждого объекта, что фактически делает его сквозным детектором.

Ключевые преимущества YOLOv10

  • Inference без NMS: Удалив шаг NMS, YOLOv10 снижает вычислительные издержки на этапе постобработки, что может снизить задержку в определенных периферийных сценариях.
  • Эффективность параметров: Целостный дизайн модели значительно сокращает количество параметров и FLOPs по сравнению с предыдущими поколениями, что делает ее привлекательной для устройств с крайне ограниченным объемом памяти.
  • Высокая точность: Он достигает современных показателей mAP для своего размера, демонстрируя эффективность своих архитектурных оптимизаций.

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

  • Специализация задачи: YOLOv10 в основном предназначен для обнаружения объектов. Ему не хватает встроенной поддержки других задач компьютерного зрения, таких как сегментация экземпляров или оценка позы из коробки.
  • Развитость экосистемы: Будучи более новым академическим релизом, он имеет меньше сторонних интеграций и ресурсов сообщества по сравнению с устоявшейся экосистемой Ultralytics.

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

Ultralytics YOLOv8: универсальный отраслевой стандарт

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

YOLOv8, запущенный Ultralytics, представляет собой кульминацию многолетних исследований в области практического и удобного для пользователя AI. Он разработан не только для высокой производительности, но и для исключительного опыта разработчиков. YOLOv8 использует механизм detect без anchor и насыщенный градиентный поток для обеспечения надежного обучения. Его отличительной особенностью является встроенная поддержка широкого спектра задач — detect, segment, классификация, оценка позы и OBB — все в рамках единого унифицированного фреймворка.

  • Простота использования: Ultralytics YOLOv8 славится своими простыми интерфейсами Python и CLI. Разработчики могут обучать, проверять и развертывать модели всего в несколько строк кода.
  • Хорошо поддерживаемая экосистема: Будучи частью экосистемы Ultralytics, вы получаете доступ к частым обновлениям, огромному сообществу и бесшовной интеграции с такими инструментами, как Ultralytics HUB, для легкого управления моделями.
  • Баланс производительности: Он обеспечивает идеальный баланс между скоростью и точностью. Модель хорошо оптимизирована для различных аппаратных бэкендов, включая CPU, GPU и Edge TPU.
  • Эффективность обучения: YOLOv8 предлагает эффективные процессы обучения с более низкими требованиями к памяти, чем многие альтернативы на основе трансформеров, что позволяет экономить на вычислительных затратах.
  • Универсальность: В отличие от моделей, ограниченных ограничивающими прямоугольниками, YOLOv8 может обрабатывать сложные проекты, требующие маски сегментации или ключевые точки, без переключения структур.

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

Модели Ultralytics, такие как YOLOv8, разработаны для эффективного использования памяти. Это значительно снижает порог входа для обучения пользовательских моделей, поскольку они требуют меньше памяти CUDA по сравнению с громоздкими моделями-трансформерами, такими как RT-DETR, что позволяет проводить обучение на GPU потребительского класса.

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

Сравнительный анализ: Архитектура и варианты использования

Архитектурные различия

Принципиальное различие заключается в стратегиях постобработки и назначения. YOLOv10 использует архитектуру с двумя head, где одна head использует назначение «один ко многим» (как традиционные YOLO) для получения богатых контрольных сигналов во время обучения, а другая использует назначение «один к одному» для inference, устраняя необходимость в NMS.

YOLOv8, напротив, использует task-aligned assigner и anchor-free coupled head structure. Эта конструкция упрощает detection head и улучшает обобщение. Хотя это требует NMS, операция хорошо оптимизирована в форматах экспорта, таких как ONNX и TensorRT, что часто делает практическую разницу в задержке незначительной в надежных конвейерах развертывания.

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

Выбор между этими двумя моделями часто сводится к конкретным ограничениям вашего проекта:

  1. Высокопроизводительный Edge AI (YOLOv10): Если ваше приложение работает на оборудовании с сильно ограниченными ресурсами, где важен каждый мегабайт памяти, или если операция NMS создает определенное узкое место на вашем целевом чипе, YOLOv10 — отличный кандидат. Примеры включают встроенные датчики в сельском хозяйстве или легкие дроны.

  2. Универсальный и многозадачный ИИ (YOLOv8): Для подавляющего большинства коммерческих и исследовательских приложений YOLOv8 является превосходным выбором. Ее способность выполнять сегментацию (например, точную медицинскую визуализацию) и оценку позы (например, спортивную аналитику) делает ее невероятно универсальной. Кроме того, ее обширная документация и поддержка гарантируют, что разработчики смогут быстро решать проблемы и быстрее выполнять развертывание.

Реализация кода

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

Вот как легко можно начать обучение модели YOLOv8 с использованием Python:

from ultralytics import YOLO

# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")

# Train the model on your custom dataset
# The system automatically handles data downloading and processing
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on an image
results = model("path/to/image.jpg")

Для YOLOv10 пакет Ultralytics также упрощает доступ, позволяя исследователям экспериментировать с архитектурой в привычной среде:

from ultralytics import YOLO

# Load a pre-trained YOLOv10 model
model = YOLO("yolov10n.pt")

# Train the model using the same simple API
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

Заключение

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

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

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

Дополнительная литература


Комментарии