Улучшения оптимизации RT-DETR: облегченные улучшения магистрали | Support Paddle облегченный rtdetr-r18, rtdetr-r34, rtdetr-r50, rtdet
Улучшения оптимизации RT-DETR: облегченные улучшения магистрали | Support Paddle облегченный rtdetr-r18, rtdetr-r34, rtdetr-r50, rtdet

Эксклюзивное улучшение этой статьи: поддерживает различные версии Baidu Feipian resnet, rtdetr-r18, rtdetr-r34, rtdetr-r50, rtdetr-r101 и т. д.

layers

parameters

gradients

GFLOPs

rtdetr-r18

421

20184464

20184464

58.6

rtdetr-r34

501

30292624

30292624

88.9

rtdetr-r50

629

42944620

42944620

134.8

rtdetr-r101

867

76661740

76661740

257.7

rtdetr-l

673

32970732

32970732

108.3

rtdetr-x

867

67468108

67468108

232.7

1. Знакомство с РТ-ДЕТР

бумага: https://arxiv.org/pdf/2304.08069.pdf

RT-DETR (Real-Time DEtection TRansformer) , вид, основанный на DETR Комплексный детектор реального времени, обеспечивающий скорость и точность SOTA производительность

Почему появляется:

YOLO Детектор нуждается в усовершенствовании, а именно: NMS Постобработка,Зачастую его сложно оптимизировать и он недостаточно надежен.,Поэтому происходит задержка в скорости детектора. Чтобы избежать этой проблемы,яОни обратили свое внимание на ненужное NMS постобработка DETR, вид, основанный на Transformer Сквозной детектор объектов для。Однако,по сравнению с YOLO Детектор серии ДЭТР Серийные детекторы работают намного медленнее, что исключает необходимость NMS " не демонстрирует преимущества в скорости. Вышеуказанные проблемы побудили нас изучить сквозные детекторы реального времени с целью DETR Разработайте новый детектор реального времени на основе превосходной архитектуры, чтобы решить проблему в корне. NMS Проблема задержки скорости, вызванная детектором реального времени.

RT-DETR — первый сквозной детектор объектов в реальном времени. В частности, мы разрабатываем эффективный гибридный кодер для эффективной обработки многомасштабных функций за счет разделения внутримасштабных взаимодействий и межмасштабного слияния, а также предлагаем механизм выбора запросов с учетом IoU для оптимизации инициализации запросов декодера. Кроме того, RT-DETR поддерживает гибкую настройку скорости вывода за счет использования различных слоев декодера без переобучения, что облегчает практическое применение детекторов объектов в реальном времени. RT-DETR-L достигает 53,0% AP и 114 кадров в секунду на COCO val2017, а RT-DETR-X достигает 54,8% AP и 74FPS на COCO val2017, превосходя все устройства того же масштаба с точки зрения скорости и точности детектора YOLO. RT-DETR-R50 достиг 53,1% AP и 108 кадров в секунду, а RT-DETR-R101 достиг 54,3% AP и 74FPS, превосходя по точности все детекторы DETR, использующие ту же магистральную сеть.

Авторский коллектив РТ-ДЭТР считает, что Encoder нужно применять только к S5 Характерно,Это может значительно уменьшить объем вычислений и увеличить скорость вычислений.,Это не повредит производительности модели. Чтобы убедиться в этом,Команда авторов разработала несколько контрольных групп.,Как показано ниже.

Результаты эксперимента:

Обычно используемый масштаб класса DETR в COCO составляет 800x1333. Раньше целью было достижение 45 м А или даже 50 м А на магистральной сети Res50. Однако RT-DETR не требует длительных сеансов обучения при использовании стиля YOLO. Масштаб 640х640. Он легко может преодолеть 50м АП за сто эпох, а его точность намного выше, чем у всех моделей DETR.

1.1 Знакомство с различными версиями resnet

Версия YOLOv8 в настоящее время поддерживает только две версии: rtdetr-l и rtdetr-x.

Paddle официально поддерживает rtdetr-r18, rtdetr-r34, rtdetr-r50, rtdetr-r101 и другие версии.

https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/rtdetr

2. В РТ-ДЭТР введены различные версии Resnet.

2.1 Загрузите Ultralytics/nn/backbone/PaddleBackbone.py

Основной код:

Язык кода:javascript
копировать

class Resnet_Blocks(nn.Module):
    def __init__(self, ch_in, ch_out, block, count, stage_num, act='relu', variant='d'):
        super().__init__()

        self.blocks = nn.ModuleList()
        for i in range(count):
            self.blocks.append(
                block(
                    ch_in,
                    ch_out,
                    stride=2 if i == 0 and stage_num != 2 else 1,
                    shortcut=False if i == 0 else True,
                    variant=variant,
                    act=act)
            )
            if i == 0:
                ch_in = ch_out * block.expansion

    def forward(self, x):
        out = x
        for block in self.blocks:
            out = block(out)
        return out

Подробности см.:

https://cv2023.blog.csdn.net/article/details/134407373

я正在参与На третьем этапе специального тренировочного лагеря Tencent Technology Creation 2023 года будет проводиться конкурс сочинений. Соберите команду, чтобы выиграть приз!

boy illustration
По какому стандарту взимается плата за обслуживание программного обеспечения?
boy illustration
IP-адрес Получить
boy illustration
【Java】Решено: org.springframework.web.HttpRequestMethodNotSupportedException
boy illustration
Native js отправляет запрос на публикацию_javascript отправляет запрос на публикацию
boy illustration
.net PDF в Word_pdf в Word
boy illustration
[Пул потоков] Как Springboot использует пул потоков
boy illustration
Подробное объяснение в одной статье: Как работают пулы потоков
boy illustration
Серия SpringCloud (6) | Поговорим о балансировке нагрузки
boy illustration
IDEA Maven может упаковать все импортное полностью красное решение — универсальное решение.
boy illustration
Последний выпуск 2023 года, самое полное руководство по обучению Spring Boot во всей сети (с интеллект-картой).
boy illustration
[Решено — Практическая работа] SaTokenException: запрос не может быть получен в контексте, отличном от Интернета. Решение проблем — Практическая работа.
boy illustration
HikariPool-1 - Connection is not available, request timed out after 30000ms
boy illustration
Power Query: автоматическое суммирование ежемесячных данных с обновлением одним щелчком мыши.
boy illustration
установка Ubuntu в среде npm
boy illustration
3 Бесплатные системы управления складом (WMS) .NET с открытым исходным кодом
boy illustration
Глубокое погружение в библиотеку Python Lassie: мощный инструмент для автоматизации извлечения метаданных
boy illustration
Объяснение прослушивателя серии Activiti7 последней версии 2023 года
boy illustration
API-интерфейс Jitu Express для электронных счетов-Express Bird [просто для понимания]
boy illustration
Каковы архитектуры микросервисов Java. Серверная часть плавающей области обслуживания
boy illustration
Описание трех режимов жизненного цикла службы внедрения зависимостей Asp.net Core.
boy illustration
Java реализует пользовательские аннотации для доступа к интерфейсу без проверки токена.
boy illustration
Серверная часть Unity добавляет поддержку .net 8. Я еще думал об этом два дня назад, и это сбылось.
boy illustration
Проект с открытым исходным кодом | Самый элегантный метод подписки на публичные аккаунты WeChat на данный момент
boy illustration
Разрешения роли пользователя Gitlab Гость, Репортер, Разработчик, Мастер, Владелец
boy illustration
Spring Security 6.x подробно объясняет механизм управления аутентификацией сеанса в этой статье.
boy illustration
[Основные знания ASP.NET] — Аутентификация и авторизация — Использование удостоверений для аутентификации.
boy illustration
Соединение JDBC с базой данных MySQL в jsp [легко понять]
boy illustration
[Уровень няни] Полный процесс развертывания проекта Python (веб-страницы Flask) в Docker.
boy illustration
6 способов чтения файлов свойств, рекомендуем собрать!
boy illustration
Графическое объяснение этапа строительства проекта IDEA 2021 Spring Cloud (базовая версия)