掌握语义分割经典模型 FCN——从像素分类到端到端分割的奠基之作

目录

一、前言

二、FCN是什么

(一)核心定义

(二)关键突破

(三)一句话理解

三、FCN的核心思想

四、从CNN到FCN的结构转变

(一)传统CNN结构

(二)FCN结构

(三)关键变化

五、FCN的三种经典结构

(一)FCN-32s

特点

缺点

(二)FCN-16s

思想

优点

(三)FCN-8s(最经典)

特点

优势

六、FCN核心结构解析

(一)Encoder(编码器)

(二)Pooling降采样

(三)Decoder(解码器)

七、上采样机制详解

(一)反卷积(Deconvolution)

(二)作用

(三)问题

[八、FCN的跳跃连接(Skip Connection)](#八、FCN的跳跃连接(Skip Connection))

(一)核心思想

(二)作用

(三)FCN-8s结构

九、FCN损失函数

(一)像素级分类损失

(二)本质

十、FCN的优点

(一)端到端训练

(二)首次实现语义分割

(三)结构简单

十一、FCN的局限性

(一)分割边界不精细

(二)上采样粗糙

(三)小目标表现差

(四)计算效率低

十二、FCN在语义分割中的地位

十三、FCN与U-Net对比

十四、FCN在工业中的应用

(一)医疗影像

(二)自动驾驶

(三)工业质检

(四)直播与视觉应用

十五、FCN结构总结

十六、FCN的历史意义

十七、FCN发展启发

(一)更强Encoder

(二)更强Decoder

(三)注意力机制

十八、总结


一、前言

在深度学习视觉任务中,语义分割是最具"像素级理解能力"的任务之一。

如果说:

  • 分类是在判断"是什么"

  • 检测是在判断"在哪里"

那么语义分割就是在回答:

复制代码
每一个像素是什么

在众多语义分割模型中,有一个具有里程碑意义的模型:

复制代码
FCN(Fully Convolutional Network,全卷积网络)

它的出现,标志着:

复制代码
深度学习首次实现端到端语义分割

本文将系统讲解 FCN 的核心思想、结构演进与工程意义。


二、FCN是什么

(一)核心定义

FCN是一种:

复制代码
将CNN用于像素级分类的端到端分割模型

(二)关键突破

传统CNN:

复制代码
输入 → 特征 → 全连接 → 分类

FCN:

复制代码
输入 → 特征 → 上采样 → 像素分类

(三)一句话理解

复制代码
把"分类网络"改造成"输出整张图的分类网络"

三、FCN的核心思想

FCN的核心有三个关键点:

复制代码
1. 全卷积化(Fully Convolutional)
2. 下采样提特征
3. 上采样恢复分辨率

四、从CNN到FCN的结构转变

(一)传统CNN结构

复制代码
Image
 ↓
Conv + Pool
 ↓
FC Layer
 ↓
Class Label

(二)FCN结构

复制代码
Image
 ↓
Conv + Pool(Encoder)
 ↓
Feature Map
 ↓
Upsampling(Decoder)
 ↓
Pixel-wise Prediction

(三)关键变化

复制代码
全连接层 → 卷积层

五、FCN的三种经典结构

FCN论文中提出了三种变体:


(一)FCN-32s

特点

复制代码
直接32倍上采样

缺点

  • 分割结果粗糙

  • 边界不清晰


(二)FCN-16s

思想

融合中间层特征:

复制代码
浅层 + 深层特征融合

优点

  • 精度提升

  • 边界改善


(三)FCN-8s(最经典)

特点

复制代码
多尺度特征融合

优势

  • 更精细边界

  • 更高分割精度


六、FCN核心结构解析


(一)Encoder(编码器)

作用:

复制代码
提取语义特征

通常使用:

  • VGG16

  • ResNet(后续改进)


(二)Pooling降采样

作用:

复制代码
扩大感受野

但问题是:

复制代码
空间信息丢失

(三)Decoder(解码器)

作用:

复制代码
恢复图像尺寸

方法:

  • Deconvolution(反卷积)

  • Bilinear upsampling


七、上采样机制详解

(一)反卷积(Deconvolution)

y = x * k^{T}


(二)作用

复制代码
将低分辨率特征图放大

(三)问题

  • 可能产生棋盘效应

  • 信息恢复有限


八、FCN的跳跃连接(Skip Connection)

(一)核心思想

复制代码
融合浅层 + 深层特征

(二)作用

  • 浅层:边界信息

  • 深层:语义信息


(三)FCN-8s结构

复制代码
Conv5 → Upsample
Conv4 → Fusion
Conv3 → Fusion

九、FCN损失函数

(一)像素级分类损失

L = -\sum_{i}^{H\times W} \sum_{c} y_{i,c}\log(p_{i,c})


(二)本质

复制代码
每个像素都是一个分类任务

十、FCN的优点

(一)端到端训练

复制代码
无需手工特征

(二)首次实现语义分割

复制代码
开创性模型

(三)结构简单

  • 易实现

  • 易扩展


十一、FCN的局限性


(一)分割边界不精细

原因:

复制代码
多次下采样导致信息损失

(二)上采样粗糙

  • 插值恢复有限

(三)小目标表现差


(四)计算效率低


十二、FCN在语义分割中的地位

FCN是:

复制代码
所有现代分割模型的起点

其影响包括:

  • U-Net

  • DeepLab

  • SegNet

  • Mask R-CNN


十三、FCN与U-Net对比

模型 特点
FCN 早期端到端
U-Net 更强跳跃连接

十四、FCN在工业中的应用


(一)医疗影像

  • 器官分割

  • 病灶识别


(二)自动驾驶

  • 道路分割

  • 行人区域


(三)工业质检

  • 表面缺陷检测

(四)直播与视觉应用

  • 人像抠图(早期方案)

十五、FCN结构总结

FCN整体流程:

复制代码
输入图像
   ↓
卷积特征提取(Encoder)
   ↓
降采样
   ↓
上采样恢复
   ↓
像素分类
   ↓
输出Mask

十六、FCN的历史意义

FCN的贡献可以概括为:

复制代码
第一次让CNN直接输出像素级预测结果

它奠定了:

  • 语义分割框架

  • Encoder-Decoder结构

  • Skip Connection思想


十七、FCN发展启发

FCN之后的发展方向:


(一)更强Encoder

  • ResNet

  • EfficientNet


(二)更强Decoder

  • U-Net

  • DeepLab


(三)注意力机制

  • Transformer分割模型

十八、总结

FCN是语义分割领域的奠基性模型,它首次实现了端到端像素级预测,并提出了Encoder-Decoder与多尺度融合的核心思想。

本文系统讲解了:

1、FCN基本定义;

2、从CNN到FCN的结构变化;

3、FCN-32s / 16s / 8s;

4、Encoder-Decoder机制;

5、Skip Connection;

6、上采样方法;

7、损失函数;

8、优缺点分析;

9、工业应用;

10、历史地位。

可以将FCN理解为:

"一个将分类网络完全卷积化,并首次实现端到端语义分割的基础模型,是现代分割网络的起点。"

掌握FCN,就等于理解了所有语义分割模型的"祖先结构"。

相关推荐
火山引擎开发者社区1 小时前
火山引擎发布《企业级 ArkClaw 安全白皮书》
人工智能
阿里云大数据AI技术2 小时前
Hologres AI Function 文本分类实战:从提示词设计到 KV-Cache 调优,全程 SQL 搞定
人工智能·sql
Jerry2 小时前
LeetCode 160. 相交链表
算法
Lyn_Li2 小时前
扫描 PDF 歪了怎么办?用 6 种检测方法做本地批量扶正(附开源工具)
python·pdf·ocr·tesseract·开源工具·文档处理·本地处理·扫描件纠偏
Jerry2 小时前
LeetCode 19. 删除链表的倒数第 N 个结点
算法
金銀銅鐵2 小时前
费马小定理
python·数学·算法
code_pgf2 小时前
AI-Agent记忆机制分析
大数据·人工智能
技术不好的崎鸣同学4 小时前
[ACTF2020 新生赛]Exec 思路及解法
算法·安全·web安全