【论文解读】FCN全卷积网络详细解读与实现

从论文到落地:FCN 全卷积网络(Long, Shelhamer, Darrell)超详细解读与实践

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


在这里插入图片描述

目录

  1. 任务背景与问题定义
  2. 论文要点速览
  3. 从分类到分割:FC 层如何“卷积化”(数学推导)
  4. 上采样的正确打开方式:反卷积/转置卷积 vs 双线性插值
  5. Skip 连接与“深浅融合”:FCN-32s/16s/8s 的由来
  6. 架构拆解与尺寸对齐:步幅、感受野、裁剪
  7. 训练细节与工程技巧:初始化、优化器、损失、采样
  8. 结果与结论:VOC12/NYUDv2/SIFT Flow 指标与速度
  9. 与同期/后续方法对比:DeconvNet、U-Net、DeepLab(空洞卷积)、PSPNet
  10. 从 0 搭一个 FCN-8s 头(PyTorch 实战)
  11. 复现实验建议:数据增强、类别不均衡、评测脚本
  12. 常见坑与排错清单
  13. 影响与演进:FCN 的历史地位与现代视角
  14. 参考与延伸阅读

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=1Ci=1Hj=1WWk,c,i,jXc,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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一颗2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值