RTDETRv2 и YOLOv5: техническое сравнение
В быстро развивающейся области обнаружения объектов выбор правильной модели часто включает в себя навигацию по компромиссу между архитектурной сложностью, скоростью вывода и практической удобством использования. В этом руководстве представлено всестороннее техническое сравнение между RTDETRv2, детектором реального времени на основе трансформеров от Baidu, и YOLOv5, легендарной моделью на основе CNN от Ultralytics, известной своей универсальностью и широким распространением.
Анализ производительности: скорость в сравнении с точностью
Принципиальное различие между этими двумя моделями заключается в их архитектурной философии. RTDETRv2 использует подход Vision Transformer (ViT) для захвата глобального контекста, стремясь к максимальной accuracy на benchmarks. В отличие от этого, YOLOv5 использует высокооптимизированную конструкцию Convolutional Neural Network (CNN), уделяя первостепенное внимание балансу скорости, эффективности и простоте развертывания на различном оборудовании.
В таблице ниже показано это различие. В то время как RTDETRv2 достигает высоких показателей mAP на наборе данных COCO, он требует значительно больше вычислительных ресурсов. YOLOv5, особенно в своих меньших вариантах (Nano и Small), предлагает значительно более высокую скорость инференса — особенно на CPU — и гораздо меньший объем памяти, что делает его практичным выбором для реальных приложений.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| RTDETRv2-s | 640 | 48.1 | - | 5.03 | 20 | 60 |
| RTDETRv2-m | 640 | 51.9 | - | 7.51 | 36 | 100 |
| RTDETRv2-l | 640 | 53.4 | - | 9.76 | 42 | 136 |
| RTDETRv2-x | 640 | 54.3 | - | 15.03 | 76 | 259 |
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
Эффективность памяти
YOLOv5 требует значительно меньше памяти CUDA для обучения по сравнению с моделями на основе трансформеров, такими как RTDETRv2. Этот более низкий порог входа позволяет разработчикам обучать пользовательские модели на стандартных потребительских GPU или даже в облачных средах, таких как Google Colab, без возникновения ошибок нехватки памяти (OOM).
RTDETRv2: претендент Transformer
RTDETRv2 (Real-Time Detection Transformer v2) представляет собой попытку привнести преимущества точности transformers в сценарии реального времени. Используя гибридную архитектуру, он пытается смягчить высокие вычислительные затраты, обычно связанные с Vision Transformers.
- Авторы: Веню Лю, Иань Чжао, Циньяо Чанг, Куй Хуанг, Гуаньчжун Ван и И Лю
- Организация: Baidu
- Дата: 17.04.2023
- Arxiv:2304.08069
- GitHub:Репозиторий RT-DETR
- Документация:Документация по RTDETRv2
Архитектура и сильные стороны
RTDETRv2 сочетает в себе CNN backbone для эффективного извлечения признаков с энкодером-декодером transformer. Эта конструкция позволяет модели использовать механизмы самоанализа для понимания глобальных взаимосвязей между объектами, что может быть полезно в сложных сценах с окклюзией или переполненностью. Его основная сила заключается в высокой точности на академических бенчмарках, где он часто превосходит CNN-модели аналогичного масштаба по чистым метрикам mAP.
Слабые стороны
Несмотря на свою точность, RTDETRv2 сталкивается с проблемами в универсальности и простоте использования. Архитектура transformer по своей сути более тяжелая, что приводит к увеличению времени обучения и большему потреблению памяти. Кроме того, ее экосистема в основном ориентирована на исследования, ей не хватает обширного инструментария, поддержки развертывания и ресурсов сообщества, которые есть в более зрелых фреймворках. Она также в основном ограничена object detection, тогда как современные проекты часто требуют segment или классификации в рамках одного и того же конвейера.
Ultralytics YOLOv5: Универсальный стандарт
YOLOv5 широко известен как одна из самых практичных и удобных в использовании моделей компьютерного зрения. Разработанный компанией Ultralytics, он отдает приоритет упрощенному процессу «обучил, развернул и готово», делая передовой искусственный интеллект доступным для всех, от любителей до инженеров крупных предприятий.
- Авторы: Гленн Джокер
- Организация:Ultralytics
- Дата: 26.06.2020
- GitHub:Репозиторий YOLOv5
- Документация:Документация YOLOv5
Почему YOLOv5 выделяется
YOLOv5 превосходен благодаря своему целостному подходу к операциям машинного обучения (MLOps). Это не просто архитектура модели, а целая экосистема.
- Простота использования: Благодаря простому Python API и интерфейсу командной строки пользователи могут начать обучение на пользовательских данных за считанные минуты.
- Баланс производительности: Семейство моделей (от Nano до X-Large) предлагает идеальный градиент скорости и точности, позволяя пользователям адаптировать свой выбор к конкретному оборудованию, такому как NVIDIA Jetson или Raspberry Pi.
- Универсальность: В отличие от RTDETRv2, YOLOv5 изначально поддерживает несколько задач, включая image classification и instance segmentation, что снижает необходимость поддерживать отдельные кодовые базы для различных задач машинного зрения.
- Экспортируемость: Ultralytics обеспечивает встроенную поддержку экспорта в ONNX, TensorRT, CoreML и TFLite, гарантируя, что модели могут быть развернуты где угодно, от мобильных приложений до облачных серверов.
Пример использования
YOLOv5 разработан для простоты. Ниже приведен пример того, как загрузить предварительно обученную модель и запустить inference с помощью PyTorch Hub, демонстрируя интуитивно понятный API, которым славится Ultralytics.
import torch
# Load the YOLOv5s model from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s")
# Define an image URL
img = "https://ultralytics.com/images/zidane.jpg"
# Perform inference
results = model(img)
# Print results to the console
results.print()
# Show the image with bounding boxes
results.show()
Сравнение обучения и экосистемы
Опыт разработчиков часто так же важен, как и необработанная производительность модели. Здесь различия очевидны.
Эффективность обучения
YOLOv5 использует детекторы на основе якорей, которые вычислительно эффективны для обучения. Фреймворк Ultralytics включает в себя «мешок бесплатных улучшений», таких как мозаичная аугментация и автоматическая эволюция якорей, которые помогают моделям быстрее сходиться и лучше обобщаться с меньшим количеством данных. И наоборот, обучение RTDETRv2 требует больше ресурсов из-за квадратичной сложности слоев внимания трансформера, часто требуя высокопроизводительные GPU с большим объемом VRAM.
Поддержка экосистемы
Экосистема Ultralytics предоставляет явное преимущество. Пользователи получают выгоду от:
- Активная разработка: Частые обновления обеспечивают совместимость с последними версиями PyTorch и CUDA.
- Поддержка сообщества: Огромное сообщество на GitHub и Discord помогает быстро решать проблемы.
- Интегрированные инструменты: Бесшовная интеграция с такими инструментами, как Ultralytics HUB, позволяет проводить обучение моделей без кода, управление наборами данных и развертывание в один клик.
RTDETRv2, будучи технически впечатляющим, не имеет такого уровня сопутствующей инфраструктуры, что затрудняет его интеграцию в производственные процессы.
Идеальные варианты использования
Выбор подходящей модели зависит от ваших конкретных ограничений и целей.
Когда следует выбирать RTDETRv2
- Академические исследования: Если ваша цель — повысить показатели mAP на наборах данных, таких как COCO, и у вас есть доступ к флагманским GPU (например, A100).
- Сложный контекст: В сценариях, где понимание взаимосвязи между удаленными объектами более важно, чем скорость inference или стоимость оборудования.
Когда следует выбирать YOLOv5
- Развертывание на периферии: Для приложений на мобильных устройствах, дронах или встроенных системах, где скорость CPU и энергоэффективность имеют первостепенное значение.
- Производство в реальном времени: Обеспечение работы систем охранной сигнализации или мониторинга трафика, где низкая задержка является обязательным условием.
- Быстрая разработка: Стартапы и корпоративные команды, которым необходимо быстро выполнять итерации, от сбора данных до развернутой модели, обнаружат, что рабочий процесс YOLOv5 значительно быстрее.
- Требования к нескольким задачам: Проекты, которым необходимо как обнаружение, так и сегментация, могут использовать единый фреймворк, что упрощает технологический стек.
Ищете новейшие технологии?
Хотя YOLOv5 остается мощным инструментом, разработчикам, стремящимся к самым последним достижениям в производительности и архитектуре, следует ознакомиться с YOLO11. YOLO11 опирается на наследие YOLOv5, предлагая еще более высокую точность, более высокую скорость и расширенные возможности, такие как оценка позы и обнаружение ориентированных объектов (obb).
Заключение
RTDETRv2 и YOLOv5 являются мощными инструментами в арсенале инженера по компьютерному зрению. RTDETRv2 демонстрирует потенциал transformers для высокоточной detect, что делает его сильным претендентом для приложений, требующих больших исследований и достаточных вычислительных ресурсов.
Однако, для подавляющего большинства практических, реальных развертываний, Ultralytics YOLOv5 остается превосходным выбором. Ее непревзойденная простота использования, зрелость экосистемы и универсальность делают ее идеальным решением для разработчиков, которым нужны надежные, высокоскоростные результаты. Независимо от того, развертываете ли вы в облаке или на периферии, эффективность и поддержка, предоставляемые Ultralytics, обеспечивают более плавный путь от концепции до производства.
Изучите другие сравнения моделей
Чтобы помочь вам принять наиболее обоснованное решение, изучите, как эти модели соотносятся с другими архитектурами в этой области:
- RT-DETR против YOLO11
- RT-DETR против YOLOv8
- YOLOv5 против YOLOv8
- YOLOv5 против EfficientDet
- YOLOv5 против YOLOX