Meet YOLO26: next-gen vision AI.

Link to this sectionYOLOX против YOLOv10#

Эволюция моделей компьютерного зрения в реальном времени ознаменовалась значительными архитектурными прорывами. Двумя ключевыми вехами на этом пути стали YOLOX и YOLOv10. Выпущенный в 2021 году, YOLOX успешно преодолел разрыв между академическими исследованиями и промышленным применением, внедрив высокоэффективную архитектуру без использования анкоров (anchor-free). Три года спустя YOLOv10 произвел революцию в этой области, исключив необходимость в Non-Maximum Suppression (NMS) на этапе постобработки, что расширило границы эффективности и скорости.

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

Link to this sectionПроисхождение моделей и метаданные#

Понимание происхождения этих моделей дает контекст для их архитектурных решений и планируемых сред развертывания.

Подробности о YOLOX
Авторы: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li и Jian Sun
Организация: Megvii
Дата: 2021-07-18
Arxiv: https://arxiv.org/abs/2107.08430
GitHub: https://github.com/Megvii-BaseDetection/YOLOX
Документация: https://github.com/Megvii-BaseDetection/YOLOX/tree/main/docs

Узнай больше о YOLOX

Подробности о YOLOv10
Авторы: Ao Wang, Hui Chen, Lihao Liu, Kai Chen, Zijia Lin, Jungong Han и Guiguang Ding
Организация: Tsinghua University
Дата: 2024-05-23
Arxiv: https://arxiv.org/abs/2405.14458
GitHub: https://github.com/THU-MIG/yolov10
Документация: https://docs.ultralytics.com/models/yolov10/

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

Link to this sectionАрхитектурные инновации#

Основные различия между YOLOX и YOLOv10 заключаются в том, как они обрабатывают предсказания ограничивающих рамок (BBox) и постобработку.

Link to this sectionYOLOX: Пионер архитектуры без анкоров#

YOLOX произвел фурор, переведя семейство YOLO на архитектуру без использования анкоров. Предсказывая центр объекта вместо опоры на предопределенные анкорные рамки, YOLOX значительно сократил количество параметров проектирования и необходимость эвристической настройки для пользовательских наборов данных. Кроме того, в нем была представлена разделенная голова (decoupled head), отделяющая задачи классификации и регрессии в разные потоки. Этот подход разрешил конфликт между определением того, что является объектом, и определением того, где он находится, что привело к заметному росту скорости сходимости и точности.

Link to this sectionYOLOv10: Революция без NMS#

Хотя YOLOX упростил голову детекции, он все еще полагался на NMS для фильтрации избыточных предсказаний BBox. YOLOv10 решил эту фундаментальную проблему. Используя согласованные двойные назначения (dual assignments) во время обучения, YOLOv10 достигает нативной сквозной детекции. Он использует архитектуру «один-ко-многим» (one-to-many) при обучении для обеспечения богатых сигналов контроля, и «один-к-одному» (one-to-one) при инференсе для вывода финальных предсказаний напрямую. Такой целостный дизайн, ориентированный на эффективность и точность, полностью исключает NMS, значительно снижая задержку инференса на встроенных чипах.

Влияние удаления NMS

Non-Maximum Suppression — это часто сложная операция для ускорения на нейронных процессорах (NPU). Удалив её, YOLOv10 позволяет всему графу модели беспрепятственно выполняться на специализированном оборудовании, значительно улучшая совместимость с фреймворками оптимизации, такими как OpenVINO и TensorRT.

Link to this sectionПоказатели производительности и сравнение#

При оценке моделей для продакшена критически важно сбалансировать точность с вычислительными затратами. В таблице ниже показаны компромиссы между различными масштабами YOLOX и YOLOv10.

Модельразмер
(пиксели)
mAPval
50-95
Скорость
CPU ONNX
(мс)
Скорость
T4 TensorRT10
(мс)
параметры
(М)
FLOPs
(Б)
YOLOXnano41625.8--0.911.08
YOLOXtiny41632.8--5.066.45
YOLOXs64040.5-2.569.026.8
YOLOXm64046.9-5.4325.373.8
YOLOXl64049.7-9.0454.2155.6
YOLOXx64051.1-16.199.1281.9
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

Link to this sectionАнализ данных#

Метрики наглядно демонстрируют поколенческий скачок YOLOv10. Например, YOLOv10-S достигает mAP 46,7% по сравнению с 46,9% у YOLOX-m, но делает это, используя менее трети параметров (7,2 млн против 25,3 млн) и значительно меньшее количество FLOPs. Более того, топовая модель YOLOv10-X доводит mAP до 54,4%, что делает ее крайне конкурентоспособной для задач, требующих высокой точности, при этом оставаясь быстрее, чем старая архитектура YOLOX-x.

Link to this sectionПреимущества экосистемы Ultralytics#

Хотя YOLOX остается надежной исследовательской реализацией с открытым исходным кодом, переход на YOLOv10 дает немедленный доступ к хорошо поддерживаемой экосистеме, предоставляемой Ultralytics. Выбор модели, поддерживаемой Ultralytics, гарантирует оптимизированный пользовательский опыт, характеризующийся простым API и обширной документацией.

Разработчики получают огромную выгоду от требований фреймворка к памяти; обучение моделей Ultralytics обычно потребляет гораздо меньше памяти CUDA, чем тяжелые альтернативы на базе Transformer, такие как RT-DETR. Этот эффективный след обучения позволяет использовать большие размеры батчей на потребительском оборудовании, ускоряя путь от сбора данных до развертывания модели. Кроме того, фреймворк предлагает непревзойденную универсальность, позволяя пользователям легко переключаться между задачами object detection, instance segmentation и pose estimation с минимальными изменениями кода.

Link to this sectionПример обучения и инференса#

Унифицированный API позволяет невероятно быстро проверять идеи. Следующий фрагмент кода демонстрирует, как легко ты можешь обучить и развернуть модель YOLOv10, используя бэкенд PyTorch:

from ultralytics import YOLO

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

# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on a sample image
predictions = model.predict("https://ultralytics.com/images/bus.jpg")

# Export the model for edge deployment
model.export(format="engine", quantize=16)

Благодаря использованию встроенных процедур экспорта, преобразование моделей в форматы, такие как TensorRT или ONNX, требует всего одной строки кода, полностью минуя сложные препятствия при компиляции.

Link to this sectionИдеальные варианты использования и сценарии развертывания#

Выбор между этими архитектурами во многом зависит от твоих аппаратных ограничений и специфических требований домена.

Link to this sectionВидеоаналитика в реальном времени#

Для приложений, требующих сверхнизкой задержки, таких как автономное вождение или мониторинг дорожного движения в реальном времени, YOLOv10 является лучшим выбором. Его сквозная архитектура без NMS обеспечивает детерминированное время выполнения, что критически важно для систем безопасности, где переменная задержка постобработки недопустима. Модели легко достигают высокой частоты кадров на устройствах серии NVIDIA Jetson.

Link to this sectionАкадемические бейзлайны и периферийные микроконтроллеры#

YOLOX по-прежнему сохраняет ценность в академических кругах, где исследователям нужен чистый бейзлайн с разделенной головой для экспериментов со стратегиями назначения меток. Кроме того, исключительно маленький YOLOX-Nano (менее 1 миллиона параметров) может быть запущен на сильно ограниченных периферийных микроконтроллерах, где память измеряется в килобайтах, при условии, что оборудование поддерживает стандартные операции свертки.

Link to this sectionАбсолютный стандарт: Ultralytics YOLO26#

Хотя YOLOv10 совершил огромный скачок, отказавшись от NMS, область компьютерного зрения быстро развивается. Для разработчиков, стремящихся внедрить сегодня лучшую в своем классе производительность, мы настоятельно рекомендуем изучить YOLO26.

Выпущенный как новейший стандарт в области машинного зрения AI, YOLO26 берет фундаментальные идеи своих предшественников и расширяет их возможности. Он предлагает идеальный баланс производительности, нативно поддерживая обнаружение, сегментацию, позы и ориентированные ограничивающие рамки (OBB).

Вот почему YOLO26 является рекомендуемым выбором для современных конвейеров компьютерного зрения:

  • Сквозной дизайн без NMS: Основываясь на прорывах YOLOv10, YOLO26 нативно работает по принципу «end-to-end», гарантируя более быстрое и детерминированное время инференса без узких мест постобработки.
  • До 43% быстрее инференс на CPU: Он специально оптимизирован для периферийных вычислений, обеспечивая исключительную производительность на мобильных процессорах и устройствах, не имеющих дискретных GPU.
  • Оптимизатор MuSGD: Вдохновленный обучением больших языковых моделей (в частности, Kimi K2 от Moonshot AI), YOLO26 использует гибрид SGD и Muon для невероятно стабильного обучения и быстрой сходимости.
  • ProgLoss + STAL: Эти передовые функции потерь обеспечивают заметные улучшения в распознавании мелких объектов, что критически важно для таких требовательных областей, как аэрофотосъемка и навигация дронов.
  • Удаление DFL: Удалив Distribution Focal Loss, YOLO26 упрощает граф модели для беспрепятственного экспорта на периферийные и маломощные устройства.
  • Улучшения для конкретных задач: Будь то использование Residual Log-Likelihood Estimation (RLE) для оценки позы или специализированные функции потерь угла для OBB, YOLO26 доработан для каждой основной задачи компьютерного зрения.

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

Участники

Комментарии