【深度学习】U-Net系列(零):前置知识——深度学习与图像分割基础

🔖 系列导航:[前置知识] → [U-Net架构详解] → [网络结构深度剖析] → [医学图像应用] → [完整实战项目] → [FAQ与调优] → [变体与改进]

📌 关键词:卷积神经网络、图像分割、语义分割、特征提取、深度学习基础


1. 前言

在学习 U-Net 之前,需要掌握一些深度学习和图像处理的基础知识。本文将为零基础读者梳理必备的前置知识,帮助你更好地理解后续内容。


2. 什么是图像分割

2.1 图像分割的定义

图像分割是将图像划分为多个有意义区域的过程,每个像素被赋予一个类别标签。

计算机视觉任务层次

图像分类
整图一个标签

目标检测
边界框 + 标签

语义分割
像素级标签

实例分割
区分个体

2.2 分割任务类型

任务类型 描述 输出
语义分割 每个像素分配类别 类别掩码
实例分割 区分同类不同个体 实例掩码
全景分割 语义 + 实例结合 统一掩码

2.3 U-Net 解决的问题

U-Net 主要用于语义分割,特别是:

  • 医学图像中的器官/病灶分割
  • 细胞/组织边界识别
  • 任何需要像素级精确定位的任务

3. 卷积神经网络基础

3.1 卷积操作

卷积是 CNN 的核心操作,用于提取图像局部特征。

卷积过程

输入图像

卷积核滑动

特征图

卷积计算公式

( I ∗ K ) ( i , j ) = ∑ m ∑ n I ( i + m , j + n ) ⋅ K ( m , n ) (I * K)(i, j) = \sum_{m}\sum_{n} I(i+m, j+n) \cdot K(m, n) (IK)(i,j)=mnI(i+m,j+n)K(m,n)

其中:

  • I I I 为输入图像
  • K K K 为卷积核(滤波器)
  • ( i , j ) (i, j) (i,j) 为输出位置

输出尺寸计算

H o u t = ⌊ H i n + 2 p − k s ⌋ + 1 H_{out} = \left\lfloor \frac{H_{in} + 2p - k}{s} \right\rfloor + 1 Hout=sHin+2pk+1

参数 含义 常见值
k k k 卷积核大小 3, 5, 7
s s s 步长 (stride) 1, 2
p p p 填充 (padding) 0, 1, ‘same’

3.2 池化操作

池化用于降低特征图尺寸,增大感受野。

最大池化

y i j = max ⁡ ( m , n ) ∈ R i j x m n y_{ij} = \max_{(m,n) \in R_{ij}} x_{mn} yij=(m,n)Rijmaxxmn

平均池化

y i j = 1 ∣ R i j ∣ ∑ ( m , n ) ∈ R i j x m n y_{ij} = \frac{1}{|R_{ij}|} \sum_{(m,n) \in R_{ij}} x_{mn} yij=Rij1(m,n)Rijxmn

池化效果

2×2 MaxPool

4×4 特征图

2×2 特征图

3.3 激活函数

激活函数引入非线性,使网络能学习复杂模式。

ReLU(最常用)

ReLU ( x ) = max ⁡ ( 0 , x ) \text{ReLU}(x) = \max(0, x) ReLU(x)=max(0,x)

Sigmoid

σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+ex1

Softmax(多分类输出)

softmax ( x i ) = e x i ∑ j e x j \text{softmax}(x_i) = \frac{e^{x_i}}{\sum_{j} e^{x_j}} softmax(xi)=jexjexi

3.4 批归一化(Batch Normalization)

BatchNorm 加速训练、稳定梯度:

x ^ i = x i − μ B σ B 2 + ϵ \hat{x}_i = \frac{x_i - \mu_B}{\sqrt{\sigma_B^2 + \epsilon}} x^i=σB2+ϵ xiμB

y i = γ x ^ i + β y_i = \gamma \hat{x}_i + \beta yi=γx^i+β

其中 μ B \mu_B μB σ B 2 \sigma_B^2 σB2 为批次均值和方差, γ \gamma γ β \beta β 为可学习参数。


4. 编码器-解码器结构

4.1 核心思想

编码器-解码器

编码器
提取特征
降低分辨率

瓶颈层
高级语义

解码器
恢复分辨率
像素级预测

4.2 编码器的作用

功能 实现方式 效果
特征提取 卷积层 学习图像模式
下采样 池化/stride=2 扩大感受野
语义抽象 深层网络 高级语义特征

4.3 解码器的作用

功能 实现方式 效果
上采样 转置卷积/插值 恢复空间分辨率
特征融合 跳跃连接 结合多尺度信息
像素预测 1×1卷积 输出分割图

5. 上采样方法

5.1 常见上采样方式

上采样方法

双线性插值
Bilinear

计算快
不可学习

转置卷积
ConvTranspose

可学习
可能棋盘效应

像素重排
PixelShuffle

高效
超分辨率常用

5.2 转置卷积

转置卷积(反卷积)是可学习的上采样:

H o u t = ( H i n − 1 ) × s − 2 p + k H_{out} = (H_{in} - 1) \times s - 2p + k Hout=(Hin1)×s2p+k

5.3 双线性插值

双线性插值根据相邻像素计算新值:

f ( x , y ) = ∑ i = 0 1 ∑ j = 0 1 f ( x i , y j ) ⋅ ( 1 − ∣ x − x i ∣ ) ( 1 − ∣ y − y j ∣ ) f(x, y) = \sum_{i=0}^{1}\sum_{j=0}^{1} f(x_i, y_j) \cdot (1-|x-x_i|)(1-|y-y_j|) f(x,y)=i=01j=01f(xi,yj)(1xxi)(1yyj)


6. 损失函数基础

6.1 分类 vs 分割的损失

任务 损失函数 特点
图像分类 交叉熵 整图一个损失值
图像分割 像素级交叉熵 每像素计算后求和

6.2 交叉熵损失

二分类(Binary Cross Entropy):

L B C E = − 1 N ∑ i = 1 N [ y i log ⁡ ( p i ) + ( 1 − y i ) log ⁡ ( 1 − p i ) ] \mathcal{L}_{BCE} = -\frac{1}{N}\sum_{i=1}^{N}\left[y_i \log(p_i) + (1-y_i)\log(1-p_i)\right] LBCE=N1i=1N[yilog(pi)+(1yi)log(1pi)]

多分类(Cross Entropy):

L C E = − 1 N ∑ i = 1 N ∑ c = 1 C y i c log ⁡ ( p i c ) \mathcal{L}_{CE} = -\frac{1}{N}\sum_{i=1}^{N}\sum_{c=1}^{C} y_{ic} \log(p_{ic}) LCE=N1i=1Nc=1Cyiclog(pic)

6.3 Dice 系数

Dice 衡量预测与真实的重叠度:

Dice = 2 ∣ P ∩ G ∣ ∣ P ∣ + ∣ G ∣ \text{Dice} = \frac{2|P \cap G|}{|P| + |G|} Dice=P+G2∣PG

取值范围 [ 0 , 1 ] [0, 1] [0,1],1 表示完全重叠。


7. 深度学习训练基础

7.1 训练流程

深度学习训练流程

初始化参数

前向传播

计算损失

反向传播

梯度下降

收敛?

保存模型

7.2 梯度下降

参数更新公式

θ t + 1 = θ t − η ⋅ ∇ θ L \theta_{t+1} = \theta_t - \eta \cdot \nabla_\theta \mathcal{L} θt+1=θtηθL

其中:

  • θ \theta θ 为模型参数
  • η \eta η 为学习率
  • ∇ θ L \nabla_\theta \mathcal{L} θL 为损失对参数的梯度

7.3 常用优化器

优化器 特点 适用场景
SGD 基础,需调学习率 大规模训练
Adam 自适应学习率 通用首选
AdamW Adam + 权重衰减 防止过拟合

Adam 更新规则

m t = β 1 m t − 1 + ( 1 − β 1 ) g t m_t = \beta_1 m_{t-1} + (1-\beta_1)g_t mt=β1mt1+(1β1)gt

v t = β 2 v t − 1 + ( 1 − β 2 ) g t 2 v_t = \beta_2 v_{t-1} + (1-\beta_2)g_t^2 vt=β2vt1+(1β2)gt2

θ t + 1 = θ t − η ⋅ m ^ t v ^ t + ϵ \theta_{t+1} = \theta_t - \eta \cdot \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon} θt+1=θtηv^t +ϵm^t


8. 评估指标

8.1 分割常用指标

指标 公式 含义
Accuracy T P + T N T P + T N + F P + F N \frac{TP+TN}{TP+TN+FP+FN} TP+TN+FP+FNTP+TN 整体准确率
Precision T P T P + F P \frac{TP}{TP+FP} TP+FPTP 预测正例的准确性
Recall T P T P + F N \frac{TP}{TP+FN} TP+FNTP 真实正例的召回率
IoU T P T P + F P + F N \frac{TP}{TP+FP+FN} TP+FP+FNTP 交并比
Dice 2 T P 2 T P + F P + F N \frac{2TP}{2TP+FP+FN} 2TP+FP+FN2TP F1分数

8.2 混淆矩阵

混淆矩阵

TP
真正例

FP
假正例

FN
假负例

TN
真负例


9. 为什么需要 U-Net

9.1 早期方法的局限

方法 问题
滑窗分类 效率低,重复计算
FCN 分辨率低,边界模糊
普通CNN 无法输出像素级预测

9.2 U-Net 的创新

U-Net 解决方案

对称编码-解码

高效特征利用

跳跃连接

保留空间细节

全卷积结构

任意尺寸输入

数据增强

小样本友好


10. 总结与下一步

10.1 本文要点回顾

概念 核心内容
图像分割 像素级分类任务
卷积操作 局部特征提取
编码-解码 下采样提取特征 + 上采样恢复分辨率
损失函数 交叉熵、Dice
评估指标 IoU、Dice 系数

10.2 学习路线图

前置知识
✓ 当前

U-Net架构

结构深度剖析

医学图像应用

完整实战项目

FAQ与调优

变体与改进


📚 下一篇【深度学习】U-Net系列(一):U-Net网络架构详解

更多推荐