本发明涉及一种实时识别驾驶员情感的方法,特指一种融合脸部表情和语音的驾驶员情感实时识别方法。
背景技术:
:近些年,随着私家车数量的飞快增加,每年的交通事故的数量也在急剧上升,给人们的生命和财产造成了巨大的损失。而造成交通事故的原因有很多,主要包括两大方面因素:主动因素和被动因素。被动因素主要是指车自身零件发生异常、外界的一些人为不可控制的因素;主动因素是指驾驶员由于疲劳、行为异常、情绪异常等。目前,对于车自身的异常已经有了检测设备,而对于驾驶员疲劳驾驶和驾驶员异常行为已经有很多学者进行了研究,并且有了很大的进展,而对驾驶员情绪异常识别方面的研究未见报道。虽然很多学者针对日常生活中的情感信息进行分析和识别,取得了一定的突破,但是这些模型复杂,实时性很难达到,在图像光照不好的情况下,识别精度不高,不适合驾驶员情感的识别。技术实现要素:针对以上所述的问题和不足,驾驶员情感识别有很大的研究意义。本发明为了解决驾驶员情感高精度、实时识别的问题,引入Kinect这一高速3D摄像设备提取RGB图像信息、Depth图像信息和语音信息,并针对这些特征提出了一整套切实可行的驾驶员情感识别方法,大大提高了识别精度与速度。实现本发明的技术方案如下:一种融合脸部表情和语音的驾驶员情感实时识别方法,包括如下步骤:步骤1,获取驾驶员脸部图像和语音信号;所述的脸部图像包括RGB图像和Depth图像;所述的语音信号包括声学信号和说话内容;步骤2,对驾驶员脸部图像和语音信号进行预处理;步骤3,基于无监督特征学习和稀疏编码进行特征提取模型的训练;基于说话内容创建单词词典;步骤4,将步骤2预处理得到的图像、声学信号串接,串接后输入到步骤3训练好的特征提取模型中,得到基于脸部图像和声音信号的情感特征V;通过查找步骤3中创建的词典得到基于文本的情感特征D;将V和D串联在一起构建基于驾驶员情感的特征向量F,进行SVM训练,得到SVM模型;步骤5,驾驶员情感实时识别,包括:获取驾驶员脸部图像和语音信号,利用步骤2预处理的方法进行预处理,然后按照步骤3的方法将脸部图像、声学信号和说话内容进行特征提取,将提取的特征串联后输入到步骤4得到的SVM模型,输出待识别的驾驶员的情感类别。作为优选方案,步骤1和步骤5中所述的获取驾驶员脸部图像和语音信号的实现方法为:通过kinectSDK实时跟踪人脸,同时获取并保存反映驾驶员积极情感或消极情感的脸部图像和语音信号。作为优选方案,步骤2中对所述脸部图像的预处理方法包括:步骤2.1.1,将RGB图像和Depth图像灰度化生成灰度图像,再对灰度图像大小归一化为40*40;步骤2.1.2,将灰度化的RGB图像和Depth图像按照比例相加;步骤2.1.3,对步骤2.1.2按比例相加后的图像进行均值滤波,得到驾驶员脸部RGB+D的图像X。作为优选方案,步骤2.1.2中所述的按照比例相加具体实现方法为:按照像素大小3:7的比例相加,其中RGB图像占比为3,Depth图像占比为7。作为优选方案,步骤2中对所述语音信号的预处理方法包括:对声学信号进行预处理;包括高通滤波、分帧、加汉明窗;对说话内容进行预处理;包括:将一整句说话内容拆分成独立的单词。作为优选方案,步骤3中所述的特征提取模型训练的方法为:将无监督特征学习和稀疏编码串联在一起,按照模型训练算法进行模型参数估计;具体实现方法包括:步骤3.1.1,首先随机选取无监督学习的权值、稀疏字典和稀疏系数,将步骤2中预处理后的脸部图像和声学信号作为无监督特征学习的输入,无监督特征学习的输出作为稀疏编码的输入,得到稀疏编码的输出;步骤3.1.2,计算重构误差进行调节权重和稀疏字典,重复步骤3.1.1进行迭代计算,达到迭代次数或目标函数得到最小值时,停止训练,得到模型参数,进而得到驾驶员脸部图像和声学信号的特征提取模型。作为优选方案,所述模型训练算法采用EM算法原理。作为优选方案,步骤3中所述利用说话内容创建单词词典的实现方法包括:利用Apriori算法提取频繁项,利用所述频繁项创建词典。作为优选方案,创建词典的具体实现方法包括:通过人工标定单词的词性,积极词性的单词标记为1,消极词性的单词标记为-1,没有出现在频繁项的单词标记为0,创建单词的词典。本发明的有益效果为:成功解决了仅通过驾驶员表情识别驾驶员情感不足的问题,凭借融合驾驶员脸部表情和语音实现了高精度实时驾驶员负面情感识别。在进行图像和声学信号特征提取时,采取无监督特征学习和稀疏编码的方法得到基于驾驶员脸部图像和声音信号的情感特征,另外对于说话内容提取的单词用Apriori算法提取频繁项,之后创建词典,获取基于文本的情感特征,最后与图像和声学信号的特征进行串接作为SVM的输入,训练得到SVM模型。通过本发明的方法得到的模型对驾驶员负面情感的识别具有很高的准确率、并不受外界因素干扰。附图说明图1是融合脸部表情和语音的驾驶员情感实时识别方法流程图。具体实施方式下面结合附图和具体实施例对本发明作进一步说明。如图1所示,为本发明的方法流程图,首先,通过kinectSDK实时跟踪人脸,获取驾驶员的脸部图像(RGB图像和Depth图像)和语音信号(包括声学信号和说话内容),之后对驾驶员的脸部图像(RGB图像和Depth图像)、声学信号进行预处理,根据给出的目标函数来训练基于无监督特征学习和稀疏编码的特征提取模型,得到模型之后将预处理得到的信息输入特征提取模型得到基于脸部图像和声音信号的情感特征;并根据说话内容提取单词,通过Apriori算法得到的频繁单词并创建词典,通过词典来获取得到基于文本的情感特征,最后将基于脸部图像和声音信号的情感特征和基于文本的情感特征串连在一起得到特征向量,将特征向量输入到支持向量机SVM,训练SVM分类器,得到SVM模型。利用最终得到SVM模型识别出驾驶员的情感,具有很高的鲁棒性。具体实现过程包括如下步骤:1.获取驾驶员脸部图像和语音信号的过程通过kinectSDK实时跟踪人脸,同时获取并保存反映驾驶员积极情感和消极情感的脸部图像和语音信号,其中脸部图像包括RGB图像和Depth图像,语音信号包括声学信号和说话内容。其中,一帧图像对应三帧语音信号。2.驾驶员脸部图像和语音信号预处理的过程2.1驾驶员脸部图像(RGB图像和Depth图像)预处理通过步骤1得到的驾驶员脸部的RGB图像和Depth图像(每秒30帧)灰度化生成灰度图像,再对灰度图像大小归一化为40*40,之后按照像素大小3:7的比例相加(根据实验结果显示,3:7的比例相加准确率最高),相加后的图像再对其进行均值滤波消除噪声,得到驾驶员脸部RGB+D的图像X,即预处理得到的驾驶员脸部图像定义为X。2.2驾驶员语音信号预处理通过步骤1得到的驾驶员语音信号(包含声学信号和说话内容)预处理过程如下:2.2.1对声学信号进行预处理,得到的声学信号定义为Y所述预处理包括高通滤波、分帧、加窗(汉明窗)等预处理,具体实现如下:高通滤波:提升高频部分,使信号的频谱变得平坦,保持在低频到高频的整个频带中,能用同样的信噪比求频谱。同时,也是为了消除发声过程中声带和嘴唇的效应,以消除噪声,来补偿语音信号受到发音系统所抑制的高频部分,突出高频的共振峰。分帧:先将N个采样点集合成一个观测单位,称为帧。我们选用N的值是512,而获取的声学信号的采样频率为16KHz,那么帧的时间长度是32ms(512/16000*1000=32),为了相邻帧的变化过大,因此会让两相邻帧之间有一段重叠区域,此重叠区域包含了M个取样点,选用M的值约为为N的2/3,每秒钟采样90帧。加窗:将每一帧乘以汉明窗,以增加帧左端和右端的连续性。2.2.2说话内容进行预处理说话内容进行单词提取:把一整句话拆分成独立的单词,例如:驾驶员说:“前边堵车这么严重”。提取后的单词为“前边”、“堵车”、“这么”、“严重”。3.训练驾驶员脸部图像和声学信号的特征提取模型、创建单词词典3.1训练驾驶员脸部图像和声学信号的特征提取模型将无监督特征学习(具体采用的是自动编码器Autoencoder)和稀疏编码串联在一起,按照模型训练算法进行模型参数估计。具体操作如下:首先随机选取无监督特征学习的权值、稀疏字典和稀疏系数,将步骤2中预处理后的图像和声学信号(一帧脸部图像对应三帧声学信号)做为无监督特征学习的输入,无监督特征学习的输出作为稀疏编码的输入,稀疏编码输出得到以后,通过计算重构误差进行调节权重和字典(因为有三个参数要调节,在迭代过程中固定其中两个参数,调节另一个参数),进行上述过程的迭代计算,达到迭代次数或目标函数得到最小值时,停止训练,得到模型参数,即得驾驶员脸部图像和声学信号的特征提取模型。上述训练驾驶员脸部图像和声学信号的特征提取模型的目的是:得到自动编码器Autoencoder的权重和稀疏编码SparseCoding的稀疏字典。其中,无监督特征学习+稀疏编码的目标函数定义为:minimizeW,V,U||WTWZ-Z||22+λ1g(WZ)+λ2||WZ-UV||22+λ2|V|1]]>subjectto||uk||2≤1,k=1,2,...,K.其中,Z(Z=[X,Y])是输入向量;W是一个编码矩阵;g是惩罚项,取L1范数;λ1是惩罚项的权重;U是稀疏字典;V是稀疏系数;λ2是稀疏编码误差项的权重;λ3是惩罚项的系数,uk代表U中的元素,K代表U中元素个数。上述训练过程中采用的模型训练算法为参考EM算法(ExpectationMaximizationAlgorithm)的思想,具体原理如下:如果要优化的目标函数包含两个变量,如L(W,B),那么我们可以先固定W,调整B使得L最小,然后再固定B,调整W使L最小,这样迭代交替,不断将L推向最小值。在式(1)中的目标函数包含三个变量(编码矩阵W,稀疏字典U,稀疏系数V),根据EM算法的思想,采用固定其中两个参数,调节另一个参数的方法,使目标函数达到最小值,这样不断迭代,不断使目标函数推向最小值,最后得到模型参数:W,U。基于无监督特征学习+稀疏编码的特征提取模型的训练算法如下:输入:通过步骤2得到预处理的驾驶员脸部图像和通过步骤2.2.1得到预处理的驾驶员声学信号串接构成特征向量Z;输出:编码矩阵W,稀疏字典U,稀疏系数V;步骤a,初始化:W,U和V随机初始化。步骤b,迭代优化W,U和V:Whileiter<=max_iterdo固定U和V:使用无约束最优化L-BFGS算法更新W,最小化目标函数。固定W和U:目标函数求最小值,变成了系数中含有L1范数的线性回归问题。使用特征信号搜索算法优化更新V,最小化目标函数。固定W和V:目标函数求最小值,变成了二次约束的最小二乘问题。使用拉格朗日对偶方法优化更新U,最小化目标函数。end3.2依据单词词性创建词典说话内容提取的单词中含有驾驶员积极情感和消极情感的文本信息,其中多数说话内容对识别驾驶员情感是冗余的,选用Apriori算法对说话内容进行频繁项挖掘,频繁项挖掘是为了提取与驾驶员情感有关的单词。挖掘经常出现在驾驶员积极情感和消极情感中的单词,之后将积极情感的单词标签设为1(如:{“高兴:1”,“开心:1”,....}),将消极情感的单词标签设为-1(如:{“很生气:-1”,“不开心:-1”,....}),得到最终字典{“高兴:1”,“开心:1”,....“很生气:-1”,“不开心:-1”,....}。其中,Apriori算法的原理是:如果某个项集是频繁的,那么它的所有子集也是频繁的,但是在我们应用的时候,通常用的是它的逆否命定:如果一个项集是非频繁的,那么它的所有超集也是非频繁的。4SVM训练首先,将步骤2.1、步骤2.2.1预处理得到的图像X、声学信号Y串接构成Z(Z=[X,Y]),输入到步骤3.1训练好的特征提取模型中,得到基于脸部图像和声音信号的情感特征V1(由WZ=UV1,得到特征向量V1:[0.8,0,0,1,...,0,0.7,0,...])。另外,说话内容通过步骤2.2.2的预处理,提取单词,查找步骤3.2中创建的词典得到基于文本的情感特征D(没有出现在字典中的单词标定为0,则特征向量为:[1,1,0,1,-1,-1,0,1,1...]),之后,V1和D串接在一起构建基于驾驶员情感的特征向量F,F=[V,D]=[0.8,0,0,1,...,0,0.7,0,...1,1,0,1,-1,-1,0,1,1...],其中,特征向量F分为两类,一类是驾驶员积极情感的特征向量标签为1,另一类是驾驶员消极情感的特征向量标签为-1。最后由F和对应的标签训练支持向量机SVM,得到能够识别驾驶员情感的SVM模型。5驾驶员情感的实时识别首先,通过kinect获取得到驾驶员的脸部图像和语音信号,之后,将驾驶员的脸部图像和声学信号通过步骤2.1和步骤2.2.1的预处理得到X和Y,之后串接构成Z,输入到步骤3.1训练好的特征提取模型,得到基于脸部图像和声音信号的情感特征V1。并将驾驶员说话内容通过步骤2.2.2的预处理,提取单词,查找步骤3.2中创建的词典得到基于文本的情感特征D,最后,V1和D串接在一起构建基于驾驶员情感的特征向量F,输入到步骤3.3中训练的SVM模型,SVM模型输出驾驶员的情感信息。以上所述仅用于解释本发明的技术原理,并不用于限定本发明的保护范围,在不违背本发明实质内容和原则的前提下,所作任何修改或润饰等都将在本发明保护范围内。当前第1页1 2 3