基于迁移学习的深层卷积神经网络心电信号疲劳分类
2021-11-04吴雪王娆芬
吴雪,王娆芬
上海工程技术大学电子电气工程学院,上海201620
前言
随着自动化技术不断的发展和更新,人机交互系统得到广泛应用,某些系统通过引入自动化控制技术提高其工作精度和效率。由于自动化技术的进一步提高,操作员在自动控制系统中的地位更加重要,完全取消人类操作员几乎是不可能的。在对安全性要求较高的人机交互系统中,如铁路、航空航天等领域,需要保证操作员有足够的精神状态去应对可能发生的未知故障[1]。操作员是自动控制系统工作的主体,要有能力完成不同负荷任务工作。操作员经历长时间的高压工作后,疲劳程度会不断增加,可能出现操作失误,造成严重后果。为确保操作员安全操作,避免发生事故,保持操作员的工作效率,实时监测操作员的疲劳状态具有非常重要的意义[2]。近年来,很多研究利用操作员的行为及面部表情进行疲劳的监测,通常需要利用各种摄像头采集面部表情图像,结合图像处理技术从中提取相关特征,实现监测操作员疲劳状态的目的,但该方法易受光照强度的影响[3]。研究表明人体心电、脑电、肌电等生理信号更能准确地反映疲劳程度,利用操作员的生理信号特征监测疲劳状态得到广泛研究[4],且已取得很大进展。Liang 等[5]分析不同时期HRV 的变化,指出HRV 线性指标的变化方向和程度在不同程度疲劳中是不一样的。唐优华等[6]将疲劳分为两个等级,提取心电信号(ECG)的8个特征作为模型输入,采用支持向量机建立疲劳状态识别模型对疲劳进行判断。郑超英等[7]针对在疲劳状态识别研究中采集到的脑电信号具有非线性特点,提出基于样本熵和核主成分分析的疲劳状态分类方法。以卷积神经网络(CNN)为代表的深度学习技术在迅速发展,其优势在于通过训练网络参数,从大量数据中自动学习得到有效的特征而无需人工进行特征提取,其在图像分类、语音识别等领域得到广泛应用[8]。叶成文[9]报道提取ECG、肌电生理信号特征参数,采用学习向量量化神经网络建立疲劳模型,并验证了模型的有效性,同时使用K-fold方法对该模型进行优化。黄河[10]建立LSTM神经网络模型对疲劳状态进行分类训练,并取得了较好的分类结果。Zhang 等[11]构建基于局部有向相干的CNN 用于疲劳检测,结果表明此方法可以准确可靠地识别疲劳状态。
在前期工作中,本研究首先将一维ECG 转化成灰度图:将原始数据转换成每个样本为1 000 个采样点的数据集,转化成灰度图作为DCNN 的输入,得到的准确率并不是很好。然后考虑在极坐标系中对ECG 进行表示,通过格拉姆角场法转化为图像:信号的时间随着位置从矩阵的左上角到右下角的移动而增加,送入DCNN 中去训练,从而实现操作员的疲劳分类。结果表明这两种方式都没能达到较好的疲劳分类效果。为了能够准确监测操作员的疲劳状态,避免操作员因疲劳操作而导致发生事故,本文提出一种将一维ECG 转化为二维图像的方法,将ECG 映射到二维空间直接转化成时域图像,并设计一种深层卷积神经网络(DCNN)模型,该模型需要训练的参数少,分类精度高,适用于操作员的疲劳分类,且该方法无需对ECG 信号进行任何手动预处理,如噪声过滤[12]、特征提取和特征选择[13]。
1 试验
1.1 试验设备
通过密闭舱大气管理系统(Automation-enhanced Cabin Air Management System,AutoCAMS)模拟不同复杂程度的过程控制任务环境来设计疲劳实验,用于采集被试者的ECG[14-15]。本实验中操作员的主要任务是将系统的温度、气压、O2浓度和CO2浓度等指标控制在适合人类生存的范围之内,每个指标由其对应的子系统控制,每个子系统又被分为手动控制和自动控制。实验环境如图1所示。
图1 密封舱大气管理系统内部子系统相互关系图Fig.1 Relationship between the subsystems of automationenhanced cabin air management system
1.2 被试者
被试者的身体状况、睡眠习惯、年龄等均对试验进行有非常重要的影响。在开展试验之前,需要对被试者进行严格筛选,最终,征集8 名健康在校男性研究生作为被试者。在正式试验之前,需要被试者进行AutoCAMS 操作方法的训练,确保每个被试者熟悉试验过程,掌握系统控制技能。此外,被试者在试验前1 天,避免食用任何有刺激性的药品或者食品,充分休息,尽量保持良好状态。
1.3 数据采集
本试验采用日本光电公司的生物电信号采集设备,通过放置在心脏两侧的电极采集被试者的ECG。每次试验共8 个阶段,试验范式如图2所示。阶段1和阶段8 是基线测试阶段,各持续5 min,不需要被试者手动进行控制,阶段2 至阶段7 是不同任务负荷阶段,每个阶段持续15 min,需要被试者手动操控系统使各子系统的指标控制在正常范围内,各阶段的任务难度等级分别为1、2、3、3、2、1。每个阶段结束之后,需要被试者进行主观疲劳量表的填写,对自己的疲劳程度做出主观评定,疲劳值为0~100。对于疲劳程度而言,0 代表非疲劳,100 代表很疲劳。表1为试验中被试者1的的主观疲劳量表,可以看出随着任务难度的增加,被试者的疲劳程度升高。
表1 被试者1的主观量表Tab.1 Subjective scale of subject 1
图2 试验范式Fig.2 Experimental paradigm
2 方法
2.1 ECG预处理
ECG采样频率为500 Hz,为了保持样本数量相对平衡,本文将C1和C2阶段的心电数据作为非疲劳状态数据,C6阶段的后5 min和C7阶段的心电数据作为疲劳状态数据。每1 000个点为1个样本,每间隔100个点截取1个样本,最终,每个被试者有11 960个数据,分为5 980个非疲劳状态样本和5 980个疲劳状态样本。经过数据分割之后,1个样本的心电波形图如图3所示。
图3 1个样本的心电波形图Fig.3 Electrocardiogram waveform of a sample
2.2 ECG直接转换成时域图像
由于将ECG 转化成灰度图和格拉姆角场图在一定程度上减少信号的信息量,导致原始数据部分丢失,不利于更加有效地提取特征。针对此问题,对原始心电数据预处理得到以1 000个采样点为1个周期的ECG,并将处理后的ECG 直接投影到二维图像空间上,将其转换为时域图像数据,即1 张图片包含1个样本的心电图波形。与此同时,生成的图片信息不会消除数据时间序列特征,原始时间序列之间的关系仍然是不变的。然后,将二维心电图作为DCNN的输入,通过DCNN 模型进行训练,实现操作员的疲劳分类。将心电数据直接转换成时域图片信息,相对于另外两种转换图像的方法而言,这样做可以很好地保留一维ECG 原有信息的形态特征,不会忽略ECG 的时域特征,利用时间和空间的依赖性,在模型训练过程中更好地提取有效特征,以便实现疲劳状态的准确分类。
2.3 DCNN
随着深度学习技术的不断进步,如今有很多优秀的CNN 模型发展成熟[16],其中VGG16是一种经典的深度学习模型。在它之前,很多人都认为卷积核要比较大才能识别更大的区域,不过根据计算可以知道,两个3×3 的卷积核可以有效覆盖5×5 的区域,同时还可以减少计算量。此外,VGG16 中拥有更多的非线性变换,这也是VGG系列模型的核心思想,就是减小卷积核,加深网络。总的来说,VGG16 由13个卷积层、5个池化层和3个全连接层组成[17],它的特征提取部分只使用了3×3 的卷积核,以及2×2 的池化层,将得到的特征图进行全连接操作,通过softmax层,输出分类识别的结果。与此同时,CNN 数量的变化存在一定规律,由64变成128,再到256和512,3个全连接层神经元的个数分别为4 096、4 096、1 000。为了对VGG16 进行培训,在ImageNet 数据库的一个子集上进行了训练,使用上百万张图像,将这些图像分为1 000 个类别,从此有了大规模的图像数据集,CNN 变得更加强大。基于图像的识别、分类等操作,CNN 可以直接将图像数据作为网络输入,不仅无需人工对图像进行预处理,而且具有高精度特点。
据此,本文考虑将迁移学习技术应用到操作员的疲劳分类上。基于VGG16 的思想,设计了一个结构相对简单、训练参数较少的DCNN 模型,用于操作员的疲劳状态分类,网络模型结构如图4所示。该结构的5 个卷积块是VGG16 模型的前13 层,通过全局平均池化层和1 个神经元个数为128 的全连接层,对预先训练的VGG16 模型进行调整,最后使用softmax函数作为二分类的分类器进行分类。本文将心电数据转换为二维图像送入DCNN 中训练,经过卷积层和池化层有效地提取相关特征,通过全连接层进一步学习。除全连接层采用softmax 函数之外,其余各层均采用Relu 的激活函数。此外,采用dropout 层防止过拟合情况发生。该网络减少了模型训练的参数数量,减少了计算复杂度,同时提高了模型训练的速度,并达到了较好的疲劳分类识别效果。
图4 DCNN网络模型结构Fig.4 Deep convolutional neural network model structure
3 结果与分析
为了验证所设计网络结构的性能,将8名被试者的ECG 输入DCNN 中进行训练,检测每位被试者的疲劳状态。对于每位受试者,将11 960组心电样本分成两部分,随机选择80%的样本进行模型训练,剩下20%用于验证。本文模型是在python3.6 环境下进行的,使用基于Tensor flow-GPU 和Keras 的框架对ECG 进行疲劳分类。对前文所述的DCNN 进行训练,训练过程以Adam 梯度下降算法为优化方法,学习率设置为0.005,训练的迭代次数设置为30 次,batch_size 值为128,设置dropout 值为0.5,使用交叉熵作为损失函数。
3.1 基于时域图像方法的结果及比较分析
将8 位被试者的ECG,通过不同方法转换为图像,分别送入DCNN 模型中进行训练,得到的非疲劳和疲劳分类准确率如表2所示,可以看出直接转时域图像的方法,疲劳识别准确率最高,8 位被试者的平均非疲劳准确率为96.69%,疲劳分类准确率达95.79%。结果显示本文方法优于其他两种方法,能够较好地保留时域有效特征,基于DCNN 的网络模型在整个数据集上稳定有效,得到了较好的疲劳识别效果,所有被试者的分类精度均超过了90%,其中被试者4的分类总准确率最高,达99.79%。从总体性能来看,将迁移学习应用到操作员的疲劳分类上具有高效的性能。
表2 不同转换图像方法的非疲劳和疲劳状态分类准确率(%)Tab.2 Classification accuracies of non-fatigue and fatigue states using different image conversion methods(%)
3.2 数据长度选择
鉴于直接将ECG 映射到二维空间转化成图像的效果较好,本文考虑到疲劳分类准确率可能与心电数据的长度有一定关系,故使用操作员不同长度的心电数据分析疲劳分类的准确度。将ECG 分成每个样本长度分别为500、1 000、1 500、2 000 和2 500 的数据,基于直接转时域图像的方法,送入DCNN 中去训练,得到的疲劳分类准确率如表3所示。
表3 基于时域图像方法的不同数据长度疲劳分类准确率(%)Tab.3 Fatigue classification accuracies for different data lengths based on time-domain image method(%)
结果表明,以500 个采样点为1 个周期的数据长度得到的分类准确率较差,平均准确率仅有91.90%;而以1 500个采样点为1个周期的数据长度得到了较好的分类准确率,平均准确率达97.36%,在8 名被试者中有7 名的疲劳分类准确率达到95%以上,另外1名也超过93%;数据长度为2 000 和2 500 时,分类准确率不再随着数据的长度增加而迅速升高,与长度1 500 的数据相比,分类准确率没有太大变化,而且当数据长度大于2 000 时,信号长度相对较长,难以实现实时监测操作员的疲劳状态。此外,虽然数据长度越长,CNN 能学习到的有用信息相对较多,可以提取更有效的特征,达到较好的分类准确率,但当达到一定长度之后,准确率将不再大幅度增加,并趋于稳定。最终使用长度为1 500 的数据作为1 个样本,基于短时ECG 对操作员的疲劳状态进行实时准确地分类。
以1 500 个采样点为1 个样本的数据长度在被试者6 得到的疲劳分类结果如图5所示,其中图5a 是被试者6 的疲劳分类准确率,随着迭代次数的增加,疲劳分类准确率逐渐上升趋于稳定,最终收敛于98%左右,图5b 是被试者6 的损失函数变化图,随着迭代次数的增加,损失函数逐渐下降并趋于稳定,最终收敛于0.04左右。
图5 被试者6的分类识别结果Fig.5 Classification and recognition results of subject 6
3.3 模型结果及比较
为了进一步验证该方法在识别疲劳分类上的效果,将本文方法与传统K 近邻(KNN)[18]、支持向量机(SVM)[19]以及当前比较流行的LSTM[10]方法进行对比分析,KNN、SVM 和LSTM 的分类识别准确率分别达到76.37%、85.10%和92.30%,本文方法比LSTM方法的准确率高5%,达到97.36%,更好地实现了操作员的疲劳分类。
4 结语
疲劳状态的检测在生活中应用普遍,疲劳状态的判断对于操作员的安全操作有一定帮助,可以减少事故的发生,保护操作员的身心健康。传统的疲劳分类算法,需要对生理信号进行去噪、特征提取和特征选择等过程,但很难准确知道需要提取哪些特征[20]。本文将心电数据分为每个样本为1 500 的数据长度,即3 s为1个样本,将ECG映射到二维空间直接转换为时域图像,通过DCNN 模型,基于短时ECG进行操作员疲劳分类,分类准确率达到97.36%,较好地实现了疲劳状态分类。与此同时,避免了传统算法中复杂的特征提取过程,有利于实时、准确地检测操作员的疲劳状态。此外,将同一模型应用到不同的被试者中,每个被试者的疲劳状态分类准确率均超过93%,能够较好地消除个体差异性的影响。