多尺度监督通过不同尺度层次施加监督信号,显著提升模型特征学习能力。
数学基础
图像 在尺度 下的表示:
特征金字塔通过下采样生成:
主流实现
FPN
自上而下路径融合多尺度特征:
class FPN(nn.Module):
def forward(self, features):
merged = [self.lateral_convs[-1](features[-1])]
for i in range(len(features)-2, -1, -1):
merged.append(F.interpolate(merged[-1], scale_factor=2) +
self.lateral_convs[i](features[i]))
return merged[::-1]U-Net
编码器-解码器结构 + 跳跃连接。
损失函数
权重设置:等权重、尺度衰减、自适应权重(GradNorm)。
性能对比
| 方法 | mAP@0.5 | 参数量 |
|---|---|---|
| Faster R-CNN | 42.3 | 41M |
| +FPN | 46.7 | 44M |
| +PANet | 47.4 | 48M |
工程实践
内存优化:梯度检查点减少显存占用。
尺度选择:输入尺寸与目标尺度匹配。
问题排查:
| 现象 | 解决方案 |
|---|---|
| 小目标检测差 | 增加高分辨率监督分支 |
| 训练不稳定 | 自适应权重调整 |
| 显存溢出 | 梯度累积策略 |
前沿进展
- 动态多尺度:TridentNet 尺度自适应
- 神经架构搜索:Auto-FPN 自动优化
- 跨模态融合:MultiScale ViT