滕明星,佘梦坤,何科均
(1. 重庆大学土木工程学院,重庆 400045; 2.重庆南江地质工程勘察设计院,重庆 401121)
一种桥梁裂缝信息提取的改进算法
滕明星1*,佘梦坤1,何科均2
(1. 重庆大学土木工程学院,重庆 400045; 2.重庆南江地质工程勘察设计院,重庆 401121)
采用数字图像处理技术实现桥梁裂缝信息提取一直是研究热点,本文对数字图像处理桥梁裂缝信息提取算法分割和细化两个方面进行改进,提出了改进的Kittler-Bersen二值化算法,解决了Kittler算法处理光照不均图像效果不佳和Bersen算法运算速度慢等问题,提出了改进的ZS图像细化算法,解决了ZS算法处理冗余像素效果不佳的缺陷,并通过实验对上述算法的有效性进行了检验。
桥梁裂缝;信息提取;滤波;二值化;图像细化
桥梁裂缝严重影响着桥梁的运营安全,如何及时有效提取桥梁裂缝信息一直是研究热点。目前桥梁裂缝信息提取最常用的方法是数字图像提取法[2],包括BP神经网络数字图像提取法[1]、顺序相似性探测数字图像提取法[2]、形态学分水岭数字图像提取法[3]等。
数字图像提取法通常包含图像灰度化、灰度图像增强、图像滤波去噪、灰度图像分割、二值图像形态学操作、二值图像细化、几何特征计算等步骤。目前,灰度化主要有分量法、平均值法、最大值法和加权平均值法等四种[5];灰度图像增强主要有灰度拉伸、直方图均衡化等方法[2];滤波去噪主要有均值滤波、中值滤波等方法[6];图像分割主要有边缘检测(如梯度算子、Canny算子等[2])和阈值分割(如Ostu法[7]、Kittler法[8]等)两类方法;图像形态学操作主要有腐蚀、膨胀、闭运算、开运算等方法[2,3,4];图像细化主要有Hilditch、Zhang-Suen等算法[9];几何特征计算有像素统计、曲线拟合等方法[4]。但桥梁裂缝图像存在图像噪声大、背景像素与裂缝像素重叠、图像光线较暗、裂缝与背景像素灰度值相差不大等特点,目前还没有一种算法能够实现完全准确可靠提取桥梁的所有裂缝信息,还需进一步研究上述相关算法,找出一种更可靠更有效的算法。
Kittler算法[7]受图像光照均匀的程度和梯度丰富程度影响较大,而Bersen算法[8]运算速度较慢,针对此问题,本文将两种算法组合,对灰度值位于[T-a,T+a]区间(T为全局阈值,a为区间宽度参数)的像素进行Bersen局部二值化处理,而对其他像素进行Kittler全局二值化处理,其具体步骤如下:
①获取图像的高度h和宽度w,初始化图像坐标参数(i1,j1)=(0,0);
②设置区间宽度a(a∈[10,30],a越大,处理效果越好,而计算速度越慢,本文取中间值a=20);
③计算梯度最大值累计和SGm、梯度最大值与目标像素灰度值的乘积累计和SGmg
(1)
(2)
式中,Gx=g(i1-1,j1)-g(i1+1,j1),Gy=g(i1,j1-1)-g(i1,j1+1),g(i1,j1)表示像素(i1,j1)的灰度值。
⑤若i1>h,转;
⑥若j1>w,则i1=i1+1,j1=0,转⑤;
⑦若g(i1,j1)>T+a,则g(i1,j1)=255,j1=j1+1,转⑥;
⑧若g(i1,j1) ⑨设置模板(2n+1)×(2n+1)的大小(通常n∈{5,…,9}),以(i,j)为中心,取出内核模板内的所有像素灰度值,记为集合{g0(k)},其中,k为灰度值g0(k)在集合中的位置,k=0,…,(2n+1)2-1; ⑩计算模板内灰度最大值gmax=max{g0(k)}和灰度最小值gmin=min{g0(k)}; 其算法流程图如图1所示。 图1 Kittle-Bersen算法流程图 Zhang-Suen算法[9]无法消除斜线方向的冗余像素,EPTA[10]算法虽能消除了左下角和右下角两方向的冗余像素,但无法完全消除左上角和右上角两方向的冗余像素,且会造成图像断裂,针对此问题,本文增加2个新的斜线冗余像素消除条件,并引入文献[11]中的4个斜线保留条件对ZS算法进行改进,其算法流程是先采用ZS算法对整幅图像进行细化,再通过上述消除和保留条件对斜线冗余像素进行处理,具体步骤如下: ①获取二值图像的高度h和宽度w,初始化图像坐标值(i,j)=(0,0),设置从操作标志IsModified=true; ②若IsModified=true,则IsModified=false,否则i=j=0,转; ③若i>h,则转; ④若j>w,则i=i+1,j=0,转③; ⑤取出(i,j)处的像素灰度值为g(i,j),若该点为非白点(g(i,j)≠255),转,否则更新8邻域灰度值数组nb,即nb[0]=g(i,j+1),nb[1]=g(i-1,j+1),nb[2]=g(i-1,j),nb[3]=g(i-1,j-1),nb[4]=g(i,j-1),nb[5]=g(i+1,j-1),nb[6]=g(i+1,j),nb[7]=g(i+1,j+1); ⑥计算nb的二值化数组 ⑨若nnb[0]×nnb[2]×nnb[6]=0(表示0,2,6处至少有一个黑点),且nnb[0]×nnb[4]×nnb[6]〗=0(表示0,4,6处至少有一个黑点),则转; ⑩若nnb[0]×nnb[4]×nnb[6]=0(表示0,4,6处至少有一个黑点),且nnb[2]×nnb[4]×nnb[6]〗=0(表示2,4,6处至少有一个黑点),则继续,否则转; 其算法流程图如图2所示。 图2 改进ZS算法流程图 桥梁裂缝信息提取改进算法采用平均加权法进行灰度化,采用灰度拉伸和直方图均衡化进行图像增强,采用基于高斯加权的中值滤波算法进行滤波去噪,采用Kittler-Bersen法进行二值化,采用先闭运算再开运算进行形态学操作,采用改进的ZS算法进行图像细化,采用像素统计的方法计算长度和面积,在计算其平均宽度,其流程图如图3所示。 图3 改进的桥梁裂缝信息提取算法流程图 为了验证本文系统各项功能的有效性,本文选用两张桥梁裂缝真实图像(如图4所示),并进行如下处理: 图4 原始图像 (1)对原始图像进行灰度化、图像增强处理后,采用基于高斯加权的中值滤波算法进行滤波去噪; (2)分别采用Ostu、Kittler、Niblack、改进Kittler-Bersen算法(Bersen算法处理区间宽度a=20,局部阈值窗口大小为5×5)对上述处理后的滤波图像进行二值化图像分割,其结果如图5、图6所示,各种算法运算时间如表1所示; (3)采用图像形态学操作对图5(a)和图6(a)的二值图像进行处理,采用像素统计方法计算处理后的图像中的裂缝面积; 图5 纵向裂缝二值化处理结果 图6 横向裂缝二值化图像 不同分割算法运算时间比较 表1 (4)分别采用Hilditch算法、Zhang-Suen算法、改进的ZS算法对上述处理后的图像进行图像细化处理,其结果如图7、图8所示,各种算法细化后的像素数目如表2所示;采用像素统计方法计算图7(c)和图8(c)的图像中的裂缝长度,再由面积与长度的比值计算平均宽度,计算结果如表3所示。 图7 纵向裂缝图像细化结果 图8 横向裂缝图像细化结果 不同细化结果裂缝像素点数目统计 表2 裂缝几何特征信息计算结果 表3 由上述图表可以看出: (1)在分割方面,由图5、图6可看出Ostu二值化算法处理效果最好且运算速度最快。Ostu算法是一种通过统计整个图像直方图特性实现阈值自动选取的全局阈值分割算法,由表1可看出其运算速度快,合适本文实验图像中的裂缝提取。Niblack算法是一种局部阈值分割算法,适用于细节丰富的裂缝图像,处理后能保留较多的图像细节,但运算速度极慢(见表1),但由于本文的两幅实验图像内裂缝像素较集中,图像细节信息较少,故使用该算法处理后产生了较多的噪声点(如图5(c)、图6(c)所示)。Kittler算法是一种基于图像像素水平方向和垂直方向的最大梯度累积的全局阈值分割算法,适用于梯度变化较大的裂缝图像,本文实验图像梯度变化较小,故使用该算法处理效果欠佳(如图5(b)、图6(b)所示)。而本文提出的Kittler--Bersen二值化算法是一种结合全局阈值和局部阈值的分割方法,由图5(d)、图6(d)可看出其处理效果要优于原始的Kittler算法,对适用Kittler算法的所有裂缝图像都适用且处理效果更优,同时该算法也适用于光照不均的裂缝图像处理,但由于加入了局部阈值方法导致其运算速度较Kittler算法稍慢(如表1所示)。由于裂缝图像形式多样,故本文系统设置可根据不同图像选择最合适的图像分割方法。 (2)在细化方面,Hilditch算法处理结果中含有部分分叉点(图7(a)、图8(a)中椭圆标记部分),Zhang-Suen算法和改进的ZS算法处理结果中未含有明显的分叉点,但仅通过图7(b)(c)、图8(b)(c)的结果图像来看Zhang-Suen算法和改进的ZS算法区别不大,但从表1中统计的各种算法处理后的裂缝像素点数可以直观地看出改进的ZS算法可以获得更细的单像素裂缝图像,这是斜线冗余像素消除的结果,因此计算该算法处理后的图像中的裂缝长度值更接近裂缝长度的真值。 (3)改进的桥梁裂缝信息提取算法提取两幅图像中裂缝宽度分别为 11.930 13 mm、15.138 85 mm,与实际量测的平均宽度(10.4 mm、14.3 mm)相比,其绝对误差分别为 1.530 13 mm、0.838 85 mm,相对误差分别为14.7%、5.9%,满足精度要求[5],改进算法可靠。 桥梁是一个地区经济发展的枢纽,而裂缝是危害桥梁健康最严重的因素,因此及时有效的获取裂缝信息对保障桥梁健康状态具有重要的现实意义。本文对裂缝提取过程中的部分算法进行了改进,并通过实验验证了本文系统算法的可行性。但并未涉及桥梁裂缝检测方法的研究,如何实时有效地检测出桥梁裂缝比裂缝信息提取具有更重要的现实意义,此外,本文系统还存在很多不足如不能自动以及批量处理图像,这些都是下一步需要研究的问题。 [1] 曾燕华. 基于计算机视觉的桥梁表面缺陷检测技术研究[D]. 广州:广东工业大学,2005. [2] 李强强. 基于图像处理技术的桥梁裂缝检测算法研究[D]. 洛阳:河南科技大学,2014. [3] 李强强,黎蔚. 一种改进的桥梁图像分水岭分割算法[J]. 计算机工程与科学,2015,37(3):605~610. [4] 黄卫岭. 基于图像处理技术的桥梁裂缝测量系统研究[D]. 北京:北京交通大学,2012. [5] 宋平丽. 基于视频图像的桥梁裂缝检测[D]. 武汉:武汉理工大学,2010. [6] 李旭,赵文杰,杨凯达. 一种改进的中值滤波算法[J]. 中国体视学与图像分析,2013(1):7~11. [7] 杨硕,尚振宏. 一种新的二维条码图像二值化算法[J]. 昆明理工大学学报·自然科学版,2008,33(1):43~46. [8] 张明,夏铭. 一种改进的文本图像二值化算法[J]. 科技信息,2009(27):555~556. [9] 望建国. 图像预处理的若干问题研究[D]. 南京:南京理工大学,2012. [10] 包建军,樊菁. 鲁棒的二值图像并行细化算法[J]. 计算机辅助工程,2006,15(4):43~46. [11] 陈梅,王健. 图像并行细化算法改进研究[J]. 中国印刷与包装研究,2014,6(1):30~34. AnImprovedAlgorithmforBridgeCrackInformationExtraction Teng Mingxing1,She Mengkum1,He Kejun2 It has always been a hot research topic that using digital image processing technology to realize the bridge crack information extraction. This paper improves the segmentation and refinement of bridge crack information extraction algorithm by digital image processing technology. A Kittler-Bersen binarization algorithm is proposedto solve the poor processing result of image which is uneven illumination of Kittler algorithm and the slow speed of image processing of Bersen algorithm,and an improved ZS image refinement algorithm to solve the defect that the poor result of processing the redundant pixels by ZS algorithm.Then the effectiveness of the above algorithms have been tested by experiments. bridge crack;information extraction;filter;binarization;image refinement 1672-8262(2017)06-79-05 P234 A 2017—08—18 滕明星(1994—),男,硕士研究生,主要从事误差理论及激光点云数据处理研究。 重庆市自然科学基金社会事业与民生保障科技创新专项(cstc2016shmszx0299)2.2 改进的ZS细化算法
2.3 改进的桥梁裂缝信息提取算法
3 实验分析
4 结 语
(1.School of Civil Engineering,Chongqing University,Chongqing 400045,China;2.Chongqing Nanjiang Geological Engineering Survey and Design Institute,Chongqing 401121,China)