
02 C2f模块深度重构:从Bottleneck到多尺度特征融合的实战改造开篇故事上个月,我帮一家自动驾驶公司优化他们的障碍物检测模型。他们的场景很典型:城市十字路口,需要同时识别远处的行人(小目标)和近处的卡车(大目标)。他们用了YOLOv11s作为基座,但在小目标召回率上始终卡在78%左右,怎么调参都上不去。我看了他们的网络结构,C2f模块用的是最原始的配置——两个标准Bottleneck堆叠,3x3卷积,ReLU激活。问题就出在这:当特征图经过两次3x3卷积后,小目标的细节信息几乎被“洗”掉了。就像你用粗砂纸打磨木板,能快速去掉毛刺,但也会把木纹的细节磨平。他们犯了一个典型的错误:以为C2f模块里的Bottleneck越多,特征提取能力就越强。实际上,在浅层特征图(比如P3层,80x80分辨率),过多的3x3卷积反而会破坏空间细节。痛点拆解常见误区:Bottleneck堆叠的“线性思维”很多初学者会这样写C2f模块的核心部分:# 反例代码:线性堆叠Bottleneck,忽视多尺度需求class