黃 海,謝昊巖,黃馳程
(1.許昌學(xué)院 馬克思主義學(xué)院,河南 許昌 461000;2.天津師范大學(xué) 馬克思主義學(xué)院,天津 300387;3.南京大學(xué) 哲學(xué)系,江蘇 南京 210023;4.許昌學(xué)院 邏輯研究所,河南 許昌 461000)
rPPG技術(shù)憑借低成本和非接觸等優(yōu)點(diǎn),在遠(yuǎn)程醫(yī)療和情感計(jì)算等領(lǐng)域有重要應(yīng)用。早期研究工作選擇人臉感興趣區(qū)域(region of interest,ROI)進(jìn)行像素平均,使用信號處理的方法對觀測信號進(jìn)行降噪,得到純凈的rPPG信號[1-3]。這些方法雖然取得了較好的實(shí)驗(yàn)結(jié)果,但難以處理周期性噪聲和頻率與心跳近似的噪聲。同時(shí),這些方法還做出一些假設(shè)來簡化降噪過程,例如假設(shè)RGB這3個(gè)顏色通道相互獨(dú)立、噪聲與rPPG信號是線性組合的[4]。這導(dǎo)致在光照和頭部運(yùn)動幅度較大的場景中,基于信號處理的方法的性能不穩(wěn)定。除信號處理的方法外,深度神經(jīng)網(wǎng)絡(luò)也被應(yīng)用于遠(yuǎn)程心率估計(jì)[5-9]。鑒于深度學(xué)習(xí)是數(shù)據(jù)驅(qū)動的方法,訓(xùn)練集中含有各種實(shí)際場景的樣本,保證了深度學(xué)習(xí)方法的魯棒性和靈活性。但由于卷積固有的特性,當(dāng)輸入視頻幀數(shù)較長時(shí),基于卷積的rPPG模型無法保持長距離幀的聯(lián)系。同時(shí),現(xiàn)有方法并未考慮非皮膚區(qū)域及背景給rPPG估計(jì)引入的噪聲問題,僅使用HR或rPPG信號來分析受試者的健康狀態(tài),充分考慮兩者聯(lián)系將有助于提升模型預(yù)測的準(zhǔn)確率。
針對以上問題,本文以復(fù)雜場景下的遠(yuǎn)程心率估計(jì)為研究目標(biāo),以Transformer[10,11]為主要架構(gòu),結(jié)合一種新穎的時(shí)空表示算法,提出一種改進(jìn)的基于多頭自注意力的多任務(wù)生理估計(jì)方法。通過時(shí)空表示算法將人臉視頻投影為時(shí)空圖,保證無信息丟失的情況下抑制不相關(guān)區(qū)域引入的噪聲;通過改進(jìn)的多頭自注意力機(jī)制加強(qiáng)幀間信息交互,使用rPPG信號頻域特性約束HR估計(jì),提高復(fù)雜場景中的心率估計(jì)精度。
圖1展示了本文方法的總體結(jié)構(gòu)。大致分為4部分:多尺度時(shí)空圖(multi-scale spatial temporal map,MSTMap)生成、Transformer編碼器、rPPG解碼器和HR解碼器。首先,使用檢測到的人臉序列生成多尺度時(shí)空圖,然后時(shí)空圖輸入預(yù)訓(xùn)練的Transformer模型,利用自注意力機(jī)制從時(shí)空圖中提取rPPG特征。rPPG解碼器和HR解碼器分別將提取的rPPG特征解碼為rPPG波形和平均HR。
圖1 心率檢測模型框架
不同于靜態(tài)圖像,rPPG提取任務(wù)需要從時(shí)間和空間兩個(gè)維度進(jìn)行特征提取。對此,本文提出了一種多尺度時(shí)空表示方法,將從視頻中檢測到的人臉序列生成時(shí)空圖x∈H×W×C作為模型輸入,其中 (H,W) 為圖像尺寸,C代表圖像的通道個(gè)數(shù)。為使Transformer處理2D圖像,將時(shí)空圖分成大小相同的子塊序列xp∈Np×(P2·C), 其中 (P,P) 為子塊尺寸,Np=HW/P2為子塊個(gè)數(shù)。對于子塊序列xp, 首先使用線性變換將其展平為Np個(gè)長度為D的向量,然后附加一個(gè)符合高斯分布的向量xtoken∈D, 最后對其進(jìn)行位置編碼得到Transformer編碼器的輸入z0。z0的計(jì)算過程如下
(1)
圖2 模型詳細(xì)結(jié)構(gòu)
a=MHA(LN(z))+z
(2)
z=MLP(LN(a))+a
(3)
其中,LN表示層歸一化,MHA表示多頭注意力,MLP為多層感知器,∈[1,2,…,L] 為編碼層索引。圖2(b)和圖2(c)分別展示了rPPG解碼器和心率解碼器的詳細(xì)結(jié)構(gòu),其中“Conv”表示卷積操作,“Linear”表示線性變換,“AdaptiveAvgPool”表示自適應(yīng)平均池化。
由于皮膚吸收光線導(dǎo)致的人臉顏色變化幅度很小,因此從視頻中構(gòu)建一種高質(zhì)量的生理特征表示尤為重要??紤]到人臉局部和全局生理信息,提出了一種多尺度的時(shí)空圖來表示心跳引發(fā)的皮膚顏色變化。圖3為多尺度時(shí)空圖的生成流程。
圖3 多尺度時(shí)空圖構(gòu)建
首先,使用開源框架SeetaFace檢測人臉特征點(diǎn),并根據(jù)人臉特征點(diǎn)劃分Nr個(gè)毛細(xì)血管豐富的子塊(例如額頭、臉頰、下巴)。如圖3所示,對人臉視頻中的第t幀,本文首先將人臉劃分為Nr個(gè)不相交的子塊Rt={R1,t,R2,t,…,RNr,t}, 取其各種組合的集合作為感興趣區(qū)域。然后對于ROI中的2Nr-1個(gè)元素(不包含空集),分別計(jì)算其在各個(gè)顏色通道上空間像素平均值作為該幀圖像的生理表示。Niu等提到Y(jié)UV色彩空間可以更好表示人臉視頻中的生理信息,因此本文使用RGB和YUV兩個(gè)色彩空間來構(gòu)建6個(gè)通道的多尺度時(shí)空圖[12]。對于一個(gè)長度為T的視頻片段,可以得到6×(2Nr-1) 個(gè)長度為T的時(shí)間序列。然后將這些序列的不同通道按行排列,就得到了該視頻片段的多尺度時(shí)空圖,大小為6×(2Nr-1)×T。
平均心率值和rPPG信號是衡量生理健康狀態(tài)的兩個(gè)典型指標(biāo)。先前的方法僅估算平均心率值或者rPPG信號,并未在同一個(gè)模型中考慮兩者之間的聯(lián)系,但兩者反應(yīng)的是人體不同層面的生理信息。平均心率值可以從表層反應(yīng)人的健康狀態(tài),而rPPG信號中含有更加豐富的生理信息,例如心率、呼吸率和心率變異性。對此,本文同時(shí)考慮rPPG信號和平均心率值,并通過兩者之間的關(guān)系進(jìn)行相互約束,進(jìn)而提高網(wǎng)絡(luò)魯棒性和預(yù)測精度。本文將提取到的rPPG特征分為rPPG波形擬合和平均心率值估計(jì)兩個(gè)分支來進(jìn)行生理估計(jì)。對于平均心率值分支,本文采用平均絕對誤差(mean absolute error,MAE)作為損失函數(shù),記為LHR。 LHR的計(jì)算公式如下
LHR=MAE(HRgt,HRpred)
(4)
其中,HRgt和HRpred分別代表心率標(biāo)簽值和預(yù)測值。對于rPPG信號分支,本文采用負(fù)皮爾森相關(guān)性作為標(biāo)簽心率信號和預(yù)測rPPG信號的損失,記為 LrPPG。 不同于MAE,LrPPG衡量的是兩個(gè)序列之間的線性相關(guān)性,rPPG估計(jì)的任務(wù)就是最大化預(yù)測信號和標(biāo)簽信號的線性相關(guān)性。 LrPPG的計(jì)算公式如下
(5)
其中,T表示序列長度,x表示預(yù)測rPPG信號,y表示標(biāo)簽BVP信號。由于心率值可由rPPG信號的頻域特性計(jì)算得出,本文在rPPG信號分支添加了 LrPPG_HR損失來約束rPPG信號主頻。 LrPPG_HR的計(jì)算公式如下
LrPPG_HR=MAE(PSD(Spre),HRgt)
(6)
其中,PSD(·) 表示輸入信號的功率譜密度函數(shù),Spre和HRgt分別表示預(yù)測rPPG信號和心率標(biāo)簽值。最終整個(gè)模型的損失為平均心率損失 LHR、 相關(guān)性損失 LrPPG和 LrPPG_HR組成,表達(dá)式為
L=αLrPPG_HR+βLrPPG+LHR
(7)
其中,α和β為權(quán)衡各局部損失的權(quán)值。
本節(jié)將從以下兩方面對本文方法展開實(shí)驗(yàn):①使用UBFC-RPPG數(shù)據(jù)集以內(nèi)部數(shù)據(jù)集的方式評估本文方法的準(zhǔn)確性;②使用UBFC-RPPG和PURE數(shù)據(jù)集以跨數(shù)據(jù)集的方式評估本文方法心率估計(jì)的準(zhǔn)確性。
2.1.1 數(shù)據(jù)集
實(shí)驗(yàn)使用UBFC-RPPG數(shù)據(jù)集和PURE數(shù)據(jù)集進(jìn)行訓(xùn)練和測試,兩個(gè)數(shù)據(jù)集在錄制人臉視頻時(shí)均同步記錄BVP信號。
UBFC-RPPG數(shù)據(jù)集是Bobbia等公開發(fā)布的rPPG數(shù)據(jù)集[13]。該數(shù)據(jù)集在室內(nèi)照明和不同強(qiáng)度的自然光下使用Logitech C920 HD Pro攝像機(jī)錄制視頻,幀率為30,分辨率為640×480。視頻錄制時(shí)使用血氧儀同步記錄BVP信號作為標(biāo)簽,受試者距離攝像頭大約1 m。數(shù)據(jù)集中共包含54個(gè)視頻(其中4個(gè)視頻未公開,實(shí)際可用50個(gè)),8個(gè)視頻為簡單場景,42個(gè)視頻錄制條件為自然場景,包含光線變化和頭部運(yùn)動。
PURE數(shù)據(jù)集中包含來自10個(gè)受試者(8位男性,2位女性)的60個(gè)視頻,每個(gè)視頻時(shí)長約1 min。該數(shù)據(jù)集使用ECO274CVGE 攝像機(jī)以 30 fps的速度錄制,分辨率為 640×480。視頻錄制時(shí)同步使用指夾式脈搏血氧儀(Contec CMS50E)以60 Hz的采樣率獲取BVP信號。每個(gè)受試者在視頻錄制過程中進(jìn)行了6種不同的頭部運(yùn)動來模擬應(yīng)用場景,包括穩(wěn)定、說話、慢平移、快平移、小旋轉(zhuǎn)和中旋轉(zhuǎn)。
2.1.2 實(shí)驗(yàn)環(huán)境和參數(shù)設(shè)置
本實(shí)驗(yàn)采用SeetaFace進(jìn)行人臉檢測和特征點(diǎn)標(biāo)注,并將視頻中的每幀人臉圖像降采樣為128×128。人臉子塊個(gè)數(shù)Nr設(shè)置為6,分別為額頭、下巴、左(右)上(下)臉頰。對于BVP信號,根據(jù)每個(gè)數(shù)據(jù)集中視頻樣本的幀率從對應(yīng)標(biāo)簽中采樣。模型基于PyTorch框架實(shí)現(xiàn)并使用NVIDIA P400加速訓(xùn)練,每個(gè)輸入樣本均為從訓(xùn)練集視頻中隨機(jī)采樣的連續(xù)的128幀(約4 s)圖像,即T為128。rPPG信號標(biāo)簽為對應(yīng)視頻段的BVP信號,心率值標(biāo)簽為該時(shí)段的平均心率值。模型設(shè)置注意力頭的個(gè)數(shù)為8,模型維度為512,時(shí)空圖分塊尺寸P為16。模型總損失中的平衡系數(shù)α設(shè)為0.1,β設(shè)為10。模型訓(xùn)練使用Adam算法優(yōu)化模型參數(shù),學(xué)習(xí)率設(shè)置為1e-4。
2.1.3 評價(jià)指標(biāo)
(1)平均絕對誤差(mean absolute error,HRmae)
(8)
(2)標(biāo)準(zhǔn)差(standard deviation,HRsd)
(9)
(3)均方根誤差(root mean square error,RMSE)
(10)
(4)平均誤差百分比(mean error rate percentage,MER)
(11)
(5)皮爾遜相關(guān)系數(shù)(pearson correlation coefficient,PCC)
(12)
該部分實(shí)驗(yàn)本文采用UBFC-RPPG數(shù)據(jù)集進(jìn)行模型訓(xùn)練和測試。根據(jù)訓(xùn)練集和測試集樣本相互獨(dú)立的原則,本文選擇了3/4的視頻樣本訓(xùn)練模型,1/4的視頻樣本用于模型的測試。模型共訓(xùn)練15個(gè)epoch,訓(xùn)練過程中損失函數(shù)、皮爾森相關(guān)系數(shù)和心率估計(jì)絕對誤差的收斂曲線如圖4所示。
圖4 訓(xùn)練過程中損失函數(shù)、PCC和心率估計(jì)絕對誤差的收斂曲線
圖5展示了預(yù)測rPPG信號和真實(shí)BVP信號的波形對比,從圖5中可以看出,兩個(gè)樣本的PCC分別達(dá)到了0.931和0.948,驗(yàn)證了本文方法預(yù)測的rPPG信號與BVP信號具有較強(qiáng)的相關(guān)性。
圖5 UBFC-RPPG數(shù)據(jù)預(yù)測rPPG信號與BVP對比
為了驗(yàn)證本文方法的有效性,與先前的方法進(jìn)行了比較,包括傳統(tǒng)算法CHROM、SAMC和POS,基于深度學(xué)習(xí)的方法DeepPhys[14]、rPPGNet[15]和RhythmNet[16]。本文使用提供的MATLAB工具包iPhys中傳統(tǒng)方法的代碼,視頻樣本長度為30 s。表1顯示了各對比方法的結(jié)果,最優(yōu)結(jié)果使用粗體表示。
表1 本文方法與對比方法在UBFC-RPPG數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果對比
從表1中可以看出,基于深度學(xué)習(xí)的方法的實(shí)驗(yàn)性能整體上優(yōu)于傳統(tǒng)方法,這是在大量訓(xùn)練數(shù)據(jù)的基礎(chǔ)上實(shí)現(xiàn)的。傳統(tǒng)方法中Poh等的方法效果最差,HRmae達(dá)到14.6 bpm,PCC僅為0.49。這是由于該方法假設(shè)RGB這3個(gè)通道是相互獨(dú)立的,在非理想的場景下該假設(shè)不成立。
本實(shí)驗(yàn)中,POS在傳統(tǒng)算法中表現(xiàn)最好,HRmae為8.07 bpm,但較基于深度學(xué)習(xí)的方法還有改進(jìn)空間。這是因?yàn)楫?dāng)噪聲頻率與心跳頻率相似時(shí),這些方法難以將噪聲分離。從表1中可見,基于深度學(xué)習(xí)的方法在本實(shí)驗(yàn)中都可以準(zhǔn)確進(jìn)行心率估計(jì)。對于MER指標(biāo),rPPGNet實(shí)驗(yàn)結(jié)果最好,僅有8.61%,比本文方法低0.05%。但本文方法的HRmae僅有5.23 bpm,HRsd為7.49 bpm,同時(shí)PCC達(dá)到0.84,均優(yōu)于對比算法。同時(shí)本文從數(shù)據(jù)集中隨機(jī)截取了300個(gè)短視頻樣本,對模型預(yù)測心率值和真實(shí)心率值進(jìn)行了一致性分析,并繪制了Bland-Altman圖。圖6顯示了在UBFC-RPPG數(shù)據(jù)集上模型預(yù)測的心率值與真實(shí)值的一致性結(jié)果,圖中實(shí)線代表均值,虛線表示95%的置信區(qū)間。從圖中可以看出,大部分樣本位于95%的置信區(qū)間內(nèi),說明本文方法估測的心率值與真實(shí)心率值密切相關(guān),驗(yàn)證了本文方法在包含光照變化和頭部運(yùn)動的UBFC-RPPG數(shù)據(jù)集上進(jìn)行心率估計(jì)的有效性。
圖6 UBFC-RPPG數(shù)據(jù)集上預(yù)測心率值和真實(shí)值的Bland-Altman一致性分析
PURE數(shù)據(jù)集中的視頻樣本包含各種頭部運(yùn)動和光照變化,為了驗(yàn)證本文方法的泛化性和對頭部運(yùn)動的魯棒性,本文選擇UBFC-RPPG數(shù)據(jù)集中的所有樣本進(jìn)行模型訓(xùn)練,模型收斂后在PURE數(shù)據(jù)集上進(jìn)行測試。圖7展示了在PURE數(shù)據(jù)集上預(yù)測rPPG信號與BVP信號的波形對比。
從圖7中可以看出,兩個(gè)測試樣本的PCC分別達(dá)到了0.901和0.851,說明在跨數(shù)據(jù)集實(shí)驗(yàn)中,預(yù)測rPPG信號與BVP信號仍具有高度相關(guān)性。頭部運(yùn)動和光照變化會給rPPG任務(wù)帶來巨大的挑戰(zhàn)。為驗(yàn)證本文方法在復(fù)雜場景中的有效性,本文與其它最先進(jìn)的算法進(jìn)行了對比。表2為各方法在PURE數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果,其中基于深度學(xué)習(xí)的方法使用UBFC-RPPG數(shù)據(jù)集作為訓(xùn)練數(shù)據(jù)。
表2 本文方法與對比方法在PURE數(shù)據(jù)集上的交叉驗(yàn)證結(jié)果
從表2中可以看出,與其它方法相比,本文方法達(dá)到了最優(yōu)結(jié)果。基于信號處理的方法在頭部運(yùn)動較大的場景中實(shí)驗(yàn)性能下降較大,Poh等的方法PCC僅有0.24,同時(shí)HRmae達(dá)到20.3 bpm,在PURE數(shù)據(jù)集上無法進(jìn)行準(zhǔn)確的心率估計(jì)。CHROM、SAMC和POS相比于Poh表現(xiàn)略有提升,但相比于基于深度學(xué)習(xí)的方法,還有較大提升空間。本文方法的HRmae為6.24 bpm,PCC達(dá)到0.79,MER為9.61%,算法性能相較于內(nèi)部數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果并無明顯下降。以上實(shí)驗(yàn)結(jié)果表明,本文方法在具備較強(qiáng)泛化能力的同時(shí),對光照變化和頭部運(yùn)動也有較強(qiáng)的魯棒能力。
本文提出了一種基于多頭自注意力的多任務(wù)生理估計(jì)方法,用于在包含光照變化和頭部運(yùn)動的復(fù)雜場景中進(jìn)行無接觸的心率估計(jì)。該方法設(shè)計(jì)了一種多尺度時(shí)空圖生成算法,用來抑制不相關(guān)的背景和噪聲,同時(shí)保留rPPG生理信號的大部分時(shí)間特征。采用多頭自注意力機(jī)制學(xué)習(xí)視頻全局信息,避免了丟失長距離幀之間的信息,從而加強(qiáng)對運(yùn)動的魯棒性。采用多任務(wù)學(xué)習(xí),通過rPPG信號的頻域特性約束平均心率值,提高了模型的心率估算精度。實(shí)驗(yàn)結(jié)果表明,本文方法在不同數(shù)據(jù)集上的性能均優(yōu)于對比算法,在PURE數(shù)據(jù)集上進(jìn)行跨數(shù)據(jù)集的心率估計(jì)誤差為6.24 bpm,具有較強(qiáng)的應(yīng)用價(jià)值。