Эксклюзивное улучшение этой статьи: поддерживает различные версии 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 |
бумага: 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.
Версия YOLOv8 в настоящее время поддерживает только две версии: rtdetr-l и rtdetr-x.
Paddle официально поддерживает rtdetr-r18, rtdetr-r34, rtdetr-r50, rtdetr-r101 и другие версии.
https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/rtdetr
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