104、YOLOv8改进实战:Gold-YOLO信息交换式Neck架构解析与高效融合模块实现
104、YOLOv8改进实战:Gold-YOLO信息交换式Neck架构解析与高效融合模块实现从一次Neck调试翻车说起上个月做工业缺陷检测项目,客户要求检测0.5mm级别的划痕,YOLOv8n跑出来的结果让我血压飙升——小目标召回率不到40%。我第一反应是Backbone不够强,换了RepVGG、换了VanillaNet,折腾一周效果提升不到2个点。后来跟一个做遥感检测的朋友聊,他说你试试改Neck,YOLOv8的Neck在跨尺度信息融合上其实有瓶颈。我半信半疑地翻开了Gold-YOLO的论文,看完直拍大腿——这玩意儿才是Neck该有的样子。YOLOv8原版Neck的痛点,我踩过的坑YOLOv8的Neck结构沿用了C2f+FPN/PAN的套路,说白了就是自顶向下和自底向上的双向特征金字塔。这种设计在常规场景下够用,但一旦遇到小目标或者遮挡严重的场景,问题就暴露了。我调试时发现一个现象:输入一张640x640的图片,P3层(小目标层)的特征图经过FPN上采样后,细节信息被严重稀释。更致命的是,PANet的横向连接只是简单的concat或者add,不同尺度特征之间的交互非常有限。这就好比你把一个高清摄像头拍到的画面,先压缩再放大,细节早没了。另一个坑是计算效率。YOLOv8n的Neck部分参数量虽然不大,但推理时特征图反复上下采样,内存带宽消耗很可观。我在Jetson Orin上部署时,Neck部分占了将近30%的推理时间,这还不算FPN带来的额外延迟。