一种基于局部灰度极值点和特征融合的路面破损检测方法
文献发布时间:2023-06-19 19:27:02
技术领域
本发明涉及路面破损检测领域,更确切地说,它涉及一种基于局部灰度极值点和特征融合的路面破损检测方法。
背景技术
融合图像传感、大数据、人工智能等前沿科技的路面养护,能准确全面地对道路状况进行感知和预测。从而为决策者提供可靠的数据分析和决策依据,提高道路的安全运输效率。目前路面图像获取技术发展较快,例如全局快门相机能够实现快速成像,并且在价格方面也比探地雷达、激光系统等设备有明显优势。但在路面图像自动处理算法研究方面依然面临众多挑战。鉴于各地的路况条件和经济水平的差异,研究适应性强的道路检测方法更具有现实意义。
路面图像识别技术经历了从传统图像处理方法到基于深度学习的检测方法。传统图像处理方法通过人为设计特征来分割图像,包括阈值分割法、边缘检测法、纹理分割法,以及基于多特征融合的方法等,这些方法能够在特定的数据集上取得良好的检测效果。深度学习算法大大减少基于人工经验的特征描述、提取、识别等环节,有利于提升路面识别算法的准确性和通用性。
深度学习算法本质都是通过神经网络的强大拟合能力来实现检测,然而,直接利用高分辨率的图像来训练深度学习神经网络,对庞大的路面数据集和计算能力都有很高的要求。
发明内容
本发明的目的是克服现有技术中的不足,提供了一种基于局部灰度极值点和特征融合的路面破损检测方法。
第一方面,提供了一种基于局部灰度极值点和特征融合的路面破损检测方法,包括:
步骤1、获取路面图像,对所述路面图像进行预处理;
步骤2、将所述路面图像划分为若干窗口,分别以窗口为单元计算局部极值点;
步骤3、依据极值点邻域区块灰度分布,确定若干个局部极值点作为特征点;
步骤4、以局部极值点为中心,截取其邻域的图像区块,建立区块图像数据集,训练CNN区块图像特征提取模型;
步骤5、利用训练好的CNN特征模型,计算图像窗口各个特征点对应的特征向量,进行特征融合得到复合特征向量;利用支持向量机对复合特征向量进行分类,检测路面的破损情况。
作为优选,步骤1包括:
步骤1.1、获取路面图像,对所述路面图像进行高斯滤波;
步骤1.2、对所述路面图像进行伽马校正,所述伽马校正的公式为:
I(x,y)=I(x,y)
其中,γ值的确定公式为:
其中,I
作为优选,步骤2包括:
步骤2.1、将所述路面图像划分成大小为Nw×Nw的路面图像窗口,先对图像灰度取反,然后以图像窗口为单位搜索极大值;
步骤2.2、定义两个参数:峰值检测的最小距离P
P
其中,G
步骤2.3、获取一阶差分以及差分幅值为0的下标位置,相邻的0位置说明是处于水平状态,只选取中间点作为唯一的峰值点;
步骤2.4、获得符合峰值检测的峰值点,判断依据为满足梯度符号变化和灰度值大于峰值检测幅值P
步骤2.5、使用峰值最小距离P
作为优选,步骤2.5中,所述局部极值点之间的距离与截取的极值点邻域图像区块的大小相当。
作为优选,步骤3包括:
步骤3.1、确定极值点邻域区块灰度分布情况,主要考虑灰度平均值和方差;第i个区块的像素点灰度值为G
其中,E
步骤3.2、对于极值点邻域灰度平均值及方差,均给定临界值,用于对局部极值点作初步筛选;
步骤3.3、对余下的极值点按灰度深度进行排序,并选择一定数量的极值点作为窗口的特征点,截取其特征点邻域区块,用于分析图像窗口。
作为优选,步骤4包括:
步骤4.1、从公开数据集和实际需要检测的路面图像中截取区块图像,建立区块图像数据集;
步骤4.2、构建CNN特征提取模型,CNN的本质在于对输入图像数据逐层地进行卷积、池化计算,提取数据特征;单个卷积核的卷积运算公式为:
其中,y
作为优选,步骤4.1中,人工截取区块图像建立数据集的具体方法包括:在图像窗口中确定局部极值点并在图像中注标上序号;判断位于破损区域的极值点,输入其序号进行图像区块截取并标注为正样本;而正常路面图像中的局部极值点对应的区块标注为负样本。
作为优选,步骤5包括:
步骤5.1、所述CNN区块图像特征提取模型从全连接层输出特征向量;
步骤5.2、将图像窗口中涉及到的所有特征点的特征向量结合起来,构成用于描述整个窗口的特征向量;
步骤5.3、将复合特征向量作为图像窗口的特征描述子,利用支持向量机构造分类器来进行特征识别,判断图像窗口是否包含破损区域。
第二方面,提供了一种基于局部灰度极值点和特征融合的路面破损检测装置,用于执行如第一方面所述的基于局部灰度极值点和特征融合的路面破损检测方法,包括:
获取模块,用于获取路面图像,对所述路面图像进行预处理;
划分模块,用于将所述路面图像划分为若干窗口,分别以窗口为单元计算局部极值点;
确定模块,用于依据极值点邻域区块灰度分布,确定若干个局部极值点作为特征点;
训练模块,用于以局部极值点为中心,截取其邻域的图像区块,建立区块图像数据集,训练CNN区块图像特征提取模型;
检测模块,用于利用训练好的CNN特征模型,计算图像窗口各个特征点对应的特征向量,进行特征融合得到复合特征向量;利用支持向量机对复合特征向量进行分类,检测路面的破损情况。
第三方面,提供了一种计算机存储介质,所述计算机存储介质内存储有计算机程序;所述计算机程序在计算机上运行时,使得计算机执行第一方面所述的基于局部灰度极值点和特征融合的路面破损检测方法。
本发明的有益效果是:本发明将破损目标区域的一些先验图像特征,与结合深度学习算法相结合。从路面图像窗口中满足一定灰度分布条件的局部极小值点作为特征点出发,利用特征点周围图像块作为研究单元,通过自建以较小的图像区块构成的数据集,训练卷积神经网络模型来提取图像区块的深度特征。这样做使得数据集的规模大大减小,对计算能力的要求也有明显降低。结合已有公共数据集和实际检测道路的图像来建立的区块图像数据集,具有明确的针对性,有利于提高路面的检测效果。图像窗口中提取的多个区块,往往属于同一破损目标,它们之间总有一定的关联性。将图像窗口中涉及到的特征向量结合起来,构成用于描述整个窗口的复合特征向量。通过对多个区块的关联分析有可能提高路面检测的准确率。
附图说明
图1为本申请提供的经邻域平均灰度及方差条件过滤前后的局部极值点分布示意图;
图2为本申请提供的截取特征点邻域的图像区块示意图;
图3为本申请提供的人工方法判断位于破损区域的极值点示意图;
图4为本申请提供的窗口图像识别算法流程图;
图5为本申请提供的特征点数量与识别准确率关系图。
具体实施方式
下面结合实施例对本发明做进一步描述。下述实施例的说明只是用于帮助理解本发明。应当指出,对于本技术领域的普通人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
实施例1:
本发明根据各种路面破损均伴随有局部凹陷这一特征,综合考虑各个阶段的图像处理技术,提出了一种基于特征点和深度学习的路面破损区域检测方法。以路面图像中满足一定条件的局部灰度极小值点为特征点,围绕特征点邻域的图像区块进行研究。首先建立图像区块数据集,并训练卷积神经网络模型,用于提取区块图像的深度特征。在检测路面破损时,以图像窗口为单位寻找一定数量的特征点,利用训练好的卷积神经网络提取特征点的深度特征。然后将所有特征点对应的深度特征进行融合,构造复合特征向量,作为图像窗口的特征描述子。最后利用支持向量机SVM构造分类器,识别图像窗口是否包含破损区域。
具体包括以下步骤:
步骤1、获取路面图像,并对路面图像进行预处理。
步骤2、将路面图像划分为若干窗口,分别以窗口为单元计算局部极值点。
步骤3、依据极值点邻域区块灰度分布,确定若干个局部极值点作为特征点。
步骤4、以局部极值点为中心,截取其邻域的图像区块,建立区块图像数据集,训练CNN区块图像特征提取模型。
在步骤4中,建立区块图像数据集和训练CNN区块图像特征提取模型,属于建模阶段工作,路面检测时就不需要。但是,应用到不同条件的路面时,数据集中增加一部分实际路面的区块图像,再训练CNN模型效果会更好。
步骤5、利用训练好的CNN特征模型,计算图像窗口各个特征点对应的特征向量,进行特征融合得到复合特征向量;利用支持向量机对复合特征向量进行分类,检测路面的破损情况。
步骤1包括:
步骤1.1、获取路面图像,对路面图像进行高斯滤波;
步骤1.2、对路面图像进行伽马校正,伽马校正的公式为:
I(x,y)=I(x,y)
其中,γ值的确定公式为:
其中,I
步骤2包括:
步骤2.1、将路面图像划分成大小为Nw×Nw的路面图像窗口,针对路面图像容易出现连续峰值的特点,先对图像灰度取反,然后以图像窗口为单位搜索极大值;
步骤2.2、定义两个参数:峰值检测的最小距离P
P
其中,G
步骤2.3、获取一阶差分以及差分幅值为0的下标位置,相邻的0位置说明是处于水平状态,只选取中间点作为唯一的峰值点;
步骤2.4、获得符合峰值检测的峰值点,判断依据为满足梯度符号变化和灰度值大于峰值检测幅值P
步骤2.5、使用峰值最小距离P
步骤2.5中,余下的点就是符合阈值和距离条件的极值点,极值点之间的距离与截取的极值点邻域图像区块的大小相当。后续将这样得到的极小值点称为局部极值点。如图1所示,左边对应的是所有局部极值点。
步骤3包括:
步骤3.1、确定极值点邻域区块灰度分布情况,主要考虑灰度平均值和方差。假设第i个区块的像素点灰度值为G
其中,E
步骤3.2、对于极值点邻域灰度平均值及方差,均给定临界值,用于对局部极值点作初步筛选。只有参数都大于临界值时,该极值点才保留,过滤掉一些明确属于正常路面的极值点;如图1所示,右边对应的是过滤掉不满足邻域平均灰度及方差条件的局部极值点。
步骤3.3、对余下的极值点按灰度深度进行排序,并选择一定数量的极值点作为窗口的特征点,截取其特征点邻域区块,用于分析图像窗口。
本申请确定参数都大于临界值时,该极值点才保留,过滤掉一些明确属于正常路面的极值点,如图1所示。剩下的极值点可以按灰度深度进行排序,并选择一定的数量的极值点作为窗口的特征点,截取其特征点邻域区块,用于分析图像窗口。
步骤3.3中,在图像窗口中确定一定的数量的极值点作为窗口的特征点,对检测的效果至关重要。在构建图像区块数据集时,可采取人工方法来判断位于破损区域的极值点。而在实际检测时,按极值点灰度值选择特征点。
步骤4包括:
步骤4.1、为训练一个能够从区块图像提取特征的CNN模型,需要建立区块图像数据集。区块图像从公开数据集和实际需要检测的路面图像中截取,区块图像可取较小的尺寸,例如32*32像素,见图2。
步骤4.2、构建CNN特征提取模型,CNN的本质在于对输入图像数据逐层地进行卷积、池化等计算,提取数据特征。利用CNN自动提取到的路面特征,能够深入地反映破损区域变化。单个卷积核的卷积运算公式为:
其中,y
示例地,本申请采用基本的CNN模型架构参数如表1所示。输入层直接处理候选区域图像,确定的图像区块大小是32*32,基本涵盖了破损区域的一部分。这样的图像大小对于计算能力和数据集的规模等要求都比较适中,当道路状态改变时,容易进行检测模型参数调整。
表1:CNN模型架构参数
此外,步骤4.1中,人工截取区块图像建立数据集的具体方法包括:在图像窗口中确定局部极值点并在图像中注标上序号,见图3;判断位于破损区域的极值点,输入其序号进行图像区块截取并标注为正样本;而正常路面图像中的局部极值点对应的区块标注为负样本。
步骤4.2中,区块图像比较小,对网络模型的复杂度要求大大降低。根据计算的实际要求,构建了适合路面破损区域特征提取的CNN模型。
步骤5包括:
步骤5.1、CNN区块图像特征提取模型从全连接层输出特征向量。
步骤5.2、将图像窗口中涉及到的所有特征点的特征向量结合起来,构成用于描述整个窗口的特征向量;从多特征融合的角度看,通过对多个区块的关联分析也是有可能提高路面检测的准确率。
步骤5.3、将复合特征向量作为图像窗口的特征描述子,利用支持向量机构造分类器来进行特征识别,判断图像窗口是否包含破损区域。支持向量机是一种常见的二分类模型,特别是在非线性高维模式识别上有明显的优势。由于稳定性和易植入性好,常用SVM代替卷积神经网络中的Softmax分类器。这样结合起来得到一个兼顾高精度识别率和泛化能力的识别模型,在小数据集上也可以取得较高精度识别率。
实施例2:
接下来是对公开数据集进行实验,算法流程如图4所示,各部分的具体过程如下:
(1)在路面图像窗口中搜索局部极小值点,要求满足一定的灰度统计特征,包括极小值点的最小灰度值,邻域区块灰度均值和方差。为了具有可比性,可以采用图像窗口的平均灰度值作为参考,都取灰度相对值。
(2)截取各极值点邻域区块,与训练CNN特征提取模型时保存一致,即区块取32*32像素。利用训练好的CNN模型提取的深度特征,每个区块对应一个64维特征向量。
(3)确定作为特征点的极值点数量,按照极值点的深度从大到小选择。对选定的极值点对应的特征向量进行特征级融合,得到复合特征向量。特征向量采用串接方式进行融合,如果选择的特征点数为m,则复合特征向量为m*64维向量。
(4)利用支持向量机SVM构造分类器,对原始图像数据集进行研究。将数据集划分为训练集与测试集,分配比例为1:1。将复合特征向量输入SVM,训练SVM分类器,然后检测分类器对测试集的识别准确率。SVM的参数选择如下,SVM采用的是RBF核;C取0.9;Tol取1e-3;Gamma为scikit-learn自动设置。
将各个图像区块经过卷积、子采样,至全连接层输出特征向量进行特征级融合,得到复合特征向量。复合特征向量作为图像窗口的特征描述子,利用支持向量机构造分类器来进行特征识别,判断图像窗口是否包含破损区域。路面破损检测属于二分类问题,设路面有破损为正样本,正常路面为负样本。支持向量机是一种常见的二分类模型,特别是在非线性高维模式识别上有明显的优势。由于稳定性和易植入性好,常用SVM代替卷积神经网络中的Softmax分类器。这样结合起来得到一个兼顾高精度识别率和泛化能力的识别模型,在小数据集上也可以取得较高精度识别率。
利用支持向量机SVM构造分类器,对原始图像数据集进行研究。将数据集划分为训练集与测试集,分配比例为1:1。将复合特征向量输入SVM,训练SVM分类器,然后检测分类器对测试集的识别准确率。SVM的参数选择如下,SVM采用的是RBF核;C取0.9;Tol取1e-3;Gamma为scikit-learn自动设置。
表2:极值点数与识别准确率
处理区块图像及数据集,对计算机没有特别的要求。可以在Win10系统中完成,编程环境为Anaconda3,程序设计采用python语言,结合了图像处理工具OpenCV、机器学习模块scikit-learn以及深度学习模块tensorflow等。分别对上述四个数据集,计算了不同特征点数与识别准确率的关系。从一个点开始,随着关联特征点数量增加而得到提高。达到5个点后,识别的准确率基本保存不变。而且几个数据集的识别准确率都复合这一变换趋势,见表2和图5。为了提高整体的识别准确率,需要建立一个更全面和更有针对性的区块图像数据集。对于原始图像的检测,移动窗口可以适当增大,可能对应的最佳特征点数也会适当增加。
- 一种基于灰度梯度融合特征及CNN的高速路面破损检测算法
- 基于局部极值快速搜索的特征点提取方法