一种基于CNN-LSTM深度学习模型的驾驶疲劳识别方法与流程

文档序号:17788085发布日期:2019-05-31 19:42阅读:2170来源:国知局
一种基于CNN-LSTM深度学习模型的驾驶疲劳识别方法与流程

本发明涉及驾驶疲劳识别方法,特别是一种基于cnn-lstm深度学习模型的驾驶疲劳识别方法。



背景技术:

当今社会,随着科学技术和交通运输技术的发展,我国在交通领域取得了巨大的进展。可是,在享受交通带来便利的同时,交通事故也日益增多,而且造成事故的主要原因是驾驶疲劳。因此建立起一个可以有效实时监测驾驶员疲劳状态的机制,是现在智能交通发展的重要内容。

生理信号作为目前判断疲劳驾驶最广泛的方法,可以通过机体所表现的生理差异来有效的区别驾驶员的疲劳状态。脑电图(eeg)、事件相关电位(erp)、眼电信号(eog)、心电信号(ecg)和肌电信号(emg)都是目前常用的基于生理信号的测量指标。

一般研究心电信号ecg(electrocardiograph),主要是研究心率(heartrate,hr)和心率变异性(heartratevariability,hrv),心率和心率变异性与自主神经系统有着密切的关系。研究表明,驾驶员在疲劳时,心率会减慢,心率变异性会发生改变。

肌电信号emg(electromyography)可以通过贴于肌肉表面的电极来记录,它可以反映不同状态下神经和肌肉的功能状态。研究发现,当驾驶员疲劳时,肌电信号的频率和幅值都会有所改变。

当人在睁眼、闭眼时,眼电信号eog(electro-oculogram)的波形会发生比较明显的变化,而且眼球的运动也可以提供疲劳信号。这样就可以通过眼电信号的波形变化,分析出眼睛的状态和眨眼频率,以此反映大脑的清醒状态,从而检测驾驶员的疲劳程度。

事件相关电位(event-relatedpotential,erp)是被外界刺激所诱发的电位,记录了大脑对外界刺激进行信息加工时的电生理反映。erp信号中研究较多的是p300,实验表明,驾驶员在疲劳状态下,对外界刺激的反应速度下降。

脑电图(electroencephalograph)信号是最具有预测性和可靠性的指标,它与人的精神活动有非常紧密的联系,驾驶疲劳所产生的生理活动都反应在eeg中。不同的大脑状态会出现不同的脑电信号变化规律,将这些可以代表各个状态的特征提取出来加以分类,如功率谱密度和信息熵等,这样就可以有效的区分大脑的疲劳状态。

现阶段的分类方法大部分采用机器学习的方法,例如:支持向量机(supportvectormachine,svm),人工神经网络(artificialneuralnetworks,ann)、决策树(decisiontree,dt)、k近邻(k-nearestneighbour,knn)和随机森林(randomforest,rf)等。将经过预处理、特征提取的脑电信号送入识别模型完成训练,这样就可以将训练好的模型去分类等待测试的数据。

虽然许多的生理指标都已被证明可以有效的反映驾驶员的疲劳状态,但其中只有脑电信号有很强的精准性,它和大脑的精神状态密切相关,而其它类似心电、肌电、眼电的信号只是机体的外在反映,没有办法精准的评测驾驶员的疲劳状态。外在的环境状态对驾驶员眼睛的影响较大,在模拟实验中模拟现实环境的复杂性也有一定的难度。而心电信号中的心率指标,也会因为体力的消耗受到较大的影响。在实际的应用中,也没有可以诱发稳定erp的刺激,如果引入刺激可能会对主任务产生一定的影响。eeg虽然最为反映疲劳状态最优的生理信号,但是在分析分类的方法上还有一定的缺陷。svm在处理复杂的数据时,会消耗大量的内存和运算时间,相同的,knn也会因为数据过于负载而拖累分类速度。而且这些分类器严格的依赖训练数据而不是一般数据,并且也没有充分利用脑电信号的时序特征。在特征提取这一方面,大部分的研究是靠人工提取,这就与研究者自身的水平有很大的关系,不能准确地表征脑电信息。



技术实现要素:

为解决上述技术问题,本发明的目的是提供一种基于cnn-lstm深度学习模型的驾驶疲劳识别方法,可适合处理大数据,直接作用于原始数据,自动逐层进行特征学习,并且还可以表达数据内在联系和结构,以提高驾驶员驾驶疲劳的检测能力。

本发明采用的技术方案是:

一种基于cnn-lstm深度学习模型的驾驶疲劳识别方法,包括以下步骤:

在时长t内采集受试者模拟驾驶时的脑电信号;

在模拟驾驶时随机发布操作命令,根据受试者完成操作指令的反应时间将所述脑电信号划分为疲劳数据和非疲劳数据;

对所述脑电信号进行带通滤波以及去均值预处理,提取需要检测的疲劳与非疲劳各n分钟的脑电信号数据;

对所述脑电信号数据进行独立分量分析以去除干扰信号;

建立主要由cnn网络和lstm网络组成的cnn-lstm模型,并设置cnn-lstm模型的网络参数;

将所述去除干扰信号后的脑电信号数据送入cnn网络进行特征提取;

将特征提取的数据重塑,并送入lstm网络进行分类。

进一步,所述脑电信号划分疲劳数据和非疲劳数据的规则为:当反应时间低于θ1时,所在时间点之前的数据标记为清醒数据,当反应时间位于θ1和θ2之间时,两个阈值所在时间点间的数据标记为中间状态数据,当反应时间高于θ2时,所在的时间点之后的数据标记为疲劳数据。

进一步,所述阈值θ1和θ2来源于训练实验,其中θ1的计算方法为在训练实验的过程中,从开始进行实验到第一次受试者表现为疲劳状态或汽车行车路径偏离正常运行轨迹的时间段内,反应时间的平均值;其θ2计算方法是训练实验过程中,受试者外在表现为疲劳状态或汽车行车路径偏离正常运行轨迹的时间段内,反应时间的平均值。

其中,所述cnn-lstm模型的网络参数分别为,cnn网络:卷积层层数为3层,参数设置为5*5,最大池化层层数为3层,参数设置为2*2/2;lstm网络:隐藏层神经元个数128,网络层数128,学习率0.001,训练批次大小50,训练周期50。整个模型网络一共134层。

特别的,所述脑电信号数据送入cnn网络进行特征提取之前进行列数调整以使其满足卷积和池化要求。

进一步,所述cnn网络对脑电信号数据进行特征提取的过程包括以下步骤:a1)脑电信号数据经过卷积层进行特征提取,得到卷积特征输出图;a2)采用最大池化方法,对卷积特征图进行池化处理,得池化特征图;a3)再重复两次步骤a1)、a2)。

更进一步,所述步骤a2)进行池化时,将使用相同长度卷积核对应的最大池化输出,进行连接形成一个连续的特征序列窗口;不同卷积核对应的最大池化输出,再进行连接得到多个维持原有相对顺序的特征序列窗口。

进一步,所述lstm网络的分类过程如下:

第一层ft为遗忘门层,它决定从细胞状态中丢弃什么信息;

ft=δ(wf[ht-1,xt]+bf)

式中ht-1代表前一单元的输出,xt表示当前时刻单元的输入,ft代表遗忘层的输出,δ表示sigmoid激励函数,wf、bf分别表示加权项与偏置项;

第二层it为输入门层,为sigmoid函数,决定需要更新的信息;

it=δ(wi[ht-1,xt]+bi)

式中it被用来确认更新状态并加入到更新单元中去,ht-1代表前一单元的输出,xt表示当前时刻单元的输入,δ表示sigmoid激励函数,wi、bi分别表示加权项与偏置项;

第三层为tanh层,通过创建一个新的候选值向量更新细胞状态;

式中被用来确认更新状态并加入到更新单元中去,ht-1代表前一单元的输出,xt表示当前时刻单元的输入,δ表示sigmoid激励函数,wc、bc分别表示加权项与偏置项;

第二层和第三层共同作用,更新神经网络模块的细胞状态;

第四层ot为其他相关信息更新层,用于更新由其他因素导致的细胞状态变化;

ot=δ(wo[ht-1,xt]+bo)

式中ht-1代表前一单元的输出,xt表示当前时刻单元的输入,δ表示sigmoid激励函数,wo、bo分别表示加权项与偏置项,ot作为中间项被用来与ct得到输出项ht;

ht=ot*tanh(ct)

式中ft代表遗忘层的输出,it与被用来确认更新状态并加入到更新单元中去,ct-1为更新前的单元,ct即为更新后的单元,ot作为中间项被用来与ct得到输出项ht。

本发明的有益效果:本发明通过深度学习的方法构造了一种cnn-lstm模型,cnn网络在处理大的复杂的数据方面有很强的优势,而且在进行特征提取时,直接作用于原始数据,自动逐层进行特征学习,比起传统的人工提取特征,可以得到更好地表征一般数据的特征,而不会过分依赖于训练数据。并且脑电信号是典型的时间序列信号,用lstm网络进行分类可以更好地发挥它的时序特征。实验结果表明有较高的准确率,准确率为96.3±3.1%(总均值±总标准差)。

附图说明

下面结合附图对本发明的具体实施方式做进一步的说明。

图1是本发明改进国际10-20系统电极放置图;

图2是本发明cnn网络结构图;

图3是本发明lstm网络结构图。

具体实施方式

本发明的一种基于cnn-lstm深度学习模型的驾驶疲劳识别方法,包括以下步骤:

在时长t内采集受试者模拟驾驶时的脑电信号:首先通过脑电采集设备采集受试者模拟驾驶时的脑电信号,本实施例所采用的时间长度为90分钟,一共采集了31位受试者的脑电数据。脑电采集时的电极采用改进的国际10-20标准放置电极,共24个导联。电极放置方式如图1所示。

在模拟驾驶时随机发布操作命令,根据受试者完成操作指令的反应时间将所述脑电信号划分为疲劳数据和非疲劳数据;具体的,在受试者进行模拟驾驶时,由屏幕中引导车随机发出刹车命令,记录受试者在看到命令和做出反应的时间间隔,统计反应时间。

当反应时间低于θ1时,所在的时间点之前标记为清醒数据,当反应时间位于θ1和θ2之间时,两个阈值所在时间点间的数据标记为中间状态,当反应时间高于θ2时,所在的时间点之后的数据标记为疲劳数据。

阈值来源于训练实验,由于受试者的个体差异,时间间隔阈值设置不统一。因此在测试实验前需要通过训练实验获得面向个体受试者的时间间隔阈值。其中θ1的计算方法为在训练实验的过程中,从开始进行实验到第一次受试者表现为疲劳状态(如打呵欠)或汽车行车路径偏离正常运行轨迹的时间段内,反应时间的平均值;其θ2计算方法是训练实验过程中,受试者外在表现为疲劳状态(如打呵欠)或汽车行车路径偏离正常运行轨迹的时间段内,反应时间的平均值。为保证受试者都进入了疲劳状态,统计反应时间的变化,反应时间增长,则保留数据。采集数据的采样频率为250hz。

为了将采集数据中的干扰信号去除。脑电信号在提取时及其容易受到其他信号的干扰,例如眼电、心电、肌电和工频噪声,所以需要设计合理的可以去除干扰的算法,来提高信号的信噪比。因此,本技术方案接下来对采集到的信号进行预处理。首先对模拟驾驶疲劳实验采集到的脑电信号进行1-30hz带通滤波以及去均值预处理,提取出需要检测的疲劳与非疲劳各十分钟的脑电数据,然后将其进行独立分量分析(ica)以去除眼电信号干扰(也可以是心电、肌电和工频噪声),ica过程是在以时间为窗口以及步长均为5秒的脑电信号数据中进行处理。

具体的,ica原理如下:

若有未知的原信号s,构成一个列向量s=(s1,s2,…,sm)t,假设在某个时刻t,有x=(x1,x2,…,xn)t为n维随机观测列向量,且满足下列方程:

其中ai表示混合矩阵a的第m个行向量中的第i个。ica的目的就是求出一个解混矩阵b,使得x通过它后得到y是s的最优逼近。用数学公式可以表示为:

y(t)=bx(t)=bas(t)

以上预处理后的两段各十分钟驾驶疲劳脑电信号数据以时间窗口为1秒,步长为0.5秒分别标记为清醒状态和疲劳状态,将实验数据中的70%用作训练,剩下的30%用于分类测试。

要想分类结果准确,选取跟能表征数据特点的特征就变得尤为关键,特征选择之后,如何选择分类器也是至关重要的,因为不同的分类器有不同的特点,分类器选择的是否合适将直接影响到分类的结果。

因此,接下来是建立cnn-lstm模型,该模型由两个主要部分组成,分别是:区域卷积神经网络层regionalcnn和长短记忆神经网络层lstm。深度学习网络虽然学习能力强大,但也要基于模型要求和人工经验,设置一些超参数,使算法的寻优速度更快、分类准确度更高。

网络参数:

(1)convolution。卷积层,用它进行特征提取,卷积核大小以及个数越多,所提取的特征也越多,同时计算量也会大幅增加,其步长通常设置为1。

(2)max-pooling。最大池化层,用于特征图缩小,有可能影响网络的准确度。

(3)hidden_size。隐藏层神经元个数,其个数越多,lstm网络越强大,但计算参数和计算量会因此急剧增加;而且,要注意隐藏层神经元个数不能超过训练样本条数,否则容易出现过拟合。

(4)learning_rate。学习率,会影响各神经元连接的权值更新速度,学习率大,权值更新就快,到训练后期损失函数可能在最优值附近振荡,学习率小,权值更新就慢,过小的权值可能导致优化损失函数下降速度过慢。

(5)num_layers。网络的层数,层数越多,lstm网络越大,学习能力越强大,同时计算量也会大幅增加。

(6)batch_size。批量训练样本大小,网络权重的更新基于对小批量训练数据集结果的反馈,当批量训练样本过小时容易造成网络不稳定或者欠拟合,当批量训练样本过大时会导致计算量显著增长。

(7)train_times。训练次数,随着训练次数的不断增加,网络的准确性越高,但当训练次数达到一定值后,lstm网络的准确性将不再提高或提升很小,而计算量却不断增加。因此在具体操作时,应结合研究问题的需要,选择合适的训练次数。

本发明的参数设置详见下表1。

表1cnn-lstm网络参数

当构造好特征提取和分类的模型之后,预处理后的数据可能因为维度或者其他方面的一些问题,无法通过构造的模型进行特征提取和分类,这就需要对数据进行进一步的加工。

因此,接着将预处理的数据输入cnn-lstm模型,但是由于预处理后的脑电信号数据24*250不能够进行3次卷积与池化,因此将其去掉最后两列后得到24*248,接着将数据输入cnn网络进行特征提取,cnn网络结构图如图2所示。具体过程如下:

首先经过卷积层进行特征提取,得到卷积特征输出图,然后进入最大池化层,最大池化层通过取最大值操作来“抛弃”非最大值,减少下一层的计算量,同时提取各个区域内部的相依信息。采用最大池化方法,对卷积特征图进行池化处理,得池化特征图,将使用相同长度卷积核对应的最大池化输出,进行连接形成一个连续的序列,形成一个窗口,对不同卷积核得到的输出进行相同操作,得到多个维持原有相对顺序的窗口;

经过三次卷积和池化后,将特征序列窗口层中的序列向量作为下一层lstm网络的输入。

将cnn网络输出的特征提取后的数据输入lstm网络进行分类,由于lstm网络处理的是时间序列数据,因而需要将3*31*128重塑为93*128,即每次输入长度为93的向量,共计128次,最后得出该标签数据的判断结果。lstm网络结构如图3所示。

lstm网络的计算过程如下:

第一层ft为遗忘门层,它决定从细胞状态中丢弃什么信息。

ft=δ(wf[ht-1,xt]+bf)

式中ht-1代表前一单元的输出,xt表示当前时刻单元的输入,ft代表遗忘层的输出,δ表示sigmoid激励函数,wf、bf分别表示加权项与偏置项。

第二层it为输入门层,一般为sigmoid函数,决定需要更新的信息。

it=δ(wi[ht-1,xt]+bi)

式中it被用来确认更新状态并加入到更新单元中去,ht-1代表前一单元的输出,xt表示当前时刻单元的输入,δ表示sigmoid激励函数,wi、bi分别表示加权项与偏置项。

第三层为tanh层,通过创建一个新的候选值向量更新细胞状态。

式中被用来确认更新状态并加入到更新单元中去,ht-1代表前一单元的输出,xt表示当前时刻单元的输入,δ表示sigmoid激励函数,wc、bc分别表示加权项与偏置项。

第二层和第三层共同作用,更新神经网络模块的细胞状态。

第四层ot为其他相关信息更新层,用于更新由其他因素导致的细胞状态变化。

ot=δ(wo[ht-1,xt]+bo)

式中ht-1代表前一单元的输出,xt表示当前时刻单元的输入,δ表示sigmoid激励函数,wo、bo分别表示加权项与偏置项,ot作为中间项被用来与ct得到输出项ht。

ht=ot*tanh(ct)

式中ft代表遗忘层的输出,it与被用来确认更新状态并加入到更新单元中去,ct-1为更新前的单元,ct即为更新后的单元,ot作为中间项被用来与ct得到输出项ht。

应用此模型,进行5次实验并求平均与标准差,实现了96.3±3.1%(总均值±总标准差)的分类精度,详细见表2。

表2各受试者分类精度及总分类精度

以上所述仅为本发明的优先实施方式,本发明并不限定于上述实施方式,只要以基本相同手段实现本发明目的的技术方案都属于本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1