李永康,方安成,陈娅南,谢子奇,潘帆,何培宇
(四川大学 电子信息学院,成都 610065)
情绪可以理解为人对周边环境所产生的生理反应[1]。积极的情绪对人的生理、心理以及社会活动等方面有着重要作用,比如愉悦感可以提升免疫系统的功能,而负面情绪则会影响身心健康[2]。对情绪的有效识别能让人及时了解自身情绪状态并做出调整,以减少不良情绪带来的影响。同时,有效的情绪识别对生理、心理等相关疾病的治疗也具有一定预防和促进作用。比如在耳鸣治疗中,正确识别患者情绪可以加快治疗进程[3]。因此,快速有效地识别人类情绪状态具有重要的研究意义。情绪可以通过非生理信号或生理信号进行识别。基于非生理信号的识别即通过人的外在行为表现,如语言、动作来实现[4],但这些外在行为表现可被刻意伪装,不易反应真实的情感状态,增加了情绪识别难度[5]。而人体的心电信号等不可见的内在生理信号无法进行伪装[6],能客观地反应人的情绪状态。因此,基于生理信号进行情绪识别的方式开始获得大量关注[7]。
当前,针对心电信号的情绪识别方法多种多样。从特征提取角度主要可分为:基于个人经验的特征提取和基于深度学习的特征提取两种方法。其中,基于个人经验的特征提取方法是研究者根据自身知识和经验,通过设定特定算法或规则提取信号特征,利用支持向量机、K近邻等方法对提取的特征进行分类。如易慧等[8]提取了心电信号的9个时域特征和7个频域特征,采用支持向量机进行情绪分类,对不同情绪的识别精度达到了60%~75%。Sun等[9]采用离散余弦变换从心电信号中提取特征,采用支持向量机进行分类,分类准确率达到了90%。Sepúlveda等[10]采用小波散射算法处理心电信号,提取了时域特征、频域特征和小波散射特征,采用Ensemble和KNN分类器进行分类,唤醒度和效价的二分类准确率为88.8%和90.2%。朱毅[11]提取了心电信号的心率变异性、离散小波分解和心拍形态三个维度的情绪特征,并利用XGBoost算法进行分类,唤醒度和效价二分类结果为84.8%和84.1%。
上述方法均需基于个人经验来设计和选择分类特征,选取特征的质量会直接影响识别的准确度和泛化性能。相较之下,基于深度学习的特征提取方法可通过神经网络自动学习深层特征[12],准确率较高,且拥有优秀的自适应能力,能在未知数据上进行泛化。因此,越来越多的深度学习方法被用于情绪识别任务。Sarkar等[13]提出了基于自监督学习的心电信号情绪识别模型,该模型由信号转换识别网络和情感识别网络组成,唤醒度和效价的准确率为85.8%和84%。Vazquez-Rodriguez等[14]采用能结合上下文信息的Transformer模型进行情绪识别,利用心电信号识别,唤醒度和效价的二分类准确率为88%和83%。Harper等[15]提出了基于贝叶斯深度学习的情绪预测模型,高价态和低价态进行二分类的准确率为90%。Nita等[16]设计了基于数据增强的7层CNN分类器用于情绪识别,效价、唤醒度和优势度的准确率分别为95.16%、85.56%和77.54%。
上述深度学习方法均直接将心电信号送入卷积神经网络提取特征。而卷积神经网络最初提出的目的是处理图像数据,其在提取图像特征和分类准确性方面表现出色[17]。研究表明,以图像数据表示一维时序数据在一些深度学习任务上具有更好的效果[18-19]。同时,对于一维心电信号,将其转化为图像,可更好地利用时序信息和对噪声的鲁棒性,能拥有更丰富的特征信息。时频图不仅能通过不同的颜色或灰度来表现,还能利用各种先进的图像分类网络和图像预处理技术,从而提高数据的表示能力和丰富度。由于心电信号的时域和频域都含有可用于情绪识别的特征[20],所以,可将一维心电信号转为时域波形图和时频图,用于识别。另外,将时域波形图和时频图中的特征进行融合,可以提高分类准确率。一种方法是将两种图片拼接为一种图片送入卷积神经网络实现特征融合,另一种是采用双输入神经网络,每个输入单独提取图片的特征,再将特征拼接实现特征融合。
为避免基于个人经验设计和选择分类特征的局限性,拓展深度学习自动提取特征的维度,本研究提出了一种基于心电信号图像特征及卷积神经网络的情绪识别方法。首先,利用小波变换和带阻滤波器对心电信号进行预处理,旨在去除各种干扰和噪声成分,提取有效的生理特征。然后将一维信号转为时域波形图和时频图,捕捉信号中的时间和频率特征。最后,利用迁移学习和双输入卷积神经网络提取图像特征并进行分类。
心电信号在采集过程中易受到各种噪声的干扰。在利用心电信号进行情绪分类前,需要对其进行相应的去噪。正常人的心电信号频率通常为0.05~100 Hz,常见的干扰主要是工频干扰、基线漂移和肌电干扰等[21]。其中,工频干扰由设备周围环境的交流电引起,其频率固定为50或60 Hz;肌电干扰是一种高频干扰,由贴片电极受到肌肉刺激引起,其频率为5~2 000 Hz;基线漂移是采集心电信号时,人体的呼吸运动所造成的微弱低频干扰,其噪声频率通常在0.05~2 Hz之间。根据上述噪声的频率特点,本研究采用固定频率的带阻滤波器去除工频干扰,采用小波变换对心电信号进行分解和重构,去除基线漂移和高频干扰。对于时域信号x(t)的小波变换定义为:
(1)
其中,a为尺度因子,b为位移因子,Ψ(t)是小波基。
本研究利用bior2.6小波基函数对心电信号进行多尺度分解,得到每一层的低频近似分量和高频细节分量,然后将基线漂移和高频干扰所对应的频率分量置零,最后重构得到滤波后的信号。
通过上述预处理得到较为纯净的心电信号后,本研究将其转为时域波形图和时频图,利用卷积神经网络提取图像特征,并进行情绪分类。其中,时域波形图以时间为横轴,心电信号幅值为纵轴,用连续的曲线表示心电信号在时间上的变化。图1为滤波前后的心电信号时域波形,可见心电信号的低频噪声和高频噪声均被有效滤除。因为心电信号是非平稳信号,所以,本研究利用短时傅里叶变换得到描述心电信号时频特性的时频图。时频图以时间为横轴,频率为纵轴,用颜色或灰度表示对应的幅值。短时傅里叶变换将心电信号切分为若干个短时段,在各短时段内加窗函数并进行傅里叶变换,得到该时段的频域信息,然后将所有时段的频域信息进行叠加,可得到整个心电信号的频域信息,即时频图。本研究采用汉明窗,窗的长度为1 s,得到的时频图见图2。
图1 滤波前后的心电信号时域波形对比图
图2 滤波后的心电信号时频图
时域波形图反应信号在时间上的变化信息,时频图则结合了时间和频率信息,两种图像均含有可用于情绪分类的特征,因此本研究利用双输入卷积神经网络,同时训练这两种图像,融合其关键特征,提高情绪分类准确率。
计算机进行情绪识别依赖于心理学中离散情绪模型和连续情绪模型。其中,离散情绪模型将情绪分为多个基本情绪,如Ekman[22]定义了人类的6种基本情绪:快乐、恐惧、愤怒、悲伤、厌恶和惊讶,而其它情绪则是从这些基本情绪中组合形成,如失望可以由悲伤和惊讶组成。连续情绪模型又称情绪维度模型,该模型认为情绪都包含在多维空间中,如Mehrabian[23]认为情绪可以用效价(valence)、唤醒度(arousal)、优势度(dominance)三个维度进行表示,效价指的是情绪积极或消极的程度,唤醒指的是情绪平静或兴奋的程度,优势度是指人在某种情绪中的控制能力。不同的情绪可在三维情绪空间中区分开,图3中的高兴可认为是一种高效价、高唤醒度和高优势度的情绪;愤怒可认为是低效价、高唤醒度和高优势度的情绪;冷漠则可认为是一种低效价、低唤醒度和中间优势度的情绪。本研究所采用的模型是连续情感模型。
图3 三维情绪空间模型
本研究使用的卷积神经网络为EfficientNetV2[24],该模型是Google团队对EfficientNetV1模型的升级版本。相较于EfficientNetV1,EfficientNetV2降低了网络参数量,减少了训练耗时,提升了网络性能。EfficientNetV2的主要网络结构有EfficientNetV2-s、EfficientNetV2-l和EfficientNetV2-m,其主要区别是输入图像的尺寸和网络的层数不同。考虑到计算机性能和训练速度,本研究采用输入图片尺寸较小的EfficientNetV2-s模型,其网络结构见图4。该模型结构由输入、Conv 3*3、block、Conv1*1&Pooling&FC、输出5个主要模块组成。其中,Conv 3*3模块利用3*3卷积提取图像的低层特征,block模块是该网络的核心模块,由多个Fused-MBConv和MBConv组成,用来提取深层特征,Conv 1*1&Pooling&FC模块通过卷积、池化和全连接得到情绪分类器。
图4 EfficientNetV2-s网络结构
为融合时域波形图和时频图特征,本研究基于Fu等[25]提出的双分支DenseNet网络,提出了一种双输入的EfficientNetV2网络,网络结构见图5,该网络使用时域波形图和时频图作为输入,每个输入都由Conv 3*3和block分别提取特征,然后将提取的特征送入Conv 1*1&Pooling&FC,得到输出。因为提取的是双输入特征,所以将Conv 1*1&Pooling&FC的输入通道数改为单输入模型的两倍。
图5 双输入EfficientNetV2-s网络结构
大多数深度学习方法聚焦于如何改进网络结构,而迁移学习是在已有网络结构的基础上,研究各领域之间迁移的效果。即迁移学习是将已有模型的参数和权重应用到相似任务中,可避免重新训练一个全新的神经网络模型。因为可以借助其它领域丰富的数据进行训练,迁移学习可在目标领域数据较少的情况下获得良好的性能,因此,采用迁移学习不仅可以减少参数训练时间,也能提高模型的泛化能力,其过程可表示为:
D={χ,P(X)}
(2)
T={y,f·}
(3)
其中,D为源域,T为目标域,χ是特征空间,y是标签空间,P(X)表示边际概率分布,其中X={x1,…,xn}∈χ,目标的预测函数为f(·)。本研究将EfficientNetV2卷积神经网络在ImageNet数据集中的预训练参数迁移为本模型的初始参数,然后利用Amigos数据集对模型进一步训练。
本研究使用Amigos公开数据集[26]。该数据集主要用于情感识别和计算,通过播放视频刺激受试者情绪,包含短视频和长视频情绪刺激两个实验。短视频情绪刺激实验中,40名受试者单独观看了16个短视频;长视频情绪刺激实验中,受试者单独或组队观看了4个长视频。实验过程中,利用摄像头录制受试者的面部表情变化;利用可穿戴式传感器记录受试者的脑电图、心电图和皮肤电三种生理信号。其中,心电信号的采样频率为256 Hz,有LA和RA两个通道的信号。数据集的情绪标签有自我评估(包括效价、唤醒度、优势度、喜欢性、熟悉性等7种基本情绪)和外部专家评估(效价和唤醒度)两类。
本研究的训练和测试数据是短视频刺激实验中采集的心电信号,由于9号受试者的实验数据不完整,故将其舍弃,最后得到1 248份实验数据。此外,由于16个短视频的长度大小不一,本研究统一截取每个短视频中间50 s的心电信号作为训练和测试数据。训练标签采用自我评估中的效价、唤醒度和优势度三种情绪维度标签,但是这三种标签都是1到9的连续标签,不利于情绪分类,因此,本研究采用二分类方式,以中间评分5为界限,大于5的为高效价、高唤醒度、高优势度;小于5的为低效价、低唤醒度和低优势度;得分为5的标签直接舍弃,具体数量见表1。
表1 各标签二分类后的数量
本研究模型基于python语言和PyTorch 1.10框架实现,操作系统为Windows 10,硬件配置为AMD Ryzen 7 5800 8-Core Processor 3.40 GHz和GeForce RTX 3060。首先,对Amigos数据集中的心电信号进行预处理,去除噪声和干扰成分。同时,针对Amigos数据集中1~9的连续标签,按照中间值5进行划分,形成两类标签。然后,将经过预处理的心电信号转换为时域波形图和时频图。最后,采用单输入和双输入的卷积神经网络对图像进行二分类,得到分类准确率。
根据2.2的实验方案,时域波形图与时频图单输入和双输入模型的分类结果见表2。同时,图6为双输入模型在三个情绪维度的混淆矩阵。
表2 分类准确率
图6 混淆矩阵
由表2可知,三种模型在三个情绪标签上均取得90%以上的分类正确率,表明基于心电信号图像特征的情绪识别方法有效。同时,双输入模型在唤醒度、效价和优势度三个方面的准确率均高于两种单输入模型。尤其在优势度和效价方面,准确率提升了1%以上。
从实验结果可知,在唤醒度上,单输入模型对评分接近5的数据识别效果较差,多个唤醒度为6~7之间的高唤醒度数据被错误地识别为低唤醒度。若两种单输入模型中一种识别错误,另一种识别正确,双输入模型也可以正确识别。对于单输入模型在时域波形图上,第34个志愿者观看ID为34的视频的唤醒度为6.18,判定为高唤醒度,但识别结果为低唤醒度,而在时频图上,该志愿者被正确识别为高唤醒度;在双输入模型中,也被正确识别为高唤醒度。但是,若两种单输入模型都识别错误,那么双输入模型识别结果也是错误的,比如数据集中第25个志愿者观看ID为58的视频的唤醒度是2.98,低于5为低唤醒度,单输入模型和双输入模型都错误的识别为高唤醒度。对于效价和优势度两个情绪维度也有类似的规律。总的来说,时域波形图包含了信号幅值随时间演化的特征,时频图则包含了时间和频率信息结合的特征,采用双输入模型可融合两者特征,减轻单一图像类型所带来的信息不完整性,更有效地捕捉相关的情绪特征,提高分类的准确率。
为验证本研究方法的有效性,将其与其它利用Amigos数据集进行情绪二分类实验的结果进行对比,结果见表3。Sepúlveda等[10]采用Ensemble分类器进行分类,在Amigos上唤醒度和效价的二分类正确率分别为88.8%和90.2%;Sarkar等[13]将Amigos的心电信号划分为10 s的片段进行情绪识别,唤醒度和效价的二分类准确率分别为85.8%和84%;Vazquez-Rodriguez等[14]利用Transformer模型,在Amigos数据集上唤醒度和效价的二分类准确率分别为88%和83%。Harper等[15]对Amigos数据集中自我评价里的效价进行二分类,准确率为90%。由表3可知,本研究提出的基于心电信号图像特征和卷积神经网络的情绪识别方法在唤醒度和效价的分类准确率方面均优于其它几种方法。表明本研究方法在Amigos数据集上的情绪识别效果更好。
表3 不同方法识别准确率对比
本研究提出的基于心电信号图像特征及卷积神经网络的情绪识别方法。首先,对心电信号进行预处理,去除噪声和干扰成分。随后,将心电信号的时域和频域转换为时域波形图和时频图。最后,采用迁移学习和双输入的卷积神经网络作为特征提取器和情绪分类器,综合利用时域波形图和时频图的特征进行分类识别。通过对比实验,验证了单输入模型和双输入模型的识别准确率。结果显示,双输入模型的识别准确率明显优于单输入模型,证明了本研究方法的可行性和有效性。此外,本研究还将所提方法与其它情绪识别方法在Amigos数据集上进行了对比。结果表明,本研究在情绪识别方面取得了更高的准确率。