APP下载

混凝土路面裂缝的骨架提取算法

2018-10-24安世全徐梦茹

计算机工程与设计 2018年10期
关键词:生长点毛刺细化

安世全,徐梦茹,瞿 中

(重庆邮电大学 计算机科学与技术学院,重庆 400065)

0 引 言

目前,国内外推出了一系列裂缝检测设备进行图像数据的采集,众多学者对裂缝检测算法也不断进行改进[1,2]。但是,在此基础上对图像裂缝进行骨架提取时,由于裂缝的形态不规则,细化处理后的图像裂缝通常会出现非单一像素宽度、毛刺、断裂等现象,从而影响其提取精度。

近年来,各国学者着眼于经典细化算法的研究。其中,Zhang并行细化算法[3,4]虽保证骨架在目标图像中心线上,但非单一像素,且有毛刺;Hilditch算法[5]细化效果好,但处理速度慢、通用性差;Rosenfeld算法[6]速度较快,但得到的细化图像不够平滑,对后续处理影响较大;Pavlidis算法[7]能够高效地去除多余像素,保留关键特征点,但得到的图像骨架连通性差;OPTA算法[8]能够保持原图像的拓扑结构,但细化后的图像扭曲较大,毛刺较多,不够平滑。

本文提出一种基于Zhang并行细化算法的目标骨架提取算法。首先,通过形态学操作对裂缝图像进行预处理,得到预处理后的二值图像;然后,采用Zhang并行细化算法对图像裂缝进行细化,提出一种结合模板思想,单一化骨架像素宽度的方法;最后,以较长分支为骨架主体信息的原则,采用改进的毛刺消除算法消除毛刺。

1 裂缝细化

1.1 Zhang并行快速细化算法

Zhang并行快速细化算法是由T.Y. Zhang和C.Y. Suen提出的,该算法根据所给出的判定条件来判定当前目标像素点是否可以删除,内部点、孤立点和直线端点不能删除,同时,若删除当前边界点,图像连通分量不增加,则其可以删除。

采用Zhang并行细化算法对图1(a)进行细化操作,得到细化结果如图1(b)所示。图1(c)、图1(d)为图1(b)的局部细节示意图。通过对图1(c)和图1(d)的标记区域观察可知,经由Zhang并行细化算法所得图像裂缝虽无明显失真与断裂问题,但是,其所得细化结果是非单一像素宽度的,且存在细小毛刺,因此,需要对细化后图像进行后期处理。

图1 Zhang并行细化结果

1.2 细化图像像素宽度单一化

图1结果表明,Zhang并行细化算法结果存在形成90°夹角的非单一像素宽度的像素点,为突起点,图2(a)~图2(d)为4个方向上的突起点示意图。为消除4个方向上的突起点,本文提出利用模板匹配思想对4个方向上的突起点进行消除。

图2 突起点

以图2(a)为例,对突起点八邻域像素点分布情况进行分析。设当前像素点为P1,对其八邻域像素点分布情况(图3)进行分析可知,像素点P1,P2,P8的值同时为1,是形成该方向上的突起点的必要不充分条件,当像素点P1为突起点时,像素点P4,P5,P6的值必定同时为0。因此,可以得出图2(a)所示方向上的突起点判定条件:当且仅当像素点P1,P2,P8的值同时为1,且像素点P4,P5,P6的值同时为0时,当前像素点P1为突起点。其余3个方向突起点的判定同理,可得突起点判定如式(1)所示

(1)

图3 突起点P1八邻域

设中心点为P1,其八邻域分布如图4所示。

图4 P1八邻域

算法实现步骤如下:

对细化后所得图像进行遍历,若当前点P1为裂缝点,消除满足下面4个条件的像素点P1,将其变为背景点。

(1)P2,P8值为1,且P4,P5,P6值为0;

(2)P2,P4值为1,且P6,P7,P8值为0;

(3)P4,P6值为1,且P2,P8,P9值为0;

(4)P6,P8值为1,且P2,P3,P4值为0;

对细化后所得图像进行循环迭代处理,直至没有满足上述条件的点,退出循环。

对图2(b)细化图像进行像素单一化处理,其局部细节放大实验效果图如图5所示。

图5 像素单一化效果

图5表明,利用模板匹配思想能有效消除细化处理后裂缝图像中仍存在的非单一像素宽度的突起点,从而实现裂缝骨架像素宽度单一化。

2 毛刺消除

经过像素单一化的图像裂缝,仍存在细小毛刺,需进一步处理。本文提出一种改进的毛刺消除算法,以保留较长分支为骨架主体信息的原则,消除细化后所得裂缝图像中的细小毛刺。

2.1 毛刺相关定义

裂缝骨架图像中的每一个裂缝骨架像素点,其八邻域内像素分布情况及连通性都不完全相同。为了方便叙述,结合文献[9]与文献[10],对节点、生长点、端点、步长进行定义,节点nodep为八邻域内存在两个或更多骨架点的像素点;生长点growp为八邻域内存在3个或更多骨架点,并引出毛刺的像素点,其属于节点的一种;端点endp为八邻域内仅存在一个骨架点的像素点;步长L是以像素为单位,单一像素宽度分支所具有的像素个数。根据以上定义可得节点nodep、生长点growp、端点endp的判定如式(2)~式(4)所示

(2)

(3)

(4)

其中,change为当前裂缝点P1八邻域内裂缝点到背景点变化次数,count为当前裂缝点P1八邻域内裂缝点总数。

基于方向链码去除骨架毛刺算法[11]结合细化迭代的次数给定毛刺判定的阈值如式(5)所示

(5)

其中,L为步长,ceil表示取大于等于括号内的最小整数,times为目标图像细化迭代的次数。

2.2 改进的毛刺消除

基于方向链码去除骨架毛刺算法[11]以端点为起点扫描各分支,计算其步长,与阈值进行比较,对长度小于阈值的分支进行毛刺判定,若判定为毛刺,则删除该分支。

基于方向链码去除骨架毛刺算法[11]虽然能够有效消除裂缝图像中的毛刺,但不满足保留较长分支为骨架主体信息的原则,因此,该算法所得骨架易导致细节信息丢失。

本文对基于方向链码去除骨架毛刺算法[11]进行改进,考虑到同一生长点存在多分支同时小于阈值情况,以端点为起点进行分支扫描,计算所有分支的步长,并记录;每次选取最小步长分支进行毛刺的判定与消除,以最大程度保持图像骨架主体信息。改进的毛刺消除算法不仅适用于同一生长点存在多分支同时小于阈值的情况,而且适用于同一生长点小于阈值分支数不限的情况。改进的毛刺消除算法流程如图6所示。

图6 改进的算法流程

改进的毛刺消除算法具体步骤如下:

(1)遍历单一像素宽度化的细化图像,将裂缝端点存储至序列endpseq,并将生长点及其八邻域像素点的像素值分别置为3和8。

(2)若存在生长点,则证明该裂缝图像存在毛刺,以端点为起点对分支进行扫描,计算各分支的步长,并记录于数组spurvalue。

(3)取最小步长与阈值进行比较,若该分支步长小于阈值,标记该分支,并对该分支所在生长点的分支数进行判断,若分支数大于2,则判定该分支为毛刺,删除该分支,执行步骤(4);若余留分支数小于等于2,则执行步骤(5)。

(4)对当前生长点的余留分支数进行判断,若余留分支数等于2,则对该生长点的八邻域像素点进行分析;若删除该生长点不影响图像的连通性,则删除该生长点;若删除该生长点影响图像的连通性,则保留该生长点。

(5)重复执行步骤(3),直至不再具有满足步骤(3)中条件的分支,退出循环。

(6)恢复生长点与生长点八邻域像素点,得到消除毛刺的最终结果。

3 实验结果及分析

3.1 实验评价指标

本文采取精确率(precision,P)、召回率(recall,R)[2]作为算法的综合评价指标进行实验定量分析。其定义如下

P=NP/Ntotal

(6)

R=NP/Nr

(7)

其中,NP表示提取结果中裂缝骨架像素点个数,Ntotal表示提取结果中裂缝骨架像素点总个数,Nr人工提取的真是裂缝骨架像素点个数。

3.2 实验分析

本文从实际工程图像中选取大小为400*300,不同类型的混凝土路面裂缝图像作为实验定量分析的数据测试集,实验环境为:Intel(R) Core(TM) i5-2430M CPU、主频2.40 Hz、4 GB内存。

图7(a)~图7(e)为本文改进的毛刺消除算法与基于方向链码去除骨架毛刺算法[11]的对比结果。其中,图7(a)为裂缝原图,图7(b)为像素宽度单一化结果,图7(c)为改进算法结果,图7(d)为基于方向链码去除骨架毛刺算法[11]结果,图7(e)为人工提取的真实裂缝骨架。图7(c)与表1数据表明,改进后算法能有效消除图像裂缝骨架中的细小毛刺,所提取的裂缝骨架图像与人工提取的真实裂缝基本一致,且该算法适用于各种类型的图像裂缝。

图7(c)、图7(d)中标注区域及表1数据表明,针对同一生长点多条分支小于阈值的情况,改进的毛刺消除算法保留较长分支骨架主体信息,而基于方向链码去除骨架毛刺算法[11]则是将先搜索到的小于阈值的分支视为毛刺并消除。故改进的算法符合保留较长分支为骨架主体信息毛刺消除原则。因此,改进的算法能够在最大程度上保留骨架主体信息,实验结果表明改进的算法明显优于基于方向链码去除骨架毛刺算法[11]。

图7 实验结果对比

表1 毛刺消除对比实验标注区域数据分析

图8~图10表明,改进算法的时间效率、准确率、召回率相对于原算法都有提高。准确率越高,则提取结果中正确目标所占比例越高;召回率越高,则提取结果中召回真实目标比例越高。因此,改进的算法能在一定程度上减少后续裂缝参数计算误差,提高裂缝走向分析的精确度,为后续裂缝安全等级评估提供更精确的数据。

根据表1数据、图7实验结果及各评价指标得出改进的毛刺消除算法能够精确、有效地消除各种类型图像裂缝骨架的毛刺,并能对同一生长点不同分支步长进行判断,消除较短分支,符合保留较长分支为骨架主体信息毛刺消除原则,最终实现单一像素宽度且无毛刺骨架的提取。

图8 毛刺消除算法的准确率对比

图9 毛刺消除算法的召回率对比

图10 毛刺消除算法的时间效率对比

4 结束语

本文充分考虑到混凝土路面裂缝的不规则性,采用Zhang并行细化算法进行细化,在其基础上,提出结合模板思想的突起点消除方法能够有效获得单一像素宽度的细化图像。同时,改进的毛刺消除算法满足保留较长分支为骨架主体信息的原则,最大程度地保持裂缝骨架主体信息。该算法不限于同一生长点存在多分支步长同时小于阈值的情况,同时适用于其它情况。因此,本文改进的算法能够精确、有效地实现图像裂缝的单一像素宽度、无毛刺的骨架提取。

猜你喜欢

生长点毛刺细化
阀芯去毛刺工艺研究
一种铸铁钻孔新型去毛刺刀具的应用
混合:教学模式的生长点
一种筒类零件孔口去毛刺工具
中小企业重在责任细化
“细化”市场,赚取百万财富
可抑制毛刺的钻头结构
“住宅全装修”政策亟需细化完善
不断蓬勃发展 不断涌现新生长点的无机材料
--先进无机材料论坛例记(Ⅱ)
不断蓬勃发展 不断涌现新生长点的无机材料
--先进无机材料论坛例记(Ⅰ)