从论文到落地:FCN 全卷积网络(Long, Shelhamer, Darrell)超详细解读与实践
这是一篇面向实战的“论文+工程”双线解析,尽量还原作者的原始思路与关键细节,并补齐从原理到实现的每一个坑。行文风格参考 优快云 博客,包含:背景、核心创新、公式推导、结构拆解(FCN-32s/16s/8s)、训练细节、结果复现、与同代方法对比、PyTorch 代码、常见问题与扩展阅读。篇幅较长,建议收藏后细读。

目录
- 任务背景与问题定义
- 论文要点速览
- 从分类到分割:FC 层如何“卷积化”(数学推导)
- 上采样的正确打开方式:反卷积/转置卷积 vs 双线性插值
- Skip 连接与“深浅融合”:FCN-32s/16s/8s 的由来
- 架构拆解与尺寸对齐:步幅、感受野、裁剪
- 训练细节与工程技巧:初始化、优化器、损失、采样
- 结果与结论:VOC12/NYUDv2/SIFT Flow 指标与速度
- 与同期/后续方法对比:DeconvNet、U-Net、DeepLab(空洞卷积)、PSPNet
- 从 0 搭一个 FCN-8s 头(PyTorch 实战)
- 复现实验建议:数据增强、类别不均衡、评测脚本
- 常见坑与排错清单
- 影响与演进:FCN 的历史地位与现代视角
- 参考与延伸阅读
1)任务背景与问题定义
语义分割(Semantic Segmentation)要求对每一个像素做类别预测。与图像分类(整图一个标签)和目标检测(框级别标签)相比,它更细粒度、空间信息更关键。深度学习之前,常见套路是“特征(SIFT/LBP/手工)+ 图模型(CRF/MRF)”,效果与泛化能力有限。深度卷积网络在分类大杀四方后,如何把“哪里是啥(where & what)”同时学好,就是这篇工作的出发点。
2)论文要点速览
- 核心思想:把分类网络(AlexNet/VGG/GoogLeNet)的全连接层(FC)变成 1×1 卷积,从而得到可接收任意大小输入、输出对应空间尺寸的全卷积网络(FCN);再通过**网络内上采样(反卷积/转置卷积)**恢复到像素级别预测。
- 关键改进:提出Skip 连接(深浅融合),把浅层(位置信息细)与深层(语义信息强)融合,形成 FCN-32s → FCN-16s → FCN-8s 的逐步细化。
- 效果:在 PASCAL VOC 2012 上达到 62.2% mIoU(CVPR’15),且单图推理 < 0.2 s;PAMI 期刊扩展版进一步到 67.2% mIoU,推理 ~0.1 s(使用更完善设置与更强训练)。(数据来自论文原文)
- 工程价值:证明了端到端、像素到像素训练完全可行,且全图密集训练比“采样小 patch 逐个跑”更高效。
3)从分类到分割:FC 层如何“卷积化”(数学推导)
3.1 “FC 即卷积”的等价性
设分类网络最后一个卷积特征图为 X ∈ R^{C×H×W}。传统全连接层权重 W ∈ R^{K×(C·H·W)},输出 y ∈ R^{K}。把它重塑成一个卷积核 W' ∈ R^{K×C×H×W},在输入特征 X 上做一次卷积(步幅 1、无 padding):
yk = ∑c=1C∑i=1H∑j=1WWk,c,i,j′ Xc,i,j y_k \;=\; \sum_{c=1}^{C}\sum_{i=1}^{H}\sum_{j=1}^{W} W'_{k,c,i,j}\, X_{c,i,j} yk=c=1∑Ci=1∑Hj=1∑WWk,c,i,j′Xc,i,j
这与全连接一模一样。若把 H×W 换成 1×1,则是1×1 卷积在每个空间位置上做“通道方向的线性组合”,等价于“逐像素的分类器”。
结论:把 FC 层改成 1×1 conv,网络即可对“每个空间位置”输出 K 维得分(K 类);而不是只能输出一维整图分类结果。
3.2 任意大小输入
卷积操作对输入大小不敏感——所以全卷积网络(FCN)天然支持任意大小图像输入,输出为对应尺度的密集预测特征图(之后上采样回原图大小即可)。论文正式定义了这种“层层都是局部算子(卷积/池化/非线性)”的深度滤波器即 FCN。
4)上采样的正确打开方式:转置卷积 vs 双线性插值
4.1 为什么需要上采样?
常见分类干路会有多次下采样(stride 2 的池化/卷积),导致输出特征图相对输入步幅最大 32。要得到像素级预测,需将低分辨率特征图上采样回输入尺寸。
4.2 反卷积/转置卷积(Deconvolution/Transposed Conv)
论文采用网络内上采样:把上采样实现为转置卷积,支持端到端训练(梯度可传),比后处理插值更柔性。转置卷积输出空间尺寸为:
Hout=(Hin−1)⋅s−2p+k+op H_{\text{out}} = (H_{\text{in}}-1)\cdot s - 2p + k + o_p Hout=(H

最低0.47元/天 解锁文章
2332

被折叠的 条评论
为什么被折叠?



