深度学习在交互式图像分割中的应用

目前深度学习在许多图像分割任务中取得了很好的效果,但绝大多数相关工作都是自动分割的方法。很多场景下仍然需要交互式的分割方法,比如放疗靶区的标注,或者因为自动分割结果不够好而需要用户修正时。另外,训练深度学习模型时常常需要标记许多图像作为训练集,使用好的交互式分割工具可以更高效地标记这些图像。

由FCN的输出可以得到一个概率图,在概率图的基础上再使用图割(graphcut)进行修正以使分割结果更靠近图像中的边缘。下图是一个分割的例子,其中(a)为输入图像和用户提供的前景点和背景点,(b)是由FCN得到的概率图,(c)是经过graphcut优化后的结果。

该文章使用了FCN预训练的模型,并且在PASCALVOC2012图像分割数据集上进行微调。在训练过程中通过对用户交互的模拟来得到前景点和背景点,而不需要真正让用户在训练集上标记出这些点。在测试过程中用户可根据需要,不断增加点的数量,从而的分割结果进行编辑。下图是用户提供1-3个点进行分割的例子。第一行是对概率图取阈值的分割结果,第二行为用graphcut对概率图修正的结果。

2,DeepIGeoS:AdeepinteractivegeodesicframeworkformedicalimagesegmentationDeepIGeoS是最近发表在TPAMI上的一篇文章。该算法是针对二维和三维医学图像分割提出的一种方法。

DeepIGeoS使用了两个CNN,如上图所示。其中第一个CNN(称为P-Net)得到一个自动分割结果,用户在此基础上提供交互点或者短线标记错误分割的区域,再将其作为第二个CNN(称为R-Net)的输入得到修正的结果。DeepIGeoS也将用户交互转化为距离图像作为CNN的输入,但使用了测地线距离(geodesicdistance),如下图所示。

DeepIGeoS在训练过程中是通过对交互点的模拟来训练R-Net的。下图是在P-Net得到的初始分割结果上模拟的用户交互:

该文章还提出了一种在卷积过程中使特征图像的分辨率保持不变的网络结构(P-Net)。由于FCN有先逐渐下采样再逐渐上采样的过程,输出结果会丢失一些细节信息,P-Net没有使用下采样和上采样的层,为了使网络有用比较大的感受野,使用了空洞卷积(dilatedconvolution/atrousconvolution)来替代池化层(pooling)与最近的Deeplab-v3类似。

3,Interactivemedicalimagesegmentationusingdeeplearningwithimage-specificfine-tuning这是今年发表在TMI上的一篇文章,该方法也称为BIFSeg(BoundingboxandImage-specificFine-tuning-basedSegmentation)。

通常基于CNN的分割方法只能处理训练集中出现过的物体,这就限制了这些方法的灵活性。BIFSeg尝试用CNN来分割训练时没有见过的物体。如上图所示,训练集中包括胎盘和胎儿大脑,测试集中则除了这两种器官外,还包括胎儿的肺部和孕妇的肾脏。训练的过程相当于使BIFSeg学会从一个边界框中去提取物体的前景部分,测试时通过自适应微调让CNN可以更好地利用特定图像中的信息。

上图是一个无监督的特异性微调的例子。这里分割的肺是训练集中所没有见过的,但CNN能得到还不错的初始分割结果,这个例子中通过自动微调得到了更好的分割结果。

这张图是一个在用户交互的指导下进行微调的例子。训练集中只包括FLAIR图像中的脑肿瘤(包括水肿部分),而测试集除了这样的图像以外,还包括T1图像中的脑肿瘤核心区域(不包括水肿部分)。上图是测试时分割T1图像中的肿瘤核的例子。

特征图更改是通过一些引导参数(guideparameter),包括一些乘法和偏置系数来实现的:

分别对应每行和每列的系数。对于高H,宽W,通道数C的一个特征图,乘法系数共有H+W+C个,因此总体上guideparameter的数量是较少的。当用户对一个分割结果添加交互式反馈时,网络的参数并不更新,而只是更新guideparamerer的值来得到新的分割结果。那么如何更新guideparameter呢?

模拟用户输入的过程如上图所示,将一个初始分割结果与金标准比较,可以发现分割错误的区域,再根据这些错误的分割部位生成文字信息作为模拟的用户输入。该文章在PascalVOC2012数据集上,使用第一种交互,通过系统问用户20个问题,使分割mIOU从62.6%提高到了81.0%。

这些顶点是按照一定顺序预测的,比如顺时针的顺序。假设有T个顶点,先使用一个CNN预测第一个顶点,之后的第t个顶点通过RNN结合第一个顶点和第t-1及第t-2个顶点预测的,RNN模型如下图所示(以VGG网络作为特征提取网络):

顶点的预测是作为一个分类任务实现的,该文章把图像划分为28x28的格子,然后对每个格子属于还是不属于顶点进行分类。在测试图像中,用户可以对第t个顶点的预测结果进行修正,后续的顶点随之重新进行预测,从而得到更新的分割结果。

随着用户编辑的顶点数量的增加,分割结果的精度也变得更好。相比于用户完全手工绘制物体的顶点进行标注,该方法的效率提高了5倍左右。由于顶点图像的分辨率较低(28x28),该方法的分割精度有一定局限性。Polygon-RNN++在Polygon-RNN的基础上做了许多改进,使对物体边界上的多边形顶点的预测更加准确,并有更高的分辨率。在网络结构上,把VGG网络换成了一个基于ResNet-50的网络。

在对RNN的训练过程中,Polygon-RNN++也做出了很大的改变,它使用强化学习(Reinforcementlearning)来做对所有顶点序列的预测,使预测结果与金标准有更好的重叠度,而Polygon-RNN仅使用crossentropy作为损失函数,与评价时使用的intersectionoverunion指标有较大差异。

Polygon-RNN++在Cityscapes和KITTI,ADE等数据集上进行了实验,其中训练过程是在Cityscapes数据集上完成的,其他数据集作为cross-domain或者out-of-domain的数据,用来验证该方法的通用性。结果表明在这些训练时没有见过的数据集上也能取得不错的结果。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180731A02BFF00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券