Rethinking Local Perception in Lightweight Vision Transformer

Rethinking Local Perception in Lightweight Vision Transformer
重新思考轻量级视觉变换器中的局部感知

1.简介

  • 提出一种新的轻量级视觉 Transformer 模型 CloFormer ,通过结合共享权重 和上下文感知权重 ,更好地捕获高频局部信息。
  • 解决现有方法在高频局部信息处理上的不足,同时保持低频全局信息的建模能力。

CloFormer的核心思想是通过AttnConv模块和双分支结构,结合共享权重和上下文感知权重的优势,分别处理高频局部信息和低频全局新。
其中

  • AttnConv使用深度可分离卷积提取局部特征,通过非线性变换生成上下文感知权重,增强局部特征。
  • 双分支结构
    • 局部分支:使用AttenConv捕获高频局部信息。
    • 全局分支:使用标准注意力机制,通过池化下采样K和V,减少计算复杂度,捕获低频全局信息。
    • 融合策略:将局部分支和全局分支的输出在通道维度上拼接,并通过一个全连接层进行融合。

2. 网络结构

请添加图片描述
上图是该网络的整体结构,首先通过卷积Stem处理以获得标记(tokens),该stem由四个卷积层组成,步负分别为2、2、1、1,然后进过Clo和ConvFNN提取分层特征,最后通过GAP和FC深层预测结果,下面仔细来看每个结构:

2.1 ConvFFN

ConvFNN在GELU激活函数后添加了深度可分离卷积,使得ConvFNN可以聚合局部信息,这样下采样可以直接在ConvFNN内部完成,这样就不需要向ViT那样,引入PatchMerge模块,通过合并相邻的小图像快,逐步降低空间分辨率,同时增加通道维度,从而实现多尺度特征的提取。上图可见,ConvFNN分为两种类型:

  • 阶段内ConvFNN:直接利用跳跃连接。
  • 夸阶段ConvFNN:用于连接两个阶段。在这种类型的ConvFNN的跳跃连接中,DWconv和全连接层分别用于对输入进行下采样和升维操作。

2.2 Clok Block

CloBlock由一个局部分支和一个全局分支组成:

  • 全局分支:如上图所示,在全局分支中首先对K和V进行下采样,然后对Q、K、V执行注意力过程, 提取低频的全局信息: X g l o b a l = A t t e n t i o n ( Q g , P o o l ( K g ) , P o o l ( V g ) ) X_{global}=Attention(Q_g,Pool(K_g),Pool(V_g)) Xglobal=Attention(Qg,Pool(Kg),Pool(Vg))
  • 局部分支:利用AttnConv作为局部分支。

2.3 AttnConv

全局分支可以减少注意力机制所需的浮点运算量FLOPs,还能够实现全局感受野,这是使用AttnConv来不过高频局部信息。首先应用线性变换来获得Q、K、V, Q K V = F C ( X i n ) QKV=FC(X_{in}) QKV=FC(Xin),在现行变换后,首先对V进行基于共享权重的局部特征聚合过程,然后基于处理后的QKV执行上下文感知的局部增强。

  • 局部特征聚合:使用可分离卷积来聚合局部信息(权重全局共享)。
  • 上下文感知的局部增强:这里通过共享权重对V完成局部信息整合后,将Q和K结合生成上下文感知权重,这里的操作就是标准的自注意力机制,只是使用的是共享的权重矩阵。具体来说,首先使用两个DWconv分别对QK聚合局部信息,再计算QK,可以看下面公式:
    Q l = D W c o n v ( Q ) Q_l=DWconv(Q) Ql=DWconv(Q) K l = D W c o n v ( K ) K_l=DWconv(K) Kl=DWconv(K) A t t n t = F C ( S w i s h ( F C ( Q l ⨀ K l ) ) ) Attnt=FC(Swish(FC(Q_l \bigodot K_l))) Attnt=FC(Swish(FC(QlKl))) A t t n = T a n h ( A t t n t d ) Attn = Tanh(\frac{Attnt}{\sqrt d}) Attn=Tanh(d Attnt) X l o c a l = A t t n ⨀ V s X_{local}=Attn \bigodot V_s Xlocal=AttnVs其中d是标记通道的数量, ⨀ \bigodot 是哈达玛积,在这里引入了更强的非线性,除了Tanh还有Swish操作。
  • 与全局分支的融合: X t = C o n c a t ( X l o c a l , X g l o b a l ) , X o u t = F C ( X t ) X_t=Concat(X_{local},X_{global}),X_{out}=FC(X_t) Xt=Concat(Xlocal,Xglobal),Xout=FC(Xt)

3. 实验

其实观察上面的结构还是挺简单的,这里的创新点个人觉得就是提出的AttnConv,这里通过结合共享权重和上下文感知权重,可以有效的捕获高频局部信息,并且通过非线性增强上下文感知权重的质量。
这里我使用将该模块添加到解码器阶段进行语义分割,数据集采用Vaihingen,下面是分割效果图,效果还挺好的:在这里插入图片描述
下面是各项指标的一个展示:
在这里插入图片描述
在这里插入图片描述mIoU还是太差了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值