CloAttention来自清华大学的团队提出的一篇论文CloFormer,作者从频域编码的角度认为现有的轻量级视觉Transformer中,大多数方法都只关注设计稀疏注意力,来有效地处理低频全局信息,而使用相对简单的方法处理高频局部信息。很少有方法尝试结合共享和上下文感知权重的优势来处理高频局部信息。模型引入了AttnConv,将普通卷积运算中的全局共享权重和注意力操作中的上下文感知权重结合起来,相比于Transformer能够更好地捕捉高频的局部信息,相比于传统卷积操作能够更好地处理图像中不同位置的关系。
论文地址:https://arxiv.org/pdf/2303.17803.pdf
代码仓库:https://github.com/qhfan/CloFormer
模型结构
CloFormer整体结构如下图所示,本文关注于CloAttention,即下图的Clo block模块。
CloFormer采用两分支的结构。在局部分支中,AttnConv利用深度可分离卷积(depth-wise Convolution),其具有共享权重来提取局部特征。然后,利用上下文感知权重来增强局部特征。与以前通过局部自注意力生成上下文感知权重的方法不同,AttnConv使用门控机制生成上下文感知权重,引入了更强的非线性。在全局分支中,使用传统的注意力操作帮助模型捕捉低频的全局信息,但对K和V进行了下采样来减少参数量。最后使用一种简单的方法来融合局部分支和全局分支的输出。
CloFormer包含四个stage,每个stage由Clo Block和ConvFFN组成。首先将输入图像通过conv stem得到token,stem由四个卷积层组成,每个卷积层的步距分别是2,2,1,1。然后通过四个stage提取分层特征。最后利用全局平均池化和全连接层来生成预测。
ConvFFN
用ConvFFN取代普通的FFN,将局部信息融入到FFN过程中。ConvFFN与普通的FFN之间的主要区别在于,ConvFFN在GeLU激活之后采用深度可分离卷积(Depth-wise Conv),这使ConvFFN能够聚合局部信息。由于使用了深度可分离卷积,ConvFFN可以直接下采样,而不需要引入PatchMerge模块。
CloFormer使用两种类型的ConvFFN。第一种是直接利用跳跃连接的In-Stage ConvFFN。另一种是两个stage的ConvFFN,在其跳跃连接中,分别利用DWConv和Full-Connected Layer对输入信息进行下采样和升维。
Clo block
Clo block由一个局部分支和一个全局分支组成。在全局分支中,首先对K和V进行下采样,然后对Q、K、V执行传统注意力过程,以提取低频全局信息。全局分支有效减少了计算注意力所需的Flop的数量,并且还使模型具有全局感受野。然而,尽管它有效地捕获了低频全局信息,但它对于高频局部信息的处理有所欠缺。因此在局部分支中提出AttnConv克服这一缺点,AttnConv的结构如下图所示。
卷积:传统的残差块仅依靠卷积算子来收集高频局部信息,如上图(a)示,每个token,卷积算子使用卷积核中国的权重对其相邻token进行加权求和。卷积核中的权重是全局共享的,并且对于不同的token保持不变。
局部自注意力:如上图(b)示。与卷积相比,局部自注意力使每个token能够通过特定于token的权重从其相邻token中收集信息。这种方法利用上下文感知权重来提取高频局部表示,其中不同位置的token与其相邻token计算相似度分数,根据相似度分数收集信息。
AttnConv:如上图(c)示。Q、K和V是通过线性变换得到的,首先使用共享权重(DWConv)对V进行信息聚合。然后,通过比传统注意力操作更强的非线性方法来生成上下文感知权重。然后使用这些权重来增强局部特征。同时利用了共享权重和上下文感知权重。与传统卷积相比,AttnConv中上下文感知权重的使用时模型在局部感知过程中能够更好地适应输入内容。与局部自注意力相比,共享权重的引入使模型能够更好地处理高频信息,从而提高了性能。此外,我们的生成上下文感知权重的方法引入了比局部自我注意更强的非线性,获得了更好的性能。需要注意的是,AttnConv中使用的所有运算都是基于卷积的,保留了卷积的平移等变特性。
实现代码
CloAttention Block的实现代码如下所示:
YOLOv5模型改进
本文在YOLOv5目标检测算法的Backbone和Head部分分别加入CloAttention来增强目标提取能力,以下分别是在Backbone以及Head中改进的模型结构和参数(以YOLOv5s为例)。
在Backbone部分
在Head部分
总结
CloAttention模块引入了AttnConv,将普通卷积运算中的全局共享权重和注意力操作中的上下文感知权重结合起来,相比于Transformer能够更好地捕捉高频的局部信息,相比于传统卷积操作能够更好地处理图像中不同位置的关系。此外,CloAttention可进一步应用于YOLOv7、YOLOv8等模型中,欢迎大家关注本博主的微信公众号 BestSongC,后续更多的资源如模型改进、可视化界面等都会在此发布。另外,本博主最近也在MS COCO数据集上跑了一些YOLOv5的改进模型,实验表明改进后的模型能在MS COCO 2017验证集上分别涨点1-3%,感兴趣的朋友关注后回复YOLOv5改进。