YOLOv6.0 против YOLOv10: подробное техническое сравнение
Выбор оптимальной модели компьютерного зрения имеет решающее значение для успеха инициатив в области искусственного интеллекта, обеспечивая баланс между такими факторами, как задержка вывода, точность и вычислительная эффективность. В этом комплексном техническом сравнении рассматриваются две известные архитектуры обнаружения объектов: YOLOv6.0, разработанную для промышленной скорости, и YOLOv10известная своей сквозной эффективностью в режиме реального времени. Мы анализируем их архитектурные инновации, эталонные показатели и идеальные сценарии использования, чтобы помочь вам в выборе.
YOLOv6.0: Скорость и точность промышленного уровня
YOLOv6.0, разработанный отделом интеллектуального видения компании Meituan, представляет собой одноэтапный фреймворк для обнаружения объектов, специально оптимизированный для промышленных приложений. Выпущенный в начале 2023 года, он ориентирован на аппаратное обеспечение и обеспечивает максимальную производительность на графических процессорах и пограничных устройствах, отвечая строгим требованиям к выводам в реальном времени в производстве и логистике.
- Авторы: Чуйи Ли, Лулу Ли, Ифэй Генг, Хунлян Цзян, Мэн Чэн, Бо Чжан, Зайдан Ке, Сяомин Сюй и Сянсян Чу
- Организация:Meituan
- Дата: 13.01.2023
- Arxiv:https://arxiv.org/abs/2301.05586
- GitHub:https://github.com/meituan/YOLOv6
- Документы:https://docs.ultralytics.com/models/yolov6/
Архитектура и ключевые особенности
YOLOv6.0 представляет "Полномасштабную перезагрузку" своей архитектуры, включающую несколько передовых методов для улучшения извлечения признаков и скорости сходимости:
- Эффективная основа для перепараметризации: Используется аппаратно-ориентированная основа, которая позволяет упростить сложные обучающие структуры до более быстрых слоев вывода, оптимизируя количество FLOPS без ущерба для точности.
- Двунаправленная конкатенация (BiC): В конструкции шеи используется BiC для улучшения сигналов локализации, обеспечивая лучшее слияние признаков в разных масштабах.
- Обучение с помощью якорей (AAT): Несмотря на то, что YOLOv6.0 в основном свободен от якорей, в процессе обучения вновь вводятся вспомогательные ветви, основанные на якорях, для стабилизации сходимости и повышения производительности.
Сильные и слабые стороны
Сильные стороны: YOLOv6.0 отлично работает в сценариях, требующих высокой пропускной способности. Поддержка квантования модели позволяет эффективно развертывать ее на мобильных платформах и встраиваемых системах. Варианты "Lite" особенно полезны в условиях CPU.
Слабые стороны: Как модель, ориентированная исключительно на обнаружение объектов, она не имеет встроенной поддержки более широких задач, таких как сегментация объектов или оценка позы, которые можно найти в унифицированных фреймворках, таких как YOLO11. Кроме того, по сравнению с более новыми моделями, ее эффективность использования параметров ниже, что требует больше памяти для достижения аналогичных уровней точности.
Идеальный вариант использования: промышленная автоматизация
YOLOv6.0 является сильным кандидатом для автоматизации производства, где камеры на сборочных линиях должны быстро обрабатывать сигналы высокого разрешения для detect дефектов или сортировки изделий.
YOLOv10: Граница сквозной эффективности
YOLOv10 , представленный исследователями из Университета Цинхуа в мае 2024 года, расширяет границы семейства YOLO , устраняя необходимость в немаксимальном подавлении (NMS) при постобработке. Эта инновация позиционирует его как модель следующего поколения для приложений, критичных к задержкам.
- Авторы: Ao Wang, Hui Chen, Lihao Liu, и др.
- Организация:Университет Цинхуа
- Дата: 2024-05-23
- Arxiv:https://arxiv.org/abs/2405.14458
- GitHub:https://github.com/THU-MIG/yolov10
- Документы:https://docs.ultralytics.com/models/yolov10/
Архитектура и ключевые особенности
YOLOv10 использует целостную стратегию проектирования, ориентированную на эффективность и точность:
- ОбучениеNMS: Благодаря использованию последовательных двойных назначений (один ко многим для обучения, один к одному для вывода), YOLOv10 предсказывает один лучший ящик для каждого объекта. Это устраняет накладные расходы на вычисления и непостоянство задержки, связанные с постобработкой NMS .
- Целостный дизайн модели: Архитектура включает в себя облегченные классификационные головки и пространственно-канальную развязанную понижающую дискретизацию, что значительно снижает параметры модели и вычислительные затраты.
- Дизайн блоков с ранговым управлением: Для повышения эффективности в модели используется ранжированный дизайн блоков, чтобы уменьшить избыточность на этапах, где обработка функций менее важна.
Сильные и слабые стороны
Сильные стороны: YOLOv10 предлагает превосходный компромисс между скоростью и точностью, часто достигая более высокого mAP при значительно меньшем количестве параметров, чем у предшественников. Интеграция в экосистему Ultralytics Python делает его невероятно простым в обучении и развертывании наряду с другими моделями.
Слабые стороны: Является относительно новым продуктом, поэтому ресурсы сообщества и сторонние инструменты все еще растут. Как и YOLOv6, он специализирован для обнаружения, в то время как пользователи, нуждающиеся в многозадачных возможностях, могут предпочесть YOLO11.
Напутствие: Прорыв в эффективности
Устранение NMS позволяет YOLOv10 достичь стабильной задержки вывода, что является решающим фактором для критически важных систем, таких как автономные транспортные средства, где время обработки должно быть детерминированным.
Анализ производительности: Метрики и контрольные показатели
В следующей таблице приведено сравнение производительности YOLOv6.0 и YOLOv10 на наборе данных COCO . Ключевые показатели включают размер модели, среднюю точностьmAP) и скорость вычислений на CPU и GPU.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv6.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6.0l | 640 | 52.8 | - | 8.95 | 59.6 | 150.7 |
| 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 |
Основные сведения
- Эффективность параметров: YOLOv10 демонстрирует поразительную эффективность. Например, YOLOv10s достигает более высокого mAP (46,7 %), чем YOLOv6.0s (45,0 %), используя при этом менее половины параметров (7,2 М против 18,5 М). Такое сокращение объема памяти крайне важно для устройств с пограничным ИИ.
- Латентность: Хотя YOLOv6.0n показывает немного более высокую задержку TensorRT (1,17 мс против 1,56 мс), YOLOv10 устраняет шаг NMS , который часто требует дополнительного времени в реальных конвейерах, не отражаемого в сыром времени вывода модели.
- Точность: Практически во всех шкалах YOLOv10 обеспечивает более высокую точность, что делает его более надежным выбором для обнаружения сложных объектов в сложных условиях.
Использование и внедрение
Ultralytics предлагает упрощенный опыт использования этих моделей. YOLOv10 изначально поддерживается в ultralytics пакет, позволяющий беспрепятственно обучение и предсказания.
Запуск YOLOv10 с помощью Ultralytics
Вы можете запустить YOLOv10 с помощью API Python , написав всего несколько строк кода. Это подчеркивает простоту использования, присущую экосистеме Ultralytics .
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Run inference on an image
results = model.predict("path/to/image.jpg", save=True)
# Train the model on a custom dataset
# model.train(data="coco8.yaml", epochs=100, imgsz=640)
Использование YOLOv6.0
YOLOv6.0 обычно требует клонирования официального репозитория Meituan для обучения и выводов, так как в нем используется другая структура кодовой базы.
# Clone the YOLOv6 repository
git clone https://github.com/meituan/YOLOv6
cd YOLOv6
pip install -r requirements.txt
# Inference using the official script
python tools/infer.py --weights yolov6s.pt --source path/to/image.jpg
Заключение: Выбор правильной модели
Обе модели представляют собой значительные достижения в области компьютерного зрения. YOLOv6.0 остается надежным выбором для устаревших промышленных систем, специально оптимизированных под ее архитектуру. Однако, YOLOv10 как правило, предлагает более высокую рентабельность инвестиций в новые проекты благодаря архитектуре NMS, превосходной эффективности параметров и более высокой точности.
Для разработчиков, стремящихся к максимальной универсальности и поддержке экосистемы, Ultralytics YOLO11 настоятельно рекомендуется. YOLO11 не только обеспечивает современную производительность обнаружения, но и поддерживает оценку позы, OBB и классификацию в рамках единого и хорошо поддерживаемого пакета. Экосистема Ultralytics обеспечивает эффективность процессов обучения, низкое потребление памяти и простой экспорт в такие форматы, как ONNX и TensorRTчто позволяет с уверенностью внедрять надежные решения в области искусственного интеллекта.
Дополнительная литература
- Ознакомьтесь с универсальным YOLO11 для многозадачного искусственного интеллекта.
- Сравните YOLOv10 с RT-DETR для обнаружения на основе трансформатора.
- Узнайте об экспорте моделей для максимальной скорости развертывания.