159、YOLOv8改进实战:RepGFPN重参数化特征金字塔的部署加速与精度平衡

发布时间:2026/8/5 10:59:07
159、YOLOv8改进实战:RepGFPN重参数化特征金字塔的部署加速与精度平衡 159、YOLOv8改进实战:RepGFPN重参数化特征金字塔的部署加速与精度平衡上个月在给一个安防项目做模型轻量化时,客户要求推理速度提升30%以上,但mAP不能掉超过1个点。我试了试常规的剪枝和量化,精度掉得让我头皮发麻。后来翻到旷视的RepGFPN论文,突然意识到——特征金字塔这块其实有巨大的冗余,而重参数化恰好能解决部署加速和精度保持这对矛盾。为什么Neck是瓶颈YOLOv8的Neck部分用的是C2f+FPN/PAN结构,特征融合路径长,参数量集中在3x3卷积上。在推理时,这些卷积层层叠叠,计算图复杂度高。我做过一个实验:把Neck部分的FLOPs单独拎出来统计,发现占了整个模型的35%左右。更关键的是,FPN的横向连接和自上而下路径存在大量重复计算,不同尺度的特征图在融合时,卷积核的冗余度很高。RepGFPN的核心思路很简单:训练时用多分支结构(类似RepVGG的3x3+1x1+BN),推理时通过结构重参数化合并成单个3x3卷积。这样训练时模型容量大,推理时计算图干净。但坑在于——YOLOv8的Neck里还有C2f模块,不能简单套用RepVGG的写法。代码实现中的关键细节先说CSP结构的处理。YOLOv8的Neck里C2f模块包含多个Bottleneck,每个Bottleneck内部是Conv+BN+SiLU。我最初的想法是把每个Conv都换成RepConv,结果训练时loss降得慢,推理加速也不明显。后来发现,C2f内部的Bottleneck本身就有残差连接,再加RepConv的多分支反而过犹不及。