李永康,方安成,陳婭南,謝子奇,潘帆,何培宇
(四川大學 電子信息學院,成都 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數據集上進行了對比。結果表明,本研究在情緒識別方面取得了更高的準確率。