APP下载

一种基于集成学习的路面裂缝检测仿真算法

2022-03-15郭香蓉

计算机仿真 2022年2期
关键词:分类器像素样本

郭香蓉,李 鸿

(长沙理工大学电气与信息工程学院,湖南 长沙 410004)

1 引言

道面裂缝是道路损伤中最常见的一种,传统人工检测的方法效率低下,依赖于检修工人的经验,判断标准主观性大,且在高速公路等特殊道面实施困难。近年来,随着计算机技术和图像识别技术的飞速发展,利用计算机对道面裂缝图像进行自动识别检测已成为裂缝检测的主要手段之一。

国内外围绕自动化的裂缝检测做了大量工作:一些学者认为图像边缘检测方法直接影响裂缝检测准确性,采用了多种边缘检测算法(Canny,Prewitt,Sobel,LOG,Roberts,SUSAN)及其改进算法来解决这一问题[1-3],这类算法是解决图像识别问题的通用方法,主要思路是求解二维实函数梯度,然后选取合适的阈值提取图像边缘,该方法在受到不均匀光照和道面纹理等噪声干扰时,识别准确率降低。一些学者致力于寻找道路裂缝的独有特征,从道路裂缝的点、线、纹理和变换域特征入手,在特征提取上做了大量研究[4-6],此类算法较传统全局阈值算法而言,具有较强的抗噪能力,提高了道面裂缝识别准确率。随着模式识别方法的深入发展,学者们在提取裂缝特征的基础上,设计各种分类器对道路裂缝进行识别,包括K近邻、支持向量机和神经网络等人工智能方法[7-9],此类方法实现了大量样本的快速检测,但在识别的准确率上还有待提高。

道面裂缝识别实际上是一个分类问题,二分类的思路:存在裂缝和不存在裂缝。现行的研究中将其作为二分类问题处理的较多,但在实际检测过程中,人们希望细分出裂缝的类型,以便能够分类修复。本文将道面裂缝的类别简化为点状裂缝、线状裂缝和网状裂缝三种类型,将道面裂缝检测作为一个多分类问题来解决。为了提高单一学习算法的检测率,降低虚警和漏警率,从提高分类器性能的角度出发,引入元学习的概念,提出了基于集成学习[10-11]的道面裂缝检测方法。首先,对道路裂缝特征进行提取,并分别选取训练样本和测试样本;其次,选择基本分类器,通过Stacking策略训练出分类效果更强的元分类器,以提升检测率;最后,将待测试的样本输入,检验识别效果。希望通过以上方法,实现对大规模道面裂缝样本的快速、准确检测,减少人力物力投入。

2 路面裂缝图像预处理与特征提取

在阳光的照射下,利用数码照相机对道面图像拍摄,光轴应与道路表面垂直,且侧边平行于路基,得到分辨率为1536×2048,像素范围为0-255的彩色图像,对其进行灰度化和二值化处理,获得图像P,每个像素约对应1 mm2的道面。为了满足计算性能(较快的处理速度和较小的内存)和计算精度要求,将互不重叠的大小为75×75的图像考虑为一个图像单元[12],则一幅图像共由20×27个图像单元组成。计算出每个单元的像素均值和像素标准差,组成两个20×27的矩阵:均值矩阵Mm和标准差矩阵STDm。分别在水平方向和垂直方向对图像扫描,寻找裂缝的像元,进而生成二进制矩阵Mm。包含明显裂缝象元的像素块标记为“1”,其余的标记为“0”。栅格化后的道面结果如图1所示。

图1 裂缝图像栅格化处理

如图1所示,用栅格图像来逼近一个实体图像,可以有效减小存储空间,且栅格数据不连续,易于扩充。点裂缝在栅格图像中表现为一个图像单元,线裂缝表现为连续的若干图像单元的集合,网状裂缝是若干线裂缝组成且有公共的图像单元。这里需要注意,图像单元划分过小会增加裂缝识别中虚警的概率,若图像单元过大则不容易识别出细小的裂缝,漏警的概率将增大。

预处理中,为了解决背景照明不均匀的问题,首先对每一张图像样本像素强度归一化。这样能够将相同的平均像素强度的图像单元标记为“0”(作为背景),而裂缝像素因为较暗具有较小的平均像素强度,这类样本能够更好地区分出来。

当强光照射在水泥和柏油等道面上时,因为镜面反射原理道面会出现一块亮斑,无裂缝的道面的像素强度标准差会明显增大,最终导致有裂缝道面和无裂缝道面的标准差(std)值很接近,使STDm判别指标失效。为了解决这一问题,引入饱和度概念:高于某个阈值(所有图像像素强度的均值)的像素强度将被这一均值替代。这样处理后图像只会稍暗,而不会丢失裂纹信息,STDm的识别功能将显著提升,与Mm共同反映裂纹信息。

下面提取图像特征,前文提到图像的像素均值矩阵Mm和像素标准差矩阵STDm对于道面裂缝有很好的识别能力。在此基础上,将其转化为特征量,使其能够作为输入在分类算法中进行学习分析。

1)像素分布密度

定义像素分布密度为裂缝图像中裂缝区域像素占图像总像素的百分比

(1)

式中,式中,m、n分别为矩阵Mm和的行数和列数。这是一个非常简单的判别指标:裂缝越密集,像素分布密度值越大。但该指标也存在一定缺陷:当图片噪声较多时,无裂缝的道面也存在一定几率识别为裂缝道面,且若线状裂缝长度较长,与网状裂缝难以区分开,因此需要结合其它特征。

2)Mm和STDm在水平和垂直方向的投影:

(2)

(3)

(4)

(5)

式中,m、n分别为矩阵Mm和STDm的行数和列数。通过对像素均值和标准差的投影可以发现,若存在点状裂缝,在投影的波形中会出现一个凸起的尖波;若存在线状裂缝,将会出现一个波峰;若存在网状裂缝,X轴和Y轴方向会出现明显的多个波峰。客观上说明像素均值和标准差均对裂缝的种类具有一定识别能力。

为了考察各图像单元像素的突变情况,分别对式(2)~(5)的四个投影序列作差分运算,并对其绝对值累加

(6)

(7)

(8)

(9)

根据投影的特征,PX、PY、QX和QY可以反映不同种类的道路裂缝信息,其值越大代表裂缝累积越显著。

将提取的道路特征信息构成5维特征向量(fx,PX,PY,QX,QY)。为避免数据维度的差异对分类精度造成影响,采用最大最小值的方法对数据样本进行归一化处理

(10)

式中,X为样本特征量,Xmin和Xmax分别为变量X取最大值和最小值,Y∈[-1,1]为归一化后的变量。

3 集成学习算法

3.1 Stacking集成学习算法

近年来,集成学习方法是以多个弱监督模型训练出一个强监督模型的学习方法。若其中的一个弱分类器因对模型拟合不好而出现了错误的判断,其它的弱分类器能够将这一错误分类纠正回来,能够较好地解决一些非线性问题。Stacking算法主要有以下5个步骤:

step1:将原始数据集分为3组;

step2:第1组数据集用于训练多个弱分类器,获得训练好的基本分类器;

step3:将第2组数据集输入训练好的基本分类器中,获得不同类别的输出,将输出的结果组成元数据集。

step4:选择合适的分类算法,用元数据集训练元分类器。

step5:将第3组数据集作为测试集,输入到各基本分类器中,获得最终分类结果。

元分类器可以是基本分类器中的一种,一般而言,单个分类器效果越好分类结果越好,而集成学习后分类效果更加优于单个分类器。

3.2 元分类器——多分类LS-SVM

支持向量机作为分类算法,具有良好的推广能力和避免收敛到局部极小点等优点,分类效果较好。近年来,最小二乘支持向量机(LS-SVM)是近年来统计学习理论的重要成果之一,它将传统SVM算法中的经验风险由偏差一次方转变为偏差的二次方,用等式约束替换不等式约束,进而转化二次规划为线性方程组,提高了运算效率。在这里选择LS-SVM作为元分类器。其基本描述如下:

设样本数据训练集为S={(xi,yi),i=1,2,…,l},xi∈Rn是第i个训练样本的输入向量,yi∈R是相对应的输出,LS-SVM用非线性映射函数Φ(x)将输入数据映射到高维空间中进行线性估计。其线性回归函数为

f(x)=ωTΦ(x)+b

(11)

式中b是映射偏置,ω是特征空间权值向量。

为了同时减小预测误差和计算复杂度,基于总体风险最小化原则,对问题进行优化

(12)

S.t.yi=ωTΦ(xi)+b+ei

(13)

式中,γ为正则化参数;ei为回归误差。

这里引入拉格朗日乘子,将式(12)转变为无约束对偶空间优化问题,即

(14)

对上式的ω、b、e、α求偏导,可得该拉格朗日函数的最优化约束

(15)

根据最优化约束,约去ei和ω,将等式转化为矩阵形式:

(16)

矩阵中,β=[1,…,1],Ωkj=K(xk,xj)为核函数矩阵,核函数K(xk,xj)可从径向基核函数(Radical Basis Function,RBF)、Sigmoid核函数和多项式核函数(Polynomial)中选取。拉格朗日乘子α=(α1,α2,…,αl)T,Y=(y1,y2,…,yl)T。

本文采用RBF核函数,其表达形式如(17)所示,其中σ为RBF核函数宽度系数。

(17)

通过以上推导,可以获得LS-SVM预测函数

(18)

在本文中,样本输入向量为x,即识别裂缝的特征量;f(x)是道路裂缝特征量与裂缝类型之间的映射关系。传统的SVM是典型的二分类器,仅能得到“存在裂缝”和“不存在裂缝”两种识别结果。为了在“存在裂缝”中继续检测出裂缝的类别,需要构造多分类向量机。

这里,从减少计算复杂度的角度出发,选择“一类对一类”的方法。因路面裂缝主要有点状裂缝、线状裂缝和网状裂缝三种(k=3),因此将分类器的数量设置为k(k-1)/2=3。采用投票法进行分类,如图2所示。

图2 “一对一”多分类向量机应用于裂缝检测

对于任意裂缝样本x,共需要三种分类机,分别为点状裂缝和线状裂缝分类机H1、点状裂缝和网状裂缝分类机H2、线状裂缝和网状裂缝分类机H3,样本分别输入其中进行识别。在第一个分类机中,若样本x属于点状裂缝,则该类票数加1,反之线状裂缝类别加1;该样本x继续输入分类机H2、H3,完成投票后,得票数最多的类别即为该样本x的类别。当投票结果为1:1:1时,为不可识别区域G,由于该区域内数据较少,对分类精度的影响可以忽略不计。

4 Stacking集成学习道面裂缝识别

为了获得元分类器,将数据集分为三组,第一组用于训练基本分类器,第二组输入基本分类器获得元数据集,第三组用于测试。在基本分类器的选择上,可选择仅参数改变的同一分类器,也可选择不同学习算法相结合的异质分类器。本文中选择K近邻、朴素贝叶斯、BP神经网络和多分类SVM作为基本的学习算法。其基本流程如图3所示:

图3 集成学习裂缝识别模型

这里,四个基本分类器的输出分别为“属于正负类的样本点数量”、“后验概率”、“权值”以及“点到超平面的距离”。它们构成了元数据集,用于训练多分类SVM元分类器,这个元分类器将多个基本分类器的分析结果进行二次学习,对道面裂缝情况进行识别。

5 仿真分析

在数据采集阶段,将原始数据分为3部分,其样本量分别为400、200、100,在这些样本中,4类样本的数量是完全均衡的,裂缝样本图像如图5所示。

图4 裂缝样本选取

在训练阶段选择样本时,要注意裂缝样本的多样性,特别是一些线状裂缝,要将多条方向平行的线状裂缝与网状裂缝区分开来,避免给图像贴上错误的标签,导致分类效果降低。

在元分类器的训练阶段,通过网格搜索法确定核函数宽度系数σ与正则化参数γ取值并进行交叉验证法,引入均方根误差RMSE的概念

(19)

RMSE表示复杂裂缝类别的预测值和实际值的均方根误差。参数寻优结果如图5所示。

图5 σ和γ参数寻优

根据图6可以求得使RMSE误差最小的参数σ=35.2591和γ=0.0013。

将采集到的图像分为3组,经过预处理后输入到学习模型中,获得集成学习方法对道面裂缝的检测结果。另外,将第3部分测试数据集输入到训练好的基本分类器中,可以获得单一的分类器对道路裂缝的检测结果,作为集成学习检测道面裂缝的对照组。其检测结果如表1所示。

表1 各分类算法的识别率

从表1中的试验结果可知,采用不同的四种基本分类器识别准确率均在80%以上,对集成学习分类器的检测有促进作用,可以作为基本分类器使用。对道面裂缝检测的准确率从低到高依次是KNN算法、朴素贝叶斯、BP神经网络、LS-SVM和集成学习算法。另外,各分类器对无裂缝样本和点状裂缝样本的检测率是较高的,但由于点状裂缝的像素突变不明显,容易被错误分类为无裂缝样本。LS-SVM和集成学习算法对这种点状裂缝的识别效果是较好的,特别是集成学习算法,对无裂缝和点状裂缝的检测率达到了100%。此外,多条方向不同的线状裂缝易检测为网状裂缝,因此从试验结果来说网状裂缝的检测率是高于线状裂缝的。

为了进一步验证提出算法对模型检测裂缝效果的提升,将以上4种基本分类器的检测结果与提出算法的结果共同绘制了接收机工作特性曲线(ROC曲线),反映虚警率与检测率的关系,是衡量分类性能的重要指标。结果如图6所示。

图6 ROC曲线

以虚警概率为x轴,检测概率为y轴,图6中各分类器检测性能由弱到强依次是:KNN、朴素贝叶斯、BP神经网络、LS-SVM、集成学习方法,其中,BP神经网络与LS-SVM效果相当。在相同检测概率的情况下,提出的集成学习方法的虚警率低于其它单一的分类方法;相同虚警概率的情况下,集成学习算法的检测率最高,说明了该算法能有效地提升各基本分类算法的道面裂缝检测率,降低了道面裂缝的虚警率。

6 结论

1)将道面裂缝识别问题考虑为一个多分类问题,提出了一种基于集成学习的路面裂缝检测算法,以提高智能识别算法对路面裂缝的检测率。

2)选择LS-SVM作为元分类器,从而省去了对时间复杂度高的不敏感损失函数的运算,缩短了计算时间,运行速率较快。

3)仿真结果表明,提出的算法具有较高的检测率,且虚警现象得到了明显改善。在下一步的工作中,将主要针对线状裂缝错误分类为网状裂缝的问题展开研究。

猜你喜欢

分类器像素样本
少样本条件下基于K-最近邻及多分类器协同的样本扩增分类
学贯中西(6):阐述ML分类器的工作流程
“像素”仙人掌
基于AdaBoost算法的在线连续极限学习机集成算法
随机微分方程的样本Lyapunov二次型估计
高像素不是全部
基于支持向量机的测厚仪CS值电压漂移故障判定及处理
神回复
您的像素,饱和吗?[上]