书城计算机网络智能计算方法概论
7554300000019

第19章 医学图像的分割算法研究(2)

3.边界曲线拟合法

这种方法用平面曲线来表示不同区域之间的图像边界线,试图根据图像梯度等信息找出正确表示边界的曲线,从而达到图像分割的目的,而且由于它直接给出的是边界曲线而不像一般的方法找出的是离散的、不相关的边缘点,因而对图像分割后续处理如物体识别等高层次分析有很大的帮助。即使是用一般的方法找出的边缘点,用曲线来描述它们以便于高层次分析,也是经常采用的一种有效的方法。

9.1.3医学图像分割算法研究的特点

由于噪声、场偏移效应、局部体效应等的影响,使获取的医学图像不可避免地具有模糊、不均匀等特点。另外,人体的解剖结构和形状很复杂,而且人与人之间有相当大的差异。因此医学图像分割是一项困难的任务,经过国内外研究人员多年的努力,虽然提出了很多种分割算法,但至今仍然没有获得圆满的解决。因此,医学图像分割至今仍是国内外学者研究的热点,而分割算法的研究呈现以下四个特点:

①人们逐渐认识到现有的任何一种单独的图像分割算法都难以对一般图像取得令人满意的分割结果,因而人们在继续致力于将新概念、新方法引入图像分割领域的同时,更加重视多种分割算法的有效结合,近几年来提出的方法大多数是结合多种算法的。采取什么样的结合方式才能充分利用各种方法的优点,取得好的效果已成为人们关注和研究的问题。本书对图像过分割问题的解决就采了多种方法结合的算法。

②医学图像分割需要利用医学中的大量领域知识、,如颅内白质和灰质的含量和相对位置关系等。Tina Kapur将分割可用的医学领域知识归纳为四种:一是图像中不同对象的灰度分布情况;二是不同影像设备的成像特点;三是对象的形状特征;四是不同对象间的空间几何关系。根据知识的不同表示方式,通常将基于知识的分割方法分为基于规则的方法和基于模型的方法。

③随着三维可视化技术的发展,医学图像分割的三维分割常常得到更多关注。这是因为,医学图像中直接给出了以二维切片形式的三维数据,这就为三维分割提供了可能。有两种三维分割方式:一种是直接在三维数据空间中分割,提取出感兴趣对象包含的体素;另一种是对每一张二维切片独立进行分割,再将每张切片中提取的轮廓组合起来用三维重建。

④医学图像分割面向具体的临床应用,分割算法的准确性将影响诊断结果和治疗方案,因此算法的准确性尤为重要。图像分割一直是个经典难题,目前的自动分割方法虽然在一些方面取得了一定的成功,但还远远不能满足医学图像处理实践中对分割结果准确性的要求。

在下面几节里我们将提出几种MRI结构图像的分割算法,并对其进行讨论。

9.2基于蚁群爬山法(Ants Climb Hill)的特征

空间数据聚类分割算法

聚类算法的研究实际上是数据挖掘研究中的一个重要组成部分。数据挖掘就是从大量数据中提取信息的过程。通过数据挖掘可以发现重要的数据模式,对知识库和科学研究有很大的帮助。聚类分析是将物理或抽象对象的集合分组成为由类似的对象组成的多个类的过程,是一种无指导学习过程。由聚类所生成的簇是一组数据对象的集合,这些对象与同一簇中的对象彼此相似,与其他簇中的对象相异。数据聚类的研究能推动图像处理学、统计学、机器学习、空间数据库技术、生物学,以及市场营销的发展。现有的聚类分析方法包括:划分方法、层次方法、基于密度的方法、基于网格的方法、基于模型的方法。其中DBSCAN、OPTICS是基于密度的方法,STING是基于网格的方法,CLIQUE和WaveCluster既是基于网格、又是基于密度的方法。比较常用的有K-均值聚类法和模糊C-均值聚类法。本书介绍的蚁群爬山法ACH(Ants Climb Hill)即是我们提出的基于网格和密度的聚类算法,并在此基础上提出了基于蚁群爬山法的特征空间图像分割算法。

9.2.1特征空间中的聚类

特征空间的聚类算法按上面我们的分析属于基于区域的分割方法,在阈值分割中,我们以像素的灰度值对像素进行分类。事实上,可作为将像素分类依据的特征不仅是灰度,也不限于一个。如果按多个特征对一幅图像的像素分类,其结果属于同一类像素的特征必然是相近的。即这些像素的特征是聚集在一起的,而属于不同类别像素的特征值相距较大。每个像素在其特征空间中一定有其对应的位置,称为特征空间点,其坐标称为该像素的特征值。因此,根据像素特征值区域的不同,即能将像素本身划分到相应的类别。这就是根据特征空间中的聚类进行的图像分割。按特征空间中的聚类进行图像分割是阈值分割概念的外延,而阈值分割是其特例。某一图像在特征空间的特征点分布示例,我们可以明显地看出像素点的特征值分为三个部分,即可以聚为三类。

特征空间的聚类算法有两个比较重要的问题:一是图像特征的选取和量化;二是聚类算法的研究。本书主要针对聚类算法进行了研究并提出了基于蚁群爬山法进行特征空间聚类的图像分割算法。

9.2.2蚁群爬山算法的基本原理

为讨论方便,我们假设数据对象只具有两个变量(属性)。我们将所有L×L个数据对象均投影到平面上,并将要进行聚类的区域分成m×n个网格,并对落入每个网格的对象进行记数,第i行j列个网格内的对象记数标记aij (1≤i≤n,1≤j≤m),aij即作为每个网格对象密度的度量,aij值大则密度大,aij值小密度小。对于每一个网格我们分配一只蚂蚁,第i行j列个网格内的蚂蚁标记为antij(1≤i≤n,1≤j≤m),蚁群中的蚂蚁总数为m×n只,每一个蚂蚁的下标携带着自己爬行起始网格的坐标信息。这m×n只蚂蚁的每一只均从起始网格开始按照梯度最大的方向向aij值局部最大的网格爬行,最终全部的蚂蚁都将集中在各个局部aij值最大的局部山峰上。然后对每一个网格聚集的蚂蚁数进行记数,第i行j列网格聚集的蚂蚁数记为bij(1≤i≤n,1≤j≤m),bij满足。局部山峰的个数k即为数据对象被划分的个数,即说明数据对象可划分为k个簇。而bij值的大小则说明这个局部山峰对应的簇的范围的大小,即这个簇包含网格的多少。由于每只蚂蚁的下标携带着起始网格的坐标,所以每一个局部山峰聚集的所有蚂蚁对应的起始网格的集合即可划分成同一个簇。

对于Ants Climb Hill(ACH)算法我们有以下两个定理。

定理9.1如果出现几个局部山峰在网格中是相邻的,那么这几个局部山峰对应网格内的aij值必然是相同的。

根据定理9.1,我们一般将几个相邻的局部山峰对应的簇合并为同一个簇对待。

定理9.2每一只蚂蚁在爬行过程中路过的所有网格属于同一个簇(不考虑蚂蚁在网格中爬行时遇到平原的情形)。

推论从定理2可推得由ACH得到的每一个簇一定是连通的(不考虑蚂蚁在网格中爬行时遇到平原的情形)。

采用ACH法进行聚类分析可同时获得簇的个数k,以及每一个簇的划分范围,因此避免了需要指定k值的麻烦,并且可以得到任意形状的簇。聚类分析的精细度主要通过网格的大小来决定:网格大,精细度差,得到簇的个数k少,便于获得全局性的聚类结果;网格小,精细度好,得到的簇的个数k多,便于获得各局部的聚类信息。对于数据对象多于两个变量(属性)的情况,ACH法进行处理的方法类似,只是数据对象的投影会在高维立方体上进行。

9.2.3蚁群爬山算法的计算过程及分析

输入:数据对象集A。

输出:将数据对象集A进行聚类的结果。

方法:BEGIN。

Step1扫描一遍数据集将数据对象投影到立方体中(一维,二维,三维……)

Step2将立方体划分成适当的网格,总的网格数为(n为立方体维数,mi为第i维被划分的网格数)。

Step3计算落入每个网格内的数据对象个数aij。

Step4为每个网格分配一只蚂蚁,让其按梯度最大法向aij值局部最大的的网格爬行。

Step5爬山过程结束后计算每个网格内聚集的蚂蚁数目bij,bij值不为0的网格即为局部山峰(存在相邻局部山峰的应进行合并),合并后的局部山峰数即为簇的个数k。

Step6:根据蚂蚁aij下标携带的起始网格信息得到每个簇的范围划分。聚集于同一个局部山峰的蚂蚁对应的起始网格划为同一个簇。

END

算法分析:

(1)本算法的每一个簇之间是相互紧靠的,我们可以设置一个阈值threshold,将aij<threshold的网格排除在各个簇之外。

(2)本算法中的蚂蚁在爬山过程中遇到平原时一般采用随机行走的方法,此时定理2及推论不成立。存在平原时如何进行簇的划分有待进一步分析。

(3)本算法中由于每一只蚂蚁各自独立的爬行,因此具有较好的并行特性。

(4)对于网格内聚集的蚂蚁数小于某一阈值的网格可以作为孤立点对待。

(5)算法的关键在于网格大小的适当选取。

9.2.4蚁群爬山算法的计算实例

第一步:我们将二维数据对象投影在平面上,并将平面划分成55的网格。

第二步:计算每个网格中的数据对象个数aij。

第三步:55只蚂蚁同时用梯度最大法向数据对象个数aij值局部最大的网格爬行,最后蚂蚁将会聚于各个局部山峰,计算每个网格会聚的蚂蚁个数bij。

第四步:为表达方便,我们对各个局部山峰进行编号,坐标为(3,1)的网格编号为1,坐标为(3,2)的网格编号为2,坐标为(1,3)的网格编号为3,坐标为(3,5)的网格编号为4。根据每个局部山峰中会聚的蚂蚁下标携带的起始网格的坐标信息对每个网格进行标记,即汇聚于同一个局部山峰蚂蚁的起始网格标记为这个山峰的编号。

第五步:具有相同标号的区域即为同一个簇。由于标号为1,2的区域为相邻局部山峰对应的区域,由定理1我们将其合并为同一个簇,所以在这个实例中我们共得到了k=3个簇。

蚁群爬山法避免了需要指定k值的难题,并能获得各种形状的簇。由于每只蚂蚁行动的独立性,因此本算法具有较好的并行特性。本算法的复杂度决定于网格的总数,我们可通过改变网格的总数来对计算速度进行调整。

9.2.5基于蚁群爬山法(ACH)的图像分割

第一步是选取图像中适当的特征并进行量化,这一步是比较重要的,因为特征选取得好可以增大特征空间中特征点的区分度,为我们进行聚类提供好的前提,否则特征点无法区分不同的像素种类,我们的聚类算法也就无用武之地;第二步就是将已量化的特征投影到特征空间中;第三步就是在特征空间中采用我们提出的ACH算法对特征空间中的特征点进行聚类。第四步将特征点的聚类结果还原到原图像中去,对不同类的像素进行标记,从而得到原图像的分割结果。这实际上就是一种特征空间的聚类分割算法。

9.3基于小波变换的流域(Watershed)分割算法

流域变换(Watershed Transform,又称为分水岭变换)是数学形态学中用于图像分割的一种经典算法。它最初由Digabel和Lantuejoul于20世纪70年代末引入图像处理领域,用于分析简单的二值图像。为了得到更为通用的模型,Beucher、Vincent等人的研究工作,使流域变换的理论得以建立,并在20世纪80年代大量用于灰度图像的分割问题。

</threshold的网格排除在各个簇之外。