王賓如
(天津理工大學電氣電子工程學院,天津300384)
成像式光電容積掃描技術(remote Photoplethysmog?raphy,rPPG)使得人們可以利用普通攝像機檢測心率、心率變異性、呼吸率、血壓、血氧飽和度等生理參數(shù)[1-6],實現(xiàn)了一個舒適且低成本的生理信號監(jiān)測方式。目前最為精準的心率檢測方法是心電圖(Electrocardiogram,EEG)和脈搏波容積圖(Photoplethysmography,PPG),但這兩種方法在使用過程中需要復雜的電極連接,造成檢測者的不適。相對于接觸式的心率檢測方法,非接觸心率估計不需要與被檢測者發(fā)生接觸,其主要原理是在心臟收縮與舒張的過程中,面部血管的血容量會隨著心臟跳動而產(chǎn)生周期性變化,而血容量的周期性變化會引起皮膚顏色的周期性變化,通過攝像機捕捉并結合信號處理方法提取這一由心臟跳動引起的微小顏色變化,可實現(xiàn)非接觸式的心率檢測[7-9]。非接觸心率估計無需受試者佩戴傳感器,采用普通攝像頭即可實現(xiàn),成本低且使用方便。圖1顯示了心率測量的發(fā)展歷程,從圖1中可以看出心率檢測方式由最初的侵入式發(fā)展到現(xiàn)在的非接觸式。
圖1 心率測量方式的發(fā)展
近幾年來,基于人臉視頻的非接觸式心率估計在生物醫(yī)學領域和計算機視覺領域引起了很多關注,出現(xiàn)了許多行之有效的方法,主要可以分為兩類:第一類是基于光學模型和信號處理的方法如Verkruysse(G,2008)[10]、Poh(ICA,2010)[11]、DeHaan(CHROM,2013)[12]、Balakrishnan(BCG,2013)[13]、Tulyakov(SAMC,2016)[14]等,這一類方法的心率估計范式可歸納為:(1)面部關鍵點檢測和跟蹤、(2)感興趣區(qū)域提取、(3)RGB信號提取、(4)濾波和顏色空間轉換、(5)后處理、(6)提取血容量脈沖信號、(7)心率估計。此類方法在實驗室場景中取得了較好的效果,但仍然有兩個明顯的缺點:①自定義的信號處理方法不能準確提取有效特征;②涉及許多手工特征提取和過濾,導致該方法不能很好的泛化,且手工提取特征的過程中可能導致丟失與心跳相關的重要信息。第二類是基于數(shù)據(jù)驅動的方法如Hsu(VGGmodel,2017)[15]、Chen(DeepPhys,2018)[16]、Spetlík(HR-CNN,2018)[17]、Niu(RhythmNet,,2019)[18]、Yu(PhysNet,2019)[19]、Yu(AutoHR,2020)[20]等。這些方法利用深度學習來回歸心率,其輸入為視頻幀,輸出為脈搏波或心率值,通過損失函數(shù)將誤差優(yōu)化到可接受范圍,基于數(shù)據(jù)驅動的方法將有望應對復雜的真實測量場景中環(huán)境光及運動等干擾因素的影響。因此本文也針對基于數(shù)據(jù)驅動的方法開展研究,實現(xiàn)對人臉視頻的時空建模。具體地,為準確定位心跳峰值頻率,首先通過殘差結構保存中間層特征信息,并利用三維卷積提取脈搏波中的時空特性,最后使用聯(lián)合損失函數(shù)消除運動偽差。
本文主要貢獻如下:①改進面部關鍵點檢測與跟蹤算法,提取出了更為可靠的感興趣區(qū)域;②對多種常用的三維卷積網(wǎng)絡進行對比,實驗得出更適用于面部視頻心率估計的三維卷積網(wǎng)絡架構;③與目前最先進的方法相比,在公開數(shù)據(jù)集評測中,本文提出的三維卷積方法在測量平均心率不僅表現(xiàn)出了優(yōu)異的性能,而且在兩個數(shù)據(jù)集上均表現(xiàn)穩(wěn)定;④與僅能輸出平均心率值的方法相比,本文方法可以輸出估計得到的脈搏波曲線,可用于進一步的心率變異性分析。
本文的研究方法架構如圖2所示,主要步驟可以分為三個階段。(1)數(shù)據(jù)預處理:提取面部感興趣區(qū)域。因頭發(fā)、眼部等區(qū)域并不包括心率信息且可能引入干擾,本文采用眼部以下、唇部以下的臉頰區(qū)域作為感興趣區(qū)域,并將感興趣區(qū)域調(diào)整到模型所需的輸入尺寸;(2)三維卷積網(wǎng)絡設計:通過對主流的三維卷積結構如C3D[21]、P3D[22]進行對比(C3D首次使用具有時空特征的三維卷積,構造對稱的3×3×3卷積核。P3D在C3D的基礎上利用2D Conv來替代三維卷積,通過對卷積因子分解,將3×3×3的卷積核拆分成1×3×3的空間卷積和3×1×1的時間卷積,增強網(wǎng)絡的多樣性),根據(jù)實驗結果加以改進,形成了帶有殘差網(wǎng)絡的新三維卷積模型。(3)信號后處理:基于濾波器對模型中提取出來的脈搏波信號進行后處理,得到最終的心率信號可用于計算心率和心率變異性。
圖2 基于三維卷積網(wǎng)絡的非接觸心率估計主體框架
本文所用到的實驗數(shù)據(jù)為PURE-HR數(shù)據(jù)集[23]和COHFACE-HR數(shù)據(jù)集[24],數(shù)據(jù)集樣本示例如圖3所示,其中PURE-HR數(shù)據(jù)集共包含10位受試者的60個視頻樣本,每段視頻時長60秒左右,幀率為30Hz。
圖3 數(shù)據(jù)集樣本
在進行非接觸心率檢測算法訓練前,首先需將視頻幀與真實心率脈搏波信號(PPG)對齊(PURE-HR和COHFACE-HR數(shù)據(jù)集中存在著真實的脈搏波心率信號作為真值進行訓練和驗證),以PURE-HR數(shù)據(jù)集為例,因視頻幀率為30Hz,而PPG信號的采樣率為256Hz,需在不損失心跳峰值的情況下將其下采樣到30Hz,如圖4所示,這樣使視頻中每一幀與真實心電信號中的每一個數(shù)據(jù)點幅值一一對應。
圖4 視頻幀與真實心率對齊
預處理還包括感興趣區(qū)域提取,本文采用Open?Face[25]預訓練模型進行人臉檢測,在人臉檢測的基礎上進行關鍵點檢測,如圖5所示,OpenFace可輸出68個面部關鍵點(黃色數(shù)字序號標出),依據(jù)面部結構,依次連接特征點2、3、4、5、52、13、14、15、16、29。如圖6所示,去除諸如背景、頭發(fā)、眼睛之類與心率信號檢測無關區(qū)域,并將提取出來的感興趣區(qū)域重新調(diào)整大小為64×64。如圖7,取連續(xù)的128幀作為一個輸入樣本,并采用跨八幀重疊采樣的方法來擴充樣本數(shù)量(既第1到第128幀為一個樣本,第9到第136幀為另一個樣本)。
圖5 人臉關鍵點檢測
圖6 感興趣區(qū)域提取
圖7 預處理得到訓練樣本
考慮到某一幀人臉檢測失敗時,我們使用上一幀檢測出的關鍵點作為該幀的檢測結果,防止算法出現(xiàn)較大偏差。
已有的研究表明[26],三維卷積是一種可在視頻中捕獲空間和時域特征的方法,連續(xù)幀間的時域變化特性,通過三維卷積和三維池化后能夠更好地建立時序信息,在保留時序信息的同時學習時空特性。在非接觸心率估計中,由于皮膚顏色變化極為細微,肉眼無法觀測到此信息,而脈搏的波動與時序又有很強的相關性,如使用二維卷積來處理,將不能很好的考慮連續(xù)幀間的時空信息,進而影響所測結果的準確性。
本文經(jīng)過多次模型遷移、參數(shù)調(diào)整、交叉驗證后,實驗得到適用于非接觸心率估計的模型,其結構如圖8所示,模型的輸入維度為(batch_size,3,128,64,64),即連續(xù)的128幀感興趣區(qū)域。模型由2D Conv卷積層、Spatio-pool空間池化層、ST_Block時空卷積塊、Adap?tiveAvg Pool3d自適應空間池化層和fully connected全連接層等組成。
圖8 帶有殘差結構的三維卷積網(wǎng)絡
為學習一組將原始皮膚圖像映射到脈搏波特征空間的空間過濾器,在第一層中2D Conv卷積層中使用1×5×5的空間卷積核替代5×5×5的三維卷積核,可等價于學習三個顏色通道的顏色空間變換組合,以獲得更多的脈搏波信號表示。為避免丟失有效的脈搏波信號,在2D Conv卷積層后立即加上一個殘差映射,殘差映射的主要目的是為了讓有效的脈搏波特征不需要再去經(jīng)過后續(xù)的冗余層,跨過多個冗余層后直接完成恒等映射或比例映射,將映射輸出與經(jīng)過2D Conv層的信號輸出進行合并。而經(jīng)過2D Conv層的信號,使用Spatiopool空間池化層來減少脈搏波特征空間的大小,再使用ST_Block時空卷積進行濾波,ST_Block時空卷積結構如圖9所示,該卷積塊是二維空間卷積和一維時間卷積的組合,在過濾非脈搏波信號的同時增加了脈搏波信號的非線性特征。
圖9 ST_Block時空卷積塊結構
隨后的Spatiopool空間池化層與ST_Block時空卷積塊都是在三維空間上執(zhí)行,以期可保留幀間全部的脈搏波信息。AdaptiveAvgPool3d自適應空間池化層將特征信號壓縮至1個維度,由于非接觸心率估計是一個基于時間顏色變化的回歸問題,所以池化層都采用平均池化。
在非接觸心率估計任務中,關注的是脈搏波的周期變化信息而不是其幅值大小,因此常用的均方誤差損失函數(shù)和交叉熵損失函數(shù)并不適用于此任務,為了恢復出與真實心電信號趨勢相同的信號,采用負皮爾遜相關系數(shù)作為損失函數(shù),其表達式如下:
其中,N代表幀數(shù),y pre表示預測的脈搏波信號,y gt表示真實的心率信號,為了保證模型更好的集中于時間上的特性,我們還設置了一個中間約束,既從第四個ST_Block的輸出進行引導,壓縮、聚合、平均池化至一維,同樣使用負皮爾遜相關系數(shù)作為損失函數(shù),此時網(wǎng)絡最終的損失函數(shù)為:
其中L P為最終輸出的損失,L mid為中間層輸出的損失,權重α是用來調(diào)節(jié)約束程度(設置為0.5)。
不同于那些依賴于高層特征的視頻分析任務,如動作識別、字幕生成等,非接觸心率估計任務可以通過較淺的網(wǎng)絡和較少的過濾器來學習,因為皮膚表面的顏色變化實際上是一個相對于低層的特征,簡潔的網(wǎng)絡結構可防止過擬合。本文代碼公開于網(wǎng)址1,希望與其他學者交流并改進。
從三維卷積網(wǎng)絡中恢復出的脈搏波信號估計已經(jīng)接近于真實的心率信號,但進一步濾波,有助于得到更高質量的心率信號,其步驟如圖10所示。設計一個符合本系統(tǒng)的理想帶通濾波器(三階巴特沃斯帶通濾波器),然后使用傅里葉變換將周期性脈搏波信號轉換到頻域(快速傅里葉變換),對頻域信號再進行帶通濾波和傅里葉逆變換,得到最終的心率信號。
圖10 后處理提取心率信號
在PURE-HR和COHFACE-HR數(shù)據(jù)集上進行實驗,以60%作為訓練集,40%作為測試集(PURE-HR:36/24,COHFACE-HR:96/64),實驗得出epoch設置為30最佳,表1、表2分別總結了其他論文和本文在PURE-HR、COHFACE-HR數(shù)據(jù)集上的實驗結果。從表1可見,在PURE-HR數(shù)據(jù)集中使用三維卷積得到的結果為RMSE:0.64bpm,MAE:0.65 bpm,R:0.99 bpm,接近于之前最好的結果(DeeprPPG:RMSE:0.43 bpm,MAE:0.28 bpm,R:0.99 bpm)。但由于PURE數(shù)據(jù)集中受試者的動作及環(huán)境光均相對穩(wěn)定,故數(shù)據(jù)集難度較低,效果趨近于飽和。因此采用COHFACEHR進行測試,COHFACE是一個高度壓縮的數(shù)據(jù)集,視頻壓縮會破壞皮膚顏色的細微變化,故其心率估計難度要大于PURE-HR,表2顯示,在COHFACE-HR數(shù)據(jù)集中之前最好的結果(DeeprPPG:RMSE:3.07 bpm,MAE:7.06 bpm,R:0.86 bpm)誤差比PURE-HR要大的多,這同樣也說明視頻經(jīng)過高度壓縮后圖像已經(jīng)失真,已經(jīng)不再適用于檢測皮膚微小顏色變化的任務,我們?nèi)匀辉贑OHFACE-HR數(shù)據(jù)集上驗證了我們的方法,RMSE:5.57 bpm,MAE:5.46 bpm,R:0.78 bpm接近于之前最好的效果。證明了本文方法的可靠性。我們相信在配合后處理之后,其準確率會超越當前最好的結果。圖11展示了三維卷積后預測的脈搏波信號波形和真波形的比較,其中黃色波形為模型恢復出的脈搏波信號,藍色波形為真實心電信號,可以看出本文方法估計出的脈搏波形與實際心電信號有很強線性相關性。
表1 PURE數(shù)據(jù)集平均心率測量結果
表2 COHFACE-HR數(shù)據(jù)集平均心率測量結果
圖11 三維卷積心率估計可視化
本文提出了一種基于三維卷積網(wǎng)絡的心率估計模型,該模型能夠準確有效的恢復面部視頻圖像中含有的脈搏波信號成分。在PURE-HR數(shù)據(jù)集和COH?FACE-HR數(shù)據(jù)集上進行訓練和驗證的實驗結果表明,該模型在準確率上接近當前最好的效果,相比于只能恢復心率值的方法,該模型恢復的脈搏波信號還可以分析心率變異性。心率變異性能在更精細的尺度上描述心臟活動,其最常見的特征包括低頻(LF,Low Fre?quency)、高頻(HF,High Frequency)以及低頻與高頻的比值,這些特征在許多醫(yī)療應用中得到了廣泛的應用。非接觸心率估計在目前仍然存在一些問題,在未來可以在以下研究方向做進一步改進:①在具有光線變化、頭部運動的現(xiàn)實場景中,如何在這些“噪聲”同時存在(或部分存在)的情況下從人臉視頻中恢復出心率。②使用紅外相機在光線較弱的場景中恢復心率。③除心率外其他生理信號如呼吸率、血氧濃度、血壓等也可以從面部視頻中獲取。