IE盒子

搜索
查看: 107|回复: 5

U-Net

[复制链接]

3

主题

9

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2022-12-18 20:11:16 | 显示全部楼层 |阅读模式
原文:U-Net: Convolutional Networks for Biomedical Image Segmentation
U-Net的特色就是较为对称的网络结构,利用低层特征进行特征融合,可以无padding只依赖输入图像来产生高质量的无缝分割结果。另外,边界loss的设计也进一步提高了分割的质量。
网络结构

U-Net网络整体上呈U形,包含左边的特征提取层和右边的上采样过程,结构上左右是对称的。
U-Net中的所有 3×3 卷积层都是无padding的,也就是每经过一个卷积层,特征图尺寸减小2个像素。
左边的卷积层的模式是两个 3×3 卷积,和一个2×2 且stride为2的max pooling进行下采样。下采样后的卷积操作使通道数翻倍。

右边的上采样模式也类似。对于输入的特征图,先上采样2倍,这一过程由up-conv 2×2表示,先将特征图的像素复制到行和列,一个像素产生2×2的输出,然后为一个 2×2 的卷积,不改变分辨率,只调整通道数至一半。经过up-conv 2×2,实现了上采样2倍,同时通道数减半。
经过上采样后的特征图,和左边对应stage的特征图进行跳跃连接,具体来说,将左边的特征图进行crop操作,使得大小变得和上采样后一致,然后将二者concat起来。后面便是2个 3×3 卷积,设置卷积输出的通道数和左边对应stage的通道数一致。

最终输出层使用 1×1 卷积,调整通道数至物体类别数,得到分割结果。



  • 上采样过程:以第一次上采样为例。大小为28、通道数为1024的特征图,上采样至56、通道数512,左边大小为64的特征图也crop至56,二者concat,经过2次3×3卷积,保持输出通道数为512,每次特征图尺寸仍然减小2,56-4=52,最后得到大小为52×52的特征图。
用于无缝分割

总的来说,U-Net的结构上是对称的,但是输出的分辨率小于输入,这是由于无论左边右边,每次无padding的卷积操作都减小了特征图的尺寸。
之所以作者会这样设计,跟应用场景有很大关系。U-Net被应用于任意较大尺寸的生物医学图像的无缝分割。受输入大小的限制,采用slide window的形式遍历整张大图像,每次通过网络产生当前区域的分割输出。


网络每次由完整的输入图像,只得到中心区域的输出,而不引入任何的padding,完全利用图像本身的信息,并结合周围区域的像素,产生分割结果,分割的质量会比较高。由于slide window本身是重叠的,因此可以完成对于整张图像的无缝分割。
另外,当位于图像的边界区域时,采用将图像按水平竖直方向镜像翻转的方式补充空缺区域,也是保持着完成利用图像信息的思想。如下图所示:


Loss及训练过程

U-Net在分割生物医学图像时还有一个问题是,对于相互接触的同一类物体进行分割。文中采取的做法为给loss计算时每个像素位置增加一个权重,增大对于边界区域像素的loss计算。
Loss采用交叉熵损失,error的形式为:



  • l 表示物体类别的集合。
  • x\inΩ 表示一个像素位置。

w(x) 的形式结合了 不同类别的loss的均衡 和 增加对边界像素的权重,形式为:



  • w_c(x) 表示用于均衡不同类别物体的权重。
  • d_1(x),d_2(x) 分别表示像素位置x到距离最近和第二近的边界像素的距离,即靠近边界时, d_1(x)+d_2(x) 会比较小,得到的 exp(...) 会比较大。
  • w_0 和 \sigma 为超参,实验中设置 w_0=10 , \sigma \approx 5 。

下图中d展示了loss权重的分布,在边界区域权重比较高,相当于强制网络增加对边界样本的学习。



另外,网络初始化采用Gaussian分布,方差为 \sqrt {2/N} , N 表示和一个神经元连接的输入结点数量。(初始化方面的,不了解原理,之后还要看一看)

对于数据的augmentation,主要进行随机形变,由于是显微图像,随机形变非常有效,使得用极少量的原始图像(如实验中30张512×512的图像)就能完成对网络的端到端训练。
评价指标

本文使用的评价指标包括wraping error,Rand error,pixel error以及IoU。
warping error
warping error是基于拓扑不变性衡量分割质量。
将ground truth L^* 保留拓扑不变性(没有分裂、合并、产生或消去空洞、增加或减少物体数量等),并只在一定范围产生像素变化,得到许多 L ,计算预测输出 T 和 L 间的最小距离作为warping error结果。
公式表示:


即实现预测和ground truth拓扑一致需要变化的最少像素数。
Rand error
Rand error是根据Rand Index而来,是一种聚类的评价指标。即将分割看做是一种对像素的聚类过程,来衡量分割质量。
定义 S_1 和 S_2 表示图片 I 上的两个分割的结果。图片 I 包括 n 个像素,不同位置的像素两两配对,共有 C_n^2 个像素对。
定义 a 表示在 S_1 和 S_2 上都属于同一类的像素对数量。 b 表示在 S_1 和 S_2 上都属于不同类的像素对数量。
Rand Index(兰德指数)的计算公式为:
RI =  \frac{a+b}{C_n^2} \\ 即RI数值越大,可以反映聚类的效果越好。这是一种穷举所有样本后的平均值。
相应地,Rand error的形式为:
RE = 1 -RI \\


pixel error 则是根据每个像素位置计算分类错误的数量。
pixel error过于敏感,会考虑所有分割细节,warping error 和 Rand error则相对缓和,更倾向于形态和整体的分割质量,在生物医学图像分割上是较为合理的评价指标。
实验结果

在EM segmentation challenge上的结果:



  • 由于u-net的边界loss设计,u-net拥有最低的warping error,反映较好地分割了不同的物体。rand erro 和 pixel error也和其他方法相差不大。
在ISBI数据集上的IoU结果,效果也很好:


总结

由于无缝分割的需要,u-net才进行输出分辨率会减小的设计。u-net这种对称网络设计是很不错的,也可以改用same卷积来实现和输入一致的分割输出,从而用于其他的分割任务。
参考


  • warping error - ImageJ
  • Rand error - ImageJ
  • https://blog.csdn.net/myy3075/article/details/86542102
回复

使用道具 举报

1

主题

5

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2022-12-18 20:12:09 | 显示全部楼层
请问一下,u_net适用于多分类问题吗
回复

使用道具 举报

3

主题

12

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2022-12-18 20:13:05 | 显示全部楼层
方法是适用的,用最后1×1卷积的通道数控制预测物体类别数就可以了。
回复

使用道具 举报

0

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-12-18 20:14:05 | 显示全部楼层
谢谢您[赞]
回复

使用道具 举报

4

主题

6

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2022-12-18 20:14:23 | 显示全部楼层
作者你好,想问下Rand error这里,S1和S2应该一个是网络的预测结果,一个是ground truth吧?因为如果S1和S2都是预测结果,那么对于C(2 n)中的每一个像素对,要么是同一类,要么是不同类,那a+b应该是恒等于C(2 n)的,那Rand index应该是恒为1?或者是我理解错了[捂脸]。感觉这里的Rand index应该就是混淆矩阵中的true positive和true negative与总数的比值。
回复

使用道具 举报

1

主题

4

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2022-12-18 20:14:38 | 显示全部楼层
S1和S2分别表示预测结果和gt,这里的S1和S2是无标签的聚类结果,看某个像素对在S1上是不是在一个聚类里面,然后在S2上是不是在一个聚类里面,如果S1和S2这两个结果上都满足,就是tp (文中的a),不同类的理解同理。其实就是Rand index的定义,你可以再搜一下看看。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表