一种基于改进HMM和SVM双层算法的驾驶意图识别方法
技术领域
本发明涉及车辆智能驾驶和主动安全技术领域,特别是涉及一种基于改进HMM和SVM双层算法的驾驶意图识别方法。
背景技术
道路事故通常是由于驾驶员的一些不合规范的驾驶操作行为导致,换道过程引发的道路事故约占驾驶员操作不当引发的交通事故总数的23%。因此,系统完整的感知换道过程中驾驶员的操作行为,开展驾驶员驾驶意图识别研究,对减少道路事故的发生,提高机动车道路行驶的安全水平有着十分重要的意义。
目前,一些先进的驾驶员意图识别系统已实车应用。当前常见的驾驶员驾驶意图识别系统主要针对自车行驶信息和道路信息的情况,系统通常使用多种传感器对自车的行驶状态与前方路况等行实时监控,然后使用单一的学习模型分析驾驶员可能的驾驶意图,根据驾驶方式不同分为:车道左变换、车道保持、车道右变换。由此可见,现有的驾驶员驾驶意图识别系统对驾驶意图分类较少,且仅考虑自车的运动状态和道路的信息,没有考虑驾驶员本身的信息,分类的学习模型也较为单一。因此,目前需要一种基于多学习模型考虑完整人-车-路交通系统的驾驶员驾驶意图识别方法提高驾驶员意图识别系统的完整性和精确性。
发明内容
本发明的目的在于克服上述技术的不足,提出了一种基于改进HMM和SVM双层算法考虑完整人-车-路交通信息的驾驶员驾驶意图识别方法,通过准确识别驾驶员驾驶意图,提高车辆行驶的安全性。为实现以上目的,本文发明了一种基于改进HMM和SVM双层算法的驾驶员意图识别方法,其特征在于包括以下步骤:
步骤1:驾驶意图分类
将驾驶员驾驶意图分为急左变道、一般左变道、车道保持、一般右变道和急右变道五类。并分别标记为1、2、3、4和5。
步骤2:实验数据采集与预处理
采用6自由度SCANER II驾驶模拟器作为主要实验设备,采集自车在高速道路行驶时车道保持和车道变换的实验数据,主要包括:自车的方向盘转角、与车道中心线的横向距离、横摆角速度、制动踏板力。同时,通过安装在模拟驾驶器方向盘上的疲劳检测仪实时采集驾驶员头部运动视频信息。
首先运用KLT算法计算采集驾驶员头部运动视频信息以获取驾驶员脸部中心横坐标偏离其均值的大小。为消除由于原始数据部分阶跃性导致的关联性降低,对所采集的1.2秒时间窗口的驾驶行为数据均进行卡尔曼滤波预处理获得样本集,并对样本集向量进行归一化处理以提高分类精度。为提高双层算法的运算速度,利用PCA主成分分析方法提取主成分降低数据维度。
步骤3:改进的HMM和SVM双层算法的离线训练。
3.1 HMM模型构建及训练
预处理后的驾驶行为数据输入第一层HMM模型,通过前向-后向算法得到各意图HMM模型参数,建立各意图HMM模型完成驾驶员驾驶意图的分类及分类准确率的计算。在对未知意图识别时,排除概率相对较小的类,然后比较剩余HMM模型输出概率值,判断是否为易混淆意图,如非则输出HMM算法识别的结果;反之,把意图类别相关行为数据作为候选模式集导入第二层SVM模型进行识别。
3.2 SVM模型构建及训练
预处理后的驾驶行为信息数据输入第二层SVM模型,通过网格寻优算法得到支持向量机分类器模型参数,建立各意图的SVM识别模型。将HMM模型中易混淆意图的数据导入所建立的SVM模型,通过投票表决算法输出驾驶员驾驶意图。
步骤4:驾驶意图识别。
将新采集的驾驶行为数据预处理后输入改进的HMM-SVM双层算法进行模型验证,获得各行为数据序列对应的驾驶员的驾驶意图。
本发明实现过程:
本发明基于改进HMM-SVM双层算法的驾驶意图识别方法,开始对驾驶员的驾驶意图类型分类,根据不同的类别进行数据的采集。然后将采集的数据进行分类编号,确定特征向量及其对应的驾驶员的驾驶意图类别。接着对采集的数据进行卡尔曼滤波,归一化处理滤波后的数据,然后利用PCA主成分分析法数据降维,将数据输入HMM模型获得驾驶员驾驶意图的各个HMM模型,并得到对应的驾驶意图。同时将预处理后的数据输入SVM模型获得驾驶员驾驶意图的各个SVM模型。将HMM模型中所得到识别率较低的驾驶意图对应的驾驶行为序列导入SVM模型中,利用径向基核函数将特征向量映射到高维空间中,以便将本来不可分的数据分开,再用预先建立的的SVM模型对参数进行分类,选择投票表决算法确定驾驶意图。最后将实时采集的数据导入改进的HMM-SVM双层算法对驾驶员驾驶意图进行识别。
与现有技术相比,本发明的优点在于:
1、除了利用多传感器采集自车信息及道路信息,本发明通过KLT算法对实时采集换道过程驾驶员视频信息进行处理作为驾驶员信息输入,构成完整人-车-路交通系统的信息采集。
2、与一般的HMM-SVM混合算法识别驾驶员驾驶意图,将整个HMM输出作为SVM输入不同,本发明着重利用HMM和SVM算法的互补性,建立HMM和SVM双层算法,先利用第一层HMM根据数据类间相似性进行驾驶意图识别,输出能够识别的驾驶意图,将其中易混淆的驾驶意图对应的驾驶行为序列导入第二层SVM根据类别间差异性进行驾驶意图识别,并在最后采用投票表决算法根据输出概率大小确定驾驶员的驾驶意图。
3、为消除由于原始数据部分阶跃性导致的关联性降低,对所采集的时间窗口的数据均进行卡尔曼滤波预处理获得样本集,并对样本集向量进行归一化处理以提高分类精度;为提高向量机的运算速度,利用PCA主成分分析方法提取主成分降低数据维度。
附图说明:
图1:基于改进HMM和SVM双层算法的驾驶员驾驶意图识别流程图
图2:隐马尔科夫原理图
图3:支持向量机原理图
图4:驾驶员驾驶主要意图分类
图5:SVM离线数据意图识别原理
图6:模型驾驶意图识别
具体实施方式
结合附图对本发明的具体实施方式进行描述,以便以后的研究人员更好的理解本发明。
图1是改进的HMM和SVM双层算法的驾驶员驾驶意图识别流程图。整体上介绍本发明的主体思路,先进行数据的采集与预处理获得训练向量,然后同时训练第一层HMM分类器和第二层SVM分类器,其次通过第一层HMM分类器排除其可以识别的意图,减少第二层SVM分类器负担。将第一层中的易混淆意图对应的训练向量导入第二层SVM分类器通过投票表决算法完成驾驶员驾驶意图的识别。
图2隐马尔科夫原理图。Q=(Q1,Q2,Q3)表示驾驶员的驾驶意图为不可观察的隐状态,ν=[v1,v2,v3,v4]表示可观察的驾驶行为序列。A=[aij]表示从意图Qi到意图Qj的转移矩阵,B=[bjk]表示从意图Qj产生行为νk的产生矩阵。
图3支持向量机原理图.支持向量分类机通过某种事先选择的非线性映射κ(v,vi)(核函数)将输入换到行为向量ν=[v1,ν2,…,νn]映射到一个高维特征空间,在这个空间中寻找最优分类超平面。使得它能够尽可能多的将两类数据点正确的分开,同时使分开的两类数据点距离
分类面最远。其中输出为标签量L,权值为λili。接下来对基于改进HMM和SVM双层算法的驾驶员驾驶意图识别方法进行具体说明。
本发明首先对驾驶员的驾驶意图进行分类,急左变道、一般左变道、车道保持、一般右变道和急右变道。分别标记为1、2、3、4和5。对采集的数据进行卡尔曼滤波、归一化处理、PCA主成分分析降维。运用第一层HMM模型获得能够识别的驾驶意图,将易混淆的驾驶行为序列输入第二层已经训练、优化的SVM模型完成对驾驶员驾驶意图识别。最后将HMM-SVM模型用于对驾驶员驾驶意图的识别。
步骤1:驾驶员驾驶意图的分类
本发明对驾驶员的驾驶意图进行分类:急左变道、正常左变道、车道保持、正常右变道和急右变道,分别标记为1、2、3、4和5,其中车道保持和车道左右变换三大类如图4所示。
步骤2:实验数据采集与处理:采集自车在高速路行驶时车道保持和车道变换的实验数据,先通过多传感器采集特定换道意图对应的换到行为数据序列,紧接着对换道行为数据序列进行卡尔曼滤波处理、归一化处理后进行PCA主成分分析。
采用6自由度SCANER II驾驶模拟器作为主要实验设备,采集自车在高速路行驶时车道保持和车道变换的实验数据,主要包括:通过KLT算法将安装在模拟驾驶器方向盘上的疲劳检测仪实时采集驾驶员头部运动视频信息装变为头部位移量a(t)、自车的方向盘转角b(t)、制动踏板力c(t)、与车道中心线的横向距离d(t)。
将每类试验数据按1-5进行编号,然后对样本数据中的每个特征向量均进行卡尔曼滤波处理其中处理的方法为:先引入一个离散控制过程的系统,
X(k)=MX(k-1)+NU(k)+W(k),Z(k)=HX(k)+V(k) (1)
式中,X(k):k时刻的系统状态,U(k):k时刻对系统的控制量。M和N是系统参数矩阵。Z(k):k时刻测量值,H:测量系统参数矩阵。W(k)和V(k)分别表示过程噪声和测量噪声。
假设现在的系统状态是k,基于系统的上一状态预测现在状态:
X(k|k-1)=MX(k-1|k-1)+NU(k) (2)
式中X(k|k-1):利用上一状态预测的结果,X(k-1|k-1):上一状态最优的结果,U(k):现在状态的控制量。对应于X(k|k-1)的协方差
P更新:P(k|k-1)=MP(k-1|k-1)MT+Q (3)
式中,MT:M的转置矩阵,Q:系统过程的协方差。
现在状态k的最优化估算值:
X(k|k)=X(k|k-1)+Kg(k)(Z(k)-H X(k|k-1)) (4)
Kg(k)=P(k|k-1)H'/(H P(k|k-1)H'+R(k)) (5)
式中R(k)表示k时刻测量噪声矩阵。
至此得到了k状态下最优的估算值X(k|k);
更新k状态下X(k|k)的协方差:
P(k|k)=(I-Kg(k)H)P(k|k-1) (6)
其中I为单位矩阵。依此可计算出所采集数据样本中每一个特征向量的滤波值。
对滤波后的特征向量进行归一化处理的方法为:对同一时间序列中的任一特征向量中样本数据X(n),n=1,2,…,N归一化处理得到Y(k):Y(k)=(x(k)-min(X(n)))/(max(X(n))-min(X(n))),k∈[1,N](7)
利用PCA主成分分析法对对计算的样本向量的进行降维处理的方法为:对原始数据进行标准化处理。假设进行主成份分析的指标变量有p个,分别为x
1,x
2,…,x
n,共有q组驾驶数据,第i组驾驶数据的第j个指标的取值e
ij。将各指标值e
ij转换成标准化指标值
有
式中:
即μ
j,s
j为第j个指标的样本均值和样本标准差。对应地,
为标准化指标变量。
Pro2:计算相关系数矩阵R.相关系数矩阵R=(rij)p×p,有
式中rii=1,rij=rji,rij为第i个指标与第j个指标的相关系数。
Pro3:计算特征值和特征向量。计算相关系数矩阵R的特征值λ1≥λ2≥…≥λp≥0,及对应的特征向量ω1,ω2,…,ωp,其中ωj=[ω1j,ω2j,…,ωpj]T,由特征向量组成p个新的指标向量:
式中,F1、F2、…、Fp分别为第一主成分、第二主成分…,第p主成分。
Pro4:选择r(r≤p)个主成分计算累计贡献率选择主成分。
上式为主成份F1,F2,…,Fr的累计贡献率。当αr接近于95%时则选择前r个指标变量
F1,F2,…,Fr作为r个主成分,代替原来p个指标。
本专利中最终选择r=4。
步骤3:HMM和SVM双层算法的构建与优化,进而构建出第一层HMM模型和第二层SVM模型。
3.1.HMM训练及构建
将前处理后的数据输入第一层HMM模型,通过得到的驾驶员驾驶的最大似然估计组对驾驶意图进行初步分类的方法为:
Pro1:用向量θ描述驾驶意图HMM模型,θ=[P0,A,B]。
P0为时刻t=1各驾驶意图的初始概率{P(Qi);i=1,2,…,m}的矢量形式。
A=[aij]=[P(Qj(t+1)|Qi(t))] (12)
t=1,2,…,T-1;i,j=1,2,…,m
aij表示从驾驶意图ui到驾驶意图uj的转移矩阵。
B=[P(νk(t)|Qj(t))]=[bjk] (13)
t=1,2,…,T;j=1,2,…,m;k=1,2,…,n
bjk表示驾驶意图为uj观察到驾驶行为νk的概率。
Pro2:根据已知的驾驶行为序列,通过前向-后向算法确定HMM模型参数[P0,A,B]。
在(t-1)时刻驾驶意图为Qi,在t时刻驾驶意图为Qj且可见驾驶行为序列为ν的概率为:
P(Qi(t-1)→Qj(t),v|θ)=αi(t-1)aijbjkβj(t) (14)
式中,αi(t-1)为(t-1)时刻驾驶意图ui观察到之前时刻所有驾驶行为的概率和;βj(t)为t时刻驾驶意图uj观测到之后时刻所有驾驶行为的概率和;aijbjk(t)表示系统有驾驶意图Qi(t-1)转移到Qj(t)并产生驾驶行为序列vk(t)的概率。
产生驾驶行为序列ν条件下,从驾驶意图Qi(t-1)转移到驾驶意图Qj(t)的概率γij为,
γij(t)=P(Qi(t-1)→Qj(t)|ν,θ)=P(Qi(t-1)→Qj(t),ν|θ)/P(ν|θ) (15)
式中,P(ν|θ)为所有可能的驾驶意图序列产生可见驾驶行为序列ν的总概率。
最后得到[P0,A,B]的重估计公式:
式中,P(Qj(1))表示在t=1时刻观察到驾驶意图Qj时的完整驾驶操作序列的概率,l表示长为T的驾驶意图序列的标记。根据上式多次迭代,逐步修正,求解最大化P(ν|θ)得出模型参数向量[P0,A,B]。
Pro3:已知θ=[P0,A,B],计算出现观察序列ν的概率P(ν|θ);
前向计算αj(t)、后向计算βi(t)的迭代过程如下:
对于任何1≤t≤T,都有:
基于训练得到的5种驾驶模型参数[P0,A,B],计算不同驾驶意图HMM模型条件下的的P(ν|θi),并比较它们的大小,将待识别意图分到P(ν|θi)取最大值的类中,完成第一层HMM的分类,然后比较HMM的输出概率,判断是否为易混淆驾驶意图,若是,把易混淆意图对应的驾驶行为数据序列作为候选模式集,用第二层SVM进行意图识别,反之,直接输出HMM识别结果。
3.2 SVM模型训练及构建
根据第一层HMM模型输出的易混淆驾驶意图对应的驾驶行为序列对应的驾驶意图种类确定SVM分类器个数。易混淆意图对应的的前处理后的数据及对应的标签量导入SVM模型,通过网格寻优算法获得支持向量机参数[C,g],完成分类器的训练和优化。最后将第一层HMM模型对应的易混淆行为序列输入训练好的SVM模型,最后通过投票表决算法输出驾驶意图。
给定训练样本集{(v1,l1),(v2,l2),…,(vn,ln)}输入SVM模型。式中ν1(t),ν2(t),...,νn(t)分别表示时窗T=1.2s内对应的驾驶行为特征向量。根据步骤1驾驶意图分类,驾驶意图标签li(t)=1、2、3、4和5分别表示:急左变道、左变道、车道保持、右变道和急右变道换五类。
将第一层HMM模型中易混淆驾驶意图对应的的行为序列导入第二层SVM,假设易混淆意图有3种,分别是急左变道、左变道和车道保持,需要
个分类器。
选择RBF径向基核函数将易混淆驾驶行为数据映射到高维空间,来解决在原始空间中线性不可分的问题,如下:
式中,νi,νj表示第一层HMM中易混淆驾驶意图对应的驾驶行为数据,且i<j,i,j∈[1,4];σ=cov(νi,νj)。
首先利用训练数据建立的决策函数f1=sgn(g1(x))以把类“1”分出,同样f2=sgn(g2(x)),f3=sgn(g3(x))能实现“2,3”分类。三分类训练得到的分类超平面:
3.3模型验证
将剩余的未用于模型训练的数据验证基于HMM和SVM双层算法的驾驶意图识别的精确度,计算第一层HMM模型的驾驶意图的概率输出与第二层SVM模型对易混淆驾驶意图的概率输出,通过投票表决算法概率取值较大的即为识别的驾驶意图。若能达到准确识别,则可用于实际中进行驾驶员驾驶意图识别。
本实施例中,SVM分类原理如图5所示,图中的实心圆即为驾驶行为数据点,通过计算HMM中易混淆换到行为序列到gi(x)距离的d1、d2和d3大小,可以看出d3为最短距离,即样例验证数据点与g3(x)最为靠近,则驾驶员的驾驶意图最有可能是第3类。
步骤4:驾驶员意图识别
将采用6自由度SCANER II驾驶模拟器作为主要实验设备,采集的自车的方向盘转角、与车道中心线的横向距离、横摆角速度、纵向速度、制动踏板位移和通过KLT算法获取的驾驶员脸部中心横坐标偏离其均值的大小等数据进行以卡尔曼滤波、归一化处理后PCA主成份分析降维,将数据输入第一层HMM模型中获得驾驶员驾驶意图输出概率识别率较高的直接输出驾驶意图,然后选择易混淆驾驶意图对应的驾驶行为序列,导入第二层SVM模型计算其到gi(x)的欧氏距离,寻找出距离最小的分类超平面,即为SVM驾驶员的驾驶意图,投票表决判断第一层HMM算法和第二层SVM算法对于易混淆意图的输出概率,选择较大的作为驾驶意图输出。
本实施例依据江苏大学汽车安全重点实验室6自由度SCANER II模拟驾驶仪平台进行试验,将50组驾驶行为数据预处理后导入建立的改进的HMM和SVM双层算法中,意图识别结果如图6所示,从实验结果可知高速道路行驶时依据本发明基于改进HMM和SVM双层算法的驾驶员驾驶意图识别方法能够较准确识别驾驶意图。该测试结果数据表明基于改进HMM和SVM双层算法的驾驶员驾驶意图识别方法对于高速公路上行驶的车辆是可行的和实用的。
综上,本发明的一种基于改进HMM和SVM双层算法的驾驶员换道意图辨识方法,先通过多传感器采集特定换道意图对应的换到行为数据序列,紧接着对换道行为数据序列进行卡尔曼滤波处理、归一化处理后主成分分析,将选择的主特征量导入第一层HMM模型中获得驾驶员换道意图输出概率识别率较高的直接输出换道意图,然后选择易混淆换道意图对应的换道行为序列,导入第二层SVM模型利用径相基核函数映射到高维可分空间,计算其到各个换道意图SVM模型的欧氏距离,寻找出距离最小的分类超平面,即为SVM驾驶员的驾驶意图,投票表决判断第一层HMM算法和第二层SVM算法对于易混淆意图的输出概率,选择概率较大的作为换道意图输出。本发明完整的的考虑人-车-路系统,采集自车、道路和驾驶员信息,采用HMM和SVM双层学习模型,提高了驾驶员换道意图辨识模型的准确度和及时性。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。