tags: [YOLO, 特征融合, FPN, PANet, BiFPN, SPP, SPPF]
aliases: [特征融合模块选型]
特征融合模块对比:FPN、PANet、BiFPN、SPP 与 SPPF
[!abstract] 核心问题
特征融合要在高分辨率细节与低分辨率语义之间取得平衡,以兼顾小目标和大目标检测。
| 模块 | 信息流 | 核心能力 | 计算特征 | 适合场景 |
|---|---|---|---|---|
| FPN | 自顶向下 | 将高层语义传给浅层 | 低 | 基础多尺度融合 |
| PANet | FPN + 自底向上 | 将定位细节回传至深层 | 中 | 通用检测、YOLO Neck |
| BiFPN | 重复双向 + 可学习权重 | 自适应选择各尺度贡献 | 中 | 追求精度效率平衡 |
| SPP | 并行多尺度池化 | 扩大感受野、汇聚上下文 | 中 | Backbone/Neck 末端 |
| SPPF | 串行池化近似 SPP | 以更低延迟获得多尺度上下文 | 低 | 实时 YOLO |
选型要点
- FPN是基线:结构最直观,但仅有自顶向下路径。
- PANet强化自底向上路径,通常更适合需要定位细节的单阶段检测器。
- BiFPN不等权融合所有输入,而是学习各尺度权重;重复堆叠时要注意延迟。
- SPP/SPPF不替代 FPN 类跨层融合,而是在单个层级上通过池化扩大感受野。SPPF 是实时模型中的优先选择。
[!tip] 实验建议
固定 Backbone 和检测头,依次替换 Neck;分别统计小、中、大目标 AP 与端侧延迟。小目标 AP 提升但整体 FPS 明显下降时,应优先检查高分辨率 P3 分支。
总结
基础多尺度融合 → FPN 更强定位与路径聚合 → PANet 可学习的高效双向融合 → BiFPN 低延迟多尺度上下文 → SPPF