扩展功能
文章信息
- 彭博, 罗楠欣, 蒋阳升, 陈成, K C P WANG
- PENG Bo, LUO Nan-xin, JIANG Yang-sheng, CHEN Cheng, K C P WANG
- 基于双层连通性检测的路面裂缝图像去噪算法
- A Denoising Algorithm for Pavement Cracking Images Based on Bi-layer Connectivity Checking
- 公路交通科技, 2015, Vol. 31 (11): 7-13,26
- Journal of Highway and Transportation Research and Denelopment, 2015, Vol. 31 (11): 7-13,26
- 10.3969/j.issn.1002-0268.2015.11.002
-
文章历史
- 收稿日期: 2014-08-27
2. 西南交通大学 交通运输与物流学院, 四川 成都 610031;
3. 西南交通大学 综合运输四川省重点实验室, 四川 成都 610031;
4. 西南交通大学 综合交通运输智能化国家地方联合工程实验室, 四川 成都 610031;
5. School of Civil & Environmental Engineering, Oklahoma State University, OK, 74078, USA
2. School of Transportation and Logistics, Southwest Jiaotong University, Chengdu Sichuan 610031, China;
3. Key Laboratory of Comprehensive Transportation of Sichuan Province, Southwest Jiaotong University, Chengdu Sichuan 610031, China;
4. National-provincial United Engineering Laboratory of Integrated and Intelligent Transportation, Southwest Jiaotong University, Chengdu Sichuan 610031, China;
5. College of Civil and Environmental Engineering, Oklahoma State University, OK 74078, USA
20世纪70年代以来,路面破损图像自动识别技术受到广泛重视,研发了许多路面破损图像检测系统,如日本Komatsu系统(分辨率2 048×2 048)[1]、美国PCES系统(1 024像素/8英尺)[1]和DHDV (分辨率3 704×2 048)[2]、中国CiCs路面检测车(分辨率3 056×2 048)。许多先进的路面检测系统均能采集精度达1 mm/像素的路面图像;同时,也出现了许多图像处理算法,其中,裂缝图像自动识别备受关注。由于路面图像包含大量噪音,裂缝识别的研究工作主要集中在图像增强和图像分割[3]。图像增强包括频域方法(如高低通滤波器)和空域方法(如中值滤波[4]、直方图均衡化[5]),能改善图像视觉效果、突出感兴趣的区域,大都对灰度图像进行处理;图像分割则基于区域方法(如OTSU分割[3]、动态阈值法[6])或边界方法(如Canny[7]等边缘检测算子、小波边缘检测[8, 9]、基于裂缝种子生长的边缘检测算法[11])将图像分为许多感兴趣的区域,获得裂缝二值图像。
由于图像通常受到杂物、砂石和油污等影响,分割后获得的裂缝二值图像大多存在孤立噪声[3, 12],对此,文献[4],[13]采用中值滤波去除裂缝图像噪声;文献[14]采用长线段与原图进行与操作和判断黑色像素所占比例的方法去除图像孤立噪声点;文献[15]设定路面噪声区域的周长小于20像素,从而去除孤立噪声。综观这些算法,它们的去噪效果并不令人满意:中值滤波平滑3×3邻域,具有模糊效果;文献[14]的方法在3×3邻域内进行处理,容易破坏边缘特征且无法完全消除孤立噪声;文献[15]的方法能消除规定尺寸的孤立噪声,但在1 mm/像素的图像中去噪能力十分有限。
为了消除孤立噪声、保护边缘细致特征,本文针对1 mm/像素的路面裂缝二值图像去噪处理设计了基于双层连通性检测的去噪算法,包括像素连通性检测、孤岛噪声消除和裂缝子块去噪3个部分;然后,提出了算法流程并探讨参数的选择;最后,对算法性能进行测试分析。
1 像素连通性检测算法通常裂缝目标尺寸较大且其像素紧密相连,而孤立噪声则为散点或尺寸较小、像素连通性较差的不规则块状。如果能计算每个像素所连接像素的数目,就知道该连通区域的尺寸,通过设定连接像素数目的阈值,就可以判断该像素及其所连通的区域是否为噪声,这就是像素连通性检测算法的基本思想。下面介绍一些与算法相关的定义。
(1)搜索方向。检测像素连通性时前进的方向即为搜索方向,分为原始方向和拓展方向[16]。每个像素指向8个相邻像素的方向为原始方向,依次编号为0~7,每一个方向又有3个拓展方向,如:方向1的拓展方向为0,1,2;方向2的拓展方向为1,2,3,如图 1所示,这样每次搜索都朝着原来方向的正负45°范围内前进,保持搜索方向的一致性。
|
| 图 1 搜索方向 Fig. 1 Search directions |
(2)噪声判定标准。本文将路面图像噪声定义为:缺乏连通性的、与周围目标像素相对孤立的散点或连通点集,即任意被判定为目标物的像素,若其连通长度L0≤ 阈值L,则视为噪声予以剔除。
二值图像中一般以黑色像素(像素值为0)代表裂缝目标,白色像素(像素值为255)为背景,本文也采用这种二值化原则,只需要对黑色的像素进行连通性检测。对于一幅二值化处理后的裂缝图片,像素连通性检测算法从图像左上角像素开始,有如下3个步骤,处理效果见图 2(c)。
|
| 图 2 去噪实例 Fig. 2 Examples of denoising processing |
(1)若像素值为0,进入(2);否则,进入(3);(2)沿着图 1所示的搜索方向进行像素连通长度计算,以方向0为例,若该相邻像素值为0(目标物),则中心像素的延伸长度R1=2;继续沿着方向0的拓展方向0,1,7搜索,若方向7的像素为0,则R1=3;再继续沿着7的拓展方向0,6,7搜索,若有像素为0,R1=4,依次类推。最后获得中心像素8个方向的延伸长度R1~R8,令R=max{R1,R2,…,R8},那么中心像素的连通长度L0 ≤ 2R-1,只要R ≤ (L+1)/2,就有L0 ≤ L,则所检测像素为噪声,予以剔除;否则,作为目标物保留下来。然后,进入(3);(3)按照从左到右、从上至下的顺序,扫描下一个像素,并进入(1)判断该像素值是否为0。
2 孤岛噪声消除算法连通性检测算法执行后,保留下来的均为连通长度L0>L的不规则连通区域,如果某个区域尺寸较小且距离周边任何区域都较远,那么,该区域很可能也是噪声块。如图 3所示,子块U与W尺寸均较小,但U相对孤立,连通性差,更可能是噪声;而W距离大子块V很近,连通性较好,更可能是目标像素。因此,设计算法剔除孤立的区域,并命名为孤岛噪声消除算法。
|
| 图 3 孤岛噪声示意图 Fig. 3 Schematic diagram of insular noises |
孤岛噪声消除算法主要依靠半径为r的环形去噪模板(图 4)进行,有如下4个步骤,处理效果见图 2(d)。
|
| 图 4 半径为5个像素的环形去噪模版 Fig. 4 Annular denoising mask with radius of 5 pixels |
(1)选取去噪模板。图 4所示为r=5像素的去噪模板,类似地,还可以设计6,7等其他半径值的模板;
(2)判断像素(i,j)是否为黑色,若是,进入(3),否则,进入(2)对下一个像素进行处理;
(3)判断像素(i,j)所在的连通子块是否为孤岛噪声。以图 4的去噪模板为例,计算模板中处于圆形边缘位置36个像素的值,如像素(i-6,j-3),(i-6,j-2),(i-6,j-1)。如果这些像素值均为255,表明像素(i,j)所在的连通子块与周围的黑色像素割裂开了,为孤岛噪声,将这36像素包围的区域像素值均改为255;否则,像素(i,j)值不变。进入(2)对下一个像素进行处理;
(4)重复(2)~(3),应用去噪模板对图片中所有黑色像素进行计算处理。
3 裂缝子块去噪算法像素连通性检测和孤岛噪声去除算法针对单个像素进行处理,前者可以消除连通长度L0≤L的噪声,后者可以剔除半径≤r的孤立区域。例如,L=7,r=5时,可消除长度≤7 mm的噪声和半径≤5 mm 的孤立区域。一方面,路面噪声长度和半径常达到几厘米,故L和r较小时去噪能力比较有限。另一方面,一张3.5 m×2.0 m的路面图像多达7 000 000 个像素,L和r值每增加1,图像处理的计算增量将非常惊人。因此,为了提高去噪能力并降低计算成本,拟用较小的L和r值处理图像并进行8×8降维处理,然后针对8×8子块设计动态阈值法判定是否为噪声,最后剔除连接长度较短的子块,以保护裂缝的连续性。
3.1 裂缝子块初步识别将图像分为8×8的子块,每个子块含有的目标像素数量为0~64,通过设定阈值t判断其是否属于裂缝子块。若t值过高,会获得过少的裂缝子块;反之,就会获得过多的裂缝子块,据此,提出了一种动态方法确定阈值t,以避免这种情况。令某子块目标像素数目为n(0≤n≤64),对于一张路面图像,每设定一个t值都会获得相应数量的裂缝子块。经过图像测试,n=0时,显然不是裂缝子块;n=1~15时,可能为裂缝子块,而n>15时,大都为裂缝子块。令ti=i,i=1,2,…,15,获得相应的裂缝子块数量为Ni。合理的裂缝子块数量N应介于max{Ni}和min{Ni}之间,于是将{Ni}的平均数作为N的最佳估计值,当|N-Ni|最小时,相应的ti则为t的取值,从而识别裂缝子块。
以子块为基本单元,应用前文基于连通性检测的去噪算法剔除连接长度小于等于Y的裂缝子块。例如,当Y=5时,就可以根据裂缝子块初步识别图像和原二值图像删除长度和面积分别达4.0 cm和3.2 cm2的目标区域。裂缝子块识别和去噪处理如图 2(e)和图 2(f)所示。
4 算法实现 4.1 算法流程将像素连通性检测算法、孤岛噪声消除算法和裂缝子块去噪算法结合在一起,构成了一个完整的二值图像去噪算法,流程如图 5所示。应用Visual Studio 2008的C++语言和OpenCV编程实现整个算法,处理实例如图 2所示,其中,步骤(1)设定L=7,r=5和Y=7;步骤(2)消除连通长度≤L的目标像素,见图 2(c);步骤(3)消除孤岛噪声,见图 2(d);步骤(4)以Y为阈值进行裂缝子块识别和去噪,见图 2(e)、图 2(f);最后,结合步骤(3)和(4)的处理结果,提取裂缝子块内部的目标像素,见图 8(d)。可以看出,算法结合像素和裂缝子块两个层级进行计算处理,具有以下优点:(1)保留了大尺寸目标;(2)保护了像素连通性和细致的边缘特征;(3)对二值化图片具有通用性。
|
| 图 5 去噪算法流程 Fig. 5 Procedure of denoising algorithm |
本文算法能精确计算像素和子块连通长度,要剔除噪声,就必须明确噪声的尺寸。于是,首先需要设定L,其值越大,则消除的噪声尺寸越大,消除量越多;反之,噪声尺寸越小,消除量也越小,如图 6所示。对于r,其值越大,则可以消除的噪声块越大,却容易漏检孤立噪声;若r较小,去噪尺寸较小,但对孤立噪声比较敏感,容易剔除它们。图 7便显示了r=5和r=9时对图 6(b)进行孤岛噪声消除的效果差异。最后,Y的选择与L的原理一致,不再赘述。综上所述,算法能剔除的噪声最大长度为8×Y,最大面积为8×8×Y。
|
| 图 6 连通性检测对比 Fig. 6 Comparison of connectivity checking |
|
| 图 7 孤岛噪声消除对比 Fig. 7 Comparison of insular noise removal |
路面裂缝图像的噪声尺寸较小(长度约为5 cm左右),因而可取L=7。再经过L=3,5,7,r=5,7,9,Y=5,7组合测试路面图像,发现L=7,r=5,Y=7时(去噪长度和面积为56 mm和448 mm2)能较好地消除油污、散落颗粒和随机噪声,程序运算量也处于较低水平。因此,对于路面裂缝图像去噪处理,推荐参数取值为L=7,r=5,Y=7。此外,算法也适用于其他领域的图像识别与去噪处理,只是需要根据实际情况(主要是噪声尺寸)调整,L,r和Y。
5 去噪算法性能分析 5.1 算法评价指标算法优劣需要定量的指标来衡量,现有研究大都采用准确率来衡量图像处理算法的优劣[14],但准确率具有一定的局限,例如:对于一张有裂缝的路面图片,裂缝检测算法检测到了1 000个像素,其中900个判断准确,准确率高达90%,但实际上图片有2 000个裂缝像素,它只正确地检测到了45%的裂缝像素,因此算法并不好。为了充分反应算法性能,引入了信息检索领域常用的准确率-召回率(P-R)[17]。
P和R越高越好,但很多情况下它们是矛盾的,因此需要综合考虑。F1值是最常用的综合判定指标,它是P和R的加权调和均值。F1越大,表明算法结果越准确、全面,性能也就越高。
中值滤波是经典的去噪方法之一,计算简单、容易实施;长线段与原图进行与操作和判断黑色像素所占比例的方法不会造成模糊效应,在众多孤立噪声消除算法中性能较优,两者都常用于路面裂缝识别等领域的图像处理。为了验证本文算法性能,分别应用中值滤波去噪法(算法1)、长线段与原图进行与操作和判断黑色像素所占比例的方法(算法2)和本文算法(算法3,L=7,r=5,Y=7)对图 2(b)进行去噪处理,结果如图 8(b)~8(d)所示,手动标注的实际裂缝图像见图 8(a)。可以直观地看出,本文算法更有效地去除了孤立噪声。从实现过程来看,本文算法仅以L=3对图像进行连通性检测,就相当于对3×3邻域进行计算处理,即可实现算法1和算法2的去噪效果,且像素连续性更好。因此,本文算法适用范围远大于算法1和算法2。
|
| 图 8 去噪算法效果对比 Fig. 8 Comparison of denoising algorithm effects |
为了进一步定量评价算法优劣,对40张512×512路面图片(1 mm/像素)进行OTSU阈值分割,然后应用各算法消除噪声,并与手动标注的实际裂缝图像进行对比,最后根据式(2)~式(7)计算P,R和F1值(见表 1),图 9~图 11分别为P,R和F1的分布曲线。
| 图片序号 | 算法1(中值滤波) | 算法2(长线段和黑色像素比例法) | 算法3(本文算法) | ||||||
| P | R | F1 | P | R | F1 | P | R | F1 | |
| 1 | 76.73 | 91.57 | 83.50 | 85.01 | 90.10 | 87.48 | 94.92 | 94.10 | 94.51 |
| 2 | 81.13 | 83.88 | 82.48 | 87.56 | 85.09 | 86.31 | 96.74 | 86.52 | 91.35 |
| 3 | 79.93 | 90.14 | 84.73 | 88.67 | 88.14 | 88.41 | 93.51 | 94.20 | 93.85 |
| … | … | … | … | … | … | … | … | … | … |
| 40 | 40.97 | 99.53 | 58.05 | 42.75 | 97.92 | 59.52 | 44.23 | 98.21 | 60.99 |
| 平均值 | 78.43 | 79.97 | 76.97 | 81.43 | 82.20 | 80.85 | 85.06 | 85.80 | 84.55 |
|
| 图 9 准确率曲线 Fig. 9 Precision curves |
|
| 图 10 召回率曲线 Fig. 10 Recall rate curves |
|
| 图 11 算法F1值 Fig. 11 F1 values of different algorithms |
由表 1的性能指标均值可看出:准确率从高到低依次为算法3(85.06%)、算法2(81.43%)和算法1(78.43%);算法3召回率(85.80%)最高,算法2(82.20%)和算法1(79.97%)紧随其后;F1值从高到低依次为算法3(84.55%)、算法2(80.85%)和算法1(76.97%)。对40张图像处理结果进行对比分析表明:算法3准确率高于算法2的有31例(高0.58%~16.19%),只有9例低于算法2(低0.59%~1.42%);算法3准确率高于算法1的有32例(高0.64%~19.98%),8例低于算法1(低1.19%~4.37%),见图 9。召回率方面,算法3高于算法2的有38例(高0.29%~10.05%),高于算法1的有29例(高0.29%~23.05%),11例低于算法1(低0.28%~2.05%),见图 10。算法3的F1值只有两例低于算法2(低0.44%和1.09%),其余均高于算法2(高0.20%~12.06%)和算法1(高0.74%~19.19%),见图 11。
因此,无从准确率、召回率和F1的均值还是分布曲线来看,算法3都优于算法2,算法2则优于算法1。最终,根据表 1和图 11,本文算法的F1值可比算法2提高0.20%~12.06%,比算法1提高0.74%~19.19%。
5.3 二值化方法对算法性能的影响分析跟其他二值图像去噪方法一样,本文算法的性能受二值化图像质量的影响。为了分析这种影响,对1张路面灰度图像分别以0,5,10,…,255为阈值进行图像分割,获得52张二值图像;接着用本文算法对它们进行去噪处理;然后手动标注实际裂缝图像,与52张去噪图像对比,计算出52组P-R-F1值,绘制成如图 12所示的曲线。通常情况下,路面裂缝像素灰度值较低,而阈值分割将灰度图中低于阈值的像素判断为裂缝目标,阈值越低,判断为裂缝的像素越少越准确,漏检的裂缝像素越多,反之,则准确性越低、漏检像素越少,于是,随着阈值的增加,P逐渐降低、R逐渐升高,F1值则呈现出先上升后下降的趋势(见图 12)。当选取合适的阈值(图 12中大约为100)进行二值化处理时,F1值最高,因此,结合性能优良的图像分割方法(如OTSU分割),本文算法去噪性能更佳。
|
| 图 12 分割阈值对P-R-F1的影响 Fig. 12 Impacts of threshold segmentation on P-R-F1 |
针对路面裂缝二值图像中孤立噪声较多、边缘连续性较差的情况,本文基于像素和裂缝子块两个层级的连通性检测设计去噪算法,并进行了测试分析,结果表明:(1)本文算法既能消除孤立噪声,又能保护裂缝的边缘特征及其连续性,性能优于中值滤波、长线段和黑色像素比例法,适用于路面裂缝识别;(2)算法可调整3个参数,以满足不同规格的去噪需求;(3)单独应用准确率或召回率衡量图像处理算法性能具有一定的局限,准确率-召回率是更科学合理的评判标准;(4)算法效果受二值化处理过程的影响,当结合性能优良的图像分割算法时,效果更佳。综上所述,本文算法能消除连通长度较短的目标像素和孤立区域,保留大尺寸目标且不破坏像素连通性,有利于裂缝连接与识别,同时也可推广应用到其他领域的图像处理,对二值化图像去噪具有普适性。
| [1] | WANG K C P. Design and Implementation of Automated Systems for Pavement Surface Distress Survey[J]. |
| [2] | WANG K C P,HOU Z Q,GONG W G. Automated Road Sign Inventory System Based on Stereo Vision and Tracking[J]. |
| [3] | 孙波成,邱延峻. 路面裂缝图像处理算法研究[J]. 公路交通科技,2008,25(2):64-68. SUN Bo-cheng,QIU Yan-jun. Pavement Crack Diseases Recognition Based on Image Processing Algorithm [J]. Journal of Highway and Transportation Research and Development,2008,25(2):64-68. |
| [4] | JITPRASITHSIRI S. Development of a New Digital Pavement Image Processing Algorithm for Unified Crack Index Computation[D]. Salt Lake City:University of Utah,1997. |
| [5] | 张娟,沙爱民,孙朝云,等. 基于相位编组法的路面裂缝自动识别[J]. 中国公路学报,2008,21(2):39-42. ZHANG Juan,SHA Ai-min,SUN Chao-yun,et al. Pavement Crack Automatic Recognition Based on Phase-grouping Method [J]. China Journal of Highway Transport,2008,21(2):39-42. |
| [6] | 王茜蒨,彭中,刘莉. 一种基于自适应阈值的图像分割算法[J]. 北京理工大学学报,2003,23(4):521-524. WANG Qian-qian,PENG Zhong,LIU Li. An Adaptive Method of Image Segmentation[J]. Transactions of Beijing Institute of Technology,2003,23(4):521-524. |
| [7] | CANNY J. A Computational Approach to Edge Detection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence,1986,8(6):679-698. |
| [8] | ZHOU J,HUANG P S,CHIANG F P. Wavelet-based Pavement Distress Detection and Evaluation[J]. Optical Engineering, 2006,45(2):409-411. |
| [9] | NEJAD F M,ZAKERI H. A Comparison of Multi-resolution Methods for Detection and Isolation of Pavement Distress[J]. Expert Systems with Applications,2011(38):2857-2872. |
| [10] | HUANG Y X,XU B G. Automatic Inspection of Pavement Cracking Distress[J]. Journal of Electronic Imaging,2006,15(1):185-188. |
| [11] | GAVILÁN M, BALCONES D, MARCOS O, et al. Adaptive Road Crack Detection System by Pavement Classification[J]. Sensors, 2011(11): 9628-9657. |
| [12] | 马常霞, 赵春霞, 狄峰, 等. 自然环境下路面裂缝的识别[J]. 工程图学学报, 2011, 32(4): 20-26. MA Chang-xia, ZHAO Chun-xia, DI Feng, et al. Road Crack Detection under Natural Environment[J]. Journal of Engineering Graphics, 2011, 32(4): 20-26. |
| [13] | 赵轲. 路面裂缝图像自动识别系统研究[D].西安: 长安大学, 2009. ZHAO Ke. The Design and Research of Pavement Crack Identification System[D]. Xi'an: Chang'an University, 2009. |
| [14] | 李刚, 贺昱曜. 不均匀光照的路面裂缝检测和分类新方法[J]. 光子学报, 2010, 39(8): 1405-1408. LI Gang, HE Yu-yao. A Novel Image Detection and Classification for Pavement Crack under Non-Uniform Illumination[J]. ACTA Photonica Sinica, 2010, 39(8): 1405-1408. |
| [15] | LI L, CHAN P, RAO A, et al. Flexible Pavement Distress Evaluation Using Image Ananysis[C]// Applications of Advanced Technologies in Transportation Engineering, Minneapolis: ASCE,1991: 473-477. |
| [16] | CHENG H D, CHEN J R, GLAZIER C, et al. Novel Approach to Pavement Cracking Detection Based on Fuzzy Set Theory[J]. Journal of Computing in Civil Engineering, 1999(13): 270-280. |
| [17] | ZOU Q, CAO Y, LI Q Q, et al. CrackTree: Automatic Crack Detection from Pavement Images[J]. |
2015, Vol. 31
