前几篇介绍的阈值分割、分水岭、K-means 等方法依赖手工设计的底层特征(灰度、梯度、边缘),对复杂场景和语义理解力不从心。深度学习将分割提升到了语义层次——不再只回答”这个地方和旁边的亮度不同”,而是回答”这个像素属于哪个物体类别”。
三个层次的图像分割
深度分割任务通常按输出粒度分为三个层次:
| 任务 | 输出 | 粒度 | 代表方法 |
|---|---|---|---|
| 语义分割 | 每个像素一个类别标签(所有”人”像素共享一类) | 像素级 | FCN、U-Net、DeepLab |
| 实例分割 | 每个像素一个类别 + 每个实例独立编号(人A vs 人B) | 物体级 | Mask R-CNN |
| 全景分割 | 语义+实例的统一输出(stuff + things) | 统一 | Panoptic FPN |
FCN:全卷积网络(2015)
FCN(Fully Convolutional Network)是深度学习语义分割的奠基工作。核心思想是将分类网络最后的全连接层替换为卷积层,使网络可以接受任意尺寸的输入并输出与输入同尺寸的像素级预测。
反卷积上采样
FCN 通过反卷积(转置卷积)将特征图恢复到输入分辨率。反卷积本质上是前向传播与反向传播交换了位置的卷积——它在数学上可以理解为:对输入做稀疏化填充后执行标准卷积,使输出尺寸大于输入尺寸。
跳跃连接
直接用最后一层特征图做 上采样(FCN-32s)得到的分割结果很粗糙。FCN 引入跳跃连接,将深层的语义特征与浅层的高分辨率特征融合:
- FCN-32s:仅用最后一层, 上采样。
- FCN-16s:最后一层 上采样后与 pool4 特征相加,再 上采样。
- FCN-8s:在 FCN-16s 基础上再融合 pool3 特征, 上采样。
浅层特征提供了精细的空间定位,深层特征提供了全局语义。这一思想直接影响了后续所有语义分割架构。
U-Net:编码器-解码器(2015)
U-Net 将 FCN 的跳跃连接推向极致,构建了完全对称的编码器-解码器结构。
- 编码器(收缩路径):重复 两次 3×3 卷积 + ReLU → 2×2 最大池化,提取多尺度语义特征。
- 解码器(扩张路径):2×2 反卷积上采样 → 与编码器对应层 拼接(concatenation) → 两次 3×3 卷积 + ReLU。拼接操作保留了编码器的高分辨率特征,使解码器兼具细节定位和语义理解能力。
- 最后一层:1×1 卷积将通道数映射到类别数 ,输出 的逐像素分类结果。
U-Net 在医学图像分割中尤其成功,因为医学影像数据量小、边界精细,U-Net 的跳跃连接使得小样本场景也能稳定训练。
TIPU-Net 的架构详细说明(转置卷积 vs 上采样+卷积、Dice loss、弹性变形数据增强)参见 ML 篇:
CNN-SC-Unet.md。
DeepLab 系列:空洞卷积与 ASPP
空洞卷积(Atrous/Dilated Convolution)
标准卷积在连续像素上采样。空洞卷积在卷积核元素之间插入间隔(dilation rate ),在不增加参数量的情况下扩大感受野。
以 3×3 卷积为例, 是标准卷积(感受野 ), 是隔一个像素采样(感受野等效 但参数不变,仍为 9 个), 感受野等效 。空洞卷积避免了为增大感受野而必须下采样→上采样的过程,减少了分辨率损失。
ASPP(Atrous Spatial Pyramid Pooling)
DeepLab v2 提出 ASPP,用多个不同 dilation rate 的空洞卷积并联,提取多尺度特征:
表示通道拼接。不同尺度的空洞卷积捕获不同大小的上下文,并联融合后能同时感知小物体和大物体的特征。DeepLab v3 进一步加入全局池化分支和批量归一化。
Mask R-CNN:实例分割(2017)
Mask R-CNN 在 Faster R-CNN 的检测分支旁并行添加了一个分割分支,用 RoI Align 解决了 RoI Pooling 的量化误差问题。
RoI Align
Faster R-CNN 的 RoI Pooling 在将候选框映射到特征图时做了两次量化(坐标取整),导致框偏移 1–2 个像素——对检测影响不大,但对逐像素的分割是致命的。
RoI Align 取消量化:将候选框均匀划分为 个 bin,每个 bin 内用双线性插值采样 4 个点再平均,得到浮点数精度的特征。这一改动使分割掩码的准确度提升了约 10–50% AP。
分割分支
在 RoI Align 后的 特征图上,经过 4 个连续的 3×3 卷积 → 1 个 2×2 反卷积 → 1 个 1×1 卷积,输出 的分割掩码。 为类别数,每个通道输出一个二值掩码(像素是否属于该类)。
近期发展与 SAM
Transformer 进入视觉领域后,分割架构也出现了新的范式:
- SETR:用 ViT 替代 CNN 作为编码器,全局自注意力捕获长距离依赖。
- MaskFormer / Mask2Former:将语义和实例分割统一为”掩码分类”框架。
- SAM(Segment Anything Model):Meta 于 2023 年发布的基础分割模型,使用 prompt(点、框、文本)引导分割,零样本能力极强。SAM 的出现标志着分割从”任务特定模型”向”通用分割基础模型”的转变。
:::tip 深度分割方法速查
| 方法 | 年份 | 关键贡献 | 任务层级 |
|---|---|---|---|
| FCN | 2015 | 全卷积化 + 跳跃连接 | 语义 |
| U-Net | 2015 | 对称编解码 + 密集拼接 | 语义 |
| DeepLab v2 | 2017 | 空洞卷积 + ASPP | 语义 |
| Mask R-CNN | 2017 | RoI Align + 并行分割分支 | 实例 |
| SETR | 2021 | ViT 编码器取代 CNN | 语义 |
| SAM | 2023 | 通用 promptable 分割基础模型 | 通用 |
:::