一、本文介绍
本文记录的是利用Contextual Transformer (CoT)
模块优化YOLOv11
的目标检测网络模型。 CoT
将静态上下文和自注意力学习动态上下文统一在一个架构中,有效地提升了在 2D 特征图上进行视觉表示学习时自注意力学习的能力,本文将深入研究CoT
的原理,并将其应用到YOLOv11
中,==进而更有效的增强模型对视觉信息的学习和表示能力。==
专栏目录:YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
专栏地址:YOLOv11改进专栏——以发表论文的角度,快速准确的找到有效涨点的创新点!
二、ParNet 介绍
Contextual Transformer Networks for Visual Recognition
2.1 出发点
- 现有的大多数Transformer设计在2D特征图上直接使用自注意力来获得注意力矩阵时,仅基于孤立的查询和键对,未充分利用相邻键之间的丰富上下文信息。因此,希望通过利用输入键之间的上下文信息来增强Transformer式架构,以提高视觉表示学习能力。
2.2 原理
- 挖掘静态上下文:首先通过一个$3×3$卷积对输入键进行上下文编码,得到输入的静态上下文表示。此操作考虑了每个$3×3$网格内相邻键之间的关系,反映了局部邻居之间的静态上下文。
- 学习动态注意力矩阵:将编码后的键与输入查询连接起来,通过两个连续的$1×1$卷积来学习动态多头注意力矩阵。这个过程在静态上下文的指导下,自然地利用了每个查询和所有键之间的相互关系进行自注意力学习。
- 获得动态上下文表示:将学习到的注意力矩阵与输入值相乘,得到输入的动态上下文表示,描绘了动态上下文。
- 融合输出:最后将静态和动态上下文表示融合作为输出。
2.3 结构
如图所示,假设输入的2D特征图为$X$,键$K = X$,查询$Q = X$,值$V = XW_{v}$。首先使用$k×k$组卷积对$k×k$网格内的相邻键进行上下文编码得到$K^{1}$,作为静态上下文表示。
然后基于$[K^{1}, Q]$通过两个连续的$1×1$卷积($W{\theta}$带有ReLU激活函数,$W{\delta}$无激活函数)得到注意力矩阵$A$。
接着根据注意力矩阵$A$计算得到动态上下文表示$K^{2}=V \circledast A$。
最终输出$Y$是静态上下文$K^{1}$和动态上下文$K^{2}$通过注意力机制融合的结果。
- 优势
- 统一架构:将键之间的上下文挖掘和2D特征图上的自注意力学习统一在一个架构中,避免了为上下文挖掘引入额外的分支,同时具有良好的参数预算。
- 有效利用上下文:充分利用了邻居键之间的上下文信息,增强了自注意力学习,提高了输出聚合特征图的表示能力。
- 可替代卷积:可以作为现有ResNet架构中标准卷积的替代,直接替换ResNet结构中的$3×3$卷积,得到名为
Contextual Transformer Networks (CoTNet)
的新架构,且在不增加参数和FLOP预算的情况下提升性能。例如,在ImageNet图像识别任务中,CoTNet相对于ResNeSt (101层),top - 1错误率绝对降低了$0.9\%$;在COCO的目标检测和实例分割任务中,分别绝对提高了ResNeSt的$1.5\%$和$0.7\%$的mAP。
论文:https://arxiv.org/pdf/2107.12292
源码:https://github.com/JDAI-CV/CoTNet
三、实现代码及YOLOv11修改步骤
模块完整介绍、个人总结、实现代码、模块改进、二次创新以及各模型添加步骤参考如下地址: