APP下载

基于数字图像技术的隧道衬砌裂缝识别方法研究

2020-01-18唐钱龙谭园彭立敏曹豪荣

铁道科学与工程学报 2019年12期
关键词:链码分块灰度

唐钱龙,谭园,彭立敏,曹豪荣

(1.中南大学 土木工程学院,湖南 长沙410075;2.江西交通职业技术学院,江西 南昌330013)

随着隧道工程的不断建设和运营,我国已经逐渐从“隧道建设时代”向“隧道养护时代”过渡[1],隧道的病害问题越来越受到重视。其中裂缝是隧道衬砌最常见也是最严重的病害之一,如果未及时处理,可能会诱发其他病害如渗漏水、混凝土剥落、冻害等,严重时还可能破坏隧道的整体结构安全,因此在工程上需要对隧道衬砌结构进行定期的检测,及时发现裂缝并加以处理。目前我国隧道裂缝检测主要依靠人工判别和记录,该方法效率低,耗时长,且检测结果受人的主观因素影响较大,无法满足现代裂缝检测的需求。近几年来,随着计算机测量技术的迅猛发展,越来越多的工程领域开始使用数字图像处理结合采集设备进行无损检测与测量,公路和桥梁等领域已有学者将此技术应用到了裂缝检测上,随着隧道建设的不断发展,国内外相关学者开始着手研究适用于隧道裂缝的自动化检测系统。韩国、德国、日本已研发出不同型号的隧道检测车,但裂缝识别还要依靠人工参与,还没有成熟可靠的隧道裂缝图像识别系统。目前,基于图像处理的裂缝检测已取得了诸多的研究成果。Premachandra 等[2]针对路面裂缝用中值滤波后采用均匀分块的OTSU 分割法提取裂缝。该算法相对简单,也只适用于简单的裂缝。姒绍辉等[3]提出的基于不规则区域的高斯滤波去噪算法,但对椒盐噪声的滤除效果不理想;Oliveira 等[4]基于非监督学习设计了2 个分类器分别用于裂缝的检测和类型判断,但该算法去噪部分只考虑到了散点噪声,对于背景纹理复杂的裂缝适用性较差。Muduli 等[5]在边缘检测步骤时针对墙面裂缝图像对Canny 算子进行改进,但是提取的裂缝丢失了宽度信息,不利于后续测量。Abdel-Qader 等[6]提出了根据主成分的分析原则来进行裂缝检测的算法,该算法主要使用了特定的桥梁图像的图像库作为实验数据,实现起来比较困难而且计算量很大,花费时间长。Tsai 等[7]采用最小路径算法来检测裂缝,该算法需要手动找出裂缝点,属于一种半自动的检测方法。高泰[8]在对隧道裂缝图像降噪时提出将噪声分为点、线、块状3 类,分别采取不同的降噪方法,但需要手动选取阈值,需要大量实验且主观性较大。隧道环境内采集的裂缝图片存在曝光不足、不均、噪声严重和背景干扰等问题,现有的算法都具有一定的局限性,无法较好地解决这些问题,需要进一步进行针对性的研究来设计出适用于隧道的裂缝图片识别系统。

1 隧道衬砌裂缝识别系统流程设计

由于隧道环境及现场拍摄条件制约,所拍摄的隧道裂缝图像普遍存在着一系列等问题,每张图像都包含大量的干扰信息,所以从原始照片到最后能识别出裂缝的过程中需要进行多步流程,每一步需要完成特定的功能,如图1所示。

设计的算法主要分为4 个过程,分别为裂缝图像预处理过程、图像的滤波降噪、裂缝的识别检测、裂缝的几何特征提取。程序的主界面如图2所示。

图1 裂缝识别系统总体流程设计Fig.1 Overall process design of crack identification system

图2 裂缝图像处理系统面板Fig.2 Crack image processing system panel

2 隧道裂缝图像预处理

通常情况下,隧道里没有强光源,采集图像时一般需要阵列光源辅助照明,这时采集到的图像亮度并不合适,灰度分布也不均匀,难以突出图像细节,因此首先要对裂缝图像进行灰度校正增强。传统方法是利用线性拉伸和直方图均衡化来处理,但是均有一定弊端。采用区域自适应直方图均衡化配合Retinex 匀光算法,可以有效对隧道裂缝图像进行预处理,区域自适应直方图均衡化可以改善图像灰度范围,基于Retinex 理论的匀光算法可以使图像灰度分布更均匀。

和普通的直方图均衡算法不同,区域自适应直方图均衡化算法先将图像分块,计算图像的局部直方图,然后重新分布亮度来改变图像对比度,因此,该算法更适合于改进图像的局部对比度以及获得更多的图像细节。

图片像素的灰度值由光照分量和物体表面的反射分量2 部分叠加而成,根据Retinex 理论,图像的光照分量主要存在于图像低频部分并且整体变化平缓;而反射分量则主要存在于图像高频部分,如边缘等处,其变化比较剧烈[9]。因此可以选用多尺度高斯函数来提取图像的不均匀光照分量估计值,再用原图像与这部分光照分量做差分,即可消除不均匀光照的影响。

如图3所示,直方图均衡化在全局调整了图片的灰度分布,使图片对比度提高,但是将它用于对光照不均的图片进行处理后,会导致这种不均更加明显。区域自适应直方图均衡化结合Retinex 匀光则在局部范围内调整了像素的灰度分布,有效地平衡了光照,为后续图像滤波和分割打下了基础。

图3 图像预处理对比Fig.3 Image preprocessing comparison

3 隧道裂缝图像滤波去噪

在隧道裂缝图像常常包含大量噪声干扰,其中高斯噪声和椒盐噪声占绝大部分。目前并无在任何场景下通用的滤波降噪方法,经典的滤波方法主要包括均值滤波、高斯滤波、中值滤波、自适应平滑滤波等,将这些滤波方法应用于隧道衬砌裂缝图片上进行对比,发现效果均不是很理想,主要是因为噪声属于图像的高频分量,主要表现为像素邻域灰度值的突变,而裂缝与背景的边缘部分也会发生灰度值突变,前面几种滤波方法均无法在去噪的同时保持裂缝边缘的清晰,为此本文提出基于双边滤波的改进算法。

双边滤波具有双重滤波作用,可以在过滤高斯噪声的基础上较好的保持边缘[10],它包含了2 个高斯基滤波函数,与均值与高斯滤波采用固定滤波核不同,双边滤波的滤波核是根据不同区域实时计算得到的。在处理区域内临近像素时,不仅考虑像素空间的邻近距离、同时也考虑邻域内像素灰度的相似程度[11],然后通过对二者的非线性组合来确定最终滤波效果,确保只有邻域内灰度相似的才被一起进行加权平均。

要想在双边滤波的基础上去除椒盐噪声,首先要对椒盐噪声进行识别。椒盐噪声是一种特殊的脉冲噪声,也叫双极噪声[12],它的灰度值呈两极化,其中椒噪声灰度值非常大,接近于255;盐噪声灰度值非常小,接近于0,可以提出如下判断方法:

设置一个阈值a,可以设定椒噪声的灰度值范围为[0,a],盐噪声的灰度值范围为[255,255-a],如果某中心点像素的灰度值落在两个范围之内,即可认为该像素点为椒盐噪声点。

在进行双边滤波之前对像素点进行上述判断,即可用中值滤波的理念,用邻域像内素的中值代替此噪声点,然后再进行双边滤波。在非椒盐噪声区域,则直接进行双边滤波。算法的流程如图4所示。

为验证算法有效性,在MATLAB 中对裂缝图像进行不同滤波方法处理的仿真模拟对比,输出图像如图5所示,并以常用的峰值信噪比(PSNR)为指标比较不同算法处理算法的客观效果,结果如表1所示。

图4 双边滤波改进算法流程图Fig.4 Bilateral filtering improved algorithm flow chart

图5 不同滤波方法图像处理对比Fig.5 Image processing comparison of different filtering methods

如图5所示,均值滤波的降噪效果一般;高斯滤波平滑效果较好,但是造成了裂缝边缘的过度模糊,不利于后续裂缝提取;中值滤波处理后边缘清晰,但是降噪效果不够好;自适应平滑滤波效果介于高斯滤波和中值滤波之间;本文基于双边滤波的改进算法降噪效果最好,并且保持了裂缝边缘的清晰,有利于后续裂缝的提取。

表1 不同滤波算法对比客观评价Table 1 Comparison of different filtering algorithms

从表1可以看出,本文改进算法对隧道衬砌裂缝图片处理的峰值信噪比最高,作为滤波的客观评价指标,图像的峰值信噪比越大,其滤波降噪效果越好,这也从客观上印证了本文算法的有效性。

4 隧道衬砌裂缝图像分割

目前在图像分割领域尚无通用的分割理论,现已提出的分割算法大都是针对具体问题的[13],常用的图像分割算法可以大概有:基于边缘的分割方法、基于阈值的分割方法以及基于其他特定理论的分割方法[14]。阈值分割具有效果明显且易于实现等特点,是目前图像识别中最常用的分割方法之一。

设裂缝灰度图像的大小为M×N,f(x,y)表示坐标为(x,y)的点的像素灰度。阈值分割的目的即为确定一个阈值T,并对图片所有像素的灰度进行如下映射:

这样即可将裂缝与背景区分开,转换为只有黑色和白色构成的二值图像。如何找到这个最合适的阈值T,就决定了提取裂缝成败的关键。常用的OTSU 分割法适应不了复杂的环境,对于有剥落掉块、污渍渗水等背景不均匀的区域,采用基于自适应分块的OTSU 分割改进算法,具体流程如下:

1)计算初始图像熵,把图像均分为4 块,计算这4 块熵的均值作为新图像的熵,若分块后熵减,说明系统混乱程度减小,则进一步分块,反之,则停止分块;为避免分块太密集带来计算量过大,可规定若图像块边长小于50 像素时,也停止此块的继续分块。

2)求每个分块图像的局部阈值。

在一个分块的区域S中,先用OTSU 法求解一次阈值,记为初始阈值T0,将其分为S1和S22 个点集,裂缝包含在S2点集里,由于OTSU 算法计算出的T0容易造成欠分割,T0容易偏大,此时根据经验设置一个较低的阈值为T1=0.6T0,用T1再次对原分块图S进行分割为S3和S4,S4里基本会滤除S2中的非裂缝的背景区域,但也会消除一部分裂缝区域,使得裂缝信息不全,此时便需要边缘检测来做校对。

3)求每个分块图像的局部边缘。

在与上一步同一个分块内部,使用Sobel 算子进行边缘检测分割,提取裂缝边缘信息备用。

4)将2 种方法分割的图像进行对比校正。

将第2 步里的像素区域S2与S4做差分记为S5,将S5与第3 步提取的边缘信息做交叉对比,若S5里的像素区域与边缘区重合,则说明是裂缝区域,将这部分像素补充到S4里,若S5里的像素区域处于边缘区之外,则说明这部分是非裂缝区域,予以丢弃,则经过补充的S4为此块的最终裂缝区域。

5)图像整合。

将每个图块的分割的结果按原分块位置进行拼接,得到最终整个图像的分割结果。

算法流程如图6所示。

在MATLAB 编程环境中用不同的分割方法对裂缝图像进行仿真处理,输出图像如图7所示。

如图7所示,对于含有较多背景干扰的情况下,迭代法阈值分割和Otsu 分割的处理效果均不理想,分割后杂质仍然较多,不利于后续处理;改进的算法可提取到含杂质较少且完整的裂缝二值图像,方便后续对裂缝的测量和等级评定等操作。

图6 改进的隧道衬砌裂缝图片分割算法Fig.6 Improved tunnel lining crack image segmentation algorithm

图7 分割算法效果对比Fig.7 Comparison of segmentation algorithms

5 隧道衬砌裂缝测量与等级评定

裂缝分割成二值图像后,就可以对其进行测量和等级评定,用以判断对裂缝的后续处理。

5.1 裂缝的测量

数字图像在采集、存储和处理时,都是以像素为基本单位的,计算机处理后测量的信息也均以像素数量表示。要想测量裂缝的实际尺寸,必须对单像素进行尺寸标定。

5.1.1 相机像素尺寸标定

本文采用的数码相机为2 400 万像素的CMOS镜头,拍摄到的图片尺寸为4 208像素×5 612像素。图片中的一个像素对应的实际长度并不是固定的,它与相机镜头参数、拍摄时所用的焦距和镜头离物体的距离均有关系,所以在每一次批量采集裂缝前均需要做一次尺寸标定。

相机的尺寸标定需要一个已知实际尺寸的参照物,拍摄带有参照物的图片,则参照物的像素尺寸可以在计算机内测量得到,而实际尺寸是已知的,这样就可以达到尺寸标定的效果。可以按以下步骤进行:

1)将相机固定在支架上,到并将拍摄时的角度尽可能垂直于拍摄面,测量相机镜头到物体的距离。将高度调整好,拍摄正前方的参照物图像,比如一张A4 纸。

2)在图片处理工具中画出参考线定位A4 纸的4 条边,如图8(a)所示,标记时应尽可能放大图片以求精确贴合边界,如图8(b)。

3)测量出参照物的像素尺寸,如图8(a)中A4纸所占横向像素分布为762~3 509 pixel(像素),A4纸真实距离为210 mm,则横向距离标定为:

A4 纸纵向像素分布为1 007~4 865 pixel,对应真实距离为297 mm,则纵向尺寸标定为:

4)重复上述步骤,对像素经过多次标定可以求出平均值,作为此次最终的像素标定值μ=0.076 7 mm/pixel。

完成本次像素尺寸标定后,就可以知道本相机在不变焦,固定1.0 m 拍摄距离的情况下,单像素代表的实际距离为0.076 7 mm。

图8 相机尺寸标定Fig.8 Camera size calibration

5.1.2 裂缝长度计算

由于一条裂缝经常会沿走势发生粗细不均变化,要消除此影响,求裂缝的长度可以转化为求裂缝中心线的长度,则首先需要提取裂缝骨架,可采用Zhang-Suen 快速并行细化方法[15]得到单层像素的骨架图,如图9所示。

在裂缝骨架图的基础上,可以通过引入Freeman 链码来计算其长度,Freeman 链码又叫做方向链码,是用曲线起始点的坐标和边界点方向代码来描述曲线的方法。常用的有4 连通链码和8 连通链码,这里采用8 连通链码,在进行编码的过程中,以裂缝端点为起始点,按照图10所示的方向对依次进行编码,直到扫描完为止,得到一条裂缝的链码表示。

图9 裂缝图像细化Fig.9 Crack image refinement

图10 Freeman 链码示意图Fig.10 Freeman chain code diagram

设一条裂缝为N(x,y),使用Freeman 链码对其进行编码,而后计算链码的长度即为此裂缝的长度,计算过程如下:

式中:L为链码的长度;Na为偶数链码的个数;Nb为奇数链码的个数;A和B为分别为对应的权重参数。

在偶数链码处,方向为水平或竖直,此时长度即为像素个数,故取A=1。在奇数链码处,裂缝走向为±45°,此时分段长度为像素个数的倍,故

5.1.3 裂缝宽度计算

对于裂缝宽度,可以在为求长度所抽取的骨架基础上,统计在裂缝骨架线上每个点处裂缝法向像素点的个数,即可得到裂缝的最大及最小宽度,由于裂缝在各个局部宽度均可能不同,所以在求宽度的时候可分为局部最大宽度和平均宽度。

平均宽度容易获得,在裂缝二值图像里统计像素值为1 的个数,可作为裂缝区域的面积S,在长度L已求出的情况下,平均宽度可直接相除计算:

对于局部最大宽度,可沿裂缝骨架走势用n×n滑动窗口对整条裂缝进行扫描,通常n取值在3~5之间,通过Freeman 链码值确定局部直线的方向,如图11(a)所示。再在裂缝原二值图像沿裂缝法向确定裂缝两侧边缘的范围,如图11(b)所示,这条虚线的长度即为裂缝的局部宽度。

图11 裂缝宽度扫描示意图Fig.11 Crack width scanning schematic

在获得局部宽度b1,b2,…,bn之后,经过排序即可得到裂缝的局部最大裂缝宽度bmax。

对3 种裂缝进行类型识别和测量,结果如表2所示。

表2 裂缝测量结果示例Table 2 Example of crack measurement results

以上长宽信息均以像素为单位,根据拍摄之前的尺寸标定即可转换求得真实长宽。

5.2 隧道裂缝等级评定

现行的《公路隧道养护技术规范JTG H12—2015》[16]将纵向裂缝划分为4 个等级,不同的等级下对应着不同的处理方法,从1 到4 级分别为轻微、中等、较严重、严重,横向裂缝相应取低一个等级,如表3所示。

表3 不能确定有无发展性的衬砌裂缝的判定标准Table 3 Cannot determine the criteria for the development of lining cracks

前面已求得裂缝的走势和长宽信息,将以上表格输入MATLAB 程序中,只需分别对裂缝的长宽所在范围做2 层判断即可自动评定裂缝的等级。

6 工程实例

以长沙天际岭隧道为例,实地拍摄隧道内的裂缝图片,用裂缝测宽仪和卷尺等工具测量裂缝的长宽,用本文设计的裂缝检测系统系统进行隧道二次衬砌裂缝的识别、测量与评价,将系统测量结果与实地测量结果对比,将系统评定等级与湖南中大建设工程检测技术有限公司提供的检测报告作对比,来验证系统的有效性。

天际岭隧道内衬砌裂缝均为环向裂缝,部分裂缝出现区域同时伴随着剥落掉块或渗水,总体来看裂损状况较为轻微,裂缝等级较低。此次拍摄选择裂缝出现较为集中一段隧道,从YK0+090 开始,至YK0+120 结束,共采集含裂缝照片300 余张,采集完成后进行室内计算机图片识别和拼接,部分对比结果展示如表4。

据报告显示,天际岭隧道内裂缝均为环向裂缝,裂缝等级评定值均为1 级,本系统的等级评定结果与报告中的所有结果相吻合。

将本系统裂缝测量宽度与人工使用裂缝测宽仪测量结果进行对比,平均精准度达到94%,最大误差率12%,满足实际工程应用的要求。

表4 天际岭隧道衬砌裂缝识别评定Table 4 Identification and evaluation of lining cracks in sky ridge tunnel

7 结论

1)采用区域自适应直方图均衡化配合Retinex匀光算法,可以有效校正图像灰度分布并平衡光照,针对隧道图像噪声多的问题,提出基于双边滤波改进的算法,改进的算法可以有效去除高斯和椒盐噪声,并很好地保护了裂缝边缘信息。

2)针对有渗水、污渍、剥落等区域对隧道裂缝识别的影响,提出在图像自适应分块下结合阈值和边缘的分割算法,可以有效进行这些复杂状况下的裂缝识别,得到完整裂缝的二值图像。

3)采用相机尺寸标定,通过测量裂缝的像素尺寸转换得到其真实长度、宽度等指标,并进行裂缝等级评定。结合工程实例表明,所提出的算法对隧道衬砌裂缝的识别准确率达92%以上,验证了本文算法的有效性。

猜你喜欢

链码分块灰度
采用改进导重法的拓扑结构灰度单元过滤技术
基于灰度拉伸的图像水位识别方法研究
分块矩阵在线性代数中的应用
一种新压缩顶点链码
基于最大加权投影求解的彩色图像灰度化对比度保留算法
基于灰度线性建模的亚像素图像抖动量计算
反三角分块矩阵Drazin逆新的表示
基于自适应中值滤波的分块压缩感知人脸识别
基于多分辨率半边的分块LOD模型无缝表达
基于链码特征的几何图形快速识别算法*