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

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

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

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

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

Показатели производительности на наборе данныхCOCO иллюстрируют различия в философии проектирования этих моделей. В YOLOv10 большое внимание уделяется сокращению количества параметров и операций с плавающей точкой (FLOPs), что часто позволяет достичь более высокой средней точности ( mAP ) при заданном размере модели. Однако, YOLOv8 сохраняет весьма конкурентоспособную скорость вычислений, особенно на центральных процессорах и при экспорте в оптимизированные форматы, такие как 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: Эффективность благодаря архитектурным инновациям

Авторы: 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Комментарии