图像分割复习

2020-02-22  本文已影响0人  加油11dd23

保研会问到做过的项目的一些知识,这里做一下复习。

一、图像分割(将类标签分给每个像素)

(一)网络结构

1、U-net提出原因

(1)通常CNN都是应用于分类,生物医学图像更关注的是分割以及定位的任务;

(2)CNN需要获取大量的训练数据,而医学图像很难获得那么大规模的数据。

(3)以往解决上面两点困难的方法是使用滑窗的方法,为每一个待分类的像素点取周围的一部分邻域输入。这样的方法有两点好处,首先它完成了定位的工作,其次因为每次取一个像素点周围的邻域,所以大大增加了训练数据的数量。但是这样的方法也有两个缺点,首先通过滑窗所取的块之间具有较大的重叠,所以会导致速度变慢;其次是网络需要在局部准确性和获取上下文之间进行取舍。因为更大的块需要更多的池化层,进而降低了定位的准确率,而小的块使网络只看到很小的一部分上下文。

2、特点

采用U-net进行分割,将二维变成三维。U-net适用于小样本任务。U-net包括下采样和上采样。

(1)U-net主要改进部分为在上采样过程中与下采样中对应的特征图进行拼接。拼接中会涉及到一个crop的操作。

3、相关知识点

(1)、crop

(2)、特征图(feature map)

某一层网络输出的概率分布

(3)、上采样:

(a)Resize,如双线性插值直接缩放,类似于图像缩放(这种方法在原文中提到)

(b)Deconvolution,也叫Transposed Convolution(周围加了一些步长)

(4)特征融合,拼接方法

(a)FCN式的逐点相加,对应caffe的EltwiseLayer层,对应tensorflow的tf.add()

(b)U-Net式的channel维度拼接融合,对应caffe的ConcatLayer层,对应tensorflow的tf.concat()

(5)损失函数   dice函数(本质上是F1-score)

(6)损失函数其他相关知识

dice coefficient就等于Jaccard(IOU)分子分母各加了一个AB交集。

(7)冻结相关操作

使用requir_grad。使用Pytorch一定要有能够求导更新的参数。 

(8)FCN与U-net区别与联系

(a)对于一般的分类CNN网络,如VGG和Resnet,都会在网络的最后加入一些全连接层,经过softmax后就可以获得类别概率信息。但是这个概率信息是1维的,即只能标识整个图片的类别,不能标识每个像素点的类别,所以这种全连接方法不适用于图像分割。

而FCN提出可以把后面几个全连接都换成卷积,这样就可以获得一张2维的feature map,后接softmax获得每个像素点的分类信息,从而解决了分割问题

(b)FCN的主要思想是使用连续的层补充通常的收缩网络,在判别输出的位置添加上采样层,这些层增加了输出层的分辨率,为了定位。来自于收缩路径的高分别率与上采样输出相结合,基于这个信息,一个连续的卷积层可以学习组装更精确的输出。

而U-net与FCN的不同在于,U-net的上采样依然有大量的通道,这使得网络将上下文信息向更高层分辨率传播,作为结果,扩展路径与收缩路径对称,形成一个U型的形状(如上图所示)。 网络没有全连接层并且只是用每一个卷积层的有效部分。

(c)U-Net与FCN都是很小的分割网络,既没有使用空洞卷积,也没有后接CRF,结构简单。

(二)、图像分割套路

下采样+上采样:Convlution + Deconvlution/Resize

多尺度特征融合:特征逐点相加/特征channel维度拼接

获得像素级别的segement map:对每一个像素点进行判断类别

参考

https://zhuanlan.zhihu.com/p/31428783

https://zhuanlan.zhihu.com/p/46251798

上一篇 下一篇

猜你喜欢

热点阅读