YOLOv9 vs RTDETRv2: Техническое сравнение для object detection
Выбор правильной архитектуры обнаружения объектов — это ключевое решение в разработке компьютерного зрения, часто требующее от разработчиков взвешивания компромиссов между точностью, задержкой инференса и вычислительными издержками. В этом анализе представлено всестороннее техническое сравнение между YOLOv9, архитектурой на основе CNN, оптимизированной для эффективности, и RTDETRv2, моделью на основе трансформеров, разработанной для высокоточной детекции (detect).
YOLOv9: Переосмысление эффективности CNN
YOLOv9 представляет собой значительную эволюцию в серии You Only Look Once (YOLO), фокусируясь на решении проблемы информационного барьера, присущей глубоким нейронным сетям. Благодаря внедрению новых архитектурных концепций, она достигает самых современных показателей, сохраняя при этом легковесный характер, свойственный семейству YOLO.
- Авторы: Чен-Яо Ванг, Хонг-Юань Марк Ляо
- Организация:Институт информатики, Academia Sinica, Тайвань
- Дата: 21.02.2024
- Arxiv:arXiv:2402.13616
- GitHub:WongKinYiu/yolov9
- Документация:Документация Ultralytics YOLOv9
Основная архитектура
YOLOv9 представляет два основных нововведения: Programmable Gradient Information (PGI) и Generalized Efficient Layer Aggregation Network (GELAN). PGI решает проблему потери информации о данных при ее распространении через глубокие слои, обеспечивая сохранение надежной градиентной информации для обновления модели. GELAN оптимизирует использование параметров, позволяя модели достигать более высокой точности с меньшим количеством операций с плавающей запятой (FLOPs) по сравнению с традиционными сверточными архитектурами.
Интеграция в экосистему Ultralytics
YOLOv9 полностью интегрирован в экосистему Ultralytics, предлагая разработчикам беспрепятственный доступ к инструментам обучения, валидации и развертывания. Эта интеграция гарантирует, что пользователи смогут использовать тот же простой API, который используется для YOLO11 и YOLOv8, что значительно снижает порог вхождения для продвинутых задач компьютерного зрения.
RTDETRv2: претендент Transformer
RTDETRv2 основывается на успехе Real-Time Detection Transformer (RT-DETR), совершенствуя базовую модель для улучшения обработки динамического масштаба и стабильности обучения. Как модель на основе transformer, она использует механизмы само-внимания для захвата глобального контекста, что может быть выгодно для различения объектов в сложных сценах.
- Авторы: Веню Лю, Иань Чжао, Циньяо Чанг, Куй Хуанг, Гуаньчжун Ван и И Лю
- Организация:Baidu
- Дата: 2024-07-24
- Arxiv:arXiv:2407.17140
- GitHub:Репозиторий RT-DETR на GitHub
Основная архитектура
В отличие от CNN, которые обрабатывают изображения локальными патчами, RTDETRv2 использует transformer backbone для обработки признаков изображения. Этот подход позволяет модели понимать взаимосвязи между удаленными частями изображения, потенциально повышая точность в зашумленных средах. Однако этот механизм глобального внимания обычно сопряжен с более высокими затратами памяти и вычислительными затратами, особенно во время обучения.
Сравнение производительности
Следующие данные демонстрируют метрики производительности различных размеров моделей на COCO dataset. Сравнение фокусируется на Mean Average Precision (mAP), скорости inference и вычислительной сложности.
| Модель | размер (пиксели) | mAPval 50-95 | Скорость CPU ONNX (мс) | Скорость T4 TensorRT10 (мс) | параметры (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
| 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 |
Анализ метрик
- Пиковая точность: Модель YOLOv9e достигает замечательного 55,6% mAP, превосходя самую большую модель RTDETRv2-x (54,3% mAP). Это демонстрирует, что архитектурные инновации в YOLOv9 эффективно сокращают разрыв между CNN и Transformer, даже превосходя их по точности высшего уровня.
- Эффективность: YOLOv9 стабильно обеспечивает более высокую производительность на параметр. Например, YOLOv9c достигает 53,0% mAP, имея всего 25,3M параметров и 102,1B FLOPs, тогда как сопоставимый RTDETRv2-l требует 42M параметров и 136B FLOPs для достижения 53,4% mAP. Эта эффективность делает YOLOv9 значительно легче для хранения и быстрее для выполнения.
- Скорость инференса: В приложениях реального времени скорость имеет решающее значение. Меньшие варианты YOLOv9, такие как YOLOv9t, предлагают чрезвычайно низкую задержку (2,3 мс на TensorRT), что делает их идеальными для развертываний периферийного ИИ, где модели RTDETRv2 могут быть слишком тяжелыми.
Эффективность обучения и экосистема
Одним из наиболее важных факторов для разработчиков является простота обучения и ресурсы, необходимые для точной настройки моделей на пользовательских наборах данных.
Требования к памяти
Модели на основе Transformer, такие как RTDETRv2, печально известны своим высоким потреблением памяти во время обучения из-за квадратичной сложности механизмов само-внимания. Это часто требует высокопроизводительных корпоративных GPU с большим объемом VRAM. В отличие от этого, YOLOv9 сохраняет эффективность памяти CNN, что позволяет проводить обучение на оборудовании потребительского класса. Этот более низкий порог входа демократизирует доступ к современным технологиям обнаружения объектов.
Преимущество Ultralytics
Выбор модели в рамках экосистемы Ultralytics предоставляет ощутимые преимущества, выходящие за рамки простых метрик производительности:
- Простота использования: Python API от Ultralytics абстрагирует сложные циклы обучения в несколько строк кода.
- Хорошо поддерживаемая экосистема: Частые обновления обеспечивают совместимость с последними версиями PyTorch, форматами экспорта (ONNX, TensorRT, CoreML) и драйверами оборудования.
- Универсальность: Хотя RTDETRv2 в первую очередь является детектором объектов, платформа Ultralytics поддерживает широкий спектр задач, включая сегментацию экземпляров, оценку позы и обнаружение ориентированных ограничивающих рамок (OBB) во всех семействах моделей.
Пример кода
Обучение YOLOv9 с использованием пакета Ultralytics не представляет сложности. Следующий фрагмент кода демонстрирует, как загрузить предварительно обученную модель и обучить ее на пользовательском наборе данных:
from ultralytics import YOLO
# Load a pre-trained YOLOv9 model
model = YOLO("yolov9c.pt")
# Train the model on a custom dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
Возможность экспорта
Модели Ultralytics можно легко экспортировать в различные форматы для развертывания. Например, экспорт в ONNX для более широкой совместимости:
model.export(format="onnx")
Идеальные варианты использования
Когда следует выбирать YOLOv9
YOLOv9 – рекомендуемый выбор для большинства приложений компьютерного зрения, особенно там, где требуется баланс скорости, точности и эффективности использования ресурсов.
- Развертывание на периферии: Такие устройства, как NVIDIA Jetson или Raspberry Pi, выигрывают от более низких FLOPs и количества параметров YOLOv9.
- Видеоаналитика в реальном времени: Каналы безопасности и системы мониторинга трафика требуют высокой частоты кадров, которую обеспечивает YOLOv9.
- Обучение с ограниченными ресурсами: Команды, не имеющие доступа к массивным кластерам GPU, все еще могут точно настраивать современные модели.
Когда следует рассмотреть RTDETRv2
RTDETRv2 подходит для нишевых сценариев, где:
- Глобальный контекст имеет решающее значение: Сцены с высокой степенью перекрытия или там, где контекст от удаленных пикселей строго необходим для классификации.
- Аппаратные ресурсы не ограничены: Развертывания на GPU серверного класса, где ограничения по памяти и вычислениям незначительны.
- Предпочтение отсутствия якорей: Исследователи, которые хотят экспериментировать с чистыми transformer-архитектурами без привязки к якорям.
Заключение
В то время как RTDETRv2 демонстрирует потенциал transformers в обнаружении объектов, YOLOv9 становится превосходным практическим выбором для большинства разработчиков и исследователей. Он обеспечивает более высокую пиковую точность (55,6% mAP) со значительно лучшей эффективностью, меньшим объемом используемой памяти и более высокой скоростью инференса. В сочетании с надежной поддержкой, обширной документацией и простотой использования, предоставляемыми экосистемой Ultralytics, YOLOv9 предлагает более простой путь от прототипа до производства.
Для тех, кто хочет изучить самые последние достижения в области компьютерного зрения, мы также рекомендуем ознакомиться с YOLO11, которая еще больше расширяет границы скорости и точности.
Изучите другие модели
- YOLO11: Последняя эволюция в серии YOLO, оптимизированная для различных задач, включая segment и оценку позы.
- YOLOv8: Очень популярная и универсальная модель, известная своей надежностью и широкой поддержкой сообщества.
- RT-DETR: Изучите оригинальную реализацию Real-Time Detection Transformer в рамках фреймворка Ultralytics.