一、本文介绍
本文记录的是利用GnConv
优化YOLOv11
的目标检测方法研究。YOLOv11在进行目标检测时,需要对不同层次的特征进行融合。GnConv
可以考虑更高阶的空间交互,==能够更好地捕捉特征之间的复杂关系,从而增强特征融合的效果==,提高模型对目标的检测能力。
专栏目录:YOLOv11改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
专栏地址:YOLOv11改进专栏——以发表论文的角度,快速准确的找到有效涨点的创新点!
二、HorNet原理介绍
HorNet
: 利用递归门控卷积实现高效高阶空间交互
GnConv(Recursive Gated Convolution,递归门控卷积)
是论文中提出的一种高效操作,用于实现长期和高阶空间交互,其设计原理、计算公式和优势如下:
2.1、GnConv设计原理
- 输入自适应交互与门控卷积:
Vision Transformer
的成功主要依赖于对视觉数据中空间交互的适当建模,与简单使用静态卷积核聚合相邻特征的CNN不同,Vision Transformer
应用多头自注意力来动态生成权重以混合空间标记,但自注意力关于输入大小的二次复杂度在很大程度上阻碍了其应用,尤其是在需要更高分辨率特征图的下游任务中。在这项工作中,作者寻求一种更有效和高效的方法来执行空间交互,使用门控卷积(gConv)
来实现输入自适应的空间混合。 - 高阶交互与递归门控:在通过
gConv
实现了高效的一阶空间交互后,作者设计了递归门控卷积(GnConv)
来通过引入高阶交互进一步增强模型容量。具体来说,首先使用多个线性投影层($\phi_{in}$)获得一组投影特征($p_0$和$qk$),然后通过递归的方式执行门控卷积($p{k + 1} = f_k(q_k) \odot g_k(p_k) / \alpha$),其中$f_k$是一组深度卷积层,$g_k$用于匹配不同阶的维度,最后将最后一次递归步骤的输出$qn$送入投影层$\phi{out}$以获得$g^{n}Conv$的结果。从递归公式可以看出,$p_k$的交互阶数在每一步后都会增加1,因此$gnConv$实现了$n$阶空间交互。 - 大核卷积与长期交互:为了使$GnConv$能够捕捉长期交互,作者采用了两种实现方式来处理深度卷积$f$:
- 7×7卷积:7×7是
Swin Transformers
和ConvNext
的默认窗口/核大小,研究表明该核大小在ImageNet分类和各种下游任务中产生良好性能,因此作者遵循此配置以公平地与代表性的Vision Transformer
和现代CNN进行比较。 - 全局滤波器(GF):GF层通过将频域特征与可学习的全局滤波器相乘,相当于在空间域中进行具有全局核大小和循环填充的卷积。作者使用了GF层的修改版本,即处理一半的通道与全局滤波器相乘,另一半与3×3深度卷积相乘,并仅在后期阶段使用GF层以保留更多局部细节。
- 7×7卷积:7×7是
2.2、GnConv计算公式
门控卷积输出:
令$x \in \mathbb{R}^{H W \times C}$为输入特征,门控卷积$y = gConv(x)$的输出可写为:
$\begin{array}{r}
{\left[p{0}^{H W \times C}, q{0}^{H W \times C}\right]=\phi{in }(x) \in \mathbb{R}^{H W \times 2 C},} \
y = f\left(q{0}\right) \odot p{0} \in \mathbb{R}^{H W \times C}, \
y = \phi{out }\left(p_{1}\right) \in \mathbb{R}^{H W \times C},
\end{array}$
其中$\phi{in}$和$\phi{out}$是线性投影层以执行通道混合,$f$是深度卷积。注意到$p{1}^{(i, c)}=\sum{j \in \Omega{i}} w{i \to j}^{c} q{0}^{(j, c)} p{0}^{(i, c)}$,其中$\Omega{i}$是以为$i$中心的局部窗口,$w{i \to j}$代表卷积权重。
- 递归门控卷积:
$\begin{aligned}
&\left[p{0}^{H W \times C{0}}, q{0}^{H W \times C{0}}, \ldots, q{n - 1}^{H W \times C{n - 1}}\right]=\phi{in }(x) \in \mathbb{R}^{H W \times\left(C{0} + \sum{0 \leq k \leq n - 1} C{k}\right)}, \
&p{k + 1} = f{k}\left(q{k}\right) \odot g{k}\left(p{k}\right) / \alpha, k = 0, 1, \ldots, n - 1,
\end{aligned}$
其中$g{k}$的定义为:$g{k}=\begin{cases}Identity, & k = 0 \Linear\left(C{k - 1}, C_{k}\right), & 1 \leq k \leq n - 1\end{cases}$。 - 计算复杂度:总FLOPs为:$FLOPs\left(g^{n}Conv\right) < HW C\left(2K^{2} + \frac{11}{3} \times C + 2\right)$,其中$K$是深度卷积的核大小。
2.3、优势
- 高效:基于卷积的实现避免了自注意力的二次复杂度。在执行空间交互时逐渐增加通道宽度的设计也使能够以有限的复杂度实现更高阶的交互。
- 可扩展:将自注意力中的二阶交互扩展到任意阶,以进一步提高建模能力。由于不对空间卷积的类型做假设,因此(gnConv)与各种核大小和空间混合策略兼容。
- 平移等变性:完全继承了标准卷积的平移等变性,这为主要视觉任务引入了有益的归纳偏差,并避免了局部注意力带来的不对称性。
论文:https://arxiv.org/pdf/2207.14284
源码:https://github.com/raoyongming/HorNet
三、实现代码及YOLOv11修改步骤
模块完整介绍、个人总结、实现代码、模块改进、二次创新以及各模型添加步骤参考如下地址: