基于智能手机APP的图像法检测混凝土表面裂缝研究

2021-04-07 03:07倪彤元周若虚杨学成张武毅林楚轩
计量学报 2021年2期
关键词:像素点灰度宽度

倪彤元, 周若虚, 杨 杨, 杨学成, 张武毅, 林楚轩

(1. 浙江工业大学土木工程学院,浙江杭州310023;2. 浙江省工程结构与防灾减灾技术研究重点实验室, 浙江杭州310023;3.台州元合建设发展有限公司,浙江台州318000;4. 浙江交科工程检测有限公司,浙江杭州311215)

1 引 言

裂缝是影响高强混凝土耐久性的重要因素之一,裂缝发展状态是反映高强混凝土结构服役阶段健康状态的重要指标[1]。检测和评价混凝土表面裂缝的宽度、面积、长度、深度等特征值成为评价混凝土结构健康状态的重要手段。传统的混凝土表面裂缝检测方法主要是以人工检测为主,如使用塞尺、裂缝测宽仪来检测裂缝宽度,不仅检测效率低下、检测结果主观性强,而且在许多场合下检测危险性较高,存在安全隐患[2]。随着计算机数字图像处理技术的发展,数字图像处理法检测混凝土表面裂缝因其精确、高效和非接触式、无损的检测特点逐渐成为国内外学者的研究和应用的热点[3~10]。但由于受测量原理限制,二维图像无法实现裂缝深度检测。

目前,市场流行的智能手机各项性能指标已经发展到可以与笔记本电脑、数码照相机相媲美的水平[10~12]。在文献[13,14]的研究中将混凝土表面裂缝的数字图像处理技术应用于Android手机平台,并提出了一种基于智能手机APP的混凝土裂缝特征值检测计量方法;即通过对Android手机机型摄像头的参数标定,可以确定各机型在不同拍摄距离、不同变焦镜头下拍摄图像的单颗像素点尺寸。本文基于Android手机APP以实现对智能手机相机或其他方式获取的裂缝图像进行图像灰度化、滤波去噪算法等图像处理过程,从而得到裂缝边缘信息清晰的图像,并根据像素点坐标间的几何关系计算得到除裂缝深度外的长度、宽度、面积等特征值,实现对混凝土表面裂缝特征的非接触无损检测计量。Android手机APP流程图如图1所示。

图1 裂缝检测算法研究流程图Fig.1 Flow chart of crack detection algorithm

2 混凝土表面裂缝图像处理算法

2.1 裂缝图像预处理

2.1.1 图像灰度化

彩色数字图像中的每个像素都被RGB颜色模型分为红、绿、蓝3个通道,每个通道的分量值可在0~255范围确定,因此彩色数字图像中任意一个像素点有接近1 600多万种颜色变化范围。而灰度图像作为一种特殊的彩色图像,使其中每个像素点在R、G、B这3个通道中的分量值相等,这样任一像素点的颜色变化范围为256种。图像的灰度化处理是将彩色图像转化为灰度图像的过程。灰度化可以使裂缝图像在保留整体色度、亮度等级的分布与特征的基础上减少后续图像的计算量。

数字图像处理中使用较多的灰度化方法为加权平均值法,即根据三通道的重要性赋予R、G、B不同的权值并加权平均。研究表明:人眼对绿色(G)的敏感度最高,对红色(R)次之,对蓝色(B)的敏感度最低。采用式(1)[14]对三通道分量值进行加权平均可得到较合理的灰度图像:

f(x,y)=
0.30R(x,y)+0.59G(x,y)+0.11B(x,y)

(1)

式中:R(x,y),G(x,y),B(x,y)分别为坐标(x,y)处像素点R、G、B这3个通道的分量值。

图2所示为APP图像灰度化处理前后的裂缝图像效果对比。

2.1.2 图像滤波去噪

手机相机采集裂缝图像的过程中,会受许多类型图像噪声污染。这些噪声信号影响裂缝图像成像质量,并干扰目标裂缝的提取分析,影响裂缝特征的识别与测量计算。图像降噪就是在尽可能保留图像裂缝区域细节特征的情况下抑制、减少甚至消除噪声。降噪处理效果可直接提高目标裂缝特征提取的可靠性。

中值滤波是一种基于排序统计理论的非线性滤波技术[15],该技术原理是用一个包含有奇数个像素点的滑动窗口对像素点进行处理,用该像素点邻域窗口中各点的中间值代替该像素点的灰度值,从而消除孤立的噪声点。常见的滤波窗口为3×3、5×5区域。中值滤波的处理效果很大程度上取决于滤波窗口尺寸的选择。

滤波窗口尺寸较小时,可以保护图像中的某些细节,但去噪效果不好;滤波窗口尺寸较大时有良好的噪音过滤效果,但会对图像边界造成模糊。因此,本文采用一种自适应尺寸的中值滤波算法。算法步骤如下:

(1) 选择一个3×3的初始滤波窗口Sxy,这个滤波窗口会在滤波过程中自适应地改变。

(2) 如果Zmed-Zmin>0且Zmed-Zmax<0,跳转到步骤(3);否则,增大Sxy的尺寸,重复步骤(2)。

(3) 如果Zxy-Zmin>0且Zxy-Zmax<0,则输出Zxy;否则输出Zmed。

(4) 将输出结果赋予滤波窗口中心位置(x,y)处的像素灰度值。

(5) 遍历裂缝图像中的像素点。

其中:Zmin表示Sxy中的最小灰度值;Zmax表示Sxy中的最大灰度值;Zmed表示Sxy中的灰度值的中值;Zxy表示滤波窗口中心位置(x,y)处的灰度值。

当噪声出现的概率较低时,自适应尺寸的中值滤波算法能够较快得出结果,反之若噪声出现概率较高时,需要增大滤波器窗口的尺寸。采用自适应尺寸的中值滤波算法对裂缝图像进行去噪的效果见图3。

图3 裂缝图像去噪效果对比Fig.3 Comparison of denoising effect

从图3中可以看出利用均值滤波进行裂缝图像去噪时,在一定程度上模糊了裂缝目标的边缘,对后续裂缝特征值计算带来了影响,见图3(b),而采用自适应中值滤波算法能够在达到良好去噪效果的同时保护裂缝目标的边界,见图3(c)。

2.2 基于泛洪填充算法的裂缝目标提取

泛洪填充是一种模拟流体扩散过程的算法,该算法被广泛应用在多维空间中确定连通区域的图像处理中。其基本原理是从一个选定的种子点出发,根据种子点与周围像素点灰度值的差值判断周围目标像素点是否与种子点灰度相似,以确定目标点是否属于可填充区域。满足判断,则对该点进行填充,并将该目标点作为新的种子点进行下一轮填充过程。泛洪填充有四连通和八连通两种算法,如图4所示。

图4 四连通和八连通泛洪填充算法Fig.4 Four-way and eight-way flood fill algorithm

四连通算法是指从种子点出发,对上、下、左、右四个填充方向上的相邻像素点进行判断,以确定是否对该填充方向进行扩展,见图4(a)。八连通算法则加入了左上、左下、右上、右下四个填充方向,见图4(b);图4(c)和图4(d)分别为四连通和八连通填充区域。较之四连通算法,虽然后者计算量较大、耗时较长,但对复杂区域的填充效果较好,见图4(d),在裂缝图像中识别复杂裂缝区域的“鲁棒性”强,因此本文选用八连通算法进行裂缝目标提取。

在混凝土裂缝图像中,由于裂缝目标与背景区域在边缘处的像素点灰度值存在突变,可以利用泛洪填充算法找到裂缝中的某一像素点作为种子点,实现较好地提取出裂缝目标。本文将利用泛洪填充算法进行裂缝目标提取的效果与文献[16~21]中的其他目标提取算法处理效果进行对比,结果如图5所示。

泛洪填充算法的递归函数F(x,y)如式(2)所示。

(2)

式中:f1(x,y)表示(x,y)处的像素点被认为位于裂缝区域内,将该点灰度值填充为0;f2(x,y)表示(x,y)处的像素点被认为位于背景区域内,将该点灰度值填充为255;I(x,y)表示填充条件,通过比较当前像素点与其邻域内种子像素点的灰度值之差来判断是否填充当前像素点;ξ1表示当前像素点与其邻域内种子像素点的灰度值之负差的最大值;ξ2表示当前像素点与其邻域内种子像素点的灰度值之正差的最大值。

从图5可以看出:Canny算子、Roberts算子、Prewitt算子对裂缝的边缘提取效果并不明显;Sobel算子在裂缝边缘检测的同时,无法有效滤除背景区域中的噪音;Laplacian算子作为二阶边缘检测算子,对噪音极为敏感,较难适用于复杂背景的裂缝提取;OTSU阈值分割算法作为一种自动确定阈值的全局二值化算法,处理裂缝目标与背景区域大小比例悬殊的裂缝图像的效果并不理想。

本文采用的泛洪填充算法对裂缝的提取效果较好,具有较强的鲁棒性。

图5 几种算法对裂缝目标提取效果对比Fig.5 Comparison of crack target extraction effect using several algorithms

2.3 裂缝特征值计算

经图像预处理及裂缝目标提取后,裂缝图像和背景区域得到明显区分。因此可以通过图像像素点坐标计算得到裂缝特征值所包含的像素点个数,再根据经过标定的单个像素点的实际尺寸η求得裂缝特征值,见文献[13~14]。

2.3.1 裂缝宽度计算

如图6所示,经图像处理后的裂缝图像可视为一个m×n的离散像素点矩阵,任意一个像素点i的坐标可以表示为(xi,yi)。从左至右逐列遍历裂缝图像,对每一列上的像素点从上至下遍历,令灰度值由255变为0的像素点为裂缝上边缘像素点,灰度值由0变为255的像素点为裂缝下边缘像素点,可以得到裂缝上、下边缘的像素点表达式,分别记为T(x)、G(x)。则裂缝中心骨架F(x)可表示为

(3)

对中心骨架上的任意一点x0,均可求出其法线方向函数U(x)与T(x)、G(x)的交点,其法线与裂缝上边缘的交点坐标为(x1,y1),与裂缝下边缘的交点坐标为(x2,y2),则该点处裂缝宽度的像素W可表示为

(4)

则裂缝的最大宽度Wmax可如下表示:

Wmax=η×MAX(W)

(5)

图6 裂缝曲线示意图Fig.6 Schematic of crack curve

2.3.2 裂缝长度计算

(6)

裂缝骨架长度I可表示为

(7)

图7 裂缝长度计算图Fig.7 Calculation of crack length

2.3.3 裂缝面积计算

裂缝面积可通过计算裂缝图像区域内上边缘线与下边缘线间包含的像素点个数求得,即裂缝面积S可表示为

(8)

3 混凝土表面裂缝检测APP设计

混凝土表面裂缝检测软件框架如图8所示。根据手机摄像头模组标定实验[13]可知不同CMOS (complementary metal oxide semiconductor)机型具有不同的单位像素点尺寸;且在同一放大倍数的变焦镜头下拍摄图像时,图像中单位像素点的尺寸与拍摄距离成正比关系。因此在使用一款新机型进行裂缝检测时,需进行摄像头模组标定实验来确定该机型的相机标定参数,从而在已知摄像头放大倍数、拍摄距离的情况下将裂缝所包含的像素点信息转化为裂缝实际尺寸。

图8 裂缝检测软件开发的APP框架Fig.8 Development framework of crack detection APP

裂缝检测APP的操作流程如图9所示。通过手机CMOS相机镜头成像系统采集混凝土表面裂缝区域图像,利用数字图像处理技术对裂缝图像进行灰度化、滤波去噪、裂缝目标提取等技术处理,提取出图像中的裂缝信息,输入裂缝图像的拍摄距离、摄像头放大倍数后经检测计算后得到裂缝的长度、宽度及面积,并将裂缝图像检测结果进行存储,以便后期分析。裂缝检测APP主界面如图10所示。图像选择界面见图10(a),检测计算界面见图10(b)。

图9 裂缝检测APP操作流程图Fig.9 Flow chart of crack detection APP operation

图10 裂缝检测APP主界面Fig.10 Interface of crack detection APP

4 实验结果

本文中的实验使用的手机机型为华为Mate 20 pro, 其参数如表1所示。经标定实验[13]测得华为Mate 20 pro的单位像素点尺寸与摄像头放大倍数的关系如表2所示。

为了验证APP图像法检测裂缝特征值的可行性,本文选择了一条位于复杂混凝土背景中的裂缝。经华为Mate 20 pro手机App采集图像、检测计算后,测得该裂缝的长度为129.971 mm,裂缝面积为77.631 mm2,裂缝最大宽度为1.727 mm。图11所示为APP测量结果实时显示界面,其中图中黑色箭头所指为裂缝最大宽度位置。

表1 华为Mate 20 pro手机主要性能指标参数Tab.1 Parameters of Huawei Mate 20 pro

表2 华为Mate 20 pro单位像素点尺寸特征Tab.2 Characteristics of Huawei Mate 20 pro pixel size mm/m

图11 裂缝检测APP测量结果Fig.11 Measurement result of crack detection APP

本文设计的裂缝检测APP不仅能够测量裂缝的长度、面积、最大宽度,还可通过图11中的“点击获取光标”按钮拖动光标测量裂缝中任意位置的裂缝宽度。裂缝侧宽仪是目前工程中测量混凝土裂缝宽度的常用标准仪器。

为了验证该APP对裂缝宽度的检测精度,利用高精度裂缝测宽仪(型号:HC-CK102,精度0.01 mm)对裂缝标记位置的宽度进行测量,得到标记位置裂缝宽度作为标准值,并将APP测量结果与之对比。为分析裂缝侧宽仪与APP两种方法在测量时由于位置偏差带来的实验误差,即裂缝原位误差,研究时选择了宽度值由0.60 mm至1.00 mm不等的4处测量位置并做标记,以减少原位误差,如图12所示。

图12 裂缝宽度测量位置Fig.12 Measurement position of crack width

单个像素点尺寸的增大会导致测量误差的增加。考虑工程应用,本文主要讨论单个像素点尺寸小于0.1 mm时变焦倍数、拍摄距离对测量误差的影响,将变焦倍数分成1~5倍和6~10倍两组。由表2可知5倍和10倍的单位像素点尺寸分别为0.0715 mm/m和0.0358 mm/m。

考虑检测时的工作距离,通过激光测距仪测定手机与裂缝间之间距离,并以每0.2 m为距离步长区间,将两组实验组的拍摄距离控制在0~1.5 m和1.5~2.5 m。每组用不同的相机变焦倍数采集裂缝图像。裂缝检测APP对智能手机采集到的80张裂缝图像中的4处裂缝宽度共进行320次宽度测量,平均误差为6.322%,满足实际工程检测的精度要求。其中,对裂缝位置③的误差分析结果如图13所示。

图13 APP宽度检测误差分析结果Fig.13 Error analysis results of APP width detection

图13(a)为实验机型在0 m~1.5 m的拍摄距离内利用1~5倍变焦镜头采集裂缝图像测量位置③处的裂缝宽度的40次测量结果。可以看出,测量误差在±10%以内的保证率为90%,其中使用1倍变焦镜头的测量结果波动较大,在拍摄距离大于 1 m 后,测量误差超过了10%;但随着变焦镜头倍数的提高,测量误差逐渐下降, 1~5倍变焦镜头在 0 m~1.5 m范围内的平均测量误差分别为14.884%、7.563%、4.686%、3.978%、3.916%,其中3~5倍变焦镜头测量误差在5%以内的保证率达到了70.8%。

图13(b)为实验机型在1 m~2.5 m的拍摄距离内利用6~10倍变焦镜头采集裂缝图像测量位置③处的裂缝宽度的40次测量结果。可以看出,测量误差在±10%以内的保证率可达97.5%,其中6~10倍变焦镜头的平均测量误差分别为5.23%、4.868%、4.704%、3.569%、2.566%,可满足实际工程应用的精度需求。上述实验结果表明:利用智能手机光学变焦,放大目标裂缝可以有效提高APP计量检测混凝土表面裂缝精度;与裂缝测宽仪比较,APP计量检测精度误差小于5%,满足工程应用要求。

5 结 论

(1) 基于智能手机APP的混凝土表面裂缝检测方法,是通过加权平均值灰度化、改进中值滤波算法、泛洪填充算法将裂缝目标从背景区域中提取出来,且裂缝提取效果好,具有较强的鲁棒性。根据裂缝目标像素点坐标计算得到裂缝所包含的像素点个数,结合拍摄手机机型的单位像素点尺寸特征实现裂缝特征值的计量检测。

(2) 新开发的APP裂缝检测技术能计量检测裂缝(任意点宽度、裂缝总长度、裂缝面积、裂缝最大宽度),是一种高效的混凝土表面裂缝非接触无损计量检测技术。

(3) 研究结果表明:利用智能手机光学变焦,放大目标裂缝可以有效提高APP计量检测混凝土表面裂缝精度;与裂缝测宽仪比较,APP计量检测精度误差可以小于5%,满足工程应用要求。

猜你喜欢
像素点灰度宽度
采用改进导重法的拓扑结构灰度单元过滤技术
基于灰度拉伸的图像水位识别方法研究
基于局部相似性的特征匹配筛选算法
基于5×5邻域像素点相关性的划痕修复算法
基于canvas的前端数据加密
基于最大加权投影求解的彩色图像灰度化对比度保留算法
基于逐像素点深度卷积网络分割模型的上皮和间质组织分割
基于灰度线性建模的亚像素图像抖动量计算
红细胞分布宽度与血栓的关系
孩子成长中,对宽度的追求更重要