一种基于阈值优化的视觉主骨架提取方法

2013-12-29 00:00:00王帅邱仲潘宋智军
电脑知识与技术 2013年12期

摘要:该文根据骨架定义及优秀骨架的性质,提出一种图像处理方法。该方法对图像的物体像素点进行检测,评测每个像素点成为骨架点的可能性大小,然后以一个阈值对像素点进行分类,以便确定后续进行骨架提取的像素点,并通过选取适当的阈值,来获取视觉主骨架。实验表明:该方法与传统骨架提取方法相结合,所获取骨架较好地保存了目标的主要拓扑结构,在骨架的拐角更加圆滑、自然,能够有效减少骨架毛刺,并且处理所需时间有效减少。

关键词:图像处理;骨架;视觉主骨架;毛刺;拓扑结构

中图分类号:TP751 文献标识码:A 文章编号:1009-3044(2013)12-2874-05

骨架,最初的定义由Blum提出[1],作为一种简单的物体形状表示方式,不仅结合了物体的轮廓和区域信息,同时也反应了物体重要的视觉信息[2]。因此,基于骨架的目标表示和识别技术成为模式识别和计算机视觉的重要研究内容,在手势识别、字符识别、动漫生成及医学图像分析等领域有着广阔的应用[3]。

骨架提取(skeletonization)是指根据不同的定义和算法提取原始物体骨架的过程。目前,骨架的提取方法很多,例如Voronoi图,最大圆盘,距离场等提取方法,在文献[4]中作者评述了近300种方法。但无论什么方法,一个优良的骨架应该具有如下性质[5,6]:

1)骨架应保持原物体的拓扑。

2)骨架点精确,尽量靠近物体的中心。

3)骨架的粗细应该为一个像素(或接近一个像素)。

4)骨架能表达物体在人类视觉中的重要部分。

5)在一定的噪音情况下,骨架应具有一定的稳定性。

本文提出的图像处理方法在依据骨架定义及优良的骨架的性质的理论基础上,对图像进行处理。在处理后的图像中,越接近“真实”骨架的像素点的显著水平越高。通过选取不同的阈值,有效的过滤掉图像中不必要的信息,并对提取后的骨架进行必要的细化,使得提取后的骨架更加精确。

1 图像处理方法

图像处理方法的目的是使越接近骨架点的像素的显著值越大,而远离骨架点的像素的显著值越小。基于此,该文从两个方面对图像像素的显著值进行描述:其一为以图像像素点到边界的最短距离作为半径的圆与边界的切点数量;其二为与边界切点的跨距。

1.1 与边界的切点数量

根据骨架最大圆盘的定义,可以发现除端点和非骨架点外的所有骨架点至少和两个或两个以上的边界点相联系,这些边界点到骨架点的距离最短。如图1,骨架点S1对应的最大圆盘与物体边界相切于P1和P2两点,骨架点S2对应的最大圆盘与物体边界相切于P3、P4和P5三点。而与物体边界相切的点越多,则骨架点的重要程度越高。对于与边界相切于两点的骨架点,往往为骨架的普通点(Regular node);而与边界相切点为三个点或三个点以上的骨架点,往往为骨架的连接点(Junction node)。一个物体的拓扑结构与骨架连接点有着重要的联系,依靠骨架普通点来维持,以骨架的端点(End node)作为终结。

因此可以用像素点与边界切点的数量作为该像素点为骨架点可能性的衡量。当像素点与边界仅有一个切点时,该类像素点为骨架点的可能性很低(或仅为骨架端点),可以不考虑,像素显著值为0;当像素点与边界相切于两点或更多时,该类像素点为骨架点的可能性比较高,像素的显著值大小应随切点数量的增加而增加。

在理想的情况下,骨架点与边界点会有两个或两个以上的切点。但在实际的数字图像中,边界点和骨架点都是位于像素的网格中,即使是骨架点也很难找到两个边界点,使得两个边界点到该骨架点的距离完全相等且是所有边界点中最短的。为了找到像素点对应的最大圆与边界的切点,将涉及到离散化问题。为简便起见,该文以4个相邻像素点对应的最近边界点,作为一个像素的最大圆与边界的所有切点的近似。

如图2所示,在离散条件下,以像素点P0、像素点P0的右边像素P1、像素点P0的下面像素P2、像素点P0的右下像素P3,四个相邻像素点作为基础,来求解以像素点P0为圆心的内切圆与边界的切点。其过程为:首先找到到达像素点P0距离最近的边界点,例如为B1。则此时,4-相邻像素点P0、P1、P2和P3与边界点B1的距离分别为d0、d1、d2和d3。再次遍历所有边界点,若存在一个边界点与4-相邻像素点的距离不大于对应的d0、d1、d2和d3中的其中一个,则此边界点将被视作以像素点P0为圆心的内切圆与边界的切点之一。如图2所示,边界点B2与P0的距离并非最短,但B2与P1的距离d5不大于B1与P1的距离d1,则将B2视为边界切点。

1.2 与边界切点的跨距

仅使用与边界切点的数量作为像素的显著值是不够的。如图3所示,像素点S1和S2所对应的最大内切圆与物体边界的切点数量都是2个。从切点个数上做区分,S1和S2两个像素点是没有任何区别的。但是,目前人们通常提取物体的视觉主骨架。视觉主骨架具有只描述人们的视觉主要部分的形状,简化骨架结构的性质。由此,应使像素点S2的显著值高于S1的显著值。同时,从另一个方面讲,像素点S1成为毛刺骨架的可能性也高于S2,也再次降低了S1成为骨架点的可能性。

观察图3,会发现像素点S1对应的两个边界切点B1和B2之间,存在一个边界跨距B1BB2;像素点S2对应的边界跨距为B3BB4。边界跨距B3BB4的长度大于边界跨距B1BB2。对于同一个连续边界而言,最大内切圆与边界切点所形成的跨距越大,则最大内切圆的圆心越靠近物体的中心,该圆心成为视觉主骨架点的可能性越大,成为毛刺骨架点的可能性越小。该文以边界的跨距(span)作为另一项描述像素点显著值的标准。

一个最大内切圆可能与同一个连续边界有多个切点,如图4所示。此时,假设与边界有n个切点,则有效的边界跨距span的计算公式为:

[span=length-max(Dis(B1,B2),Dis(B2,B3),...,Dis(Bn,B1))]

式中:B1、B2...Bn为最大内切圆与边界的切点,且沿边界逆时针方向对切点进行编号所得;Dis(Bi,Bj)为Bi到Bj的距离,大小为以逆时针方向,从Bi到Bj之间边界像素点的个数;length为连续边界的长度,大小为边界像素点的个数。因此,span为边界长度去除边界切点间最大间距后的长度。

上面讲述了切点都在同一个边界上,跨距span的求取方法。有时一副图像可能存在多条边界,如图5所示。当一个最大内切圆与不同的边界相切时,则内切圆的圆心将是一个骨架点。根据优良骨架应具有的性质,骨架应保持原物体的拓扑结构。若上述内切圆的圆心不是骨架点,则会导致骨架的断裂,所获取的骨架将不能够保持原来的拓扑。由此,应增加与不同边界存在切点的像素点的显著值,以便后续在此像素点附近寻找骨架点。该文,对于这样的像素点的跨距span,直接赋予最大值MAXSPAN。最终的span公式为:

[span=length-max(Dis(B1,B2),Dis(B2,B3),...,Dis(Bn,B1)),{B1,B2,...,Bn}∈borderkMAXSPAN,其他]

式中:borderk为图像上某一条连续边界。

1.3 像素点显著值的确定

综合以上两点因素,该文提出像素点的显著值公式为:

[value=number+span*STANDARD_SIZE/(row+col)]

式中value为像素点显著值,其值越大,代表该像素点为骨架点的可能性越高,反之越低;number为像素点对应的最大内切圆与边界切点的数量;span为边界切点有效跨距,其计算公式在1.2节已经给出;STANDARD_SIZE为一个标准值,row为输入图像的高度,col为输入图像的宽度。将span乘以因子STANDARD_SIZE/(row + col)的目的是使span在图像进行缩放时,保持其值相对不变。

2 骨架提取及其多尺度控制

通过本文提出的方法处理后的图像,图像的像素值为该像素点的显著值。处理后的图像可以通过matlab自带的函数bwmorph提取骨架。由于像素点显著值的大小反映了该点为骨架点的可能性,所以本文提出一个THRESHOLD与显著值进行比较:当显著值大于THRESHOLD时,该像素值置为1(前景像素点);当显著值不大于THRESHOLD时,该像素值置为0(背景像素点)。因此有:

[pixel=1,(value>THRESHOLD)0,(value≤THRESHOLD)]

处理后获取的二值图像,作为bwmorph函数的输入。

当对THRESHOLD选取不同的值时,可以实现对骨架的多尺度控制。减小阈值THRESHOLD将增加物体像素点参与骨架的提取,使骨架更加细致;增大阈值THRESHOLD,则将使显著值高的点参与骨架提取,提取的骨架更加粗糙,其效果相当于骨架剪枝。可以通过选取适当大小的THRESHOLD值,来保留视觉上重要的骨架枝,实现骨架的多尺度控制。

3 实验结果及分析

实验中,首先通过本文提出的图像处理方法,将原始的二值图像转化为显著值图像,然后根据THRESHOLD的值,再次将显著值图像转化为二值图像,此时只有显著值大于THRESHOLD的像素点的值才为1,最后使用matlab中提供的形态学骨架函数bwmorph提取骨架。通过THRESHOLD的值实现骨架的尺度控制,直到选取一个较良好的骨架。

图6(a)通过bwmorph函数直接提取的骨架。可见,提取的骨架存在许多不必要的分支,并且骨架的拐角也不过圆滑,不够自然。图6(b)-(e)中的骨架,都是通过本文提出的方法处理后所提取的骨架。THRESHOLD选取的值不同时,所获取的骨架的详细程度也不同,其值选取的越小,提取的骨架越精细,但分支较多;其值选取的越大提取的骨架越简略,分支越少。图6(f)和图6(g)分别为图像在缩放为原来的80%和120%后,在THRESHOLD值为35时所获取的骨架。可以看出在原图像进行缩放后并且THRESHOLD值不变的情况下,提取的骨架具有一定的相对不变性。

matlab自带的bwmorph进行骨架提取,所用的时间较长。而使用本文提出的图像处理方法并结合bwmorph函数进行骨架提取时,虽然增加了一步图像处理的操作,但整体时间大大减少。通过本文方法处理过的图像,将有效减少非骨架像素点的数量,从而使后续提取骨架的操作随之减少。当THRESHOLD值由小变大时,提取的骨架将由“繁”到“简”,操作所用的时间逐渐减少。

4 结束语

针对传统骨架提取方法获得的骨架不精确、多毛刺、拐角不平滑、处理时间长等问题,该文提出一种图像处理方法,使得处理后的图像再次提取的骨架质量显著提高。该图像处理方法是依据骨架定义及优良骨架性质的基础上,提升可能成为骨架点的像素显著值,进而利用一个阈值对像素进行分类,判断该像素是否能够成为待提取骨架像素点。通过对阈值的控制可以实现对提取骨架的多尺度控制,进而选取适当的阈值,以便提取视觉主骨架。

实验结果表明该图像处理方法简单、快速,与传统骨架提取方法结合获得的骨架,能够方便地去除骨架中的多余分支,并且较好地保存了目标的主要拓扑结构,在骨架的拐角更加圆滑,自然。同时,在图像进行缩放并且阈值不变的情况下,也能有效保证所获取的骨架相对不变性,这一点对于骨架应用有着实际意义。

参考文献:

[1] Blum H. A transformation for extracting new descriptors of shape, MIT Press, 1967:362-380.

[2] ZHANG Guo-dong, HAN Jia-chi. Skeleton pruning algorithm based on fuzzy distance transform, Journal of Shenyang Aerospace University, 2012, 29(1):64-69.

[3] Nicu D. Cornea, Deborah Silver, Member, IEEE, and Patrick Min. Curve-Skeleton Properties, Applications, and Algorithms, Visualization and Computer graphics, 2007, 13(3):530-548.

[4] L Lam, SW Lee, CY Suen. Thinning methodologies-a comprehensive survey, IEEE Transactions On Pattern Analysis And Machine Intelligence, 1992, 14(9): 869-885.

[5] S. X. HU, Yan-Ming Xiong, Liao, M.Z.W. Tang, Y.Y.. Skeletonization of ribbon-like shapes based on local minimum modules of wavelet transform, Wavelet Analysis and Pattern Recognition, 2007:1247-1251.

[6] Wang Song-wei, LI Yan-jun, Zhang Ke, Wang Zheng. Fast target skeleton extraction algorithm, Infrared and Laser Engineering, 2009, 38(4):731-736.