基于灰度极小值的路面裂缝检测算法
2024-03-04陈满余苑玮琦
陈满余,苑玮琦
(1.沈阳工业大学视觉检测技术研究所,沈阳 110870;2.辽宁省机器视觉重点实验室,沈阳 110870)
1 引言
早期的路面裂缝检测主要以人工目检为主。随着数字图像处理和深度学习技术的发展,许多经典方法和深度学习方法被应用于路面裂缝检测。经典方法方面,文献[1]提出了一种改进的加权邻域像素分割的路面裂缝检测算法;文献[2]提出了一种多阈值潜在裂缝区域检测方法;文献[3]提出了一种局部二值模式(LBP)和支持向量机(SVM)的路面裂缝检测方法,通过人为设计特征让机器学习自主学习特征成为了可能;文献[4]提出了随机结构森林的路面裂缝检测框架CrackForest。近年来随着硬件设备的迅猛发展,深度学习方法在路面裂缝检测中的应用得到了十分广泛的研究,文献[5]提出了一种特征金字塔和分层增强网络(FPHBN)的路面裂缝检测算法;文献[6]提出了一种无监督多尺度融合的路面裂缝检测算法;文献[7]提出了DeepLabv3+的路面裂缝检测网络及像素级裂缝量化算法。由于强调获得更精确的结果和维护上下文信息,研究越来越倾向于端到端的深度学习过程,文献[8]提出了DenseNet 和反卷积网络的裂缝像素级检测方法;文献[9]提出的深度卷积网络CrackU-net 避免了假阳性的检测问题,但巨大的参数量增加了时间成本;文献[10]提出了基于层次特征融合和连接注意机构的路面裂缝检测方法。基于文献调研,在此提出一种基于灰度极小值的路面裂缝检测算法。
2 路面裂缝检测算法
2.1 路面裂缝检测原理
路面在长期使用过程中受车辆载荷和自然环境等因素影响,会出现裂缝、车辙、凹槽、结构层破坏等病害,对交通安全构成潜在的隐患。这些病害最初以裂缝的形式出现,后期导致结构层破坏等更严重的病害。路面裂缝主要分为横向、纵向、块状、网状四种类型,不同类型路面裂缝如图1 所示。
图1 路面裂缝类型
裂缝灰度图像及分布情况分析如图2 所示。路面灰度图像中裂缝区域与其它区域相比亮度较低。在图2(a)可见裂缝在图中呈现暗区域。在图2(b)给出的路面裂缝灰度剖面分布曲线中,横坐标代表像素点位置,纵坐标代表像素点位置的灰度值。
图2 裂缝灰度分布
可见裂缝暗区域的灰度分布曲线呈山谷状(图中BCD 区域),将其定义为凹线段;凹线段的底部代表裂缝中心点(C 点)。凹线段定义如下所述:
若灰度剖面分布曲线上任意像素点P 的灰度值为F(P),其相邻两点对应的灰度值分别为F(P-1)和F(P+1),若P 同时满足如下二式:
则P 为极小值点,对应于图中的A 点和C 点。
若P 同时满足如下二式:
则P 为极大值点,对应于图中的B 点和D 点。
将灰度剖面分布曲线中A、B、C 三点组成的线段定义为凸线段,B、C、D 三点组成的线段定义为凹线段。路面裂缝灰度图像的灰度分布曲线由许多相邻的此类凹凸线段组成。由分析可知裂缝区域的灰度分布为凹线段,且凹线段底部的灰度极小值点为裂缝的中心点,满足条件的灰度极小值点的集合即构成整条裂缝。
此外,同一条裂缝的对比度也存在变化,如图3所示。高对比度裂缝标记为H,低对比度裂缝标记为L,由灰度分布曲线可知高对比度裂缝的凹线段灰度极小值点与背景存在明显的灰阶差,而低对比度裂缝凹线段灰度极小值点与背景之间的差异不大。
图3 同一裂缝对比度差异及灰度分布分析
2.2 裂缝特征提取算法
2.2.1 路面裂缝特征分析
按照从左到右、从下到上的方向遍历裂缝图像,计算并标记整幅图像凹线段灰度极小值点的坐标和灰度值信息,以直方图的方式进行统计。统计结果如图4 所示,观察灰度值出现频数随凹线段极小值点灰度值的变化情况,可见其符合正态分布。
图4 整幅图像灰度极小值点直方图
2.2.2 路面裂缝病害异常数据提取
若一组样本数据在等精度重复有限次测量的基础上满足正态分布,则可利用3σ 准则分析异常值。σ 是指当前样本数据的标准差,数据落在±3σ 范围内的概率为99.73%,落在±3σ 范围外的概率仅为0.27%。可知在有限次数据测量中落在±3σ 范围之外的概率是小概率事件,因此通常将等于3σ 的误差定义为极限误差。若样本数据中某个数据残余误差的绝对值大于3σ,则为异常数据,应剔除。根据路面裂缝整幅图像凹线段灰度极小值点满足正态分布的特点,采用准则提取裂缝异常数据,过程如下:
式中,Xi代表第i 个极小值点灰度值;n 代表极小值点个数;μ 和σ 分别代表灰度极小值的期望和标准偏差。将图4 的极小值点带入,可算出图3 中的点H满足XH-μ>3σ;点L 满足XL-μ>σ。因此可采用3σ高低阈值提取裂缝特征,其中高阈值TH=μ-3σ,低阈值TL=μ-σ,数学模型如下:
2.2.3 多方向裂缝24 邻域激活重构算法
对介于高、低阈值之间的特征点进行分析,可知两者的区别是低对比度裂缝特征点的24 邻域,原理如图5 所示,其存在高阈值特征点;而背景干扰点的24 邻域无高阈值裂缝特征点。
图5 正转时码盘相位波形
基于上述分析,所提方法是基于双阈值多方向激活限制特征裂缝线条生成,其原理是扫描介于高、低阈值特征点之间(图5 中P 点)的24 邻域内的高阈值个数PNum,数学模型如下:
若PNum≥1,将其当作裂缝特征点激活,反之将其当作背景干扰点去除。不同扫描方向激活结果不同,且第n+1 次的激活结果依赖于第n 次的激活结果,所以将扫描起始点分别设为路面裂缝图像的四个顶点,进行多方向扫描激活,并将四个方向的激活结果按照最大原则合并后作为裂缝特征激活重构结果。
不同类型裂缝的特征提取激活重构结果如图6所示。可知在裂缝特征被完整提取的前提下,保留的伪裂缝处于分散状态,为了使最终的检测结果更加符合裂缝的真实损害程度,需要设计专用于去除伪裂缝的算法。
图6 裂缝特征多方向激活重构结果
3 伪裂缝去除算法
为保证提取到足够多的裂缝细节信息以实现不同对比度裂缝的激活重构,将不可避免保留部分噪声干扰,形成伪裂缝。对其特征做多方向激活重构,结果如图7 所示。伪裂缝通常是由路面中的凹坑、沙砾、油斑污渍以及路面环境的自然材料等形成的。从人眼角度看,伪裂缝与裂缝在图像中呈现相同的暗区域特点。虽然伪裂缝凹线段极小值点灰度值和裂缝的差异不大,但伪裂缝呈杂散状,不具备较好的线条连续性。而相比之下,裂缝在线条连续性方面具有较好的特异性。
图7 裂缝特征多方向激活重构结果
基于上述分析,在保证裂缝被完整检测的前提下,基于裂缝连续性设计伪裂缝去除算法。算法原理是设计大小为M×N 的滑动窗口遍历裂缝激活重构结果。由于裂缝具有连续性,窗口邻域内存在裂缝特征点;而伪裂缝不具备连续性,窗口邻域内不存在裂缝特征点。滑动窗口扫描示意图如图8 所示。滑动窗口的尺寸是关键问题,如果设置为固定值,那么采集环境的变化可能会导致算法不再适用。
图8 滑动窗口扫描示意图
鉴于伪裂缝是路面中的凹坑、沙砾、油斑污渍等,在路面破损图像中呈杂散态分布。图像的宽度和高度对应目标物体的长度和宽度,因此只需确定伪裂缝长度与图像宽度之间的关系即可确定滑动窗口的尺寸。通过对大量伪裂缝数据分析发现其有效长度不超过路面破损图像宽度的5%。图8 (c)是M×N=5%×长×宽×5%时滑动窗口的伪裂缝去除结果,可见在裂缝被完整检测的同时伪裂缝已被去除。
4 实验结果与分析
依照中华人民共和国交通运输部发布的现行《公路路面技术状况自动化检测规程》(JTG/T E61-2014)行业标准中的路面裂缝自动检测方法,选用检测识别准确率(Recognition Accuracy,RA)作为评估指标,计算公式为:
式中,CN(Correct Number)代表正确检测的路面裂缝图像个数;TN(Total Number)代表路面裂缝数据集的总个数。
算法实验使用的软件平台为Visual Studio C++2022。处理器Intel®CoreTMi7-12700H(2.70 GHz)。选用64 位Windows11 操作系统,并在公共数据集CFD[6]中进行算法评估。CFD 数据集采集了中国北京的城市路面状况,包括路面中常见的油斑和水渍等噪声,图像的分辨率为480×320 像素,共有118 张。实验得到不同类型的路面裂缝的检测结果,如图9所示。
图9 不同类型裂缝检测结果
不同检测方法在CFD 数据集中的评估结果在表1 中汇总给出。
表1 CFD 数据集测试结果
由表1 可知,所提方法在CFD 数据中的检测识别准确率有所提高。然而当路面存在大面积重油污干扰时,由于重油污区域的灰度值小于裂缝区域,将导致裂缝区域的凹线段极小值点灰度值不满足特征提取条件,发生重油污相关裂缝的漏检。对于大面积重油污干扰等复杂环境裂缝检测的问题,还有待在未来进一步研究解决。
5 结束语
本研究深入探索了路面不同类型裂缝的检测。在对路面裂缝灰度图像不做预处理和标注训练的前提下,通过统计分析凹线段灰度极小值点直方图,提出了一种基于灰度极小值的路面裂缝检测方法,在公共数据集CFD 上进行了算法的有效性验证。验证结果表明,所提方法能够有效检测横向、纵向、块状和网状裂缝,对于路面裂缝的在线检测具有一定的实际应用价值。