YOLO26 的 Neck 有几种不同的实现。这篇单独说说 YOLO26 + BiFPN 这个版本——只升级 Neck,不动检测头。
BiFPN 来自 Google 的 EfficientDet 论文,是 FPN 的增强版。
标准 FPN:自上而下,把高层的语义信息往下传
BiFPN:双向融合,既往下传语义,也往上传细节

这样做的好处:每一层特征都能同时获得来自高层和低层的信息。

三个模块:
class SimplePyramid(nn.Module):
def forward(self, x):
# x 是 backbone 输出的单尺度特征 (C=512)
p5 = self.proj5(x) # 512 → 512
p4 = self.proj4(p5) # 512 → 512
p3 = self.proj3(p4) # 512 → 256
return [p3, p4, p5] # P3/P4/P5
其实这里叫 BiFPN 有些夸张了——更准确地说是一个简化版的 FPN。真正的 BiFPN 有双向加权特征融合,这里的 SimplePyramid 用的是单向上采样。

原版 YOLO26 用的是 PAFPN(带有自顶向下和侧向连接的特征金字塔)。YOLO26-BiFPN 做了一个简化:

维度 | PAFPN | SimplePyramid |
|---|---|---|
结构 | 双向 | 单向上采样 |
参数量 | 多 | 少 |
实现复杂度 | 高 | 低 |
效果 | 基准 | 略低或持平 |
这个版本更像是一个**"轻量级 FPN"**,适合想减少 Neck 参数量的情况。
backbone_type: "yolo26m"
pyramid_channels: [256, 512, 512]
reg_max: 16
freeze_backbone: 0
lr0: 0.0005
weight_decay: 0.0005
mosaic: 0.8
mixup: 0.1
配置和原版 YOLO26 差不多,没有额外的超参数需要调。

适合的场景:
不太适合的场景:
以上是 YOLO26 + BiFPN 方案的一些整理。这是一个轻量级的 Neck 升级方案,适合不想大改检测头、又想尝试多尺度特征融合改进的场景。