呂相文, 田子, 呂東岳, 袁柳
(中國電子科學研究院, 北京 100041)
心率、呼吸率、血氧飽和度是衡量人體生理狀況的重要生理信號。當前可信的高精度心率測量途徑、方法有心電圖(electrocardiogram, ECG)、脈搏血氧儀、光體積描記術(photoplethysmograph,PPG)[1]等,這些測量方法都需要傳感器與皮膚的直接接觸獲取信號數據,方法適用場景的前提是受試人員需要全程配合,無法在工程應用中廣泛適用。
近年來,非接觸式的生理指標測量受到學術界廣泛關注。如采用超寬帶雷達[2]和激光多普勒測振[3]技術進行的非接觸式生理指標測量,當前采用這些技術途徑的成本較高。為了高效、快捷、準確地提取出生理信號,研究者們尋求新的突破,并發現在毛細血管密布的人臉面部皮膚中顏色會隨著心臟收縮舒張而發生細微的周期性變化,這一變化可以被成像設備捕捉。基于這一發現,研究者提出了一種基于視頻成像的非接觸式心率測量技術,也稱為遙測光電容積脈搏波描記法(remote photoplethysmography, rPPG)。利用相機拍攝的視頻來提取心率信息,該技術方法以其易用性、低成本、便捷性吸引了計算機視覺以及醫學工程領域內眾多學者關注。
Verkruysse等[4]首次提出可以通過普通相機拍攝的視頻來提取心率。Poh等[5]延續這個思路,利用獨立成分分析法從視頻圖像的信號中分離計算得到脈搏波信號。隨后,Poh等[6]又通過改進原有方法,在獨立成分分析(independent component analysis,ICA)的前后步驟中加入時間濾波,去除了線性分量和隨機噪聲,然后引入脈搏源信號選擇標準。上述方法都是一系列延續的研究工作,處于理論方法的驗證階段,雖然實現了非接觸的心率測量,但對受試者以及周圍環境提出了一定的要求,如受試者需要靜止,環境光以及受試者的常規運動都會對測量結果造成影響,還無法實現工程應用。接下來,針對工程應用中遇到的問題,諸多學者開展研究,針對周圍光照對測量結果造成的影響,De Haan等[7]通過使用色度信號的線性組合來分析計算出脈搏信號。Balakrishnan等[8]在視頻圖像中測量每次心跳時血液流入的牛頓反應引起的細微頭部運動(remote ballistocardiogram, rBCG),從而獲取心率信息。緊接著,Tulyakov等[9]提出基于矩陣填充從動態選擇人臉區域中的最佳區域進行心率估測。陳炎[10]提出一種基于加速度傳感器的PPG信號處理方法,從加速度信號中獲取運動偽跡的頻率,去除原始信號中運動偽跡,重構PPG波形,該方法能夠有效去除PPG信號中的噪聲,提高心率檢測的準確性,該方法在穿戴式設備的實時監測有一定前景。Wang等[11]使用與膚色正交的投影平面來提取脈搏信號。隨后,越來越多的研究從光學模型和信號處理角度來進行遠程心率測量[12-15]。2021年開始,國內學者更加關注rPPG方法應用于真實場景中,而不是受限條件較多的實驗環境,譚擁等[16]針對PPG信號易受運動影響,提出利用角速度對加速度進行卡爾曼濾波修正作為輸入參數,濾除信號偽影,降低測量誤差。秦睿星等[17]提出一種膚色正交平面算法的改進,對信號在頻率域上進行頻域濾波處理,再送入算法進行時域濾波,以此減少不同噪聲對信號質量的影響,實現人臉運動狀態下心率的穩定檢測。在2022年,學者們對rPPG的研究進入細分的階段,Macwan等[18]提出一種基于廣義特征值分解(generalized eigenvalue decompositio,GEVD)的方法來估計rPPG的空間分布,用于應對簡單地從空間平均中提取面部信息所帶來的重要空間信息確實。
以上這些傳統的研究方法都處于相對穩定的實驗環境下,如何使其在復雜的工程場景中起作用,仍然是該研究領域一個具有挑戰性的問題。
近年來,一系列將深度學習的理論方法應用于心率、脈搏等生理指標的測量。Hsu等[19]嘗試使用深度學習框架進行實時脈搏信號的估計,研究人員開收集整理了一套脈搏數據庫,并用該庫來訓練神經網絡。Qiu等[20]提出一種新的框架,將時空濾波和卷積神經網絡相結合,通過面部視頻測算心率。Spetlik等[21]提出一種卷積神經網絡來測算面部圖像的心率,該兩階段網絡通過交替優化進行端到端訓練,并在三個公開可用的數據集上進行驗證。上述方法是一系列將深度學習方法應用到心率測量的理論驗證,尚未考慮實際工程應中的各種環境的影響。Chen等[22]提出一種深度卷積網絡不僅能對心率進行測量,同時還可以對呼吸頻率測量,該方法在非均勻光照和運動下具有一定的魯棒性。Niu等[23]提出RyhthmNet,通過組合多個興趣區域(region of interest, ROI)數據融合成時空表示作為該網絡輸入進行心率測算。Yu等[24-25]提出了PhysNet和rPPGNet用于脈搏測算。Yu等[26]在普通三維卷積網絡中引入時間差異信息,擴充數據集后再用自定義聯合損失函數約束模型收斂。Schrumpf等[27]利用神經網絡框架對連續的PPG信號分析,進而對血壓預測進行系統評估。Lokendra等[28]提出一種抗信號噪聲的rPPG網絡模型,針對面部動作單位(action units,AUs)對信號進行去噪處理,有效地減少了由面部表情所帶來的噪聲。針對周圍環境光線的變化,Jaiswal等[29]提出了一種融合RGB與多尺度Retinex(MSR)兩種顏色空間的算法,并融合生成時空圖,進而卷積神經網絡(convolutional neural network,CNN)用于將時空特征映射到相應的心率值。Sun等[30]利用rPPG和深度卷積神經網絡學習模型對心房顫動進行檢測,顯著提高區分心房顫動和非心房顫動的精度,為未來的大規模篩查或監控提供一種可行途徑。
對rPPG的最新研究進展進行了系統的綜述,主要貢獻有4個方面:①闡述傳統rPPG方法的原理;②論述目前具有代表性的rPPG方法的最新研究進展和主要技術挑戰;③比較基于深度學習和傳統rPPG心率測量的優缺點以及在現實環境中的適用性;④討論rPPG心率測量未來研究方向。
隨著心臟收縮以及舒張的周期性運動會引起皮膚顏色的微小變化,原因是每次心跳過程中,皮膚下的血管會改變對光線的吸收反射特性。血液中因為含有血紅蛋白,因此相較于周圍其他組織如皮膚、肌肉等對光的吸收量更多。在心臟跳動期間,皮膚下的毛細血管中血容量會發生周期性變化,血紅蛋白量也隨之發生周期變化。因此,心臟跳動的周期可以通過測量皮膚組織對光反射強度的變化周期獲得。
依據文獻[40],假設光照亮度固定,則光譜組成也是確定不變,將一系列圖像的處理時間定義為T(s),在圖像中,興趣區域中的像素數量為K,所以系列圖像中第k個像素的光線反射定義為
Ck(t)=I(t)[vs(t)+vd(t)+vn(t)],
1≤k≤K
(1)
式(1)中:t為第t秒,且1≤t≤T;Ck(t)為興趣區域中第k個像素的RGB平均值;I(t)為光照強度等級;vs(t)為鏡面反射;vd(t)為漫反射;I(t)同時被vs(t)和vd(t)計算確定;vn(t)為視頻獲取時的噪聲參數;vs(t)為皮膚表面鏡面反射成分。
vs(t)=us[s0+s(t)]
(2)
式(2)中:us為光源的單位向量;s0和s(t)分別為鏡面反射的靜止和隨時間的變化部分,其中變化部分主要是由運動引起的。
vd(t)為皮膚表面的漫反射,其依賴于血容量的變化,可表示為
vd(t)=udd0+upp(t)
(3)
式(3)中:ud為皮膚組織的單位顏色向量;d0為穩態漫反射強度;up為脈動強度;p(t)為真實脈搏波信號。
其物理模型抽象描述如下:①心臟周期性收縮舒張使動脈血液流向全身;②流向全身的血液造成毛細血管中的血液容量呈周期性變化;③相機成像過程中將這種變化記錄下來;④分析包含較多毛細血管的視頻區域可以得到心率。
本節分類介紹了傳統的遙測心率估計方法。傳統方法的通用框架設計思路類似,個別方法主要區別在于圖像的預處理、信號提取的具體算法以及信號的后處理,其中信號的提取目前主要是包括基于盲源分離和基于建立模型計算兩種方法。圖1展示了基于rPPG的心率估計的通用算法框架,該算法由如下步驟組成。
(1)視頻采集。結合毛細血管的分布、運動干擾強度等問題,通常使用彩色攝像頭采集人臉視頻區域。
(2)提取RGB平均顏色通道。選取每一幀視頻圖像中與心跳相關的面部興趣區域,通常為臉頰或前額區域[41]。為增強信號穩定性,計算興趣區域平均像素值來調控最終信號計算穩定性:

(4)
式(4)中:ROI(t)為興趣區域;(i,j)為興趣區域中的具體位置;Ci,j(t)為時間t時(i,j)位置的顏色信號;c0(t)為RGB平均顏色信號。
(3)顏色通道預處理。一般由濾波和歸一化組成,其目的是去除與脈搏信號之外的噪聲信號,有去趨勢濾波、移動平均濾波、帶通濾波等方法,歸一化是后續進行盲源分離處理的必要前提,將c0(t)經過去趨勢化或滑動平均濾波后計算獲得的顏色信號c(t)。
c(t)=[r(t),g(t),b(t)]T
(5)
(4)脈搏波信號提取。對于預處理后的c(t)信號采用盲源分離或基于模型的算法提取脈搏波信號,即
rPPG0(t)=wr(t)r(t)+wg(t)g(t)+
wb(t)b(t)
(6)
式(6)中:wr(t)、wg(t)、wb(t)為RGB通道的各個權重;r(t)、g(t)、b(t)分別為經過趨勢化或滑動平均濾波后的RGB三通道信號。提取方法一般為獨立成分分析、主成分分析、CHROM[7]、POS[11]等。
(5)后處理。該處理步驟不是必需的,如果在步驟4中以非線性方式(CHROM、POS等)提取脈搏波信號,則需要對rPPG0(t)進行后處理得到脈搏信號,主要方式有帶通濾波、平均濾波、自適應平均濾波等方法。
(6)心率計算。將提取的脈搏波信號轉換計算為心率,方法有心搏間隔法(interbeat intervals, IBI)、最大功率譜密度法(power spectral density, PSD)等。

圖1 基于rPPG的心率估計的傳統通用算法框架[4]Fig.1 General algorithm framework for rPPG-based heart rate estimation[4]
在顏色信號c(t)中,攜帶脈搏波信號的分量是未知的,利用盲源分離法(blind source separation,BSS)[42]能夠將c(t)分解成不同信號,再根據最大頻譜值或最強周期性特征選出最接近脈搏波的信號?;诿ぴ捶蛛x的rPPG方法可表達為
Y(t)=Wc(t)
(7)
式(7)中:Y(t)為由脈沖和噪聲組成的分解源信號;W為可以由主成分分析(principal component analysis,PCA)[43]或獨立成分分析估算的混合矩陣,得到Y(t)信號后,取最強的周期性信號作為脈搏波信號。
此外,PCA和ICA對W都有一定的影響,PCA使用RGB通道的協方差來估計W。而ICA則假設Y(t)中的分量是相對獨立的,只有當c0(t)是一個長信號時才能進行統計測量。
盲源分離的關鍵在于尋找更好的分離算法使心率信號從原始信號中分離出來。但如果噪聲信號與心率信號頻率相接近(如運動頻率和心率頻率相接近),這種方案可能不能表現出很好的效果。
與基于盲源分離的方法不同的是,該方法對與源信號相關的顏色不做假設,而是利用這些顏色向量來控制混合信號的分離?;谀P偷姆椒ㄓ蠧HROM、PBV(pulse blood-volume)[44-47]、POS 等。這些方法有一個共同的步驟:消除c(t)對平均皮膚反射顏色的依賴,如光源顏色和人體膚色。
PBV算法限制所有的顏色向脈搏波分量方向變化,然后從脈搏波分量中提取心率,PBV也是一種基于血容量脈沖的運動魯棒改進方法。CHROM算法為了不受光照變化的影響,假設了一個標準化的膚色向量,這個向量能夠自動白平衡圖像。而PBV算法使用預先定義的脈沖信號來平衡噪聲。POS方法類似于CHROM,在該算法中,通過一個臨時歸一化的RGB信號中建立了與膚色垂直的正交平面,利用不同的先驗知識來減少顏色失真的順序。
以CHROM方法為例,該方法假定視頻連續幀中的人臉存一定的運動情況,運動對RGB三通道(R、G、B代表每個通道的時序信號)中每個通道的影響是一樣的,由此引出兩個正交信號X、Y和S信號。
X=R-G
(8)
Y=0.5R+0.5G-B
(9)

(10)
通過計算得到的S信號即為心率信號,此方法的優勢在于,能夠加強原視頻中的顏色信號,適用于顏色信號較為微弱的場景。
本質上,不同的光源(或其他外界干擾)使產生脈沖的RGB信號發生變化,這使得固定的先驗設置不可能是最優的,基于模型的方法首先要消除脈搏信號之外對RGB信號產生影響的因素。
為了提高方法的可靠性及魯棒性,傳統方法趨向于越來越復雜的預處理步驟(人臉檢測和跟蹤、色彩空間轉換、信號分解和濾波等)和后處理步驟(帶通濾波、平均濾波、奇異值分解等)。
表1中詳細梳理了典型rPPG測量方法的前后預處理步驟及主要貢獻等關鍵信息。

表1 rPPG測量傳統方法對比研究Table 1 Typical researches of traditional rPPG methods
基于深度學習的非端到端測量方法需要采取多個特征提取的步驟,其中的特征提取可以是多個深層網絡分別訓練的,也可以是使用傳統方法提取特征后再進行訓練,每個步驟結果好壞直接影響最終的算法表現,但提高一個步驟的準確度不一定在總體上提高準確度,相對于端到端系統,它可以直接分析各步驟對算法準確率的影響,在算法提升方向性上更為明確。使用非端到端rPPG心率測量框架有[19]。端到端的好處在于不會有誤差積累,僅用一個模型、一個目標函數可以規避多特征提取的固有缺陷。準備訓練數據集,輸入網絡后,等待模型收斂,端到端的網絡不需要加入其他額外的步驟,從原始數據的輸入到最終需要的計算結果的輸出,整個訓練以及推理過程,都在網絡中進行。使用基于深度學習的端到端rPPG心率測量框架有[21]。
基于深度學習的rPPG心率測量通常需要大量訓練樣本,但目前還沒有為非接觸心率估計任務而建立的大型公共數據集。傳統基于rPPG方法需要對視頻進行預先定義的復雜處理(嚴格的預處理步驟),如感興趣區域檢測、人臉跟蹤、色彩空間轉換、濾波等,到目前為止,在較穩定的環境(MAHNOB-HCI數據集)中使用傳統方法[9]時,MAE(平均絕對誤差)能達到4.96,但涉及頭部運動、面部表情變化(VIPL-HR數據集)時傳統方法效果不佳,MAE最好僅有11.53,如圖2所示,傳統方法比基于深度學習方法普遍誤差要大。理論上,當數據量足夠大,深度學習所訓練出的模型會有更好的魯棒性,即能夠適用于現實場景。但在實際訓練中一些細微的差別(如人臉跟蹤時的丟幀,視頻與ECG信號未能對齊等)可能導致預測結果極大的不同。
傳統rPPG方法需要嚴格的預處理步驟,只保留了預先定義的感興趣區域,而感興趣區域之外的信息丟失,還有一個缺點是,大部分傳統rPPG方法無法進行實時測量,傳統方法和基于深度學習方法都需要在短時間內處理多幀圖像,前者由于預處理、后處理等復雜步驟只能達到“偽實時”測量,即當前時刻測量的是前幾秒時的心率,但由于心率在短時間內變化不大,這種“偽實時”測量也是可接受的。后者使用已經訓練好的模型處理多幀圖片通常能夠達到實時測量的效果。
表2、表3整理了多種深度學習方法在VIPL-HR和MAHNOB-HCI上的平均絕對誤差(MAE)、標準差(Std)、均方根誤差(RMSE)、錯誤率百分比平均值(MER)和皮爾遜相關系數(r)5種測量指標。每分鐘跳動次數(beat per minute, bpm)為MAE、Std、RMSE測量結果。

圖2 傳統方法與深度學習方法在VIPL-HR上的比較Fig.2 Comparison of traditional methods and deep learning methods on VIPL-HR

表2 基于深度學習方法測量結果對比(VIPL-HR數據)Table 2 Comparison of deep learning based rPPG methods(VIPL-HR)

表3 基于深度學習方法測量結果對比 (MAHNOB-HCI數據)Table 3 Comparison of deep learning based rPPG methods(MAHNOB-HCI)
其中AutoHR在所有方法中結果最佳,該模型是端到端網絡,使用三維原始RGB序列作為輸入,輸入尺寸比二維圖片大得多,且使用原始圖像作為輸入不會丟失與心率相關的重要信息。此外,AutoHR使用時間差異網絡結構、混合損失函數、時空數據增強等策略來提高測量結果的魯棒性。RhythmNet[23]在VIPL-HR和Mahnob-HCI上都有較高的準確性(Std分別為8.88和3.97),作為非端到端網絡,該模型首先構建基于物理先驗的序列時空特征圖,弱化與心率信號無關的空間紋理信息(背景),強化與心率信號相關的時序周期信號,然后用CNN學習心率表征,其優勢在于借助先驗信息來優化深度學習的訓練過程。
表4列出了具有代表性的基于深度學習的rPPG心率測量研究。但目前基于深度學習的rPPG心率測量對于工程應用來說還不夠成熟,存在一定的缺陷。
(1)由于深度學習的方法對數據具有一定的依賴,因此數據樣本量不足導致實驗結果遇到瓶頸,具有準確心率標簽的視頻數據量非常有限,無法像人臉識別那樣訓練大量的樣本提高測量精度。
(2)數據樣本不具有普適性,數據集中大多為正常心率,大多樣本的心率為60~80 b/min,這使得以數據驅動的深度學習方法無法提取在非正常狀態的心率特征。
(3)視頻流與心電信號難以對齊,視頻流的頻率與心電信號的采樣率不一致,視頻流的幀率一般為25/30/60幀/s,即采樣率為25/30/60 Hz,心電信號的采樣率為256/512/1 000 Hz,采樣過程中可能會丟失與心率相關的重要信息,需要采用幀率更高的高速攝影機來完成視頻圖像采集來避免與新店信號對應的視頻幀丟失問題。
傳統rPPG心率測量方法主要依賴手工設計的特征提取器,對每個步驟有專業知識理解,對應還有基于經驗的調參過程,同時每個方法都是針對具體數據,泛化能力及魯棒性相對較差。與之相比,基于深度學習的rPPG心率測量方法主要是由數據驅動進行特征提取,從大量樣本中學習,得到深層、高階的特征表示,其對心率的測量更高效和準確,所提取的抽象特征魯棒性更強,泛化能力更好。以數據驅動的深度學習方法是rPPG領域的研究趨勢。
敘述了rPPG領域的多種衍生方法,同時也對該領域做了一個分類:基于光學模型和信號處理的傳統方法和基于深度學習的方法。提供了兩種方法的模塊化框架,研究者們可以使用本文分類和框架作為改進起點或者基于此框架設計適合特定需求的rPPG算法。
rPPG的研究進展顯著,從引用文獻中可以看到,該方法的應用場景已經從單一、穩定的實驗驗證場景逐漸發展為考慮真實環境的各種復雜場景,研究方法的趨勢逐漸從傳統方法轉為深度學習。但就本文的引用的結果來看,在動態VIPL-HR數據集中測量顯示誤差較大,rPPG心率測量方法仍有提升空間。

表4 有代表性的基于深度學習的rPPG心率測量研究Table 4 Representative studies of deep learning based rPPG methods
研究的難點會在于圍繞rPPG心率測量方法所需要的一系列的支撐。
(1) rPPG算法需要進一步適配視頻壓縮的場景。未壓縮的原始視頻圖像作為模型的輸入會提高算法結果的準確度[48-49],但原始視頻圖像數據量較大[50],尤其是在為獲取更多的細節信息,使用高速攝影機采集的視頻圖像數據將進一步加大模型計算的輸入數據量,對計算的硬件性能將提出較高的要求,這將限制該方法的應用場景。另外,很多場景需要進行實時心率測量[51],未壓縮的視頻圖像將很難應用于模型的實時計算。
(2) 基于深度學習的rPPG研究數據量較少,如何在現有規模數據集的情況提高算法精度將成為難點。小樣本機器學習方法將有助于提高現有機器學習方法的精度。與機器學習應用的其他領域相比,數據采樣難度大和限制條件多,rPPG領域的樣本數據量還比較小,引入小樣本機器學習方法將有助于盡快提高測量精度的方向之一。
從現有的研究進展來看,未來rPPG心率測量會研究重點方向會延伸至各潛在的應用領域,rPPG算法除了可以應用于心率測量以外,也可以應用于其他生理指標的測量,如呼吸頻率[52-55]、心率變異[56-57]、血氧[58-59]、血壓[60]、心血管[61]、精神疲勞檢測[62]等,但是對于除心率以外的上述生理指標測量精度有待進一步提高。rPPG算法在常規的生理指標的應用將有利于該方法的研究與應用推廣。