洪汉玉,章秀华,程 莉,罗 枭,王万里
(武汉工程大学图像处理与智能控制研究所,湖北 武汉 430205)
目前,我国公路养护勘查技术已经部分实现了自动化,但是很多具体工作还是需要人工完成.人工方式效率低、投资大、安全性差,影响交通,数据精度难以保证,并且无法对采集的信息做性能分析.随着传感技术和数字图像处理技术的发展,基于视频图像的道路裂缝检测技术具有良好的经济效益和发展潜力.裂缝是公路路面的常见病害类型,属于二维线状病害.我国公路主要以沥青路面和水泥混凝土路面为主,水泥混凝土路面病害中,裂缝、破碎板、板角断裂等也属于二维线状病害.国内外对病害图像处理的测评方法主要是传统人工处理方法,通过在现场或者拍摄的车载图像来确定裂缝的信息,这种方法虽然技术要求低,但是人工成本高,有用信息量低,并且信息获取不稳定,无法进行路面病害的定量分析;龙建武提出了利用灰度校正与自适应最小误差阈值分割的裂缝提取处理方法[1],该方法能快速有效对裂缝进行提取,但仅仅能判断该区域是否存在裂缝,而无法对裂缝进行评估,不能满足现代公路管理的需求;Nejad等人提出BP神经网络方法,采用非线性分类算法对后期裂缝分类检测[2-3],这种方法能判断路面病害类型,但由于处理算法比较复杂,且无法对裂缝的性能做出统计和描述,难以推广利用;Zou研究了Crack Tree方法在裂缝提取分析中的应用[4],提出了采用张量投票算子的方法对裂缝图片进行处理,使用Crack Tree方法找到整个裂缝区域,运算速度大大提高,但Crack Tree起点和终点的确定仍然是一个有待解决的问题.
对路面裂缝进行测评的过程就是统计裂缝详细信息的一个过程.根据交通部对路面病害检测标准的要求,需要知道病害的形态如位置、长度、宽度和面积等统计信息.
笔者针对提取出的道路裂缝病害信息进行裂缝的性能分析,通过膨胀和细化处理获得裂缝骨架,利用游码和链码信息记录裂缝的几何形态特征,对裂缝检测结果进行特征定义和描述,完成裂缝病害的形态特征分析.
先采用基于非负性特征的裂缝提取方法对路面图像进行裂缝提取[5].为了连接裂缝提取过程中因灰度信息微弱而出现断裂的裂缝,采用膨胀处理方法.膨胀操作是形态学处理的基础.A和B是Z2中的集合,Ø为空集,A被B膨胀的定义为:
式(1)是以得到B的相对于它自身原点的映像并且由x对映像进行位移为基础的.A被B膨胀是所有位移x的集合,这样B和A至少有一个元素是重叠的,为了保持裂缝特征的连续性,防止裂缝提取的不完整,笔者利用膨胀处理使得部分断开的裂缝连接起来.
图像细化处理是为了提取目标的骨架,即将原图像中线条宽度大于一个像素的线条细化成只有一个像素宽的骨架,形成骨架后易于分析图像,如提取图像的特征.细化的基本思想是“层层剥夺”,即从线条边缘开始一层一层向里剥夺,直到线条的宽度只有一个像素为止.进行细化算法前要先对图像进行二值化,细化算法如下:
在图像中取检测点的8个邻域(由于是并行细化,有些模板要扩展为12邻域),如图1所示,图1(a)中o为检测点,x为其相邻点.事实上经过细化算法的8个经典模板处理后还有图1(b)和图1(c)两种特殊边沿点保留了下来.笔者在试验中的解决方法是在并行细化后再进行一次串行细化,选取图2中优化后的模板a和模板b.
图1 特殊边沿点Fig.1 Special edge point
图2中处理模板a解决了特殊边沿点1,处理模板b解决了特殊边沿点2,这是串行细化处理,以便更好分析图像.
图2 处理模板Fig.2 Processing template
游程码可用来记录连续的白色像素和黑色像素的数目[6],链码可用于边界描述和特征提取,比如角点、面积、周长等等.
图像像素的连通性可分为4邻域和8邻域.4邻域连通性指像素在4个方向延伸,用0,1,2,3方向码分别对应着上下左右4个方向;而8邻域连通性指像素在8个方向延伸,每一个方向赋以一个方向码,用0,1,2,3,4,5,6,7分别对应着8个方向.图3(a)、图3(b)分别是4邻域和8邻域方向码.笔者采用8邻域方向码,由于裂缝跟踪的需要,定义含8个元素的二维数组:Direct[8][2]={{0,1},{-1,1},{-1,0},{-1,-1},{0,-1},{1,-1},{1,0},{1,1}},其邻域方向码值为d,当前点坐标,邻域点坐标表示为:
图3 邻域方向码与方向码优先示意图Fig.3 Illustration of neighborhood direction code and direction code precedence
在跟踪过程中,当碰到多个分支时,传统的链码法则视为“干扰”而丢掉信息,同时对块图像问题也无能为力.针对上述情况,笔者引入优先级的概念,提出优先级方向码-1,1,-2,2,-3,3,4};Prior[k])%8.
分析裂缝骨架分枝信息,建立分枝结点链表.分枝信息的遍历为深度优先遍历,深度遍历按从小到大的顺序进行,越到后面,其跟踪点离根接点越远.遍历过程如下:
①按照栅格扫描顺序从上到下从左到右,找到右上角满足条件的端点(根接点),将端点指向的邻域点作为第一个结点的分支存入栈(结点分支存储图),添加坐标和方向信息,同时标记已访问点.开始遍历骨架,并计算相应的链码;
②访问自上一结点而来的分支,当遇当前分支结点时,按照优先方向码,一方面将结点除最高优先级外的其他方向存入栈,并添入相应信息;另一方面接着访问最高优先级方向的分支段,同时标记已访问接点;
③重复过程②操作,直到访问当前分支的末端点.即该点周围除来的方向外没有未被标记的点,认为自当前分支结点而来的分支段结束.接着到栈中访问下一分支;
④从栈中新的分支结点开始,按照过程②和过程③操作,直到自新的分支结点而来的分支访问到分支结束点.访问栈中下一分支;
⑤重复过程②~④操作,不断的从栈中取出新的结点分支,直到整棵树被遍历;
⑥按照①~ ⑤操作访问下一棵树,最后整幅细化图被遍历,跟踪结束.
定义结点分支的结构体Nodetree:
struct*Nodetree{DWORDx;DWORDy;DWORDd;};
其中,x为结点分支点纵坐标,y为结点分支点横坐标,d为指向结点分支点的方向.
最后一步是删除目标区域中的短链.为此笔者采用区域生长的长度阈值法删除短链,具体的操作步骤如下:
①利用链码跟踪所得到的各棵树的坐标信息,可以计算各棵树的重心坐标,利用统计特征,得到计算公式:
②笔者认为其长度小于某一阈值length的链为噪声,对其进行重点排查.以此链重心为中心,在length×length的窗口内寻找是否存在除自身外的较长的链,若不存在,则认为其为孤立的噪声点予以删除,否则,保留此链;
经过去除短链的操作后,图像上的裂缝部分几乎没有受到删除短链操作的影响,孤立的噪声链均被删除,效果较为明显.
设H为裂缝水平方向投影的长度,W为裂缝垂直方向投影的长度,则定义:
一般横向裂缝的L1比较小,在区间(0,1)中,L=L1;纵向裂缝L1比较大,在区间(1,+∞)中,L=1/L1;在区间(0,1)里,L值靠近下界0的为纵向裂缝或横向裂缝,靠近上界1的为其他几种裂缝.但是对于有一定角度倾斜的纵向裂缝,角度倾斜大到某一值后,很容易把它判属于网状裂缝.为此,采用矩形度特征以准确判断.
裂缝矩形度R定义为:
式(5)中:A0为裂缝所占的区域面积,AL为裂缝最小外接矩形的面积,R的大小反映裂缝覆盖的区域充满裂缝最小外接水平矩形区域的能力.
从公路状况评价出发,需对路面裂缝特征进行定量描述,在此定义裂缝特征结构体如下:
Typedef struct{long iType;long iTL;long i TL;long iBR;long iBR;long iCrack-Width;long iCrack Length;float f Area;long iGrade;}CRACKINFO;
(1)破损类型i Type:
iType=0表示横向裂缝;iType=1表示纵向裂缝;i Type=2表示网状裂缝.
(2)破损的位置(最小外接矩形区MER):
(3)裂缝宽度iCrackWidth和长度iCrack Length:
iCrack Width表示裂缝宽度(以像素计);iCrack Length表示裂缝长度(以像素计).
(4)破损区域的面积f Area:
f Area表示破损区域的面积,即裂缝在最小外接矩形区MER中覆盖的面积.
(5)病害程度iGrade:
以裂缝宽度为依据,0—轻,1—中,2—重.
为测试本文算法效果及性能,在微机(Pentium IV,2.40 GHz,1 G)上对大量路面裂缝病害图像进行一系列的测试,实验结果如下.
图4(a)、图5(a)、图6(a)为采集到的路面图像,图4(b)、图5(b)、图6(b)为裂缝特征图像,而图4(c)、图5(c)、图6(c)分别为膨胀处理图像.从图4(c)、图5(c)、图6(c)中可以看出,膨胀处理后将断开的裂缝连接起来了.
图4 龟裂裂缝特征处理结果Fig.4 Processing results of cracking images
图5 块裂缝图像处理结果Fig.5 Processing results of block crack images
图4(c)、图5(c)、图6(c)裂缝图片为膨胀处理后得到的图片信息,经过细化处理后分别得到图4(d)、图5(d)、图6(d).
图6 横裂缝图像处理结果Fig.6 Processing results of lateral crack images
从图4(d)、图5(d)、图6(d)统计出的裂缝形态特征如下:图4(d)中有2条裂缝,其中一条裂缝有35个节点个数,长宽比为11∶7,裂缝病害类型为龟裂裂缝,裂缝的区域如图7(a)所示,破损区域的面积大小为811 623个像素,病害程度为中.从图5(d)中统计的信息为裂缝有20个节点,裂缝长宽比为3∶4,裂缝为块裂,破损区域面积为792 369个像素,病害程度为中.从图6(d)中统计的信息为裂缝节点为0,裂缝长宽比为1∶9,为横向裂缝,裂缝定位区域如图7(b)所示,破损区域的面积大小为194 304个像素,病害程度为轻.
图7 裂缝区域Fig.7 Pavement crack area
笔者提出了道路病害形态特征的图像分析方法.利用形态学中膨胀和细化处理,提取裂缝骨架.采用链码和游程码统计裂缝的拓扑和几何信息,记录裂缝节点个数和位置、裂缝的形态和长度等信息,便于对裂缝进行定量分析.实验结果表明该方法能定量地对道路病害形态特征进行分析,为道路病害的检测提供科学依据.
致谢
北京星通联华科技发展有限公司和中交路桥(北京)科技有限公司对该算法进行多次测试,在此表示感谢!
[1]龙建武,申铉京,陈鹏海.自适应最小误差阈值分割算法[J].自动化学报,2012,38(7):1134-1144.LONG Jian-wu,SHEN Xuan-jing,CHENG Penghai.Adaptive minimum error thresholding algorithm[J].Acta Automatica Sinica,2012,38(7):1134-1144.(in Chinese)
[2]NEJAD F M,IAKERI H.An optimum feature extraction method based on Wavelet-Radon Transform an Dynamic Neural Network for pavement distress classification[J].Expert Systems with Applications,2011,38(8):9442-9460.
[3]韩宏,杨静宇.神经网络分类器的组合[J].计算机研究与发展,2000,37(12):1488-1492.HAN Hong,YANG Jing-yu.Combination of neural network classifiers[J].Journal of Computer Research and Development,2000,37(12):1488-1492.(in Chinese)
[4]ZOU Qin,CAO Yu,LI Qingquan,et al.Crack Tree:Automatic crack detection from pavement images[J].Pattern Recognition Letters,2012,33(3):227-238.
[5]洪汉玉.现代图像图形处理与分析[M].武汉:中国地质大学出版社,2011.HONG Han-yu.Advanced processing and analysis for image and graphics[M].Wuhan:China University of Geosciences Press,2011.(in Chinese)
[6]鲁光泉,许洪国,李一兵.基于链码检测的直线段检测方法[J].计算机工程,2006,32(14):1-3,10.LU Guang-quan,XU Hong-guo,LI Yi-bing.Line segment detection based on chain code detection[J].Computer Engineering,2006,32(14):1-3,10.(in Chinese)