一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于XGBoost模型的路况感知方法与流程

2022-04-27 06:57:19 来源:中国专利 TAG:
基于xgboost模型的路况感知方法
技术领域
:1.本发明属于计算机领域,具体涉及一种利用计算机程序识别路况信息的方法。
背景技术
::2.近年来,由于道路养护不及时导致的交通事故频发,一方面危害人民群众的生命财产安全,一方面给保险公司增大了赔付压力,一方面增大了城市交通的通行压力。目前的路况检测主要依靠路政部门周期性地使用三米直尺平整度仪、激光平整度仪和车载式颠簸累计仪等专用道路平整度检测仪器对道路平整度进行检测。这种方式检测精度高,使用门槛高,需要花费较高的人力和物力成本,不能及时的发现道路异常。3.通常,路面不平是汽车振动的基本输入。汽车的振动是简谐振动的一种,而简谐振动的动力学特征是回复力与位移的平方成正比,由牛顿第二定律可知加速度与位移的平方成正比,因此用加速度来表现汽车的振动大小是可行的。近年来基于智能手机传感器的路况识别研究有很大进展,基于自主开发的狼獾系统采用机器学习算法中的k-均值聚类和支持向量机模型进行路况识别,可以识别出坑洞路面和平坦路面。4.国内学者进行路况识别问题的研究通常是基于智能手机终端的传感器系统进行数据采集并采用统计学方法与支持向量机、k-均值聚类等模型相结合的方法[4-7]。通过分析可知,汽车在不平道路上的振动数据跟语音的振动原理是类似的,故近年涌现出基于语音识别算法的路况分类方法,比如印度旁遮普大学的学者提出了基于dtw算法的路况分类算法,东帝汶国立大学的研究人员使用改进后的mfcc和改进后的plp算法进行特征提取进而对铺装和未铺装道路进行分类。[0005]这些现行的算法存在由于异常路况数据量较小,汽车通过坑洞、减速带等不平路段时时间较短,通过分析采集来的数据发现平顺路况数据占据了整个数据集80%以上的比例,故异常路况和平顺路况数据存在不均衡的问题。数据不均衡会导致数据量大的那部分数据主导整个模型预测的准确度,从而减弱另一部分数据的准确度对整个模型的准确度。技术实现要素:[0006]本发明所要解决的技术问题是:对路况进行分类预测时,由于异常路况数据量较小,导致数据集数据不均衡问题,从而引起路况预测模型准确度不高以及运行效率低的问题,提出一种基于smoteenn_xgboost的路况感知方法。[0007]本发明的技术方案为:[0008]一种基于xgboost模型的路况感知方法,包括:采集道路的振动数据,进行特征提取后输入训练好的xgboost模型,识别出道路上的不平路况。[0009]xgboost模型的训练过程为:采集道路的振动数据样本,标记出不平整路段的数据,进行低通滤波,去除旋转设备以及共振引起的高频分量,采用smoteenn算法对样本进行均衡化处理,使用xgboost模型进行训练和测试。[0010]具体步骤为:[0011]第一步采集数据,通过手机采集设备ip、时间、三轴加速度、gps信息、车速等信息,三轴加速度分别用x、y、z表示;[0012]第二步判断车速用于排除由于开关门等非道路因素引起的加速度波动;第三步将三轴加速度的均方根进行低通滤波处理去除发动机等转动设备的高频干扰;[0013]第四步提取特征,将三轴加速度、三轴加速度的rms、车速、相邻两条加速度之差的绝对值abs_acc=|ai-ai-1|、相邻两条三轴加速度的rms之差的绝对值δ=|rmsi-rmsi-1|作为用于xgboost模型分类的特征;[0014]第五步将特征值传入xgboost模型得到路况的预测值;[0015]第六步如果是平顺路段标记’type’=0,如果不是平顺路段则跟上一次标记的异常路段的时间进行的对比,如果小于阈值时间则判断为是同一个异常路段,如果大于阈值时间则标记为新的异常路段,并记录当前时间、gps信息。[0016]smoteenn算法的输入:路况数据集x={(x1,y1),(x2,y2),…(xn,yn)},数据集中少数类异常路况数据样本数量t,少数类异常样本需要增加的倍数n%以及少数类异常路况数据的最近邻数据的点的个数k;[0017]smoteenn算法的输出:含有(n/100)*t个新合成的数据均衡的路况数据集;[0018]smoteenn算法的具体步骤为:[0019](1)判断n是否小于100,如果小于100说明合成样本的数量少于少数类样本的原始数量,这时要在原有的少数类异常路况数据样本中随机选择t*n%个样本作为合成样本的依据;[0020](2)对x中的少数类异常路况数据样本中的每个数据样本(xi,yi)求其在x中的k个最近邻的点xinn,nn∈{1,2,…,k};[0021](3)从xinn中选取任意一个样本xiab,计算其余当前遍历样本xicd的向量差,将此差跟0-1之间的随机数相乘,再加上当前遍历样本就得到了一个新的少数类异常数据类样本xs=xicd (xiab-xicd)*rand(0,1);[0022](4)根据knn算法对新生成的数据样本进行预测分类,如果跟其k近邻样本的大部分类型相同则保存该数据,如果不同则删除;[0023](5)重复(3)-(4)步骤,直到得到(n/100)*t个少数类异常路况数据样本,并将此样本添加入原样本中。[0024]采用智能手机进行数据采集,手机搭载的三轴加速度传感器和陀螺仪,手机分别在两个位置采集数据,一是将手机固定在主驾方向盘左侧的空调出风口,二是将手机固定在副驾的座位下方,分别对两个位置的振动数据进行采集,采集频率为40-60hz。[0025]采用录音的方式对收集加速度数据的全过程进行录音,然后通过人工标记的方式对采集到的数据集进行标记。[0026]在低通滤波阈值的选取上采用汽车的发动机振动频率作为低通滤波阈值。[0027]xgboost算法采用cart树作为基分类器,xgboost树模型由多棵cart树组成,每棵cart树对样本进行预测,预测的结果进行累加求和,最后通过sigmoid函数将其映射到0-1的区间来表示分类结果的概率,它的目标函数由损失函数和正则项两部分组成。[0028]通过修改每个特征值的权重来进一步优化该算法,提高模型的适应性。[0029]本发明的有益效果是:[0030]本发明提出的基于smoteenn_xgboost模型的路况感知算法利用智能手机终端采集汽车运行期间的振动数据以此提取主要特征进行处理,识别出具体的路况信息,并将具体的路况感知情况和gps信息进行记录。利用smoteenn算法将路况数据集进行不均衡数据处理,得到数据均衡的路况数据集,可以减少多数类样本在分类评价结果中的影响,使应用于本系统的xgboost模型准确度更高。xgboost模型相对于其他分类算法,将正则项加入目标函数,并对目标函数进行泰勒展开,同时应用了一阶、二阶偏导数,在提高算法效率的同时能够控制模型的复杂度。从表2中可知应用本算法能够很好的进行路况分类,解决了路况数据不均衡导致的评价效果不准确的问题,并且在运算效率提升的前提下准确率进一步提升,让此算法进行推广应用成为可能。。附图说明[0031]图1是roaddatacollection测量界面。[0032]图2是采集到的三轴加速度以及速度曲线。[0033]图3是经过低通滤波后的rms曲线。[0034]图4是基于smoteenn_xgboost模型的路况感知算法流程图。[0035]图5是xgboost模型中特征值权重图。具体实施方式[0036]实施例:[0037]1数据采集[0038]1.1数据采集设备[0039]本文所采用的数据采集硬件为opporeno智能手机,处理器为高通sdm710八核,运行内存为6g,机身内存为256g,本手机搭载的三轴加速度传感器和陀螺仪为lsm6ds3c。数据采集软件roaddatacollection采用java语言编写,调用android系统提供的传感器数值变化回调函数来获取传感器数据,三轴加速度采样频率为400hz,陀螺仪采样频率为50hz,gps数据采样频率为1hz。手机搭载车辆为别克君威2015款,发动机为1.6t184马力l4,前后轮轴距2737mm。图1为数据采集软件界面。[0040]1.2测量设备摆放位置[0041]考虑到井盖、坑洞的直径较小,故只会对一侧轮胎引起振动,而铁路道口和减速带会对两侧轮胎引起振动,故本次采集手机分别在两个位置采集数据,一是将手机固定在主驾方向盘左侧的空调出风口,二是将手机固定在副驾的座位下方,分别对两个位置的振动数据进行采集,经分析发现由于车辆经过不平道路时引起的振动很大一部分是由于车轮的刚性运动导致整个车架的振动,因此这两个位置对数据分类算法的精确度影响较小。采集路段为河南省郑州市高新区枫香街和高新区化工路,在本采集路段包含的有平滑路段、井盖、减速带以及铁路道口等引起车辆颠簸的主要因素。[0042]1.3采集频率设置[0043]根据奈奎斯特采样定理可知:在进行模数转换的过程中,当采样频率大于信号中最高频率的2倍时,采样之后的数字信号可以完整地保留原始信号中的信息,因此,一般在实际应用中要保证采样频率为信号最高频率的2.56~4倍。由于汽车的振动来源是发动机、传动系统、车轮旋转引起的振动以及道路不平引起的汽车振动,而旋转部件引起的振动频率一般为20~30hz,而道路不平引起的振动形式一般为刚体运动,刚体运动的振动频率一般为0‑ꢀ15hz。本文采用三种采集频率进行测试,分别是10hz,50hz,100hz,经过测试发现50hz的采样频率相对于另外两种采样频率效果更好。[0044]1.4数据标记[0045]本文通过设计并开发路况数据采集程序,采集汽车运行过程中的三轴加速度以及车速和gps等信息。由于汽车在经过道路坑洼、井盖、减速带、铁路道口等不平路况时前后轮压到不平路段时分别会有一个加速度变化的最大值,而一般家用汽车前后轮间距为2.2-3米,当车速为10m/s(36km/h)通过不平路段时两个波峰间的时间为0.2-0.3秒,故很难利用app按键进行准确标记,因此本文采用录音的方式对收集加速度数据的全过程进行录音,然后通过人工标记的方式对采集到的数据集进行标记,以保证训练数据标记的准确性。下图是在郑州市高新区枫香街采集到的一段经过31个井盖的加速度数据,0值附近的两条曲线分别是acc_x和acc_y代表x,y轴的加速度值,10附近的曲线是acc_z代表的是z轴的加速度,也是重力加速度。本数据集中,将经过井盖、坑洼、减速带、铁路道路时的加速度数据通过‘type’=1进行标记,平顺路段的加速度数据通过‘type’=0进行标记。图2中明显的突起代表经过井盖时的三轴加速度值,中间接近直线的部分代表的是停车时的三轴加速度值,在两个井盖之间的波动是汽车行驶在正常路段时的三轴加速度值。[0046]2数据处理[0047]2.1加速度的处理[0048]由于三轴加速度数据有三个坐标轴分量,分别是x轴,y轴,z轴,在手机屏幕朝上静止放置的时候,三个轴的初值别是x轴为0±0.1m/s2,y轴为0±0.1m/s2,z轴为9.8±ꢀ0.1m/s2。由于司机在开车期间手机可能以任何角度放置在车上,而这三个轴在静止状态下只有重力加速度分量,无论手机如何放置,这三个轴的取值虽然会发生变化,但都是重力加速度在各个轴的分量,故本文采用三个轴取值的均方根作为加速度的取值。[0049]2.2滤波[0050]将加速度数据进行低通滤波,去除旋转设备以及共振引起的高频分量。在低通滤波阈值的选取上本文采用汽车的发动机振动频率作为低通滤波阈值。经采集的汽车打火状态但是未进行任何振动的情况下的加速度数据进行快速傅里叶变换发现,车本身的振动频率大部分是由发送机产生的大约23hz,与理论上四缸发送机的振动频率20~30hz相符,道路不平引起的轿车振动一般属于刚性运动,产生的振动频率一般在20hz以下,故通过低通滤波器将采集到的加速度数据进行低通滤波,去除20hz以上的车自身产生的高频振动干扰。如图3所示。[0051]2.3数据不均衡问题处理[0052]汽车通过坑洞、减速带等不平路段时时间较短,通过分析采集来的数据发现平顺路况数据占据了整个数据集80%以上的比例,故异常路况和平顺路况数据存在不均衡的问题。数据不均衡会导致数据量大的那部分数据主导整个模型预测的准确度,从而减弱另一部分数据的准确度对整个模型的准确度。解决数据不均衡问题通常从数据和算法两个层面去解决。从数据层面一般采用欠抽样、过抽样和数据合成等方法对数据进行处理从而平衡两类数据数量,而从算法层面一般采用加权、一分类、k-fold交叉验证和采用适应不均衡样本的模型等方法来解决数据不均衡问题。[0053]smoteenn算法是在smote算法基础上进行过采样,再通过enn算法进行清洗,最终得到数据均衡的样本集。通过这种方式解决数据不均衡问题一方面增加了少数类样本数据量,一方面改善了smote算法增加的少数类样本和多数类样本重复的问题。smoteenn算法的具体步骤如下:[0054]输入:路况数据集x={(x1,y1),(x2,y2),…(xn,yn)},数据集中少数类异常路况数据样本数量t,少数类异常样本需要增加的倍数n%以及少数类异常路况数据的最近邻数据的点的个数k。[0055]输出:含有(n/100)*t个新合成的数据均衡的路况数据集。[0056]具体步骤:[0057](1)判断n是否小于100,如果小于100说明合成样本的数量少于少数类样本的原始数量,这时要在原有的少数类异常路况数据样本中随机选择t*n%个样本作为合成样本的依据。[0058](2)对x中的少数类异常路况数据样本中的每个数据样本(xi,yi)求其在x中的k个最近邻的点xinn,nn∈{1,2,…,k}.[0059](3)从xinn中选取任意一个样本xiab,计算其余当前遍历样本xicd的向量差,将此差跟0-1之间的随机数相乘,再加上当前遍历样本就得到了一个新的少数类异常数据类样本xs=xicd (xiab-xicd)*rand(0,1)。[0060](4)根据knn算法对新生成的数据样本进行预测分类,如果跟其k近邻样本的大部分类型相同则保存该数据,如果不同则删除。[0061](5)重复(3)-(4)步骤,直到得到(n/100)*t个少数类异常路况数据样本,并将此样本添加入原样本中。[0062]通过采用smote过采样算法、smoteenn算法、clustercentroids欠采样算法三种方法生成三个数据集,分别将生成的数据及使用xgboost模型进行测试,结果如图4所示。smoteenn算法处理后的数据集在后续的模型训练和预测中能够大幅提升auc的值。auc是roc曲线下的面积,它的计算方法同时考虑了分类器对正负例的分类能力,可以对分类器做出合理的评价。auc的值越大证明这个模型的分类效果越好。因此,本算法采用smoteenn算法进行数据不均衡处理后的数据集将模型的召回率、精确度、f1等评价参数进一步提高,将xgboost模型的分类效果auc指标提升了10%以上。[0063]表1不同算法处理后的数据集效果对比图[0064]table1comparisondiagramoftheeffectofdatasetsprocessedbydifferentalgorithms[0065][0066]3.路况感知方法[0067]3.1xgboost模型介绍[0068]xgboost是极端梯度提升的简称,是2014年3月陈天奇博士提出的,在梯度提升框架下实现的机器学习算法。提升方法是比较常用的统计学习方法,应用广泛并且有效率高,它将加法模型与前项分步算法相结合。在分类问题中,通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能。xgboost算法是在gbdt(gradientboostingdecisiontree)等提升树的模型上进行了优化,将gbdt用一阶负梯度代替残差的基础上加上二阶梯度,同时在采样时还借鉴了随机森林的sub-sampling方法,它不仅可以处理更大规模的数据,而且运行效率进一步提升。[0069]3.2xgboost目标函数优化[0070]xgboost算法采用cart树作为基分类器,xgboost树模型由多棵cart树组成,每棵cart树对样本进行预测,预测的结果进行累加求和,最后通过sigmoid函数将其映射到0-1的区间来表示分类结果的概率。它的目标函数由损失函数和正则项两部分组成,具体定义如下:[0071][0072]其中路况数据集(xi,yi),xi∈rm,yi∈r,xi表示路况数据集的m维特征向量,yi表示路况的分类标签,是样本xi的预测出的路况类型。fk是cart树模型。在路况分类中损失函数采用的是logloss函数,为:正则项为l2正则,定义为:t为树的叶子节点的个数,ω为叶子节点的权值向量,γ和λ为要通过目标函数求解的系数。xgboost模型是通过分布前向算法对加法模型进行训练,逐步进行优化,得到最优的模型,xgboost模型的定义为:[0073][0074]其中fk为一颗cart树,k表示树的可数,f为所有可能的cart树。[0075]利用加法模型分步骤对目标函数公式(1)进行优化,在第r轮优化时xgboost模型为:[0076]其中为第r-1轮优化后的模型,fr(xi)为第r轮新加入的cart树,由此,可知第r轮的目标函数可写为:[0077][0078]采用sigmoid函数对预测结果进行映射,可知损失函数为:[0079][0080]利用泰勒公式进行近似求解可将目标函数公式(4)变形为:[0081][0082]其中gi为损失函数的一阶梯度统计,hi为损失函数的二阶梯度统计,为损失函数的二阶梯度统计,将sigmoid函数带入将一阶梯度统计和二阶梯度统计分别变形为:因常数项对目标函数的优化没有影响,故可将常量去除。目标函数公式(5)变形为:[0083]其中l2正则项通过对叶子结点个数以及节点的权重进行约束从而达到对模型复杂度进行控制的目的。假设cart树定义为:[0084]t表示叶子节点的个数,q(xi)代表cart树的结构。由上式(7)带入目标函数公式(6)可得:[0085][0086]其中ij为叶子节点的样本集,fs(xi)将样本划分到叶子结点,计算得到该叶子结点的分数ω,因此当i∈ij时,可以用ωj来代替fs(xi),将带入上式进行简化可得:[0087]从而求出各个叶子结点的最佳值以及此时目标函数的值:[0088][0089][0090]3.3基于xgboost模型的路况感知算法[0091]鉴于xgboost模型在分类问题上表现出的高效准确的特性,本文提出的路况感知算法主要基于此模型。本算法主要包括数据采集、特征提取、低通滤波、使用训练好的xgboost模型进行路况感知和标记路况等步骤,具体步骤如图4所示。第一步采集数据部分是通过手机应用roaddatacollection采集设备ip、时间、三轴加速度、gps信息、车速等信息;第二步判断车速用于排除由于开关门等非道路因素引起的加速度波动,从而降低运算能耗;第三步将三轴加速度的均方根rms(公式12)进行低通滤波处理去除发动机等转动设备的高频干扰;第四步提取特征,将三轴加速度(分别用x、y、z表示)、三轴加速度的rms、车速、相邻两条加速度之差的绝对值abs_acc(公式13)、相邻两条三轴加速度的rms之差的绝对值δ(公式14)等作为用于xgboost模型分类的特征;第五步将特征值传入xgboost模型得到路况的预测值;第六步如果是平顺路段标记’type’=0,如果不是平顺路段则跟上一次标记的异常路段的时间进行的对比,如果小于阈值时间则判断为是同一个异常路段,如果大于阈值时间则标记为新的异常路段,并记录当前时间、gps信息。[0092][0093]abs_acc=|ai-ai-1|ꢀꢀꢀ(13)[0094]δ=|rmsi-rmsi-1|ꢀꢀꢀ(14)[0095]3.4不同模型结果对比[0096]本文采用xgboost模型作为路况感知模型并和当前使用较多的svm模型、gdbt、随机森林等方法进行对比实验。本文采用10191条数据进行实验,其中7643条数据用来训练模型,2548条数据用来测试模型。从表2中可知,四种模型的评价指标值都在90%以上,都能比较好的分类出平顺路况和不平路况,但是从运行时间上来看xgboost模型的运行时间要远远小于其他三种模型,这让基于xgboost模型的路况感知算法在实际中推广的可能性大大增加,并且xgboost模型的auc值相对其他三种模型由较大的提高,证明xgboost模型应用于路况分类问题中有较好的分类效果。[0097]表2不同模型关于路况分类的评价值对比[0098]table2comparisonofevaluationvalueofdifferentmodelsonroadconditionclassification[0099][0100]本算法也存在进一步提升的可能,从图5可以看出通过对输入特征进行量化可知相邻两条z轴加速度的绝对值在本算法中起到决定性作用,因此,在后续的算法优化的过程中可以通过修改每个特征值的权重来进一步优化该算法,提高模型的适应性。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献