YOLOv10 против YOLOX: техническое сравнение
В быстро развивающейся области компьютерного зрения выбор правильной модели обнаружения объектов имеет решающее значение для обеспечения баланса между производительностью, эффективностью и простотой развертывания. В этом техническом сравнении рассматриваются различия между YOLOv10новейшим сквозным детектором реального времени от Университета Цинхуа, и YOLOX, высоко оцененной моделью без якорей от Megvii.
Если в 2021 году YOLOX представил значительные инновации, касающиеся механизмов обнаружения без якорей, то в 2024 году YOLOv10 представляет собой передовую разработку, предлагая вывод NMS и более тесную интеграцию с экосистемойUltralytics .
YOLOv10: сквозное обнаружение в режиме реального времени
YOLOv10 стремится преодолеть разрыв между эффективностью постобработки и архитектурой модели. Внедряя последовательную стратегию двойного назначения для обучения NMS, она устраняет необходимость в не-максимальном подавлении (NMS) во время вывода, что значительно сокращает время ожидания.
Технические детали:
- Авторы: Ao Wang, Hui Chen, Lihao Liu, и др.
- Организация:Университет Цинхуа
- Дата: 2024-05-23
- Arxiv:arXiv:2405.14458
- GitHub:THU-MIG/yolov10
Архитектура и сильные стороны
YOLOv10 опирается на сильные стороны предыдущих поколений YOLO , но оптимизирует архитектуру для повышения эффективности и точности. В ней используется целостный дизайн модели, включающий облегченные классификационные головки и пространственно-канальную развязанную понижающую дискретизацию.
- ВыводыNMS: Отказ от использования NMS - это переломный момент для приложений, делающих выводы в реальном времени, обеспечивающий предсказуемую задержку и меньшую нагрузку на CPU на граничных устройствах.
- Баланс эффективности и точности: YOLOv10 достигает современной производительности при меньшем количестве параметров и FLOP по сравнению со своими предшественниками и конкурентами.
- Интеграция с Ultralytics : При полной поддержке
ultralyticsПакет означает, что пользователи получают преимущества от единой Python APIБесшовный экспорт в такие форматы, как TensorRT и OpenVINOи обширная документация.
Преимущество экосистемы
Интеграция YOLOv10 в экосистему Ultralytics обеспечивает немедленный доступ к таким передовым функциям, как автоаннотирование, облачное обучение и мощное сообщество поддержки.
Слабые стороны
- Более новая архитектура: Экосистема сторонних учебных пособий, выпущенная в 2024 году, быстро развивается, но пока не может сравниться с объемом старых моделей.
YOLOX: пионер без якоря
Выпущенный в 2021 году, YOLOX перешел на безъякорный механизм и отсоединенные головки, отклонившись от основанных на якорях подходов YOLOv4 и YOLOv5. В нем используется SimOTA (Simplified Optimal Transport Assignment) для присвоения меток, что стало значительным шагом вперед в стратегии динамического присвоения меток.
Технические детали:
- Авторы: Чжэн Ге, Сунтао Лю, Фэн Ван, Цзэмин Ли и Цзянь Сунь
- Организация:Megvii
- Дата: 18.07.2021
- Arxiv:arXiv:2107.08430
- GitHub:Megvii-BaseDetection/YOLOX
Архитектура и сильные стороны
YOLOX остается сильной базовой линией в исследовательском сообществе благодаря своей чистой безъякорной конструкции.
- Механизм без якорей: Удаляя предопределенные якорные ящики, YOLOX снижает сложность проектирования и количество гиперпараметров, требующих настройки.
- Отсоединенная голова: разделение задач классификации и локализации повысило скорость и точность сходимости по сравнению со старыми конструкциями с объединенной головой.
- Сильный базовый уровень: Он служит надежным эталоном для академических исследований в области обнаружения голов и стратегий назначения.
Слабые стороны
- Скорость вывода: Несмотря на свою эффективность для своего времени, YOLOX в целом отстает от более новых моделей, таких как YOLOv10 и YOLO11 по скорости вывода, особенно если учесть время работы NMS .
- Фрагментированный рабочий процесс: В отличие от моделей Ultralytics , YOLOX часто требует своей собственной кодовой базы и настройки среды, не имея единого интерфейса для обучения, проверки и развертывания, который есть в современных фреймворках.
- Интенсивность использования ресурсов: Более высокое количество FLOP и параметров при одинаковом уровне точности по сравнению с современными эффективными архитектурами.
Анализ производительности
Приведенное ниже сравнение подчеркивает значительный прогресс в эффективности и точности, достигнутый за три года разделения этих моделей. Метрики сосредоточены на размере модели (параметры), вычислительных затратах (FLOPs) и точностиmAP) на наборе данных COCO .
| Модель | размер (пиксели) | 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 |
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
Критические замечания
- Точность в сравнении с размером: YOLOv10 постоянно обеспечивает более высокую mAP при меньшем количестве параметров. Например, YOLOv10s достигает 46,7 mAP всего с 7,2 М параметров, в то время как YOLOXs достигает 40,5 mAP с 9,0 М параметров. Это демонстрирует превосходную архитектурную эффективность YOLOv10.
- Эффективность вычислений: Количество FLOPs для моделей YOLOv10 значительно ниже. YOLOv10x работает на 160,4B FLOPs по сравнению с массивными 281,9B FLOPs YOLOXx, но при этом превосходит его по точности (54,4 против 51,1 mAP).
- Скорость вывода: удаление NMS и оптимизированная архитектура позволяют YOLOv10 достичь более низкой задержки. Бенчмарки T4 TensorRT показывают, что YOLOv10x работает со скоростью 12,2 мс, что значительно быстрее, чем YOLOXx с 16,1 мс.
Идеальные варианты использования
YOLOv10: Современный стандарт
YOLOv10 - предпочтительный выбор для большинства новых девелоперских проектов, особенно тех, которые требуют:
- Развертывание краевого ИИ: Малый объем памяти и высокая эффективность делают его идеальным для таких устройств, как Raspberry Pi или NVIDIA Jetson.
- Приложения реального времени: Системы, требующие немедленной обратной связи, такие как автономное вождение, робототехника и видеоаналитика, выигрывают благодаря низкой задержке NMS.
- Быстрое развитие: Экосистема Ultralytics позволяет быстро управление наборами данныхобучение и развертывание с помощью
ultralyticsпакет.
YOLOX: наследие и исследования
YOLOX остается актуальным для:
- Академические исследования: Исследователи, изучающие эволюцию безъякорных детекторов или специфических стратегий присвоения меток, таких как SimOTA, часто используют YOLOX в качестве базового уровня.
- Устаревшие системы: Существующие производственные трубопроводы, уже оптимизированные под YOLOX, могут продолжать использовать его, если затраты на модернизацию перевешивают выигрыш в производительности.
Использование YOLOv10 с Ultralytics
Одно из самых значительных преимуществ YOLOv10 - простота использования. API Ultralytics Python упрощает весь рабочий процесс, от загрузки предварительно обученных весов до обучения на пользовательских данных.
Ниже приведен пример запуска прогнозов и обучения модели YOLOv10 :
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")
# Train the model on a custom dataset (COCO format)
model.train(data="coco8.yaml", epochs=100, imgsz=640)
Эффективность обучения
Модели Ultralytics YOLO известны своей эффективностью обучения, часто требуя меньше памяти CUDA , чем более старые архитектуры или модели на основе трансформаторов. Это позволяет обучать большие партии на стандартных потребительских графических процессорах.
Заключение
В то время как YOLOX сыграл ключевую роль в популяризации безъякорного обнаружения, YOLOv10 представляет собой следующий скачок вперед в технологии компьютерного зрения. Благодаря архитектуре NMS, превосходному соотношению точности и вычислений, а также бесшовной интеграции в надежную экосистему Ultralytics , YOLOv10 предлагает привлекательный пакет услуг как для разработчиков, так и для исследователей.
Для тех, кому требуется современное обнаружение объектов, YOLOv10 обеспечивает необходимую скорость и точность. Разработчики, заинтересованные в более широких возможностях, таких как оценка позы или ориентированные ограничительные рамки, могут также рассмотреть универсальную версию YOLO11 или широко распространенный YOLOv8.