一、本文介绍
本文给大家带来的改进机制是由我独家研制的,我结合了DualConv的思想并根据PartialConv提出了一种全新的结构CSPPC用来替换网络中的C2f,将其替换我们网络(V5n)中的C3参数量后直接下降约42W,计算量GFLOPs降低至3.3GFLOPs同时,其中的PartialConv作为一种具有高速推理的Conv,其对于网络的速度提升也是非常的有效的,本文的网络结构大家只要使用上,作为一种轻量化的模块来使用,可以说是轻量化中的王者,同时该结构在我的数据上还伴随着一定幅度涨点约一个点,同时本文的结构为我独家创新全网无第二份,非常适合大家用来发表论文!
欢迎大家订阅我的专栏一起学习YOLO!
专栏目录:YOLOv5改进有效涨点目录 | 包含卷积、主干、检测头、注意力机制、Neck上百种创新机制
专栏回顾:YOLOv5改进专栏——持续复现各种顶会内容——内含100+创新
二、PConv卷积原理
2.1 PConv卷积的基本原理
PConv(部分卷积)的基本原理是利用特征图的冗余,从而减少计算和内存访问。具体来说,PConv 只在输入通道的一部分上应用常规卷积进行空间特征提取,而保留剩余通道不变。这种设计的优势在于:
1. 减少计算复杂度:PConv 通过在较少的通道上进行计算,降低了浮点操作(FLOPs)的数量。例如,如果部分率设置为 1/4,则PConv的计算量只有常规卷积的 1/16。
2. 降低内存访问:与常规卷积相比,PConv减少了内存访问量,这对于输入/输出(I/O)受限的设备尤其有益。
3. 保持特征信息流:尽管只对输入通道的一部分进行计算,但保留的通道在后续的逐点卷积(PWConv)层中仍然有用,允许特征信息在所有通道中流动。
下图为大家展示了我们提出的部分卷积(PConv)的概念。它通过仅在少数输入通道上应用滤波器,同时保留其他通道不变,从而实现快速高效的运算。
与常规卷积相比,PConv降低了FLOPs,同时比深度/分组卷积具有更高的FLOPs。这种方法提升了运算效率,因为它减少了必须执行的计算量,并且减少了内存访问。
图中(a)展示了常规卷积,(b)展示了深度/分组卷积,而(c)则展示了我们的部分卷积方法。在PConv中,一部分通道直接通过身份操作传递,而不进行卷积处理。
2.2 特征图冗余
特征图冗余指的是在卷积神经网络的特征图(也称为激活图)中,不同通道间存在大量相似或重复的信息。在许多情况下,特征图的某些通道可能会包含与其他通道高度相似的特征,这意味着在进行网络的前向传播时,这部分信息的多次处理并没有提供额外的有用信息,反而增加了计算量和内存访问的开销。
在实际应用中,这种冗余性可能会导致计算资源的浪费,因为神经网络会在所有通道上执行卷积运算,包括那些冗余或者不会对网络性能产生显著影响的通道。为了解决这个问题,可以通过各种方法来降低这种冗余,例如:
1. 通道剪枝:通过分析通道的重要性并移除那些对最终性能影响不大的通道来减少冗余。
2. 组卷积:将输入特征图分成多个组,每个组独立进行卷积运算,可以减少参数数量和计算量。
3. 部分卷积(PConv):正如论文中提出的,PConv只在输入通道的一部分上应用卷积,减少了计算上的冗余和内存访问,同时仍能有效提取空间特征。