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) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
| 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 |
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 .
Ultralytics YOLOv8: универсальный отраслевой стандарт
Авторы: Гленн Джочер, Аюш Чаурасия и Цзин Цю
Организация:Ultralytics
Дата: 2023-01-10
Docs:Ultralytics YOLOv8 Documentation
GitHub:ultralytics
YOLOv8 , выпущенный компанией Ultralytics, представляет собой кульминацию многолетних исследований в области практичного и удобного ИИ. Он создан не только для высокой производительности, но и для исключительного опыта разработчиков. YOLOv8 использует механизм обнаружения без якорей и богатый градиентный поток для обеспечения надежного обучения. Его отличительной особенностью является встроенная поддержка широкого спектра задач - обнаружения, сегментации, классификации, оценки позы и OBB - и все это в рамках единой унифицированной структуры.
Почему рекомендуется YOLOv8
- Простота использования: Ultralytics YOLOv8 славится своей простотой. Python и интерфейсы CLI . Разработчики могут обучать, проверять и развертывать модели с помощью всего нескольких строк кода.
- Хорошо поддерживаемая экосистема: Принадлежность к экосистеме Ultralytics означает доступ к частым обновлениям, обширному сообществу и бесшовной интеграции с такими инструментами, как Ultralytics HUB, для удобного управления моделями.
- Баланс производительности: Идеальный баланс между скоростью и точностью. Модель оптимизирована под различные аппаратные платформы, включая CPU, GPU и Edge TPU.
- Эффективность обучения: YOLOv8 предлагает эффективные процессы обучения с меньшими требованиями к памяти, чем многие альтернативы на основе трансформаторов, что позволяет сэкономить на вычислительных затратах.
- Универсальность: В отличие от моделей, ограниченных ограничивающими рамками, YOLOv8 может работать со сложными проектами, требующими масок сегментации или ключевых точек, не меняя фреймворк.
Эффективность памяти
Модели Ultralytics , такие как YOLOv8 , разработаны с учетом экономии памяти. Это значительно снижает входной барьер для обучения пользовательских моделей, поскольку они требуют меньше памяти CUDA по сравнению с громоздкими моделями-трансформерами, такими как RT-DETRчто позволяет проводить обучение на графических процессорах потребительского класса.
Сравнительный анализ: Архитектура и примеры использования
Архитектурные различия
Принципиальное различие заключается в стратегиях постобработки и присвоения. YOLOv10 использует архитектуру с двумя головками, где одна головка использует распределение "один ко многим" (как традиционные YOLO) для богатых супервизорных сигналов во время обучения, а другая использует распределение "один к одному" для выводов, что устраняет необходимость в NMS.
YOLOv8наоборот, использует назначающее устройство, выровненное по задаче, и безъякорную структуру связанной головки. Такая конструкция упрощает головку обнаружения и улучшает обобщение. Несмотря на то, что для работы требуется NMS, она хорошо оптимизирована в таких экспортных форматах, как ONNX и TensorRT, что часто делает практическую разницу в задержках незначительной в надежных конвейерах развертывания.
Идеальные варианты использования
Выбор между ними часто сводится к конкретным ограничениям вашего проекта:
Высокопроизводительный краевой искусственный интеллект (YOLOv10): Если ваше приложение работает на аппаратном обеспечении с жестким ограничением ресурсов, где важен каждый мегабайт памяти, или если операция NMS создает специфическое узкое место на вашем целевом чипе, YOLOv10 - отличный кандидат. В качестве примера можно привести встраиваемые датчики в сельском хозяйстве или легкие беспилотники.
ИИ общего назначения и многозадачный ИИ (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.
Дополнительная литература
- Изучите последнюю модель SOTA: YOLO11
- Поймите свои метрики: Метрики производительностиYOLO
- Развертывание в любом месте: Режимы экспорта моделей
- Посмотрите другие сравнения: YOLOv5 против YOLOv8