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

YOLOv10 vs RT-DETRv2: Техническое сравнение для detect объектов

Выбор оптимальной архитектуры для detectирования объектов является ключевым решением, которое требует учета компромиссов между скоростью inference, точностью и потребностями в вычислительных ресурсах. В этом всеобъемлющем руководстве сравниваются YOLOv10, передовая эволюция семейства YOLO на основе CNN, известная своей эффективностью, и RT-DETRv2, сложная модель на основе трансформеров, разработанная для задач высокой точности. Мы анализируем их архитектурные инновации, показатели производительности и идеальные сценарии развертывания, чтобы помочь вам сделать осознанный выбор для ваших проектов в области компьютерного зрения.

YOLOv10: Эффективное обнаружение в реальном времени

YOLOv10 представляет собой значительный скачок в родословной YOLO, направленный на устранение узких мест традиционных детекторов реального времени. Разработанный исследователями из Университета Цинхуа, он представляет парадигму обучения без NMS, которая упрощает конвейер развертывания, устраняя необходимость в постобработке Non-Maximum Suppression.

Архитектурные инновации

YOLOv10 использует целостный подход к проектированию, ориентированный на эффективность и точность. Он использует consistent dual assignments во время обучения, чтобы обеспечить вывод без NMS, что значительно снижает задержку. Архитектура также включает в себя облегченную классификационную головку и пространственно-канальную развязанную понижающую дискретизацию, чтобы минимизировать вычислительную избыточность. Эта конструкция гарантирует, что модель остается чрезвычайно быстрой, сохраняя при этом конкурентоспособную точность, что делает ее особенно подходящей для периферийных вычислений, где ресурсы ограничены.

Вывод без NMS

Удаление Non-Maximum Suppression (NMS) в YOLOv10 снижает сложность этапов постобработки. Это приводит к снижению задержки инференса и упрощает развертывание модели в сквозных конвейерах без пользовательских CUDA-ядер для NMS.

Модель эффективно масштабируется в различных размерах: от нано-версии (n) для сред с крайне ограниченными ресурсами до очень большой версии (x) для более высоких требований к точности.

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")

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

RT-DETRv2: Точность на основе Transformer

RT-DETRv2 (Real-Time Detection Transformer v2) основывается на успехе оригинальной RT-DETR, дополнительно совершенствуя применение vision transformers для обнаружения объектов в реальном времени. Разработанная Baidu, эта модель использует механизмы само-внимания для захвата глобального контекста, часто превосходя аналоги на основе CNN в сложных сценах с окклюзиями.

Визуальные трансформеры в detect

В отличие от традиционных CNN, которые обрабатывают изображения, используя локальные рецептивные поля, RT-DETRv2 использует Vision Transformer (ViT) в качестве основы. Это позволяет модели обрабатывать патчи изображений с помощью self-attention, эффективно понимая взаимосвязи между удаленными объектами в сцене. Хотя эта возможность глобального контекста повышает точность обнаружения, она, как правило, сопряжена с более высокими вычислительными затратами по сравнению с оптимизированной архитектурой YOLOv10.

RT-DETRv2 разработан с учетом адаптивности, предлагая различные масштабы моделей для соответствия различным потребностям в производительности, хотя обычно он требует больше памяти GPU для обучения и инференса, чем эквивалентные модели YOLO.

Узнайте больше о RT-DETRv2

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

В приведенном ниже сравнении выделены явные преимущества каждой архитектуры. YOLOv10 превосходит по скорости и эффективности, предлагая чрезвычайно низкую задержку и количество параметров. Например, модель YOLOv10n работает со скоростью 1,56 мс на GPU T4, что делает ее идеальной для высокоскоростной обработки видео. RT-DETRv2, хотя и медленнее, обеспечивает надежную точность, особенно при больших размерах модели, но за счет значительно более высокого FLOPs и использования памяти.

Модельразмер
(пиксели)
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
RTDETRv2-s64048.1-5.032060
RTDETRv2-m64051.9-7.5136100
RTDETRv2-l64053.4-9.7642136
RTDETRv2-x64054.3-15.0376259

Как видно из таблицы, YOLOv10x достигает превосходного mAP 54.4% по сравнению с 54.3% у RT-DETRv2-x, при этом используя на 23% меньше времени для вывода и имея значительно меньший размер модели. Эта эффективность делает YOLOv10 более сбалансированным выбором для большинства приложений, где ресурсы оборудования имеют значение.

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

YOLOv10

  • Преимущества:
    • Низкая задержка: Конструкция без NMS обеспечивает чрезвычайно быстрый вывод, что имеет решающее значение для приложений реального времени.
    • Эффективность использования ресурсов: Требуется меньше параметров и FLOPs, что делает его подходящим для развертывания на периферийных AI устройствах, таких как NVIDIA Jetson или мобильные платформы.
    • Интеграция в экосистему: Полностью интегрирован в экосистему Ultralytics, что облегчает экспорт в такие форматы, как ONNX, TensorRT и CoreML.
  • Слабые стороны:
    • Обнаружение малых объектов: Чрезвычайно малые версии (например, YOLOv10n) могут жертвовать некоторой точностью для достижения большей скорости по сравнению с более крупными transformer-моделями.

RT-DETRv2

  • Преимущества:
    • Глобальный контекст: Архитектура transformer превосходно понимает сложные сцены и взаимосвязи между объектами.
    • NMS-Free Native: Трансформеры естественным образом избегают NMS, упрощая конвейер постобработки, аналогично YOLOv10.
  • Слабые стороны:
    • Высокая вычислительная стоимость: Обучение и вывод требуют значительно больше памяти CUDA и вычислительной мощности.
    • Более низкая скорость: Механизм самоанализа, хотя и точный, является вычислительно затратным, что приводит к более высокой задержке.
    • Сложность развертывания: Transformer-модели иногда сложнее оптимизировать для определенного встроенного оборудования по сравнению с CNN.

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

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

  • Выберите YOLOv10, когда: Вам нужна производительность в реальном времени на периферийных устройствах, например, в автономных дронах или мобильных приложениях. Небольшой объем памяти и высокая скорость делают его идеальным для таких сценариев, как мониторинг трафика или аналитика розничной торговли.
  • Выберите RT-DETRv2, когда: у вас достаточно ресурсов GPU и вы решаете сложные задачи, где максимальная точность является единственным приоритетом, например, в высококлассных академических исследованиях или при анализе сложных изображений на стороне сервера.

Преимущество Ultralytics

Несмотря на то, что обе модели предлагают убедительные функции, использование моделей Ultralytics YOLO, включая YOLOv10 и современную YOLO11, обеспечивает явное преимущество в жизненном цикле разработки.

  1. Простота использования: Ultralytics предоставляет унифицированный Python API и CLI, которые стандартизируют обучение, валидацию и развертывание. Это позволяет разработчикам переключаться между YOLOv8, YOLOv10, YOLO11 и RT-DETR с помощью одной строки кода.
  2. Эффективность обучения: Модели Ultralytics оптимизированы для эффективного обучения, часто сходясь быстрее и требуя меньше памяти, чем стандартные реализации. Это снижает затраты на облачные вычисления и ускоряет вывод на рынок.
  3. Универсальность: Помимо detect, фреймворк Ultralytics поддерживает segmentation, pose estimation и OBB, позволяя масштабировать возможности вашего проекта без смены инструментов.
  4. Хорошо поддерживаемая экосистема: Благодаря частым обновлениям, обширным руководствам и процветающему сообществу пользователи получают выгоду от постоянных улучшений и поддержки.

Запуск различных моделей

Переключение между архитектурами легко осуществляется с помощью Ultralytics API:

from ultralytics import RTDETR, YOLO

# Train YOLOv10
model_yolo = YOLO("yolov10n.pt")
model_yolo.train(data="coco8.yaml", epochs=100)

# Train RT-DETR
model_rtdetr = RTDETR("rtdetr-l.pt")
model_rtdetr.train(data="coco8.yaml", epochs=100)

Заключение

YOLOv10 и RT-DETRv2 представляют собой передовые технологии object detection. RT-DETRv2 — надежный выбор для исследовательских задач, где вычислительные затраты вторичны по отношению к точности. Однако для подавляющего большинства реальных развертываний YOLOv10 предлагает превосходный баланс. Сочетание высокой скорости, низкой задержки и эффективности использования ресурсов делает его практичным победителем для инженеров, создающих масштабируемые приложения.

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

Изучите другие модели

Если вам интересны дальнейшие сравнения, ознакомьтесь с:


Комментарии