二维直方图斜分最大类间交叉熵的图像分割

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二维直方图斜分最大类间交叉熵的图像分割
张新明;刘斌;李双;张慧云
【摘要】利用二维直方图斜分原理,提出了一种基于最大类间交叉熵的快速图像分割方法.首先依据二维直方图斜分法构建最大类间交叉熵周值选取公式,然后导出这种最大类间交叉熵阈值选取的快速递推算法,最后将定义的数组运算与这种快速算法相结合搜索最佳阈值向量,使整个算法更简明高效.实验结果表明,与当前二维直方图斜分阈值方法相比,此算法效率更高,通用性更强.
【期刊名称】《计算机应用》
【年(卷),期】2010(030)009
【总页数】5页(P2453-2457)
【关键词】图像分割;阈值化;二维直方图斜分;最大类间交叉熵;递推算法
【作者】张新明;刘斌;李双;张慧云
【作者单位】河南师范大学,计算机与信息技术学院,河南,新乡,453007;湖北大学,数学与计算机科学学院,武汉,430062;河南师范大学,计算机与信息技术学院,河南,新乡,453007;河南师范大学,计算机与信息技术学院,河南,新乡,453007
【正文语种】中文
【中图分类】TP391.41;TN911.73
0 引言
图像分割是计算机视觉中的一个关键问题,特征提取和目标识别都是以图像分割作
为基础的。

在众多的分割方法中,阈值化方法因其简单、计算量小、性能较稳定而成为图像分割中应用最广泛的分割技术。

常用的阈值法有最大类间方差法(Otsu)、最大熵法和最小交叉熵方法等[1-3]。

这些方法在最初提出时都通过图像的一维灰度直方图来选取阈值。

一维直方图虽然处理速度快,但不能反映图像的局部空间信息,当图像受到噪声干扰、光照不均匀等因素影响时,难以获得满意的分割效果,甚至产生分割错误。

因此,Abutaleb等人将最大熵方法从一维拓展到了二维[4],其效果较一维方法有明显改善,但同时由于将一维搜索空间扩大为二维,加上变成二维后算法本身的复杂性,导致运算量按指数增长,运算速度慢。

梅蓉等人将最小交叉熵法推广到二维情况[5],为了避免该方法大量计算时间消耗,文中采用遗传算法来近似优化最小交叉熵分割准则。

文献[6]从样本分类间分离性程度角度导出二维最大类间交叉熵,推出了快速递推分割算法,获得了较好的分割性能。

但这种基于二维直方图选取阈值的快速算法用分别与两坐标轴平行的相互垂直的十字线将二维直方图直分成4个矩形区域,计算时仅考虑分别对应于目标内部和背景内部的2个沿对角线的矩形区域进行阈值分割。

由于它在计算过程中采取了一定的近似,即对位于阈值向量附近且像素灰度级与其邻域平均灰度级相差不大的区域简单认为出现的概率为零,使得分割结果不一定准确。

文献[7-8]将递推算法与智能全局优化算法相结合运用二维阈值算法中,克服了这种近似计算,而且大大提高了运算速度,但使用全局优化算法也会带来诸如优化算法的参数设置等问题。

吴一全等人[9-10]提出了一种新的二维直方图区域斜分法,即计算阈值时考虑了所有区域,并采用与主对角线垂直(即与灰度轴成135°角)的斜线按灰度级与邻域平均灰度级之和的大小进行阈值分割,然后导出了基于二维直方图区域斜分阈值选取的公式及其快速递推算法,并将这种方法运用于二维Otsu法和二维Tsallis熵阈值法中,都获得了成功,尤其分割时间大幅度下降。

但这种斜分直方图的方法在其他二维阈值法中的效果如何,是否有更高效和通用的搜索阈值算法,
基于此,本文提出了一种基于二维直方图斜分最大类间交叉熵的图像分割方法,使用二维直方图区域斜分原理和数组运算的优势来推导出最大类间交叉熵阈值选取方法以及快速递推算法,以便获得较好的分割效果和通用性以及更少的分割时间。

1 二维直方图斜分原理
设 f(x,y)(1≤x≤M,1≤y≤N)是一幅大小为M ×N的图像。

在每个像素点处计算n×m的邻域的平均灰度值,得到一幅平滑的图像 g(x,y),二者灰度级都为0,1,…,L。

其中L一般取255,n和m取大于1的奇数,n×m的邻域可由下面模板表征:
模板由n行和m列组成,邻域模板对二维阈值化方法的分割结果有一定的影响,多数文献将 n和 m都取3,di,j=1,D=9,也就是8-邻域模板,即
设r(i,j)为图像中灰度级为i和邻域平均灰度为j的像素点的个数,其中 i,j=0,1,…,L ,那么有:
以上得到的二维直方图如图1所示,它是一个256×256的矩阵。

从上面的分析可以看出,以上对图像的平滑其实是一种对图像的均值滤波,即一种低通滤波方式,由此想到可以采用其他的低通滤波方式,如中值滤波,因为均值滤波在平滑图像得到邻域平均灰度的同时,使图像变得模糊,而且滤波效果不佳,尤其对椒盐噪声滤波效果差于中值滤波,所以本文采用3×2中值滤波的邻域窗口。

图1 直分二维直方图
可以定义二元组(i,j)在图像和其邻域平滑图像中出现的概率为:
二维直方图直分假设阈值向量(t,s)将二维直方图分成4个区域,如图1所示。

对于背景或目标内部的像素而言,其灰度值与邻域灰度值是相似的,而对于目标和背
景边缘处的像素,其灰度值与邻域灰度值有很大的不同,所以区域1和2代表目标或背景,区域3和4表示边缘点噪声。

由于边缘点和噪声点占少数,可假设二维直方图中远离主对角线的分量近似为 0,即 p(i,j)≈0(t< i< L,0≤ j≤ s)和(0≤ i≤ t,s<j< L)。

二维直方图斜分[9]采用与主对角线垂直(即与灰度轴成135°角)的一条斜线段
j=-i+T(g=-f+T,T为阈值,0<T≤2L),分成两个区域:1区和2区,分别代表目标和背景如图2所示。

按图像灰度级与其邻域平均灰度级之和的大小对图像进行分割。

从上面的定义可以看出二维直方图直分和二维直方图斜分的主要区别:1)二维直方图斜分将直方图分成两个部分1区和2区,所以在计算2区的某个量时,它是这个量的总量减去1区相应的量,因此在作相关计算时无需像二维直方图直分有时要采用近似计算;2)二维直方图斜分的分割规则不同,按两个灰度级之和进行分割;3)从二维直方图直分中的二维搜索空间寻找最佳阈值向量(t,s)变成了从二维直方图斜分中的一维搜索空间寻找最佳阈值T,所以有二维直方图斜分导出的阈值方法计算复杂度降低了。

图2 斜分二维直方图
2 二维直方图斜分最大类间交叉熵的图像分割
对于图2,二维最大类间交叉熵阈值化方法描述如下:此时斜线j=-i+T的左下三角区域对应目标,可以从(0,0)点开始逐点累加算出目标的概率p1(T):
二维直方图上总的均值向量为:
两类对应的均值向量为:
其中:
其中:
限于篇幅,直接采用文献[6]定义的类间交叉熵:
由式(9)可以得到:
以上 (i,j)∈1表示(i,j)坐标点属于图2中的1区,(i,j)∈2表示(i,j)坐标点属于图2中的2区。

那么所获得的最佳阈值向量就是:
设分割后的图像为fs,图像灰度仅取0和255两个值,依据二维直方图斜分的定义,规定如下分割:
3 快速递推算法
从上述算法公式可以看出,计算I(T)只需要计算p1(T)、U1(T)、V1(T)、uT,1和uT,2。

对于同一幅图像,uT,1和uT,2是固定的,所以对于每一个阈值 T,如果每次计算I(T)都重新从(0,0)点开始逐点累加计算 p1(T)、U1(T)和V1(T),势必造成大量的重复计算,计算复杂度都为O(L2),而共有2L个阈值T,从而使总的计算复杂度都达到O(L3)。

T的取值越接近L,I(T)的计算时间也越长。

其实只要分别利用前面得到的p1(T-1)、U1(T-1)和V1(T-1),再加上直线段j=-i+T上各点相应的值即可。

所以为了提高算法的运算速度,进一步优化算法,本文给出上述基于二维直方图区域斜分的最大类间交叉熵阈值选取方法的快速递推算法,大大消
除了重复计算,减少了运算量。

下面以p1(T)为例,递推公式推导如下:
当0<T≤L时:
其中为直线段 j=-i+T上各点对应 p(i,j)值的和,这里i=k,j=T-k。

因为在直
线段j=-i+T上有T-0+1个点,并随着T值的增加而增加,所以求其上各点的和,选择变量 k从0到T。

当L<T≤2L时:
其中为直线段j=-i+T上各点对应p(i,j)值之和,这里 i=k-L,j=L+T-k。

因为在直线段j=-i+T上有2L-T+1个点,并随着T值的增加而减少,所以求其上各点的和,选择变量k从T到2L。

综合两种情况,在0<T≤2L情况下,得到如下精简统一的递推公式:
同样可以得到U1(T)和V1(T)的精简递推公式:
为了得到U1(T)和V1(T)快速的递推算法,首先定义二维数组运算。

与矩阵运算不同,矩阵作为一种变换或映射算子的体现,矩阵运算有着明确而严格的数学规则。

而数组运算简单地说就是数组中每个元素同时进行某种运算。

例如数组乘法的定义:设有两个m×n的数组A=(aij)和B=(bij),那么规定数组A与数组B的乘积还是
m×n的数组C=(cij),即C=A·× B,其中cij=aij× bij,(i=1,2,…,m;j=1,2,…,n);同理,数组“除”和“乘方”等运算就是一个数组中的每个元素同时参加“除”和“乘方”等运算,例如数组 A的平方就是A中的每个元素的平方。

另外对于式(5)中的 U1(T):1)i的取值是从 0~255;2)计算 ip(i,j)需要256×256次,即每一列,i的取值都是[0,255]一共有 256列。

同理,式(5)中 V1(T)计算
jp(i,j)要256×256次,每一行j的取值都是[0,255]一共有256行。

那么对
于U1(T)和V1(T)快速递推算法是:
首先,创建 i数组和 j数组分别为 w i和 w j,大小都为256 ×256,即:
然后,采用了以上定义的数组运算中的数组乘法得到u,即u=w i·× p ,即,u(i,j)=wi(i,j)× p(i,j),同样用数组的乘法得 v ,即 v=w j·× p ,即 v(i,j)=wj(i,
j)× p(i,j)。

为了与矩阵运算区别,在以上数组的“×”运算符号前加了一个“.”
符号。

最后,利用 p1(T)相同的递推算法,即通过 u(i,j)和v(i,j)替代 p(i,j),可以求得U1(T)和 V1(T)。

从上面的计算可以看出:1)以上定义的数组算术运算是数组中每个元素同时进行运算,这是一种并行计算,使得递推算法中没有乘法,仅仅只有求和运算,如此节省了分割时间。

2)用这种运算“屏蔽”了递推 U1(T)和 V1(T)与递推 p1(T)的不同,
使得p1(T)代码可以重用,使编程简单容易,体现了现代编程技术的理念。

总之,与文献[9-10]的斜分阈值法相比,本文的方法简单高效,提高了斜分阈值法的通用性,这种方法能很容易推广到其他二维阈值法中。

4 仿真实验及分析结果
为了考查本文提出的二维直方图斜分最大类间交叉熵(Two-dimensional Oblique Segmentation Maximum Inter-class Cross Entropy,TOSMICE)的图像分割方法的效果,用其分割两幅多数文献分割采用的图片,并将其分割的结果与二维直方图斜分的 Otsu(Two-dimensional Oblique Segmentation OTSU,TOSOTSU)
方法[9]和一维 Otsu(One-dimensional OTSU,OOTSU)方法[2]进行比较。

算法采用 Matlab 6.5实现,所有实验在AMD Athlon 64 X2主频为2.7 GB
的 CPU和内存为2 GB DDR RAM的机器上进行。

这两幅图片原图、对应的一维
直方图和二维直方图如图3和图4(a)~(c)所示,3种方法分割结果如图3和图
4(d)~(f)所示。

表2是每幅图片的参数值(大小和灰度级别范围如表2第2列~第
4列所示,以及叠加噪声的类型和幅度见第5列)、3种分割方法获取的阈值。

从分割的结果看,在两幅含有噪声的图像中,OTSU方法不管是二维斜分还是一维,分割效果较差,噪声点较多,如图3和图4(e)、(f)所示。

图 3(a)是叠加了均值为0,方差为0.01的高斯噪声的Bacteria图像,其直方图是单峰,近似高斯分布,
该图像中目标和背景方差较大,OTSU方法一般难以达到理想的分割,而本文的二维直方图斜分最大类间交叉熵方法有较好的分割效果。

对于图4中的Sar图片,
叠加了强度为0.01的椒盐噪声,虽然 TOSOTSU方法的分割效果优于OOTSU方法,但它们都不能有效地将目标和背景区分开来,二维直方图斜分最大类间交叉熵方法取得了最好的效果,将河流与背景有效地分割开来。

从表2可以看出3种方
法所获取的关键阈值(为了方便比较,定义关键阈值概念,两种二维阈值法TOSM ICE和TOSOTSU的关键阈值是它们阈值二分之一取整数,见表2)的情况,OOTSU方法获取的阈值最大,其次是TOSOTSU,获取最小的关键阈值是TOSMICE。

表1列出了3种二维最大类间交叉熵法分割两幅图片所花费的时间,其中二维斜
分算法是未采用数组运算的二维斜分最大类间交叉熵递推算法,二维斜分快速算法是采用了数组运算的二维斜分最大类间交叉熵递推算法(本文提出的方法),而二维直分快速算法是采用了数组运算的二维直分最大类间交叉熵递推算法,第二和第三列是运行斜分法1000次与最后一列运行直分法100次的平均分割耗时,从这些
分割耗时来看,二维斜分算法的两幅图片平均分割耗时为0.0328 s,而二维斜分
快速算法是 0.025 4 s,都远远小于直分法的平均分割耗时 0.567 7 s,前者是直
分法耗时的1/17以下,而后者是直分法耗时的1/22以下,这是因为:1)在直分递推算法中目标函数I(T)运行次数(L+1)×(L+1)次,而在两种斜分算法的递推算法中运行为2L次;2)计算 p1(T)、U1(T)和V1(T)中的求和运算与U1(T)和V1(T)中的乘
法运算,在二维斜分算法中都需要(L+1)×(L+1)次,而在二维直分快速算法和在本
文的斜分递推算法中,只是求和要(L+1)×(L+1)次,乘法运算仅仅一次数组乘法,从以上分析可以看出:在本文提出的快速算法中,目标函数运行次数和乘法运算次数都最少,所以分割时间最少。

总之,从分割效果和分割时间,本文提出的算法是有效的。

表1 三种方法分割时间对比 s测试图像二维斜分算法二维斜分快速算法二维直分快速算法Bacteria.tif 0.032 4 0.025 1 0.563 6 Sar.jpg 0.033 2 0.025 7 0.571 7平均耗时0.0328 0.0254 0.5677
图3 Bacteria图片、直方图及其分割结果
图4 Sar图片、直方图及其分割结果
表2 图像参数及三种分割方法获取的阈值测试图像图像参数大小 f(x,y) 的灰度级别范围g(x,y) 的灰度级别范围加噪情况三种方法获取的阈值TOSOTSU TOSMICE OOTSU关键阈值TOSOTSU TOSMICE Bacteria.tif 178×178 0~255 0~247 高斯(1%) 236 189 119 118 90 Sar.jpg 242×274 0~255 0~255 椒盐(1%) 202 147 104 101 74
5 结语
1)当前的斜分阈值法分割性能尤其是分割时间有较好的表现,因此本文将二维直方图斜分原理运用到最大类间熵阈值法中,并推导出有较强通用性的快速递推算法,它可以很方便推广到其他二维阈值法中。

2)本文将数组运算与统一的斜分快速递推算法有机结合形成新的分割算法,不仅其耗时远远小于直分法的耗时,是直分法耗时的1/22以下,而且使整个算法更简明高效。

参考文献:
[1] KAPUR JN,SAHOO P K,WONG A K C.A new method for greylevel picture thresholding using the entropy of the histogram [J].Computer
Vision, Graphics and Image Processing, 1985, 29(1):273-285.
[2] OTSU N.A threshold selection method from gray-level histogram [J].IEEE Transactions on System Man and Cybernetics, 1979, 9(1):62-66.
[3] LIC H, LEE C K.Minimum cross entropy thresholding [J].Pattern Recognition,1993,26(4):617-625.
[4] ABUTALEB A S.Automatic thresholding of gray-level picture using
two-dimensional entropies [J].Pattern Recognition, 1989, 47(1):22-32.
[5]梅蓉,姜长生,陈谋.基于遗传算法的二维最小交叉熵的动态图像分割[J].电光与控制,2005,12(1):30 -34.
[6]乔,吴成茂.二维最大类间交叉熵阈值分割法[J].西北大学学报:自然科学版,2008,38(3):374 -378.
[7] ZHANG X M,ZHANG H Y.Image segmentation based on two-dimensional inter-class cross entropy and chaos optimization algorithm[C]//Proceedings of International Forum on Information Technology and App lication.New York:IEEE Computer Society, 2009:319 -322.
[8] ZHANG X M,ZHANG C P.Fast image segmentation based on chaos optimization and recurring for 2-D tsallis entropy[C] //Proceedings of International Symposium on Computer Network and Multimedia Technology.New York:IEEE Computer Society, 2009:140 -143.
[9]吴一全,潘喆,吴文怡.二维直方图区域斜分阈值分割及快速递推算法[J].通信学报,2008,29(4):77 -83.
[10]吴一全,潘喆,吴文怡.二维直方图斜分 Tsallis-Havrda-Charvát熵图像
阈值分割[J].光电工程,2008,35(7):53 -58.。

相关文档
最新文档