支持向量机与区域增长相结合的图像分割方法 技术领域:
本发明涉及一种支持向量机与区域增长相结合的图像分割方法。
背景技术:
图像分割技术是最重要的图像处理技术之一,在各个领域得到了广泛的应用。目前,图像分割方法主要有两类:基于区域的方法和基于边缘的方法。其中基于区域的方法主要有:阈值法、区域增长法和分类方法。
区域增长法是从若干种子点出发,根据一定的增长规则向外增长,由增长规则判定与种子点具有相似特征的点被加入的分割结果中。增长规则可基于灰度信息、纹理信息等,种子点通常采用人机交互方式手动选取。这种方法的关键在于种子点的选取和增长规则的确定。在实际应用中,根据具体情况确定增长规则往往比较困难。
分类方法是图像分割方法中的一类重要方法,特别是当目标区域比较分散时,比其它分割方法更具优势。用分类器进行分割是一种有监督的统计方法,它需要已知分割结果的样本集作为对新图像进行自动分割的参考。典型的分类方法有:神经网络、支持向量机等。然而这种方法需要对图像中的每个像素点进行特征提取并使用分类器判别,因此分割速度通常较慢。
发明内容:
本发明的目的是针对上述问题提供一种支持向量机(SVM)与区域增长相结合的图像分割方法,该方法能够有效地解决经典区域增长算法中生长规则确定的困难和单纯使用支持向量机分割速度慢的问题。
上述的目的通过以下的技术方案实现:
支持向量机与区域增长相结合的图像分割方法,该方法包括如下步骤:
(1)选取样本训练分类器;
(2)自动选取种子点;
(3)使用支持向量机判别进行区域增长;
(4)进行后处理。
所述的支持向量机与区域增长相结合的图像分割方法,步骤(1)所述的选取样本训练分类器的方式为:从已知分割结果的图像中选取一组目标区域与非目标区域样本点作为支持向量机分类器的训练样本。
所述的支持向量机与区域增长相结合的图像分割方法,步骤(2)所述的自动选取种子点的方法为:以粒度N,即每隔N行N列取一个像素点,利用训练好的支持向量机判别该点是否属于目标区域,如果该点属于目标区域,则将该点记为种子点。
所述的支持向量机与区域增长相结合的图像分割方法,步骤(3)所述的使用支持向量机判别进行区域增长的具体方法为:以步骤(2)所选种子点做起点进行区域增长,使用支持向量机对像素点进行分类判别,决定是否将该点标记为目标区域。
所述的支持向量机与区域增长相结合的图像分割方法,步骤(4)所述的进行后处理的包括:平滑、滤波、数学形态学操作中的一种或几种。
本发明的有益效果:
(1)单纯使用支持向量方法对图像进行分割,需要对图像中的每个点使用支持向量机进行分类判别,而本方法通常不需要对所有点进行判别,因此在速度上要优于单纯使用支持向量机的分割方法。
(2)与经典的区域增长算法相比,避免了手动选取种子点的交互操作以及增长规则和终止条件的选择困难问题。在该方法中种子点的选取使用支持向量机自动搜索,只需根据具体情况确定合适的粒度N即可。而在区域增长过程中直接使用支持向量机自动判别。
(3)该方法只需提供一已知分割结果的图像用于训练支持向量机,训练好后就可以实现同类图像的自动分割。
附图说明:
附图1是本发明的流程框图。
附图2(A)是肺部上段的CT图像,(B)是肺部中段的CT图像,(C)是肺部下段的CT图像。
附图3(A)是对肺部上段的CT图像自动搜索找到的种子点,(B)是对肺部中段的CT图像自动搜索找到的种子点,(C)是对肺部下段的CT图像自动搜索找到的种子点。
附图4(A)是对肺部上段的CT图像根据自动搜索找到的种子点使用支持向量机判别的区域生长结果,(B)是对肺部中段的CT图像根据自动搜索找到的种子点使用支持向量机判别的区域生长结果,(C)是对肺部下段的CT图像根据自动搜索找到的种子点使用支持向量机判别的区域生长结果。
附图5(A)是对附图4(A)经后处理后的二值图像,(B)是对附图4(B)经后处理后的二值图像,(C)是对附图4(C)经后处理后的二值图像。
附图6(A)是附图5(A)和附图2(A)相乘并去背景后的结果,(B)是
附图5(B)和附图2(B)相乘并去背景后的结果,(C)是附图5(C)和附图2(C)相乘并去背景后的结果,
具体实施方式:
实施例1:
支持向量机与区域增长相结合的图像分割方法,该方法框图如图1所示,其具体实施方式如下:
(1)选取样本训练分类器
从已知分割结果的图像中选取一组目标区域与非目标区域样本点作为支持向量机分类器的训练样本并训练支持向量机。
本方法需要已知分割结果的样本集作为对新图像进行自动分割的参考,训练样本从已知分割结果的图像中均匀选取或随机选取,选取数量可根据实际情况而定,例如选取1000个(目标区域和非目标区域各500个)。已知分割结果的图像可来自手动分割或其它方法。像素点的特征可在该像素点附近的M×M邻域内提取(M可适当选取,例如选取5),可根据图像的特点提取其灰度特征、纹理特征等。支持向量机算法的实现可借助相应软件包。
(2)自动选取种子点
针对待分割图像,以粒度N,即每隔N行N列取一个像素点,提取该像素点的特征,然后利用训练好的支持向量机判别该点是否属于目标区域,如果该点属于目标区域,则将该点记为种子点。
此处所述“待分割图像”与步骤(1)中所述“已知分割结果的图像”应为同一类图像,例如:均为肺部CT图像。
(3)使用支持向量机判别进行区域增长
以步骤(2)中所选取到的种子点作为起点进行区域增长,使用支持向量机对像素点进行分类判别,决定是否将该点标记为目标区域。
区域增长的过程是:以种子点作为起始点,判断该点周围的四邻域(该点的上、下、左、右四个像素点)或八邻域(围绕该点的八个像素点)的像素点是否属于目标区域,判断方法是使用步骤(1)中训练好的支持向量机进行判别,如果某点属于目标区域,则继续判别该点周围四邻域或八邻域内未判别过的点,直到某点周围四邻域或八邻域内的未判别的点都不属于目标区域,此时增长过程完成,增长停止。
(4)进行后处理
经上述步骤(1)、(2)、(3)处理后的结果图像可能存在瑕疵,这时就需要根据实际情况进行必要的后处理操作。主要是针对边缘和噪声像素点进行必要的后处理包括平滑、滤波、数学形态学的操作。
实施例2:
支持向量机与区域增长相结合的图像分割方法,该方法框图如图1所示,下面以肺部CT图像的肺实质分割为例,说明其具体实施方式,
本实施例使用了512×512×20(像素)的已知肺实质分割结果的肺部CT图像(记为图像A)和512×512×64(像素)的待分割肺部CT图像(记为图像B),实验中,分别从图像A的目标区域(肺实质)和非目标区域(肺实质以外的部分),随机地选取500个像素点共1000个样本点,随机选取的方法是使用random()函数生成三个范围分别在[0,511]、[0,511]、[0,19]的随机整数,由这三个整数确定要选取的点的坐标,如果选取的点与之前选取的点重复则舍弃该点并重新选取。
然后从每个样本点的5×5邻域中提取包括当前像素点灰度值、当前像素邻域均值、当前像素邻域中值以及由当前像素邻域的灰度共生矩阵导出的5个纹理特征(角二阶矩、对比度、相关性、方差和、反差矩,取东西、西北-东南、南北、东北-西南四个方向上的平均值)共8个特征。灰度共生矩阵被定义为从灰度为i的象素点,离开某个固定的位置关系δ=(Dx,Dy)的点上的灰度为j的概率(或频度),表示为:
p(i,j)={(x,y)|f(x,y)=i,f(x+Dx,y+Dy)=j;x,y=0,1,2,…,N-1}
其中,i,j=0,1,2,…,L-1,L是灰度级数目,p(i,j)表示了符合上式定义的象素个数,(x,y)是图像中象素的坐标,f(x,y)是该点的灰度级,Dx,Dy是偏移量。在实际计算中,反映固定的位置关系的参数Dx,Dy既包括偏移量的选择,又包括方向的选择。一般限定方向只取东西、西北-东南、南北、东北-西南这四个方向。因此,Dx,Dy的选择只会选取以下这四种值:(Dx=d,Dy=0)、(Dx=d,Dy=d)、(Dx=0,Dy=d)、(Dx=-d,Dy=d)。
1)角二阶矩
ASM=ΣiΣj{P^(i,j)}2]]> 2)对比度
CON=Σn=0Ng-1n2{Σi=1NgΣj=1NgP^(i,j)}=|i-j|=nΣiΣj(i-j)2P^(i,j)]]> 3)相关
COR=(ΣiΣjijP^(i,j)-μxμy)/δxδy]]> 其中μx,μy,δx,δy分别是Px,Py的均值和方差,Px,Py的定义是:
Px(i)=Σj=1NgP^(i,j)]]> Py(i)=Σi=1NgP^(i,j)]]> 则
μx=Σi=1NgiP^x(i)]]> μy=Σj=1NgjP^y(j)]]> δx=Σi=1Ng(i-μx)2Px(i)]]> δy=Σj=1Ng(j-μy)2Py(i)]]> 4)方差和
SV=ΣiΣj(i-μ)2P^(i,j)]]> 5)反差矩
IDM=ΣiΣjP^(i,j)1+(i-j)2]]> 将提取的8个特征进行归一化,归一化的计算公式为:
归一化后形成SVM的输入向量xi训练支持向量机,训练支持向量机的方法是使用LibSVM软件包中的svm_train()函数。其中,支持向量机的核函数选择径向基核函数,其函数表达式如下:
K(x,xi)=exp{-|x-xi|22σ2}]]> 参数σ取0.1,惩罚因子C取500。
在搜索种子点过程中粒度N取20,即每隔20行20列取一点判别是否为种子点。以所选取到的种子点作为起点进行四邻域区域增长,其过程是:以种子点作为起始点,判断该点周围的四邻域(该点的上、下、左、右四个像素点)的像素点是否属于目标区域,判断方法是使用训练好的支持向量机进行判别(通过使用LibSVM软件包中的svm_predict()函数实现),如果某点属于目标区域,则继续判别该点周围四邻域内未判别过的点,直到某点周围四邻域内无未判别的点或未判别的点都不属于目标区域,此时增长过程完成,增长停止。
后处理过程依次进行了开运算(先对图像进行腐蚀操作后对图像进行膨胀操作)和闭运算(先对图像进行膨胀操作后再对图像进行腐蚀操作),在开闭运算中均使用7×7的矩形结构元素。膨胀操作的具体实施方法是:用结构元素扫描图像中的每一个像素,将结构元素与其覆盖的二值图像做“与”操作,如果都为0,结果图像的该像素为0,否则为1;腐蚀操作的具体实施方法是:用结构元素扫描图像中的每一个像素,将结构元素与其覆盖的二值图像做“与”操作,如果都为1,结果图像的该像素为1,否则为0。
应用本方法对图像B进行分割的各阶段结果如下所示,分别选取肺部上、中、下段各一张图像作为示例。其中图2为原始图像,图3为自动搜索找到的种子点,图4为使用支持向量机判别的区域生长结果(二值图像),图5为经后处理后的二值图像,图6为分割得到的二值结果图像与原始图像相乘并去背景后的结果。
从以上实施例可以看出,本方法只需对搜索种子点及搜索到的种子点附近像素点进行判别,而单纯使用支持向量机的方法需要对所有像素点进行判别,因此本方法在速度上明显优于单纯使用支持向量机的分割方法;在该方法中种子点的选取使用支持向量机自动搜索,只需根据具体情况确定合适的粒度N即可,粒度N的确定应根据目标区域的大小来确定,通常一个可参考的值是目标区域短径的1/5左右。而在区域增长过程中直接使用支持向量机自动判别,避免了经典的区域增长算法手动选取种子点的交互操作以及增长规则和终止条件的选择困难问题;该方法只需提供一已知分割结果的图像用于训练支持向量机,训练好后就可以实现同类图像的自动分割。从实验结果来看,分割效果较好。该方法也可以用于其它领域的图像分割。