一种基于多模态融合神经网络对疲劳度检测的方法
2020-02-01邱达锋
邱达锋
(西南民族大学电气信息工程学院,成都610041)
0 引言
自有汽车以来,司机疲劳驾驶一直是一个需要解决的问题。尤其近几年汽车数量日益增高,疲劳驾驶的事故频频发生[1]。而司机疲劳主要表现为脑力疲劳和体力疲劳两种。其中,脑力疲劳是司机发生事故的主要表现[2]。因此,如何提供一种脑力疲劳监测有效指标,以实现对驾驶员精神状态的监测,是防止司机疲劳的重要研究热点。
目前,为监测脑力疲劳,已提出的指标有肌电(EMG)、EOG(眼电)、EEG(脑电)等生理信号的变化[3]。尤其是EEG脑电信号,它很好反映了人大脑活动的情况,其中根据它的活动范围,可划分为四个波段,即δ(1-3Hz)、θ(4-7Hz)、α(8-13Hz)、β(14-30Hz)[4]。δ波表现为成年人在极度疲劳、昏睡、麻醉状态;θ波表现为在成年人意愿受挫或者抑郁以及精神病患者中这种波极为显著,α波主要表现为一个人的正常节律,即人在清醒、安静并闭眼时该节律最为明显,但是睁开眼睛α波即刻消失。β波则是一个人精神紧张和情绪激动或亢奋时的表现。因此本文也将用EEG脑电信号做为疲劳检测的重要指标。另外一个本文用到的就是EOG眼电信号,其也被证明是人脑疲劳检测的有效方法[5-6]。在传统基于脑电信号的疲劳检测方法中,大多采用机器学习的方法。例如通过提取脑电信号特征,结合SVM、决策树、GBDT等分类方法实现疲劳检测[7-8]。这些方法只考虑单模态、信息单一,所以检测准确率实际上并不是很高。但是,随着深度学习在分类任务的应用[9],脑电信号特征提取方法有了更多选择,例如有用小波变换[10]、傅里叶变换[11]等来提取特征的。因此,利用这些特征结合神经网络的方法也开始受到研究者们的青睐[12-13]。尽管用神经网络单信号的输入效果有所提升,但是仍存在提升的空间。所以,又有研究者提出结合各种生理信号的方法,相关一些论文[14-15]就结合EEG、EOG融合熵(样本熵、近似熵和谱熵)的方法来进行疲劳检测。结果证明相较于单独用EEG、EOG的方法都有所提高。因此,本文也提出了一种EEG和EOG结合的方法,不同于直接用EEG、EOG特征融合[16-17]的方法,本文则是采用分别把EEG、EOG特征输入神经网络,再利用神经网络合并层实现两个模态的融合。在神经网络的选择上,根据文献[18]对数据集EEG和EOG信号的描述,本文决定选取从EEG信号中提取的微分熵特征,其中包括:移动平均值的DE和具有线性动态系统的DE,它的数据格式为(通道X样本数X频带),这符合二维卷积神经网络对特征输出要求,所以选择二维卷积,而EOG数据格式为(样本号X特征尺寸),这符合一维卷积神经网络,所以选择一维卷积。最后,本文通过单独用EOG、EEG训练和两者结合的实验进行对比,实验结果证明两者结合的准确率最高为98.3%,为众多疲劳检测算法[19-20]中,提供了一个新的研究方法。
1 方法
1.1 神经网络的总体结构
神经网络在疲劳检测的运用,其实就是做一个分类任务。而我们都知道神经网络在图像分类有着优越的表现。正是利用它的这个特性,我们把所提取的EEG、EOG特征看做一张张伪图像进行分类识别。神经网络的输入有单输入和多输入,根据本文的要求,选择了多输入的网络结构,其中EEG有4个输入,EOG有3个输入,总体网络结构如图1所示。
图1 多模态融合的网络结构
由图1可知,我们分别把EEG、EOG信号特征输入两个不同的神经网络训练,其中EEG信号特征选择了二维卷积神经网络,EOG信号选择了一维卷积神经网络。再通过concatenate层进行融合训练,最后经过交叉熵验证进行疲劳检测。
1.2 脑电信号EEG特征的神经网络搭建
根据EEG的特征,在神经网络的设计上,采用了二维卷积神经网络,其中运用了残差网络,残差结构如图2(a)所示,每个残差块包含2个3×3的卷积核,其滑动步长为1,每个卷积核后面都有一个批归一化层(Batch Normalization,BN)。每个残差块后都包含一个最大池化层,池化窗口大小均为2×2,在最后一个最大池化层接一个卷积核以及BN层,再接一个全局平均池化层降维以便后面特征的融合。此外,所有卷积核都用ReLU作为激活函数。其网络结构如图2(b)所示。
图2
1.3 眼电信号EOG特征的神经网络搭建
根据EOG的特征,在神经网络的设计上,采用了一维卷积神经网络,其中7层一维卷积,滑动步长为1,每个卷积层后面都有一个批归一化层(BN),还运用了3个最大池化层,最后接一个全局平均池化层降维以便后面多特征的融合。此外,所有卷积核都用ReLU作为激活函数。其网络结构如图3所示。
图3 EOG特征的一维卷积神经网络结构
2 实验设置与数据处理
2.1 数据集的描述
数据集的采集主要运用一个模拟的驾驶驱动系统,要求受试者在模拟沉闷的环境中驾驶汽车,然后使用Neuroscan系统记录收集EEG和EOG信号。均采用1KHz的采样频率,共采集21个通道的数据信息,其中,前额EOG电极设置如图4(a)所示,而脑电信号设置的电极分别为颞脑区域的6个通道(FT7、FT8、T7、T8、TP7、TP8)和后脑区域的11个通道(CP1、CP2、P1、P2、PZ、PO3、POZ、PO4、O1、OZ、O2)其电极分布如图4(b)所示。它们的放置均符合国际10-20电极分布位置要求。
图4
(a)为提取EOG数据的4个通道电极,(b)为提取EEG数据的17个通道电极,其中6个位于颞脑区域,11个位于后脑区域。
根据装置提取的EEG、EOG数据,本文所用到特征如表1所示。其中De_lds为后脑具有移动平均值的微分熵、De_movingAve为后脑具有线性动态系统的微分熵、Forehead_de_LDS为前额具有移动平均值的微分熵、Forehead_de_movingAve为前额具有线性动态系统的微分熵,而EOG的特征为features_table_ica、fea⁃tures_table_minus和features_table_icav_minh,均 使 用ICA和减法的不同VEO和HEO分离方法提取前额数据所得到[18]。
表1 选取的EEG和EOG特征
2.2 疲劳度信号标签的标注
整个实验是在午餐后或者晚上进行的,这样使得他们更容易引起疲劳。整个实验的持续时间约为2小时,期间参与者要求佩戴SMI眼睛跟踪眼镜,以便记录他们的眼球运动。然后,计算实验期间参与者的PER⁃CLOS(眼睑在单位时间内的闭合程度)指标值,并将其用作疲劳标签信号。其公式如下:
我们把PERCLOS记作P,根据所提到的,给P设置阈值,当P<0.35时,参与者属于清醒状态;当0.35
0.7时,参与者属于嗜睡状态。也就是说,根据不同的P值,我们得到了三种不同的状态,这也说明了,我们需要做的是一个三分类问题。其中,把清醒状态记作0,疲劳状态记作1,嗜睡状态记作2,具体标注方法如表2。
表2 疲劳标注状态
2.3 数据处理
原始数据是根据实际情况采集的,这样会存在一个问题,即清醒、疲劳、嗜睡三种状态数据分布不平衡,其分布如图5(a)所示,可以看到明显疲劳的数据最多,这对于神经网络的训练来说是不利的,为了解决这个问题,我们采用了SMOTE(Synthetic Minority Oversam⁃pling Technique)算法来对数据进行平衡处理。经过SMOTE方法采样后,三种状态的分布是平衡的,其分布如5(b)所示。
图5
具体SMOTE算法实现流程如下:
(1)对于少数类中每一个样本x,以欧氏距离为标准计算它到少数类样本集Smin中所有样本的距离,得到其k近邻。
(2)根据样本不平衡比例设置一个采样比例以确定采样倍率N,对于每一个少数类样本x,从其k近邻中随机选择若干个样本,假设选择的近邻为xn。
(3)对于每一个随机选出的近邻xn,分别与原样本按照如下的公式构建新的样本。
3 实验结果与分析
在实验上,把数据集随机以8:2的比例分为训练集和测试集,再对EEG特征、EOG特征建立单独的神经网络结构进行训练,最后结合EEG和EOG特征进行多模态融合的神经网络结构训练。三个实验均迭代50次,学习率设置为0.001。通过实验结果分析,单独的EEG特征、EOG特征训练的训练集、测试集的损失率和准确率曲线都不如结合EEG和EOG特征进行多模态融合的神经网络方法。具体如图6(a)、图(b)、图(c)和图7(a)、图7(b)、图7(c)所示。在传统疲劳检测的方法DBN、SVM、LR、KNN的平均准确率分别为86.08%、83.99%、82.70%、72.60%[21]。而由图7(a)、(b)、(c)可知,相较于传统疲劳检测方法,卷积神经网络的方法确实提升了很多,尤其是本文提出的结合EEG和EOG特征进行多模态融合的神经网络方法达到98.3%。具体三个实验的准确率对比如表3所示。
表3 三个实验测试集的准确率对比
4 结语
基于肌电(EMG)、EOG(眼电)、EEG(脑电)等生理信号特征融合来进行疲劳检测已经成为重要的研究课题。而传统的机器学习的方法可能已不满足检测的准确率。显然,本文提出结合EEG和EOG的多模态神经网络融合的方法,在准确率上有很大的提升,为司机疲劳驾驶检测提供一种研究方向。但是,由于各种生理信号特征提取方法很多且提取的操作繁琐,所以可能仍有更好的选择。目前,本文主要仅仅针对的是司机的疲劳检测,而疲劳检测的应用场景还有很多,例如:学生听课是否产生疲劳、公司上班职工是否感觉疲倦等,后续可以针对这些领域,利用迁移学习的方法,将司机驾驶疲劳检测识别模型进行迁移完成对其他领域的疲劳检测。
图6
图7