一种路面裂缝数字图像处理和识别的方法
技术领域
本发明属于深度学习图像处理领域,涉及一种识别路面病害并自动提取方法。本发明适用于道路裂缝检测方面。
背景技术
随着经济持续增长,我国公路建设历程里程逐步攀升。尽管我国公路建设已经取得了良好的成绩,但是公路养护却没有跟上。由于种种原因,几年后,路面病害(裂缝)逐渐产生。如果裂缝发现及时,可以避免裂缝损害的加重,并避免随之产生的其他病害。因此,路面裂缝识别的及时性就变得尤为重要。
由于缺少足够的基础理论和技术支撑,目前大部分裂缝识别工作都需要大量的人工和成本,通过现场检查或基于路面裂缝现场照片进行人工识别,速度慢,耗时长。同时,目前对路面裂缝图像识别的研究多采用背景噪声少、光照均匀的图像,而背景噪声和光照不均匀是沥青路面实景图像需要处理的两个严重问题。其次,即使有些图像处理算法非常复杂,但由于摄像机和环境条件的不同,导致不同图像之间存在较大差异,可能仍然不适用于路面裂缝图像的批量处理,计算速度和效率也相对较低。因此本文致力于通过一种基于图像处理技术的综合框架,实现路面裂缝的形态识别,计算裂缝的长度,为未来进一步研究路面裂缝的特征值奠定基础。
发明内容
本发明采用的技术方案为一种路面裂缝数字图像处理和识别的方法,具体步骤如下:
步骤一:路面裂缝图像预处理
首先采集路面裂缝图像。然后,读取路面裂缝图像。最后,将路面裂缝图像进行灰度化处理。图像预处理为后续进行深度图像处理奠定了基础。具体为:
采集路面裂缝图像。采用ZOYAN-RTM智能道路检测车对沥青路面裂缝进行现场图像采集。检测系统采用先进的传感器系统安装在车辆上,采用车载计算机和嵌入式集成多传感器同步控制单元。自动捕捉路面损伤图像,采集路面车辙、路面平整度、路面结构等信息。
路面损伤检测系统配备分辨率为2048像素/线的线性阵列摄像头和红外激光路面辅助照明系统,保证路面裂缝的全天候检测。当试验车在白天以5-100公里/小时的速度行驶时,车身后方的线扫描摄像头可以连续高速拍摄路面图像。同时,利用红外滤光片去除阳光产生的阴影。这些高质量的图像具有足够的分辨率,确保人眼可以直接识别路面裂缝。
读取图像。采用JPG格式作为路面图像读取的格式。以便于对大量图片的存储,提高系统处理识别裂缝的效率。同时,为了实现对大量路面裂缝图像的处理,采用批量处理的方法。首先,对文件夹中的图片进行标号。然后,对依次读取的图片进行处理和识别。最终,输出图像的识别结果,在一定程度上不仅节约了时间,还提高了数据的可视性,有利于分析路面裂缝的相关特征值。
图像灰度化。为便于对路面裂缝图像的处理和识别,需要将图像进行灰度化。对路面裂缝图像处理的主要目的是将图像中的背景区域和裂缝区域分开,从而将裂缝从图片中提取出来。灰度化后的图像主要反映的是图片中各个物体的亮度大小,从而可以根据不同物体的亮度大小来对裂缝进行提取。因此,在去除图像中的彩色信息可以帮助图像的后续处理。
彩色图像分为三个通道R(红色)、G(绿色)、B(蓝色),每个通道都有256级不同的亮度。图像中的每个像素点会展现出上述三个通道按比例融合之后的颜色,这就形成了彩色图像。然而灰度图像只有一个通道,也就是说灰度图像由256级不同大小的灰度值组成,黑色为0,白色为255。
由于图像是由像素点组成的阵列,因此若以图像的左上角为原点,垂直向下为y轴正方向,水平向右为x轴正方向,则通过一组关于坐标的函数来表示不同位置的像素点的灰度值。因此一幅彩色图片表示为:
f(x,y)=(R,G,B) (1)
式中,f(x,y)为原始图像;R为红色通道亮度值;G为绿色通道亮度值;B为蓝色通道亮度值。
一幅彩色图片转化成灰度图片表示为:
f(x,y)=(0.299×R+0.587×G+0.114×B) (2)
式中,f(x,y)为原始图像;R为红色通道亮度值;G为绿色通道亮度值;B为蓝色通道亮度值。
步骤二:基于匀光算法的图像增强
采用Mask匀光算法对路面裂缝图片进行批量处理,调整图像的亮度分布,在基本保持原有图像亮度的同时,对图像中的细节信息进行增强,提高图像的对比度,为提取裂缝信息奠定基础。Mask匀光算法是一种由高斯低通滤波器、图像差分和分段线性灰度拉伸组成的复合型算法。具体为:
高斯低通滤波器。高斯低通滤波器是一种频域中的滤波器。通过傅里叶变换可以将图像从空间域变换到频域。路面裂缝图像中的裂缝边缘和其他灰度急剧变化(如噪音)影响图像傅里叶变换的高频含量。因此,可以通过衰减高频达到提取不均匀的低频信号。
高斯低通滤波器的二维形式可表示为:
式中,H(u,茀)为u×v大小的高斯低通滤波器的二维离散函数;u和v为频率域中图像的坐标;D0为截止频率;D(u,v)为距频率矩形中心的距离。
图像差分运算。将原始图片与经过高斯低通滤波器过滤出来的图像进行差分运算,去掉原始图像中不均匀的成分,从而获得亮度均匀的高频内容。由于高频内容主要包括裂缝信息,因此差分出来的图像中会保留更多的裂缝信息。由于经过差分后的图像的与原始图像在亮度上会有偏差,因此将差分后的图像整体加上原始图像平均灰度的对数,这样既可以起到对原始图像亮度修正的作用,又可以防止图像由于直接加图像平均灰度而造成部分像素点高于255灰度级所产生的亮斑噪音。图像差分运算可表示为:
G(x,y)=g(x,y)-μ(x,y)+log(average) (4)
式中,G(x,y)为经过差分后的图像;g(x,y)为路面裂缝原始图像;μ(x,y)为经高斯低通滤波器过滤的图像;log(average)为原始图像平均亮度的对数。
分段线性灰度拉伸。分段线性灰度拉伸是对图像中不感兴趣的高灰度背景区域或灰度特别低的噪音进行压缩,对感兴趣的裂缝灰度级范围进行扩展,增强图像的对比度。分段线性灰度拉伸示表示为:
式中,g(x,y)为灰度拉伸后的图像;f(x,y)为原始图像;a,b为原始图像灰度范围;c,d为处理后的图像的灰度范围。
步骤四:图像分割
步骤三中的图像匀光和图像增强的算法,为本步骤进行图像分割奠定基础。经过匀光和增强的图像,其图像质量和对比度有了很大的提高,因此在此基础上进行图像分割是有效的。图像分割,首先进行最小值池化,然后,通过Sobel边缘检测算子勾勒裂缝轮廓。最后,引入自适应阈值有效地将图像进行二值化处理,为图像后处理做好铺垫。
1)最小值池化
灰度图像中,黑色代表的灰度级是0,白色代表的灰度级是255,其余不同灰度级在0到255之间。一般情况下,路面裂缝图像中颜色深的往往是裂缝,而背景相对来讲颜色浅。也就是说裂缝的灰度级比背景灰度级要小。然而,由于裂缝面积小,并且在图像中所占的比例小,因此采用后面的边缘检测算子检测裂缝边缘时,会出现误检或漏检的情况。为了突出裂缝,增强裂缝与背景的对比度,同时通过适当改变图像尺寸来减少图像中的噪音,因此采用最小值池化对路面裂缝图像进行处理。
最小值池化通常利用模板进行操作,该模板核可以是任意大小,但必须是正方形的,比如1×1,2×2。经过最小值池化处理后的图像大小如公式6和公式7所示。
M2=(M1-F)/S+1 (6)
N2=(N1-F)/S+1 (7)
式中,F×F为模板大小,M×N为图像大小,S为模板每次移动的距离。通过最小值池化达到调整图像大小的目的,因此将边界填充设置为0。
从原理上来看,滤波器的尺寸和步长影响着图像处理后的尺寸和质量。其中,步长对图像尺寸影响很大,为了不过分改变原始图像的尺寸,将步长设置为1。同时,因为尺寸为4的最小值池化滤波器峰值产生的图像信噪比和平均梯度更大,即图像拥有相对较多的细节和相对较高的质量,因此选择尺寸为4的最小值池化滤波器。
2)Sobel边缘检测算子
Sobel算子是一阶偏导模板,是通过对图像进行加权平滑、微分计算的原理来处理图像。Sobel算子的模板与Prewitt算子的模板比较类似,只是在中心系数上使用了2。该系数的使得Sobel算子在平滑噪声方面比Prewitt算子更具有优势。在处理导数时抑制噪声是很有必要的,因为这些算子是根据图像梯度进行检测的,裂缝与背景和噪音与背景都具有较强的灰度变化率,因此在检测裂缝的基础上又能平滑噪音显得尤为重要。Sobel的3×3算子结构可表示为:
自适应阈值图像二值化。自适应阈值分割方法基于像素点邻域特性,使用多个阈值对图像进行分割。自适应阈值首先将图像分成若干子块,然后计算每个子块的阈值。一般有两种计算阈值的方法,一种是计算子块的平均值,然后加上某一常数进行修正,由此获得该子块的阈值。另一种方法是采用高斯模板对子块进行卷积,将卷积的数值加上常数进行修正,从而得到该子块的阈值。最后每一子块根据相应的阈值进行二值化,高于阈值的像素则变成白色,低于阈值的像素则变成黑色。
步骤五:图像后处理
步骤四对图像进行了裂缝边缘的提取,效果较为显著。但是图像背景依旧有很多噪音。因此需要对图像进行后处理,从而消除背景中的小面积噪音,对裂缝进行一定程度上的修复。最后提取裂缝的骨架,展现裂缝的形态,便于对裂缝形态进行识别。本发明在图像后处理部分,首先使用了形态学闭运算,运用该运算首先对图像背景中的噪音进行初步腐蚀。然后,采用最大连通域去噪,目的是为了进一步去除背景区域出现的小面积噪音。接着,对裂缝进行均值池化,通过调整图像的尺寸去除图像中尺寸较小的噪音点。最后,提取裂缝骨架,展现裂缝的形态信息。
形态学闭运算。对图像进行形态学运算是可以在一定程上对裂缝的形态进行修补和复原,一方面可以对图像中的噪声进一步过滤,尤其是对椒盐噪声处理效果显著。另一方面裂缝细节可以被增强。形态学开闭运算是基于腐蚀和膨胀操作的。腐蚀运算可以腐蚀图像中的亮区域,膨胀黑色区域。换句话说,膨胀运算可以使裂缝区域变粗,增强裂缝细节,但也会增强噪声强度。而膨胀运算可以扩展图像中的亮区域,腐蚀图像中的暗区域。也就是说膨胀运算可以细化图像中裂缝区域,腐蚀黑色噪音点,但另一方面会丢失一些裂缝细节。
而形态学开闭运算则是将膨胀和腐蚀运算组合在一起。开运算采用先腐蚀再膨胀的顺序,而闭运算采用先进行膨胀再进行腐蚀的顺序对图像进行处理。开运算可以对目标区域的轮廓进行平滑,断开物体之间狭窄的联系,消除细小的噪点。而闭运算可以对目标区域部分轮廓进行平滑,但与开运算相反的是,闭运算往往会弥补两个物体之间细小的间断或边界线断裂的地方,还可以填充目标物中细小的孔洞。
由于形态学开闭运算在去除噪音的同时会一定程度上造成裂缝的不连续,因此通过分析开闭运算的算法功能,考虑到本发明主要采用最大连通域去噪的方法对噪音点进行消除,因此选择形态学闭运算。这样可以在保证裂缝连续的基础上对背景噪音进行初步去除。
闭运算采用结构元对图像进行处理。结构元的形状通常有长方形、正方形、椭圆形和十字形,同时结构元的尺寸也是多种多样。本发明中选择对图像先采用4×4的正方形结构元对图像进行闭运算,再采用6×6的十字形结构元对图像进行闭运算。
最大连通域去噪。为了实现最大连通域去噪,需要对图像进行扫描,标记出图像中每个连通域。连通域的标记一般采用四邻域法或八邻域法。四邻域法主要扫描标记点周围上下左右的四个点,八邻域法在四邻域法的基础上增加对角线邻域的扫描。本发明采用用八邻域法对图像进行扫描。
由于图像中的噪音连通域的数量并不多,因此对图像进行连通域扫描时,本发明采用基于轮廓的标记法来跟踪图像的连通域,具体步骤如下:
(1)扫描整个图像,采用从左至右从上至下的原则遍历图像。
(2)生成一幅与原始图像一样的图像,然后对原始图像连通域的轮廓进行识别时,将识别出来的像素点与复制出来的图像的像素点进行对应,将对应的像素点设置为白色或者其他颜色,这样就可以勾勒出连通域的轮廓,且保留原始图像的信息。
(3)对图像进行扫描时,如果A点为扫描到的第一个外轮廓点而且没有被标记。那么就从A点出发开始扫描,并且给A点一个新的标号,然后按照一定的搜素策略进行边界跟踪。最终扫描到所有与A在同一轮廓上的边缘点,并回到A起点,此时,需要将这个路径上的点标记为与A点一样的标号。这样,一个连通域的边界就被勾勒出来了。
(4)扫描完连通域的外轮廓边缘之后,需要扫描一下连通域内部是否有内轮廓边缘。需要从每一个已经被标记号的外轮廓边缘点出发,扫描该点的右侧像素值,并将这些像素标记为与外轮廓点一样的标号,如果遇到黑色像素点则停止,该黑色一般为同标号的不同位置的外轮廓点。
(5)在第(4)步中,如果向右扫描时遇到了一种特殊点,该点的正下方是黑色像素点且不是外轮廓边缘上的点,那么该像素点为内轮廓像素点。则需要从B开始,按照一定的边界搜索策略对内轮廓边缘进行跟踪。由于B的标号与外轮廓点的标号相同,因此在标记与B点所在同一个内轮廓的像素点也会被赋予相同的标号。
(6)当遍历完内轮廓上所有的像素点后,这些内轮廓点可以向右继续扫描,并将这些像素标记为与外轮廓点一样的标号,直到扫描到下一个黑色像素点为止。扫描过程中如遇到(4)和(5)的情况,则重复操作。直到遍历图像中所有的连通域的边界。
标记完图中的连通域的边界后,需要计算闭合边界所包围的面积,并将面积大小由小至大依次排列。经过反复试算,选择每幅图像中连通域面积大小排在第70%的面积大小作为删除小面积连通域的阈值。也就是说,低于这个面积的连通域都会被删除并填充成白色,而只有高于该面积的连通域才会保留下来。
均值池化。为了去掉图像中边界上零星的噪音点,本发明采用均值池化对图像进行处理。
均值池化与最小值池化的原理相同,如公式6和公式7所示。
均值池化可以获得某一区域的均值大小,由于图像是二值图像,即图像中的灰度级只有0和255,因此均值后的图像会出现其他灰度级的像素点。由于噪音点的黑色区域小,四周包围了白色区域,因此噪音点均值池化后像素点灰度级往往篇高,也就是颜色更浅。相反,裂缝的黑色区域更大,周围白色区域较小,因此裂缝区域经均值池化后的像素灰度级更小,接近于黑色。于是,本文采用固定阈值法对图像进行二值,从而去掉噪音点。也就是说,高于某一灰度值的像素点,将会变成白色,而低于该阈值的像素点将变成黑色。另一方面,均值池化对图像尺寸的调整也又助于消除小面积噪音点。
然后对均值池化后的图像进行二值化,本文采用最简单的固定值二值化方法对图像进行处理。经过统计发现,大部分噪音点均值池化后的像素值在100左右,所以本文选择100作为二值化的阈值,其原理可表示为:
式中,g(x,y)为二值化后的图像;f(x,y)为输入图像;T为分割阈值。
经过反复对比和试验,选择尺寸为7的滤波器,滤波器步长选择1。
提取骨架。为了进一步提取裂缝的形态,本发明提取了路面裂缝的骨架。骨架顾名思义,就是用一条线表达出裂缝的走向趋势,这样处理可以仅利用少量像素来表达裂缝形态。一方面,可以直观且简化地表现出路面裂缝的形态信息,另一方面可以减少图像的存储空间,为存储大量处理后的图像提供便利。提取骨架的本质就将图像中的目标区域进行细化,因此本发明采用细化的算法对裂缝进行骨架提取。骨架提取方法有很多,本发明采用查表的方法实现对图像裂缝的骨架提取。该方法的具体步骤如下。
(1)需要对图像采用八邻域扫描法,采用从左至右从上到下的原则对图像进行遍历。
(2)在扫描的过程中需要判断像素点是否为骨架上的点,从而判断是否删除该像素点。判断像素点是否可以删除的原则主要有以下四点:
1)目标内部点不可以删除
2)目标鼓励点不可以删除
3)直线的端点不可以删除
4)如果一个点是边界点,如果去掉该点之后,不会增加连通域的数量,那么该点可以被删除,否则需要保留下来。
(3)具体判断某一像素点能否被删除需要通过查图像处理骨架细化表的方式来解决。由于本发明采用的是八邻域扫描法,因此在扫描像素点时,需要对某一像素点周围八个邻域进行标号,且不同的位置的权重使用的是不同的。
(4)根据(3)所得八邻域标号及权重来计算中心像素点的价值,该点的价值等于八邻域权重与对应图像总的二值灰度级的加权平均。
(5)在映射表中查找第231位的数字是多少。映射表主要由0和1组成,0代表不可以删除该像素点,1代表可以删除该点。映射表一共有256个,与八邻域权重是对应的。
步骤五:裂缝类型判断和评估
本发明首先采用投影法将裂缝图像分为横向裂缝、纵向裂缝和斜向裂缝这三类。然后,计算裂缝的像素长度。最后对图像进行批量处理,判断基于上述图像处理技术的路面裂缝初步识别的精度。
判断裂缝类型。采用投影法对裂缝类型进行判断。经过处理的二值图像其裂像素值是黑色的,其灰度值是0,而背景是白色,其灰度值为255。将图像中的像素点的灰度值分别向X轴和Y轴投影,可表示为:
式中,x(i)为在X轴上投影的灰值和;y(i)为在Y轴上投影的灰值和;M为图像水平轴像素点个数;N为图像垂直轴像素点个数;f(x,y)为原始图像。
路面裂缝图像在两个方向上的灰度值分布具有一定规律,这种规律主要表现在灰度值的波动性。纵向裂缝的X轴的灰值波动性强于Y轴的,横向裂缝的Y轴的灰值波动性强于X轴,而斜向裂缝的X轴和Y轴的波动性强度大致相同。
因此,引入标准差来量化这种波动性,可表示为:
式中,Xσ为路面裂缝图像在X轴上灰值的标准差;Yσ为路面裂缝图像在Y轴上灰值的标准差;M为图像水平轴像素点个数;N为图像垂直轴像素点个数;μ1为在X轴上投影的灰值均值;μ2为在Y轴上投影的灰值均值;xi为投影在X轴上的每个像素点的值;yi为投影在Y轴上的每个像素点的值。
根据两个方向上的灰值标准差,对裂缝类型划分的标准可表示为:。
Xσ>1.5Yσ (14)
Yσ>1.5Xσ (15)
式中,Xσ为路面裂缝图像在X轴上灰值的标准差;Yσ为路面裂缝图像在Y轴上灰值的标准差
满足公式14时,认为该裂缝为纵向裂缝;满足公式15时,则认为该裂缝为横向裂缝;既不满足公式14也不满足公式15时,则认为是斜向裂缝。
裂缝长度计算。基于OpenCV对裂缝长度进行检测,首先采用cv2.findContours标记出图像中的裂缝骨架,然后采用cv2.arcLength计算裂缝骨架的长度。
由于没有记录路面裂缝图像集中的裂缝的真实长度,因此,本发明计算出裂缝长度为像素长度。因此,若要获得图像中裂缝的真实长度,应该知道一幅图像中裂缝的真实长度和计算出来的像素长度,根据二者比值就可以计算出其他图像中的裂缝长度,由此可以将计算出来的长度与实际长度进行对比,从而了解计算精度。
附图说明
图1技术路线图。
图2图像批量读入代码图。
图3智能检测系统拍摄的典型路面裂缝现场照片。
图4灰度图示意图。
图5Mask匀光算法流程。
图6原始图像。
图7傅里叶频谱。
图8高斯低通滤波器传递函数的透视图。
图9经滤波器过滤出的背景图。
图10经过差分运算后的图像。
图11经过Mask匀光增强算法处理后的图像。
图12最小值池化示意图。a)原始图像b)池化后图像
图13不同尺寸的滤波器处理对比图。a)尺寸为1b)尺寸为2c)尺寸为3d)尺寸为4e)尺寸为5f)尺寸为6
图14闭运算示意图。a)结构元b)原始图像c)膨胀后的图像d)腐蚀后的图像
图15经过形态学闭运算后的图像。a)4×4正方形结构元处理后图像b)6×6十字形结构元处理后图像
图16八邻域示意图。
图17基于轮廓的边界跟踪。a)跟踪外轮廓边缘b)搜索内轮廓边缘c)跟踪内轮廓边缘d)搜索其他轮廓
图18最大连通域去噪后的图像。
图19均值池化示意图。a)原始图像b)池化后图像
图20均值池化后的图像。
图21提取骨架特殊点示意图。a)物体内部点b)连通域连接点c)直线端点
图22八邻域扫描法计算权重示意图。a)八邻域标号b)八邻域权重
图23映射表示意图。
图24提取骨架之后的图像。
图25三种裂缝类型的原始图像。a)纵向裂缝b)横向裂缝c)斜向裂缝
图26不同类型的裂缝的投影图。a)纵向裂缝b)横向裂缝c)斜向裂缝
图27边缘检测算子检测结果对比图。a)Prewitt算子b)Sobel算子c)Scharr算子d)Laplacian算子
具体实施方式
现实案例采用ZOYAN-RTM智能道路检测车对沥青路面裂缝进行现场图像采集。通过将现场采集回来的图像进行分类,并采用多种尺寸的正图像,对含有300张图片的样本集进行路面裂缝图像批量识别。这些原始图像中的裂缝主要分为三种基本形态,横向裂缝(125张)、纵向裂缝(125张)、斜向裂缝(50张)。路面裂缝的三种基本形态如图25所示。
在基于匀光算法的图像增强中通过定性和定量两种评价方法对比了Mask匀光法和基于电子印相机原理的匀光法。
定性评价:从视觉上来看,上面两张结果输出图像大致相同,但是基于电子印相机原理的匀光算法处理后的图片中含有细小的波纹的纹理,视觉上不如Mask匀光算法。另外,Mask匀光算法的对比度比第二种算法要强一些。
定量评价:采用均方误差、峰值信噪比、平均梯度三方面进行综合分析。具体为:
1.均方误差
均方误差也就是标准差。在数学上主要反映一组数据偏离平均值的程度,也就是数据的波动性大小。主要反映了处理之后的图像与原始图像之间的差异程度,它可以用来评价处理后图像与原始图像相比的变化程度。该指标的值越小,说明处理后的图像与原来图像所包含的信息更加接近。该指标的计算如公式可表示为:
式中,M和N分别为图像的长宽;f(x,y)为原始图像;
为处理后的图像。
2.峰值信噪比
峰值信噪比主要用来评价图像经压缩、传输或增强等处理前后的质量变化情况,在均方误差的基础上建立起来的。该指标的值越小,说明图像信号受干扰的程度越高,图像质量越差。该指标的计算可表示为:
式中,MSE为均方误差;L为图像的灰度范围,本发明取255。
3.平均梯度
平均梯度主要反映了图像的细节信息,一般来讲,该指标的值越大,说明图像的细节信息越多,图像的对比度越大,因而图像越清晰。该指标的计算过程可表示为:
式中,M和N分别为图像的长宽;f(x,y)为原始图像;Δxf(x,y)为像元在行上的梯度;Δyf(x,y)为像元在列上的梯度。
上述指标的运算结果如表1所示。
表1两种算法的相关指标计算
从表1可以看出Mask匀光的均方误差比基于电子印相机的匀光的值小,说明Mask匀光相对于基于电子印相机的匀光来讲更接近原始图像,且相对于原始图像的变化程度相对较小,说明更多的保留了原始图像所包含的信息。峰值信噪比方面,Mask匀光比基于电子印相机的匀光的值更大,说明前者处理出来的图像信号受干扰的程度小,图像质量更高。平均梯度方面,Mask匀光比基于电子印相机的匀光的值更大,说明前者图像信息细节更多,图像的对比度更大。
通过定性和定量的分析,可以看出Mask匀光算法性能优于基于电子印相机的匀光算法,因此选择Mask匀光算法。
在图像分割最小池化中进行了尺寸从1到6的滤波器各指标数值的定量对比,如表2所示。
表2图像各指标数值
从表2可以看出图13a)和b)的均方误差和峰值信噪比都是0,说明与匀光后的图像相差较小,没有达到最小值池化增强裂缝与背景对比度的目的,因此排除尺寸为1和2的滤波器。从均方误差来看,图13c)与后面三幅图相差较多,说明后面三幅图与原图差异会更加显著,因此排除尺寸为3的滤波器。图13d)、e)、f)的三个指标相差不多,因此选择峰值信噪比和平均梯度更大的图像,也就是选择图像细节相对较多和质量相对较高的图像。因此选择尺寸为4的最小值池化滤波器。
边缘检测算子中将Prewitt算子、Sobel算子、Laplacian算子、Scharr算子进行对比。从图27可以看出边缘检测算子对图片的检测性能均表现不错,可以清晰的看出图片中的裂缝轮廓。另外,由于图像中背景噪音比较严重,所以这四幅图中均显示出了很多白色的斑点,但Prewitt和Sobel算子对噪音的抑制相对更强。各算子相关指标数值如表3所示。
表3各算子相关指标数值
从均方误差来看,Scharr检测算子的数值最大,Prewitt和Sobel检测出来的边缘图像的均方误差最接近,且数值比较小。表明Prewitt和Sobel处理后的图像相对来讲更接近匀光后的图像。从峰值信噪比来看,这些数值相差不多,其中Scharr检测算子的最小,Prewitt和Sobel的数值接近且相对较大。说明Prewitt和Sobel检测出来的图像抗噪性能相对来讲更强,图像质量较高。最后看平均梯度,可以看出Scharr检测算子的值最大,Prewitt和Sobel的比较接近且相对较低。表明Scharr检测算子检测出来的图像对比度更强,细节更多。综合来看,Scharr检测算子检测出来的图像的对比度更强,细节更多,但同时噪音也比较严重。而Laplacian检测算子检测出来的图片在各方面表现不是很优秀。Prewitt和Sobel的检测效果相对较好,图像质量和抗噪效果较好。
综上,Sobel边缘检测算子算法简单高效,而且检测效果较好。因此,选择Sobel边缘检测算子作为图像分割的手段之一。
图像后处理,形态学闭运算中选择对图像先采用4×4的正方形结构元对图像进行闭运算,再采用6×6的十字形结构元对图像进行闭运算,如图15所示。
从图15可以看出经过第一次处理后的图像中,虽然与分割后的图像相比,背景噪音减少了,裂缝的形态基本浮现出来,但是噪音点依旧很多。但是经过两次闭运算处理后的图像的背景噪音点少了很多,同时裂缝的基本形态也保留的很好。
从图15b)中可以看出经过两次形态学闭运算处理后的图像的背景中有许多黑色的圆点噪音。由于裂缝是黑色的,噪音也是黑色的,这使得去除噪音且保留裂缝是一件比较困难的事情。但是不难看出,虽然裂缝和噪音灰度级相同,但它们的面积却相差很多。裂缝的面积大,噪音点虽然数量多,但是每个噪音点的面积小。因此基于面积实现对噪音点的去除。经最大连通域去噪的图像如图18所示。
为了去掉图像中边界上零星的噪音点,采用均值池化对图像进行处理。经过反复对比和试验,选择尺寸为7的滤波器,滤波器步长选择1。最终结果如图20所示。可以看出图像的噪音已经基本去除,且裂缝的形态保持的很好。
提取骨架过程中具体判断某一像素点能否被删除需要通过查表的方式来解决。由于采用的是八邻域扫描法,因此在扫描像素点时,需要对某一像素点周围八个邻域进行标号,且不同的位置的权重使用的是不同的,如图22所示。根据图22来计算中心像素点的价值,该点的价值等于八邻域权重与对应图像总的二值灰度级的加权平均。在映射表中查找第231位的数字是多少。映射表主要由0和1组成,0代表不可以删除该像素点,1代表可以删除该点。映射表一共有256个,与八邻域权重是对应的。该表如图23所示。因此第231个数字是0,所以该像素点应该保留。
经过骨架提取算法处理后的图像如图24所示。可以看出该骨架的提取效果很好,可以完整的将裂缝的骨架表现出来。
裂缝识别中,对300张裂缝图像进行检测,其中包括125张纵向裂缝,125张横向裂缝和50张斜向裂缝。先将原始图像进行分类,将纵向裂缝、横向裂缝和斜向裂缝分别标记1、2和3并生成一个数组。根据判断裂缝类型的条件,对处理后的图像进行标记。将输出的标记与原始图像的标记进行对比,从而计算出识别精度。最终,采用本发明方法检测后的精度为87%。
裂缝长度计算如表4所示。
表4裂缝长度
其计算出裂缝长度为像素长度并为计算真实裂缝长度提供思路。