RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 RepViT 轻量级的Vision Transformers架构

简介: RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2024 RepViT 轻量级的Vision Transformers架构

一、本文介绍

本文记录的是基于RepVit的RT-DETR轻量化改进方法研究RepVit的网络结构借鉴ViT的设计理念,通过分离的token mixechannel mixer减少推理时的计算和内存成本,同时减少扩展比率并增加宽度,降低延迟,并通过加倍通道来弥补参数大幅减少的问题,提高了准确性。本文在替换骨干网络中配置了原论文中的repvit_m0_9repvit_m1_0repvit_m1_1repvit_m1_5repvit_m2_3五种模型,以满足不同的需求。

模型 参数量 计算量 推理速度
rtdetr-l 32.8M 108.0GFLOPs 11.6ms
Improved 23.2M 74.4GFLOPs 11.5ms

专栏目录:RT-DETR改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
专栏地址:RT-DETR改进专栏——以发表论文的角度,快速准确的找到有效涨点的创新点!

二、RepVit结构详解

2.1 出发点

在计算机视觉领域,设计轻量化模型对于在资源受限的移动设备上实现视觉模型的部署至关重要。近年来,轻量级Vision Transformers(ViTs)在移动设备上表现出优越性能和较低延迟,但ViTs和轻量级Convolutional Neural Networks(CNNs)在块结构、宏观和微观设计上存在显著差异未被充分研究。本研究从ViT视角重新审视轻量级CNNs的高效设计,旨在为移动设备探索更优的模型架构,因此提出了RepViT模型

2.2 原理

2.2.1 借鉴ViT的设计理念

  • 块设计(Block design)
    • 分离token mixer和channel mixer:轻量级ViTs的块结构包含分离的token mixerchannel mixer这一重要设计特征。研究发现ViTs的有效性主要源于其通用的token mixer和channel mixer架构(MetaFormer架构)。在MobileNetV3 - L中,原始块设计使token mixer和channel mixer耦合,通过移动DW卷积可选的挤压 - 激励(SE)层,成功分离两者,并采用结构重新参数化技术增强模型学习,减少了推理时的计算和内存成本,降低了延迟,命名为RepViT块
    • 减少扩展比率并增加宽度:在ViTs中,通道混合器的扩展比率通常较大,消耗大量计算资源。而在RepViT块中,将所有阶段的通道混合器扩展比率设置为2,降低了延迟,并通过在每个阶段加倍通道来弥补参数大幅减少的问题,提高了准确性。

在这里插入图片描述

2.2.2 宏观设计(Macro design)

  • 早期卷积用于stem:ViTs通常使用patchify操作作为stem,容易导致优化性欠佳和对训练配方敏感。而MobileNetV3 - L采用复杂的stem,存在延迟瓶颈且限制了表示能力。研究采用早期卷积方式,即堆叠两个步长为2的3×3卷积作为stem,减少了延迟,提高了准确性。
  • 更深的下采样层:ViTs通过单独的补丁合并层实现空间下采样,有利于增加网络深度和减少信息损失。而MobileNetV3 - L仅通过倒置瓶颈块实现下采样,可能缺乏足够网络深度。研究采用DW卷积和1×1卷积进行空间下采样并调制通道维度,还前置一个RepViT块进一步加深下采样层,并放置一个FFN模块记忆更多潜在信息,提高了准确性,同时降低了延迟。
  • 简单分类器:轻量级ViTs的分类器通常由全局平均池化层和线性层组成,对延迟友好。而MobileNetV3 - L采用复杂分类器,增加了延迟负担。考虑到RepViT块设计后最后阶段有更多通道,研究采用简单分类器替代,虽有一定精度下降,但降低了延迟。
  • 整体阶段比率:调整不同阶段的块数量比例,采用1:1:7:1的阶段比率并增加网络深度,提高了准确性,同时降低了延迟。

    2.2.3 微观设计(Micro design)

  • 内核大小选择:CNNs的性能和延迟受卷积核大小影响。虽然大内核卷积可展示性能增益,但对移动设备不友好。MobileNetV3 - L主要使用3×3卷积,研究在所有模块中优先使用3×3卷积,维持了准确性,同时降低了延迟。
  • 挤压 - 激励(SE)层放置SE层可弥补卷积的局限性,但在MobileNetV3 - L中某些块使用SE层存在问题。研究设计了一种跨块使用SE层的策略,即每个阶段的第1、3、5等块使用SE层,以最小的延迟增加获得最大的精度提升。

在这里插入图片描述

2.3 结构

RepViT模型是一个全新的纯轻量级CNN家族,其结构基于ViT - like MetaFormer结构,完全由重新参数化卷积组成。它具有多个变体,如RepViT - M0.9/M1.0/M1.1/M1.5/M2.3等,不同变体通过每个阶段的通道数量和块数量来区分。

2.4 优势

  1. 性能优越
    • 在ImageNet - 1K上进行图像分类实验时,RepViT在不同模型大小下均达到了最先进的性能。

例如RepViT - M1.0`在iPhone 12上以1.0 ms的延迟实现了超过80%的top - 1准确率,这是轻量级模型首次达到该水平。在不使用知识蒸馏的情况下,也能显著优于其他竞争模型。

  1. 延迟较低
    • RepViT在各种视觉任务中展现出良好的延迟性能。

例如在对象检测和实例分割任务中,在相似模型大小下,RepViT - M1.1相比EfficientFormer - L1 backbone具有更小的延迟;在语义分割任务中,RepViT - M1.5相比EfficientFormerV2 - S2具有近50%的延迟降低,同时具有更好的性能。

  1. 适用于移动设备
    • RepViT的设计充分考虑了移动设备的资源受限特性,通过借鉴ViT的高效架构设计,对轻量级CNN进行优化,使其在移动设备上具有良好的性能和延迟表现,为移动设备上的视觉任务提供了更优的模型选择。

论文:https://arxiv.org/pdf/2307.09283
源码:https://github.com/THU-MIG/RepViT

三、实现代码及RT-DETR修改步骤

模块完整介绍、个人总结、实现代码、模块改进、二次创新以及各模型添加步骤参考如下地址:

https://blog.csdn.net/qq_42591591/article/details/144208858

相关文章
|
9月前
|
网络协议 算法 Java
基于Reactor模型的高性能网络库之Tcpserver组件-上层调度器
TcpServer 是一个用于管理 TCP 连接的类,包含成员变量如事件循环(EventLoop)、连接池(ConnectionMap)和回调函数等。其主要功能包括监听新连接、设置线程池、启动服务器及处理连接事件。通过 Acceptor 接收新连接,并使用轮询算法将连接分配给子事件循环(subloop)进行读写操作。调用链从 start() 开始,经由线程池启动和 Acceptor 监听,最终由 TcpConnection 管理具体连接的事件处理。
295 2
|
9月前
基于Reactor模型的高性能网络库之Tcpconnection组件
TcpConnection 由 subLoop 管理 connfd,负责处理具体连接。它封装了连接套接字,通过 Channel 监听可读、可写、关闭、错误等
247 1
|
9月前
|
JSON 监控 网络协议
干货分享“对接的 API 总是不稳定,网络分层模型” 看电商 API 故障的本质
本文从 OSI 七层网络模型出发,深入剖析电商 API 不稳定的根本原因,涵盖物理层到应用层的典型故障与解决方案,结合阿里、京东等大厂架构,详解如何构建高稳定性的电商 API 通信体系。
|
6月前
|
机器学习/深度学习 数据采集 人工智能
深度学习实战指南:从神经网络基础到模型优化的完整攻略
🌟 蒋星熠Jaxonic,AI探索者。深耕深度学习,从神经网络到Transformer,用代码践行智能革命。分享实战经验,助你构建CV、NLP模型,共赴二进制星辰大海。
|
7月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
481 2
|
9月前
基于Reactor模型的高性能网络库之Poller(EpollPoller)组件
封装底层 I/O 多路复用机制(如 epoll)的抽象类 Poller,提供统一接口支持多种实现。Poller 是一个抽象基类,定义了 Channel 管理、事件收集等核心功能,并与 EventLoop 绑定。其子类 EPollPoller 实现了基于 epoll 的具体操作,包括事件等待、Channel 更新和删除等。通过工厂方法可创建默认的 Poller 实例,实现多态调用。
416 60
|
7月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
179 8
|
9月前
|
安全 调度
基于Reactor模型的高性能网络库之核心调度器:EventLoop组件
它负责:监听事件(如 I/O 可读写、定时器)、分发事件、执行回调、管理事件源 Channel 等。
443 57
|
9月前
基于Reactor模型的高性能网络库之时间篇
是一个用于表示时间戳(精确到微秒)**的简单封装类
286 57
|
8月前
|
算法 安全 网络安全
【多智能体系统】遭受DoS攻击的网络物理多智能体系统的弹性模型预测控制MPC研究(Simulink仿真实现)
【多智能体系统】遭受DoS攻击的网络物理多智能体系统的弹性模型预测控制MPC研究(Simulink仿真实现)
311 0

热门文章

最新文章

下一篇
开通oss服务