UNet深入解析
作者:互联网
UNet深入解析
概述
因为工作需要,重新深入研究医学影像分割的相关内容。(笔者水平有限,有些翻译不到位,直接附上原文。)
而基于深度学习的医学影像分割一个里程碑式的转折点当属U-Net: Convolutional Networks for Biomedical Image Segmentation.专门用于医学影像分割的卷积神经网络。
创新点
主要的创新点有三点:
-
使用了弹性变形(elastic deformation)的数据增强方式,更高效的从以标注的训练集中进行特征学习;
-
两条不同策略的神经网络路径:
- contracting path: 捕捉上下文(capture context)
- expansion path: 精准定位(precise localization)
-
少量训练集,高效率:采用端到端(end-to-end)的训练方式,能够从很小的训练集中使用滑动窗(sliding-window)高效训练。
Moreover, the network is fast.
UNet设计思路
原有神经网络的局限:
滑动窗的训练策略(Deep neural networks segment neuronal membranes in electron microscopy images(2012)):
- 训练慢:分别训练每一个patch,且由于patch的重叠训练过程存在大量的冗余(redundancy);
- 定位精度与上下文的均衡:较大的patch会损失精度,较小的patch又只能获取一小部分context;
改进策略:
- 改进FNC网络设计UNet网络结构,用重采样(upsampling)代替池化操作(pooling operator);在上采样部分,通过大量的特征通道,将上下文信息传播(propagate)到高分辨率layer当中。
- 特征学习:对训练集进行数据增强,并采用无监督的特征学习方法。
- elastic deformation数据增强策略:能够从变形的数据中学习固定特征,不用再消耗多余资源去计算变形系数。
UNet神经网络结构
UNet的来源
如图所示,神经网络结构为U-型结构。
- 左半边为contracting path(Encoder),是一个传统的卷积神经网络结构,两个3x3卷积层,每个卷积层有一个ReLU激活函数和一个2x2降采样的最大池化。-> 捕捉上下文,进行特征提取与学习。
- 右半边为expansive path(Decoder)。每一个2x2的卷积(up-convolution),将特征通道的数量减半,与contracting path中相应裁剪的特征图的连接。这一步主要是弥补每一步卷积之后边界丢失的像素值。-> 定位,获取精确的位置信息。
原理解析
Training
-
Soft-max
p k = e x p ( a k ( x ) ∑ k ′ = 1 K a k ′ ( x ) ) (1) p_k = exp \left( \frac{a_k(\rm x)}{\sum_{k'=1}^{K}a_k'(\rm x)}\right) \tag{1} pk=exp(∑k′=1Kak′(x)ak(x))(1)
a k ( x ) a_k(\rm x) ak(x) 是特征通道 k k k在每个像素位置 x ∈ Ω \rm x\in \Omega x∈Ω 的activation. K K K是类别, p k ( x ) p_k(\rm x) pk(x) 为最大似然函数。 -
Penalize
使用 E q . ( 2 ) Eq.(2) Eq.(2)交叉熵惩罚项计算每个位置 p l ( x ) ( x ) p_{l(x)}(x) pl(x)(x)的与1的偏差:
E = ∑ x ∈ Ω w ( x ) l o g ( p ℓ ( x ) ( x ) ) (2) E=\sum_{{\rm x} \in \Omega} w({\rm x})log(p_{\ell (\rm x)(\rm x)}) \tag {2} E=x∈Ω∑w(x)log(pℓ(x)(x))(2)
这里的 ℓ : Ω → 1 , . . . , K \ell:\Omega \rightarrow {1,...,K} ℓ:Ω→1,...,K是真实标签(Ground truth), w : Ω → R w:\Omega \rightarrow \mathbb{R} w:Ω→R 是权重图; -
权重图(weight map)
w ( x ) = w c ( x ) + w 0 ⋅ e x p ( − ( d 1 ( x ) + d 2 ( x ) ) 2 2 σ 2 ) (3) w({\rm x}) = w_c ({\rm x}) + w_0 \cdot exp \left(-\frac{(d_1({\rm x})+d_2({\rm x}))^2}{2\sigma^2} \right ) \tag {3} w(x)=wc(x)+w0⋅exp(−2σ2(d1(x)+d2(x))2)(3)
文章中 w 0 = 10 w_0=10 w0=10, σ ≈ 5 \sigma \approx 5 σ≈5 pixels.
标签:训练,卷积,神经网络,UNet,深入,path,rm,解析 来源: https://blog.csdn.net/weixin_42483488/article/details/122555414