您的位置:首页 > 其它

CNN用于医学图像轮廓检测的最近发展 论文阅读

2018-01-19 16:23 453 查看
Recent Advances in the Applications of Convolutional Neural Networks to Medical Image Contour Detection 是一篇关于神经网络用于医学轮廓检测的综述。

摘要:

深度学习技术,由于其快速发展,已经成为医学图像分析中很多机器学习问题的主要解决方案。深度卷积神经网络(DCNN),作为深度学习技术中最重要的分支,被广泛应用到各种计算机辅助诊疗技术中,包括长期存在的和不断涌现的问题。图像轮廓检测是一个基础又具有挑战性的问题,已经有四十多年的研究历史。近来,由于CNN的发展,我们已经见证了轮廓检测方面极大的性能提升。除了在现有的自然图像数据集上追求好的表现,轮廓检测也在医学图像中发挥重要作用。放射图像和病理图像中的各类物体分割都需要对轮廓的准确检测。然而,有些问题,如不连续性和形状限制,其在CNN中的研究并不充分。因此,很有必要去阐明这些挑战性来鼓励新的探索。目前,基于CNN的轮廓检测方法的表现主要依赖于先进的CNN结构。对这些网络结构的设计思想和动机进行仔细的研究有助于轮廓检测。在这篇文章中,作者首先回顾了近年来医学图像轮廓检测的发展,并指出目前的前沿问题和挑战。然后谈论了一般CNN的发展和其在图像轮廓(边缘)检测上的应用,并对这些方法在细节上进行比较,阐明其优缺点。然后回顾最近这些网络在医学轮廓检测的应用和局限性,希望由此能够指出一些医学图像分析上的潜在方向。

医学图像轮廓检测综述

1. 挑战性和重要性

自然图像通常会包含多种类的语义对象,而医学图像则偏向modality-specific。特定模态的医学图像中,目标内部和物体之间的语义及纹理信息较少。因此,往往是目标的形状和结构在医学图像分割中起到了重要作用。

在图像获取和处理过程中的质量下降(噪声)也是个重要问题。噪声降低了真实边缘的可见度并引入了伪边缘信息。传统方法尝试在边缘检测前使用去噪算法,有一定的效果,但是并不promising。相对而言,利用目标物体先验知识的全局方法更能够克服局部噪声的影响。所以,一个好的轮廓检测算法,精细的边缘检测和物体的全局轮廓理解同样重要。

医学图像中,如何不受遮挡和伪影的影响,获取相连或重叠物体之间的(弱,破损)边缘是个长期存在的问题。有些时候检测这些视觉不可见的边缘几乎是不可能的,一个可行的补救方法是将破损的边缘连接起来。这个问题是边缘检测中一个active的研究主题。早期,可变型模型是一种流行的技术,能够保证轮廓的连续性和光滑性,比如参数化和非参数化的主动轮廓模型。但是,由于基于特定的假设,这一领域目前不再流行。最近,Deep active contours使用神经网络来预测主动轮廓的演变。

除了直接的轮廓检测,一些文献研究如何从一系列不连续的轮廓段来得到全局的轮廓。但是由于其很强的先验假设,如对称性等,这些方法在实际数据集场很难应用。此外,有一些使用CRF,RNN和Autoencoder来完成轮廓补全的文章,如Shape Completion with Recurrent Memory

人类能够从那些视觉不可见的地方推断出存在的轮廓,其中推理在这一过程中非常重要。进一步分析,应当与以下两个因素有密切的关系:

1. 基于周围信息的推理。

2. 对于Appearance的先验记忆。

这两种推理都大量利用需要context信息。然而,目前大多数CNN并没有把注意力放到这种类型的context信息中。目前语义分割任务中,很多工作利用CRF和MRF来结合context,但是对于边缘检测,这种方法是困难的,因为边缘含有较少的语义信息,需要对目标形状和结构更深的理解。Occlusion boundary detection via deep exploration of context 利用CNN中的深度信息实现被遮挡边缘的检测。

此外,对于有限标记数据的高效学习是一个重要的课题,因为医学图像中大量级的训练数据是难以获得的。然而CNN通常都需要大量数据来训练,所以半监督和无监督以及迁移学习在最近得到了讨论。Deep convolutional neural networks for computer-aided detection: Cnn architectures, dataset characteristics and transfer learning. 是一篇针对医学图像的迁移学习文章。同时,在网络结构上好的设计能够提高参数利用到的效率。

总结一下:

医学图像的特点是:1)modality-specific; 2)纹理和语义信息少;3)噪声严重

解决方案:1)边缘和轮廓检测; 2)从破损的边缘中连接出轮廓

具体方法:1)context信息; 2)先验记忆; 3)学习方法

2. 早期医学图像轮廓检测

在深度学习兴起之前,轮廓检测有很多方向, Robust nucleus/cell detection and segmentation in digital pathology and microscopy images: A comprehensive review. 是一篇很详细的综述。

按照发展流程大约如下:

1. 基于灰度的阈值分割。缺点是不适用于复杂的图像。

2. 基于分水岭的分割。缺点是容易因为噪声的影响导致过分割。Deep Watershed Transform for Instance Segmentation将其和深度学习结合起来。

3. 基于活动模型的分割。其中具有代表性的有水平集,参数模型(Snake,GVF)。An automatic learning-based framework for robust nucleus segmentation 在分割中结合了形状先验模型。这类方法的一个缺点是需要合适的初始化,同时我个人觉得演化过程中和图像的交互比较rigid,对于图像质量有较高要求。

4. 基于图模型的分割。对图像建立图模型,然后利用minicut算法求解。Normalized cut是其中比较优秀的一种。

5. 传统机器学习分割算法。其中基于piexl-wise的分类通常需要后处理来连接断裂的部分。基于superpixel-wise分类的算法提高了效率,但是形成superpixel的过程需要很好的贴合图像边缘。这类方法一个比较显著的缺点是:需要人为设计特征,这在很多医学应用中难以实现,或者说可行性较低。

CNN

这一部分我先略过

图像轮廓检测

作者首先简要回顾边缘/轮廓检测的历史,然后介绍基于CNN的新型轮廓检测方法。接下来介绍一些重要的端到端的CNN网络,实现了目前最好的轮廓检测方法。最后,指出现用方法的不足之处。

原则上来说,好的边缘/轮廓检测算法能够检测到目标轮廓而忽略物体内部或背景中的边缘。目前有一些方法在医学图像中获得成功的应用,但尚有一些advanced方法没有应用到医学图像中,文章将会讨论他们的优缺点,并阐述将其对医学图像的益处。



1. 轮廓检测的历史回顾

早期的代表:Canny通过局部信息得到边缘。其后的方法往往结合多尺度下的global和local的cues实现。其中有基于1)局部方向滤波器;2)谱聚类;3)稀疏重建;4)监督学习等等。具体可以看Edge and line oriented contour detection:State of the art

CNN之前有几个代表性的边缘检测方法,至今仍在使用。

1. Global probability of boundary(gPb)。其在多尺度下计算局部有向梯度特征(亮度,颜色和纹理),然后通过normalized cut计算全局的谱分类来实现全局轮廓检测。在这个基础上,有oriented watershed and ultrametric contour map(OWT-UCM),multiscale combinationrial grouping(MCG)等方法。gPb方法一个主要缺点是效率低,1/240 FPS。

2. Structured Edge(SE)。这是使用随机森林进行边缘检测最成功的代表。其主要思想是利用结构化的学习,稠密的预测structures of patches,如直线,平行线,曲线,T连接,Y连接等等。这种方法的效率非常高,60 FPS。Robust muscle cell quantification using structured edge detection and hierarchical segmentation 将其应用到病理切片上。

2. CNN用于轮廓检测的先驱

为什么把这类方法叫做先驱,因为他们从传统思想中的edge patterns,structures 和多尺度等观念出发,利用了CNN对一个围绕一个中心点的pathes进行是边缘或者非边缘的判断。其中比较经典的是DeepEdge和DeepContour。

1. DeepEdge 使用多个层的特征输入到两个任务分支中。其中分类分支输出像素点是边缘的概率,the other regression branch is trained to learn the fraction of human labelers agreeing about the edge presence at a given pixel。最后结合两个输出来预测边缘。

2. DeepContour从局部patches中提取特征,并将这些特征作为额外的输入连同图像输入SE中。SE会将这些局部pathces分成不同种类的edge patterns。DeepContour首先训练CNN来生成丰富的特征,然后训练SE来预测边缘。通过这样一个过程,DeepContour在上述方法中取得了最好的效果。但是在效率上还是逊于SE。

3. FCN

FCN的引入引领了使用CNN进行dense predict的潮流。一方面使得实时的预测成为可能,另一方面大幅度提高了效果。

其改动点:

1. 去掉了全连接层,改成1*1的卷积。相对于分类来说,每个像素点只利用了其位置上的fm,而不是整个fm?

2. 利用转置卷积提高分辨率。

3. side outputs来利用多个卷积层的特征。

4. HED

HED是第一个将FCN成功应用到轮廓检测上的神经网络。其主要的贡献就在于side outputs和deep supervision。 HED中的side outputs不像FCN中直接结合起来或者DeepEdge分离的标签(?),HED中每个side output都直接用于预测edge。所以其网络的loss定义为:

Lside(W,w)=∑Si=1αiLiside(W,w)

由于边缘像素点的个数明显少于非边缘像素点,因此为了解决不平衡的两类问题,作者引入了weighted loss:

Liside(W,w)=−β∑y⊂Y+logPr(yi=1|X;W,wi)−(1−β)∑y⊂Y−logPr(yi=0|X;W,wi)

where β=|Y−||Y|

最终,所有的loss被融合起来,形成最后的输出:

Lfuse=Distance(Y,∑SiγiY^(i))

分析: 通过对多尺度特征的复用,Side-output with deep supervision对于dense predict的效果有很大提升。

其后有很多基于HED的改进和发展,RCF达到了目前BSDS500上最好的检测效果。HFL结合了MLP,并将其应用到语义轮廓标记和语义分割。Deep learning convolutional networks for multiphoton microscopy vasculature segmentationGland instance segmentation by deep multichannel side supervision是基于HED的医学图像应用。

5. Encoder-Decoder network

Encoder-Decoder networkDeconvNet有着非常相似的结构,但是其encoder和decoder部分是非对称的。其Encoder部分采用VGG-16的网络,Decoder部分没有采用deconvolution layer,而是使用unpooling+convolution layer。由于Decoder部分所利用的信息来自VGG的最后一个卷积层,因此对于非轮廓的边缘有较好的鲁棒性。所以这个网络在轮廓检测上的效果优于HED(57.0 ODS vs. 44.0 ODS),但是在边缘检测上的效果要略逊于HED。

6. Oriented contour detection

这种方法的思想不是很理解,感觉像是用多种专用网络去检测不同固定方向的边缘,然后综合起来。关于这方面CNN的研究比较少,文章介绍了两个网络。

Affinity CNN 使用48个预测器来预测每个像素点和其周围8个像素点在3种尺度下的affinity。其监督信息有预先计算的affinity matrix和图像边缘GT。

Convolutional Oriented Boundaries(COB)首先基于HED的思想得到初步edge map,然后利用多个small sub-network来对每个方向预测oriented edge map。为了得到每个像素点的最终方向,COB计算sub-network中最大响应。COB测试了VGG-16和ResNet,最终选择了50层的ResNet,并强调合适的基础网络结构能够对结果又较大的提升。

7. 弱监督,半监督和无监督

这一部分文章首先介绍了之前看过的Unsupervised Learning of Edges。这是一篇利用视频信息的无监督边缘检测方法。然后介绍了Learning relaxed deep supervision for better edge detection, 其中Relaxing label是有canny,SE和HED提供的,并利用“delayed strategy”处理其中的假阳性边缘。总的来说,这一部分在医学图像中很重要但是需要更多的研究。

医学图像中基于CNN的轮廓检测和语义分割



[34]采用CNN作为patch-wise的像素点分类器来分割细胞膜,属于Pioneer类型的工作,赢得了ISBI 2012 细胞膜分割竞赛的第一名,并且明显超过当年其他方法。

[52]中针对细胞膜分割对CNN结构进行了改动,采用了更小的感受野和更深的网络。这样能够增加网络对于局部的非线性程度,从而提取更好的特征。结果在ISBI 2012上获得明显提高。

[194]利用多个不同尺度的预训练CNN来进行pixel-wise的分类,然后使用不同特征去定位目标轮廓并分离有黏连的物体。

其后大部分轮廓检测和分割方法都沿用了FCN和HED的结构。

[171]提出了U-net,并利用weighted loss来惩罚黏连细胞。在当时获得了ISBI 2012的最好结果。

[29]是现在ISBI 2012上的最好结果。他的结构与HED较相似,不同之处在于他通过辅助分类层来结合不同CNN层的输出获得最终分类结果。这样能够在前向传播过程中,更好的结合不同层的上下文信息?

[28]提出一种contour-aware的网络,利用side output做多任务的deep supervision(一个分支输出分割,一个分支输出轮廓),最后利用轮廓信息来防止细胞的黏连。这个结果赢得了2015 MICCAI Gland Segmentation Challenge。

[224]提出多通道的side supervision CNN来分割gland,这项工作可以被看做FCN和HED的结果,同时进行分割和轮廓检测。[150]提出了相似的网络结构。[19]提出一个利用CRF的数据融合过程来考虑分割和轮廓检测的结果。[172]使用基于空间信息的随机森林来整合语义分割和边缘信息。[139]利用多层特征进行多任务学习。[153]提出结合解剖学先验知识到CNN中。

最近两年,3D的图像分割获得较多关注。[46]扩展HED至3D并利用CRF来refine轮廓。[[33]]提出3D-Unet。[145]提出V-net,提出基于Dice的loss function来解决数据不平衡问题。

除了直接利用CNN,RNN和CNN的结合也是一个热点。[[198]]提出使用层叠的autoencoder来回复破损的轮廓。[90]基于无监督的多尺度CNN来完成胸部的dense分割。[227]利用RNN来完成超声图像中不清晰和破损轮廓的恢复。[30]利用RNN来结合2D的分割结果。[174]使用神经网络来预测主动轮廓的演化向量。[144]提出hough-CNN,通过投票机制来定位解剖中心线。最近,[146]结合CNN和动态系统完成心脏轮廓检测。这篇文章利用动态系统中的重要概念,有限循环来表示目标轮廓。将对于每个像素点的分类改成对每个像素点预测向量,根据得到的向量场,通过动态系统来检测轮廓。这个方法所需要的训练数据很少。

讨论

目前医学图像中轮廓检测和分割进入了一个比较窄的框架中,大多数方法利用端到端的CNN实现dense predict。作者提出了医学可能的发展方向:

1. 多尺度。以HED为例,HED一方面充分使用了CNN中的特征,另一方面也可以看做一种resembling。从ResNet到DenseNet,跳跃结构带来的特征复用有很好的实践效果。关于Side output中的deep surpervision,在底层往往会有较大的loss,这会影响到网络的收敛性,在实践中是需要谨慎对待和使用的。

2. 迁移学习。U-net展现了dense predict的CNN可以从少量样本中学习的能力,但是作者仍然相信迁移学习能够带来更多的图像理解,解决医学图像训练数据不足的问题。比如low-level和high-level的视觉相关性提示我们应当利用自然图像中CNN的浅层特征。

3. 边缘的不连续性。CNN在检测边缘上有强大的能力,但是对于不可见边缘,或者物体重叠导致的边缘消失,如何弥补是一个重要问题。RNN是目前较新的的解决方案,如何在RNN中输入更多的边缘特征来提高效果。此外,使用形状先验是个很好的办法,因为医学图像中的目标物体往往具有相似的结构。Learning shape priors for object segmentation via neural networks使用CNN来控制形状的演化。不过与CNN结合更加密切的方法是将形状信息结合到loss中或者形成关于轮廓的结构化输出。如Deep active contoursDeep Poincare Map for Robust Medical Image Segmentation

4. 其他。如何使用小样本训练。如何对抗高的噪声。Fast detection of curved edges at low snr
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐