畢福昆 李子靜 王彥平 孫 宇
(北方工業(yè)大學(xué)信息學(xué)院,北京 100144)
隨著人們生活習(xí)慣的不規(guī)律化,心血管疾病的發(fā)病率急劇上升[1],心率不穩(wěn)定是心血管疾病的常見危險因素。傳統(tǒng)的心率(Heart Rate,HR)診斷方法,如電子血壓計和心電圖監(jiān)測,需要佩戴袖帶或放置電極貼,既缺乏便利和舒適,也無法實現(xiàn)長期、實時監(jiān)測。與之相比,非接觸式方法不需要逐一接觸人體,能夠?qū)崿F(xiàn)對大規(guī)模人群的高效、實時心率監(jiān)測。因此,在智能設(shè)備上實現(xiàn)基于透皮光學(xué)成像技術(shù)(Transdermal Optical Imaging,TOI)的非接觸式測量,操作簡便,將鼓勵更多的人進行更有規(guī)律的日常動態(tài)監(jiān)測,及早發(fā)現(xiàn)潛在健康風(fēng)險。
近年來,國內(nèi)外學(xué)者對非接觸式心率測量的研究源源不斷。2017 年,Al-naji 等人[2]使用改進版的EMA 來增強HR 信號,但基于胸部和手腕等區(qū)域的運動。2018 年,CHEN 等人[3]使用名為DeepPhys 的深度卷積網(wǎng)絡(luò)開發(fā)了一種基于視頻的HR 和呼吸率的端到端方法。2020 年,LUGUEV 等人[4]采用三維卷積神經(jīng)網(wǎng)絡(luò)對脈沖信號進行提取,使用深度時空網(wǎng)絡(luò)進行非接觸式HR 測量。PARACCHINI 等人[5]將深度學(xué)習(xí)與傳統(tǒng)的信號處理相結(jié)合,使用SPAD相機對脈沖信號進行提取和檢測。LIU 等人[6]基于時空卷積提出了輕量級的rPPG 估計網(wǎng)絡(luò)(DeeprPPG),用于涉及不同類型的輸入皮膚。2021 年,HUANG 等人[7]提出了一種基于視覺脈沖估計的單階段框架,在處理延遲方面實現(xiàn)了競爭性能。
雖然非接觸式檢測已有廣泛研究,但在資源受限的設(shè)備或場景中,模型有待進一步輕量化,準確度也需提高。本文提出了一種基于Transformer 和CNN 特征融合的非接觸式心率檢測算法。本算法采用了兩種不同類型的網(wǎng)絡(luò)進行特征融合,因此可以更好地應(yīng)對數(shù)據(jù)集中的不同特征和噪聲,提高模型的魯棒性。同時,為了探究采集狀態(tài)對測量的影響,本文采用遠程心率測量評估中最廣泛使用基準之一MAHNOB-HCI 數(shù)據(jù)集[8]。本文結(jié)合皮膚生理特性,基于光學(xué)原理與信號處理分離技術(shù)相結(jié)合的方法提取rPPG 信號,設(shè)計特征融合算法優(yōu)化rPPG特征的表達,從而提高心率測量的準確度。
TOI 技術(shù)作為一種新的rPPG 的變體,通過攝像頭獲取人體血流動態(tài)信息。它利用人體皮膚半透明的特性,通過定位感興趣區(qū)域(Region of Interest,ROI)、提取與處理原始信號、組合血流量脈沖(Blood Volume Pulse,BVP),從而產(chǎn)生可以逐幀跟蹤人臉多個位置的透皮血液振蕩。該面部血流振蕩以光容積脈搏波的形式包含有關(guān)動脈壓力的重要信息,可以準確檢測脈搏[9]。TOI 技術(shù)主要基于光的散射原理以及皮膚顏色、亮度的變化。因此,ROI選擇任務(wù)與rPPG信號恢復(fù)任務(wù)高度相關(guān)。
感興趣區(qū)域(ROI)指的是在輸入圖像或視頻中,用戶需要進行特定處理或分析的區(qū)域。不同的面部區(qū)域具有不同密度的血流信息,在不同程度上有助于rPPG 信號測量[10]。因此,為了消除非重要皮膚區(qū)域的影響,本文基于皮膚和光學(xué)原理,選取血流信號較穩(wěn)定的五個關(guān)鍵區(qū)域,如圖1(b)所示。
圖1 68點標注與ROI示意圖Fig.1 68-point callout map and Schematic diagram of five region of interest
如圖1(a)所示,本文采用68 點標注法[11]對人臉進行區(qū)域標注。通過獲取各ROI 附近的關(guān)鍵點的橫、縱坐標,并適當(dāng)?shù)目s放后確定五區(qū)域的范圍。具體來說,通過關(guān)鍵點20,21,22,23 確定額頭的ROI;通過關(guān)鍵點17,28,33,40 確定左臉頰的ROI;通過關(guān)鍵點26,28,33,47 確定右臉頰的ROI;通過關(guān)鍵點30,31,33,35 確定鼻部的ROI;通過關(guān)鍵點7,48,54,58確定下巴的ROI。
下面以額頭為例,介紹框定該ROI 四個頂點的過程,如公式(1)~(4)所示:
脈搏波其波形特征與心血管疾病密切相關(guān),且綠色通道在RGB 通道中包含最強的容積脈搏信號[12],因此,本文采用各ROI 的綠色通道像素均值表示當(dāng)前圖像的rPPG 信號值。如圖2 所示,首先將輸入視頻拆幀成二維圖片,通過定位人臉、組合關(guān)鍵點坐標定位各ROI,然后分解出綠色通道的像素值并求ROI均值,得到當(dāng)前幀的rPPG信號值。
圖2 研究技術(shù)流程圖Fig.2 Flowchart of research technology
重復(fù)上述操作,每段視頻可以提取一組連續(xù)脈搏波信號,每組脈搏波信號的長度等于對應(yīng)段視頻的總幀數(shù)。其中,每一幀脈搏波信號即綠色通道像素均值在0~255 之間,由于輸入數(shù)據(jù)的數(shù)值較大時不利于神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,針對脈搏波信號易受到外界因素干擾的屬性,本研究采用標準化方法進行預(yù)處理,標準化可以使數(shù)據(jù)近似成為均值為0,標準差為1 的正態(tài)數(shù)據(jù),以此減小干擾對數(shù)據(jù)的影響。如公式(5)所示:
其中,xsrc指原始圖像的脈搏波信號,指原始脈搏波信號均值。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)具有提取局部特征的能力,能夠在特征學(xué)習(xí)過程中保留特征的位置信息。因此,本文采用CNN 來提取rPPG 的局部特征。該模塊主要包括輸入層、卷積層外加激活函數(shù),具體結(jié)構(gòu)如圖3 所示。本文改進了數(shù)據(jù)預(yù)處理方式,優(yōu)化了原有的人為降噪過程,采用端到端的訓(xùn)練方式,給定原始一維信號輸入采用一維卷積神經(jīng)網(wǎng)絡(luò)進行有效特征提取,降低了模型計算量,進一步實現(xiàn)輕量化,最終得到檢測結(jié)果。因此,在數(shù)據(jù)處理中采用一維信號輸入,CNN 中各結(jié)構(gòu)為一維的卷積層。
圖3 一維卷積神經(jīng)網(wǎng)絡(luò)基本架構(gòu)Fig.3 Basic architecture of one-dimensional convolutional neural network
在卷積神經(jīng)網(wǎng)絡(luò)(CNN)中,卷積層接收輸入的特征圖,并將其與給定的卷積核進行加權(quán)求和,得到輸出的特征圖,計算方式如公式(6)所示:
公式(6)中,Conv1d 表示1 維卷積神經(jīng)網(wǎng)絡(luò),F(xiàn)l-1為第l-1層的特征,為第l層的長度為f的共享卷積核權(quán)重系數(shù),F(xiàn)l為第l層的特征,bl為第l層的偏置系數(shù),本文采用*來表示卷積操作。輸出特征圖中每個位置的特征都僅與輸入特征圖長度f的局部區(qū)域有關(guān),因此一維信號經(jīng)過CNN 后可以提取到信號的局部特征。φ 表示網(wǎng)絡(luò)中的激活函數(shù),本文采用的是LeakyRelu 激活函數(shù),特征圖通過Leaky-Relu 后增加了非線性元素,從而提高模型魯棒性、緩解梯度消失問題,更加有利于網(wǎng)絡(luò)的訓(xùn)練。
Transformer 完全摒棄了傳統(tǒng)的CNN 結(jié)構(gòu),整個框架完全由記憶力模塊搭建而成。Transformer 憑借自注意力機制(Self-Attention)和位置編碼(Position Encoding)產(chǎn)生了十分良好的效果。該模型主要包括編碼器(Encoder)和解碼器(Decoder)。
隨著Transformer 的迅速發(fā)展,研究者不斷把Transformer遷移到其他任務(wù)上[13]。本文研究心率檢測,一個數(shù)據(jù)只對應(yīng)1個標簽心率(HR),相對于機器翻譯任務(wù)數(shù)據(jù)量不大,因此本文僅采用Transformer中的編碼器結(jié)構(gòu)利用Self-Attention機制提取出全局的高維的上下文特征向量。Transformer編碼器主要包括多頭注意力(Multi-Head Attention)和全連接的前饋網(wǎng)絡(luò)層(Feed-Forward)構(gòu)成,結(jié)構(gòu)如圖4所示。
圖4 Transformer的Encoder結(jié)構(gòu)Fig.4 Encoder structure of Transformer
注意力機制首先將特征向量映射到不同的線性空間得到三個不同的向量:Queries向量(Q)、Keys向量(K)以及Values 向量(V),然后根據(jù)公式(7)得到注意力向量:
其中,dk表示向量(K)的維度。
多頭注意力機制是將輸入向量送入到多個并行的注意力機制進行計算,對得到的輸出向量進行拼接,然后將其映射回原始的輸入向量的空間,得到最終的注意力向量。具體計算方式如下述公式(8)和(9)所示:
其中Concat 表示將多個矩陣在某個維度進行拼接,h表示進行幾次并行的Attention 操作,headi表示第i次的Attention 的計算,為第i個head中的映射矩陣。
本文一維信號檢測心率中,通過Self-Attention提取序列內(nèi)部的關(guān)聯(lián)信息,得到全局的上下文特征。因此,公式(8)中的Q,K,V向量均是通過輸入的特征向量得到,其中,為第i個head中的映射矩陣。在本文。
在該部分,本文設(shè)計一個并行的網(wǎng)絡(luò)結(jié)構(gòu)來結(jié)合CNN 提取局部特征和Transformer 提取全局特征表達的能力,網(wǎng)絡(luò)框架圖如圖2中所示。首先,將一維信號送入CNN 中,提取出局部特征,再將該局部特征送入Transformer 分支中,以此使Transformer 分支獲得處理局部特征的能力。其次將Transformer編碼出來的全局特征送回給CNN 分支,使其提取局部特征時可以融合全局特征,提升全局感知能力,以此兩個過程形成交互。
為了解決Transformer 中的特征嵌入和CNN 分支中的特征映射長度不同,本文通過一個特征交互模塊將局部特征和全局嵌入特征結(jié)合起來。
一維信號通過CNN 提取到的特征形狀為n×CC1(n、CC1分別為長度和通道數(shù))。為了將一維信號輸入到Transformer 的編碼器中,本文首先采用類似Vision Transformer 中的patch embedding 中的方法,先將一維信號分成nr段,在每一段中將通道拼在一起得到,再經(jīng)過線性映射,映射成形狀為nT×CT1的特征。當(dāng)CNN 的局部特征送入到Transformer 分支時首先經(jīng)過一個卷積核長度為1,個數(shù)為CT1的卷積核,將通道對齊,再經(jīng)過下采樣對齊長度,然后添加到Transformer 的特征上。同理Transformer 的全局表示送入到CNN 分支時首先經(jīng)過一個卷積核長度為1,個數(shù)為CC1的卷積核,將通道對齊,再經(jīng)過下采樣對齊長度,然后添加到CNN的特征上。如公式(10)和公式(11)所示:
其中x2t表示CNN的局部特征嵌入到Transformer分支的過程得到的特征,t2x表示Transformer 的全局表示嵌入到CNN 分支的過程得到的特征。Down 和Up 分別表示下采樣和上采樣的過程,BN 代表歸一化操作。Conv1d 和Att 分別由公式(6)和公式(8)得到,x0為初始的一維信號,t0為初始一維信號經(jīng)過編碼得到的初始全局表示。
具體TC-Net的體系結(jié)構(gòu)如表1所示。
表1 TC-Net的體系結(jié)構(gòu)Tab.1 Architecture of TC-Net
本文實驗使用的數(shù)據(jù)集為MAHNOB-HCI 數(shù)據(jù)集。MAHNOB-HCI 數(shù)據(jù)集是遠程心率測量評估中最廣泛使用的基準之一。它包括來自27名受試者的527個帶有相應(yīng)生理信號的面部視頻。視頻以61 fps的速度錄制,分辨率為780×580,以AVC/H.264 壓縮。在實驗評估中,本文使用EXG2信號作為真實心電圖。本文遵循與之前相關(guān)工作[14]中一樣的處理方式,每個視頻使用30秒(306~2135幀)。最終滿足本文算法順利運行的總視頻數(shù)量為416個。訓(xùn)練集、測試集按照9比1的方式進行劃分。
本文的代碼運行在一臺2.00 GHz 的Intel(R)Xeon(R)CPU 上,內(nèi)存為128G;GPU 為NVIDIA Ge-Force RTX 2080Ti,顯存為11G。操作系統(tǒng)為Linux系統(tǒng),編程語言為python3.7.0,深度學(xué)習(xí)框架為Pytorch 1.7.1。在本文的實驗中,所提出的算法是通過Pytorch 與SGD 優(yōu)化器實現(xiàn)的。本文將學(xué)習(xí)率和訓(xùn)練次數(shù)設(shè)置為0.01 和600。此外,我們讓學(xué)習(xí)率每30輪數(shù)下降10%。
本文選取了3 個指標來衡量模型的有效性,分別為:誤差偏差(MAE)、均方根誤差(RMSE)、平均絕對百分比誤差(MAPE)。
其中,MAE 反映測量值和真實值絕對差值的平均值,RMSE 反映測量數(shù)據(jù)距離真實值的程度,衡量殘差的標準偏差,MAPE 衡量真實值和檢測模型的測量值的偏差,計算方式如公式(12)~(14)所示:
其中,yi是真實的心率標簽是檢測的心率值。
對比實驗如表2、表3 所示。其中,最優(yōu)結(jié)果用紅色字體加粗表示,符號■、●、▲分別代表經(jīng)典骨干模型、經(jīng)典檢測模型和同領(lǐng)域內(nèi)檢測精度較高的模型。為了使經(jīng)典ResNet、VGG 等骨干模型可以進行心率檢測,本文將網(wǎng)絡(luò)中的2d 卷積核換成了1d卷積核,原始的分類頭改成了檢測頭,重新進行訓(xùn)練,所有參數(shù)設(shè)置均保持一致。
表2 TC-Net與經(jīng)典模型的HR檢測誤差對比Tab.2 Comparison of HR detection errors between TC-Net and classical models
表3 TC-Net與其他模型的HR檢測各指標對比Tab.3 Comparison of HR detection indicators between TC-Net and other models
由表2可知,當(dāng)同類型的網(wǎng)絡(luò)模型結(jié)構(gòu)簡單時,實驗效果往往更佳,例如ResNet18 相對于ResNet50有更少的網(wǎng)絡(luò)層,但其實驗效果卻比ResNet50 更好。本文的TC-Net 僅有3 個卷積層和2 個注意力層,網(wǎng)絡(luò)結(jié)構(gòu)簡單。相較于rPPGNet[10]等經(jīng)典模型,TC-Net 檢測效果最優(yōu),這表明本文提出的模型TCNet 是有效的。從側(cè)面也反映出,檢測心率的模型并不需要十分復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)與參數(shù),反而同等結(jié)構(gòu)下少量的網(wǎng)絡(luò)層數(shù)具有更好的效果。
由表3 可知,雖然與DeepPhys[3]、RhythmNet[15]和PhysFormer[16]三個同領(lǐng)域內(nèi)高水平模型相比,TC-Net 檢測精度稍低,但通過參數(shù)量與FLOPs 結(jié)果可以說明,本文模型TC-Net 的復(fù)雜度較低,模型進一步實現(xiàn)了輕量化;同時,通過對比推理時間可以說明,本文模型更高效、實時性更好。
為了驗證本文的方法中核心組件的有效性,逐步增加了所提出的模塊。在表4中,本文在HR檢測中進行了3個實驗來證明TC-Net中每個模塊的有效性。這些消融實驗證實了在本文方法中,每個核心模塊的有效性。完整的框架達到了最佳的性能。
表4 基于HR的TC-Net核心模塊的消融實驗Tab.4 Ablation Study of TC-Net Core Module Based on HR
為了驗證選取面部區(qū)域的可行性,本章節(jié)采用十折交叉驗證取平均方法,逐步選取額頭、兩頰等關(guān)鍵單區(qū)域,并與多區(qū)域平均檢測誤差進行對比。由表5可知,額頭區(qū)域的MAE誤差、下巴區(qū)域的RMSE誤差和鼻子區(qū)域的MAPE誤差略低于多區(qū)域,差值較小,而其余單區(qū)域指標均高于多區(qū)域。因此,盡管部分關(guān)鍵單區(qū)域檢測精度更高,但穩(wěn)定性較差,多區(qū)域指標具有更好的穩(wěn)定性,整體效果最優(yōu)。
表5 五區(qū)域與各單區(qū)域的HR檢測誤差對比Tab.5 Comparison of HR detection errors between five regions and each single region
在一致性分析實驗中,本文采用皮爾遜一致性分析和Bland-Altman(BA)圖進行可視化。皮爾遜一致性分析可以反映實際數(shù)據(jù)和檢測結(jié)果之間的相互關(guān)系,其中包括兩個指標:首先是皮爾遜相關(guān)系數(shù)的大小(r 值)取值在(-1,1)之間,表示實際測量數(shù)據(jù)和模型檢測結(jié)果之間的相關(guān)強度,絕對值越大表明相關(guān)性越大;其次是顯著性p 值,當(dāng)p<0.05時表示兩數(shù)據(jù)之間相關(guān)顯著。BA 圖旨在計算實際數(shù)據(jù)和檢測結(jié)果的一致性界限并直觀的用圖像來顯示,在圖中橫軸代表實際數(shù)據(jù)和檢測結(jié)果的平均值,縱軸代表實際數(shù)據(jù)和檢測結(jié)果的差值。BA 圖中差值平均數(shù)的線越接近0,代表實測數(shù)據(jù)和模型檢測結(jié)果的一致性程度越高。
如圖5 所示,實際HR 與檢測HR 之間的皮爾遜相關(guān)系數(shù)為0.81,表明實際HR 與檢測HR 有非常強的相關(guān)性,差異性較??;且顯著性指標遠小于0.05,說明實際HR和檢測HR之間的線性相關(guān)性具有非常大的統(tǒng)計學(xué)意義。從實際HR 與檢測HR 的統(tǒng)計柱狀圖來看,分布基本一致。另外,從BA 圖可以看到差值平均數(shù)約為0.88,且97%的誤差值檢測數(shù)據(jù)落在95%一致性區(qū)間內(nèi),表明實際HR 與檢測HR 之間有較高的一致性。因此,本文模型TC-Net在數(shù)據(jù)集上很好地檢測出接近實際的HR。
圖5 HR檢測值與實際值的皮爾遜一致性分析與 Bland-Altman圖Fig.5 Pearson consistency analysis and Bland Altman diagram of HR detection and actual value
針對非接觸式心率檢測準確度較低的問題,本文提出了基于Transformer 和CNN 網(wǎng)絡(luò)的特征融合模型,充分學(xué)習(xí)局部rPPG特征,優(yōu)化全局信息表達,更好地應(yīng)對不同特征和干擾噪聲類型。同時,本文基于皮膚和光學(xué)原理,采用MAHNOB-HCI 數(shù)據(jù)集,進一步探究采集狀態(tài)對測量的影響。通過三種評價指標和多種分析方式,結(jié)果表明,本文所提模型TC-Net 檢測HR 的平均誤差為5.44 bpm,標準偏差為6.68 bpm,明顯優(yōu)于經(jīng)典骨干模型和經(jīng)典心率檢測算法。在保證性能高的同時,保持了較低的復(fù)雜度,使得提出的算法進一步實現(xiàn)輕量化,從而在計算資源有限的場景下實現(xiàn)高效部署。