基于獨立分量分析(ICA)的盲源分離技術可從面部視頻序列中分離出血流脈沖信號(BVP),進而可獲取心率、血氧飽和度和呼吸率等生命體征參數。但現有研究結果并未有效展示 ICA 在 BVP 獲取方面的優勢,因此,一些研究者建議直接利用面部視頻圖像序列的綠色通道分量(G 分量)并結合時域濾波進行 BVP 提取(G-BVP)。本文基于 9 位受試者所提供的面部視頻數據,對 ICA-BVP 和 G-BVP 兩種方法的性能和特點進行了比較,研究了面部器官自然運動和光照變化等因素引起的視頻干擾成分對 BVP 提取效果的影響。實驗表明,ICA-BVP 方法在消除運動和光照干擾方面具有較明顯的優勢。在 ICA-BVP 方法的具體實現過程中,提出了基于譜峭度的 BVP 信號自動識別方法,用以解決 ICA 輸出排序不確定的問題。該方法在動態 BVP 信號獲取和心率估計實驗中取得了較理想的測試效果。綜上所述,ICA-BVP 方法在基于面部視頻的血流信號提取及生命體征參數估計的應用中,具有更好的穩定性和準確性。
引用本文: 何璇, 吳小培, 張超, 衛兵, 呂釗. 基于面部視頻的血流信號提取方法的比較及適用性研究. 生物醫學工程學雜志, 2017, 34(2): 278-289. doi: 10.7507/1001-5515.201603032 復制
引言
心臟的(準)周期性搏動會引起血管的(準)周期性收縮與舒張,由此產生了與心跳同步的血容量變化脈沖(blood volume pulse, BVP)信號。光電容積描記(photoplethysmography, PPG)技術可用來探測和記錄反映微血管中血容量變化的 BVP 信號。在此基礎上,通過對 BVP 信號的消噪和增強處理,可進一步獲取心率、心率變異性、血氧飽和度和呼吸率等重要生命體征參數[1]。因此近年來,基于 PPG 技術的 BVP 信號獲取和處理方法成為了臨床醫療和健康監護等領域的一個研究熱點,具有廣泛的應用前景。
在目前已提出的各種 PPG-BVP 信號獲取方法中,基于人臉視頻序列的無接觸式 BVP 獲取技術備受關注。Verkruysse 等[2](2008)、Poh 等[3](2011)、Kwon 等[4](2012)、de Haan 等[5](2013)和 Jiang 等[6](2014)分別提出了基于彩色人臉視頻的 BVP 信號獲取及心率等生命體征參數估計的方法。這類方法的基本思路均涉及對視頻圖像三基色(R/G/B)分量的運用,不同之處主要體現于對三基色視頻數據的使用方式以及后續信號處理技術方面。其中,最基本的方法是直接對 G 分量信號進行時域濾波處理以獲取 BVP 信號,本文稱為 G-BVP 方法。在測試條件相對理想的情況下,G-BVP 方法能夠以較少的運算代價獲取 BVP 信號,因此非常有利于在手機等移動平臺上實現。但是研究表明,如果存在較強的視頻干擾(如運動干擾和光照突變),G-BVP 方法的性能則會明顯下降。針對 PPG 信號的干擾成分消除問題,研究者提出了若干改進思路和新方法。其中包括基于獨立分量分析(independent component analysis, ICA)等盲源分離技術的 BVP 信號獲取方法[3],文中稱之為 ICA-BVP 方法。從原理上看,ICA 方法應該具有較好的 BVP 信噪比改善能力,但一些研究者對 ICA-BVP 方法在實際應用中的真實性能提出質疑。例如,Kwon 等[4]、de Haan 等[5]和 Jiang 等[6]發表的研究結果表明,ICA-BVP 方法相比其他方法并無任何優勢。因此,一些研究者不建議采用 ICA-BVP 方法[4,6]。
本文對基于面部視頻的 BVP 信號獲取方法進行研究,重點是 ICA-BVP 方法的適用性問題。研究過程中,基于不同面部區域的 BVP 提取實驗討論了面部器官不自主運動(如眨眼、面部肌肉動作等)可能對面部視頻數據產生的干擾,并且分析了瞬間光照變化對面部視頻數據造成的影響,從多個方面比較了 ICA-BVP 和 G-BVP 兩種方法的應用效果。針對 ICA 所固有的輸出排序模糊,論文還提出了一種基于譜峭度的 BVP 信號識別方法,用以改善 ICA-BVP 方法的實用性。
1 方法
方法流程如圖 1 所示,其中虛線框標識部分是本文予以重點介紹的內容。

1.1 面部區域分割
從面部視頻信號中提取出 BVP 信號,首先要從包含復雜背景的視頻幀中將人臉區域提取出來,在已報道的論文中,通常采用人臉跟蹤算法進行面部定位,并對全部面部區域進行 BVP 提取。研究中發現,眼睛、嘴巴以及面部肌肉等局部區域的自然運動均會在xR 、xG 和xB 三個時間序列中產生不同程度的脈沖干擾,如圖 2 所示。這些干擾成分對 BVP 提取效果以及心率估計的準確性會造成較大的影響。為了進行兩種方法抗干擾能力的評估,本文選擇四種不同面部區域進行分析,如圖 3 所示(受試者為 S1)。其中,區域 1 是目前常用的分析區域,即整個面部,區域 2 主要包含眼部區域,區域 3 是面頰區域,區域 4 主要包含嘴部,其中自然眨眼和嘴部肌肉運動等往往會產生較明顯的干擾成分。這類源自受試者面部器官不自主運動的干擾成分與光照變化和面部整體運動生成的干擾相互疊加,形成具有很強隨機性和復雜性的干擾分量。


1.2 空間平均和預處理
面部圖像區域的每個像素點均包含源自心臟活動的 BVP 信息,但各像素點也同時含有各種隨機噪聲。由于 BVP 信號相對穩定,而隨機噪聲的生成過程近似獨立,因此利用傳統的相干平均法對選定區域內的像素點進行空間平均[3],能起到很好的抑制隨機噪聲和改善 BVP 信噪比效果。
設視頻圖像為 {I(n,m,t); 1≤n≤N, 1≤m≤M},{IR ,IG ,IB } 為圖像的 R、G、B 三基色分量,空間平均操作如下:
$\begin{array}{l}{x_R}(t) = \frac{1}{{N \times M}}\sum\limits_{n = 1}^N {\sum\limits_m^M {{I_R}(n,m,t)} } \\{x_G}(t) = \frac{1}{{N \times M}}\sum\limits_{n = 1}^N {\sum\limits_m^M {{I_G}(n,m,t)} } \\{x_B}(t) = \frac{1}{{N \times M}}\sum\limits_{n = 1}^N {\sum\limits_m^M {{I_B}(n,m,t)} } \end{array}$ |
上式中,N、M 為選定面部圖像區域的高和寬,n、m 為圖像區域的空間坐標,t 為每幀圖像對應的時間點(對應幀序號)。
預處理包括對 x =[xR ,xG ,xB ]T的高通濾波[5]和標準化[3,7]兩部分。高通濾波用于去除 x 中各分量的低頻趨勢項,本文中高通濾波截止頻率采用 0.6 Hz。信號標準化用于去除信號中的均值和方差歸一化,即對 x 中三個分量分別進行式(2)所示的運算操作。
${x_i} \leftarrow \frac{{{x_i} - E[{x_i}]}}{\sigma }$ |
其中i=R,G,B,E[xi ] 為求均值運算,σ 為 x 中各信號分量的標準差。
1.3 BVP 獲取方法
1.3.1 G-BVP 研究表明,在拍攝環境比較理想的情況下,如果被拍攝對象(受試者)的面部與攝像頭保持相對靜止,則面部視頻圖像的 G 分量(xG )與 BVP 信號的相似度非常高。因此,只需對 G 分量進行簡單的時域濾波處理就可以得到較完整的 BVP 信號。在此基礎上,可較好地完成后續生命體征參數的計算。這是一種目前較為常用的基于面部視頻的 BVP 獲取方法,本文稱之為 G-BVP 方法。
1.3.2 ICA-BVP ICA 是一種基于多路輸入的盲源分離方法[8-10],其基本原理也被相關領域研究者熟知。此處結合本文研究內容進行簡單介紹。為了便于描述,將前面給出的三基色空間平均信號 x =[xR ,xG ,xB ]T 重新定義為 x =[x1,x2,x3]T,其中原信號下標 {R,G,B} 分別對應于新的信號分量下標 {1,2,3}。
根據 ICA 對多維信號生成模型的定義,可將空間平均信號向量表達為:
${x} = \left[ {\begin{array}{*{20}{c}}{{x_1}}\\{{x_2}}\\{{x_3}}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{{a_{11}}}&{{a_{12}}}&{{a_{13}}}\\{{a_{21}}}&{{a_{22}}}&{{a_{23}}}\\{{a_{31}}}&{{a_{32}}}&{{a_{33}}}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{s_1}}\\{{s_2}}\\{{s_3}}\end{array}} \right] = {As}$ |
上式中 A 為混合矩陣,在有限時間內,矩陣元素aij 可看成是常數, s =[s1,s2,s3]T 為三個隱含源組成的源信號量,其中包含了 BVP 分量和干擾分量。因此,式(3)被稱之為 ICA 的線性瞬時混合模型或前向模型,其中,混合矩陣 A 和源 s 均未知。與式(3)對應的則是 ICA 的分離模型或后向模型,如式(4)所示,其中, W = A –1 為分離矩陣, y 是對真實源 s 的估計。
${y} = \left[ {\begin{array}{*{20}{c}}\!{{y_1}}\! \\\!{{y_2}}\! \\\!{{y_3}}\!\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}\!{{w_{11}}}&{{w_{12}}}&{{w_{13}}}\\\!{{w_{21}}}&{{w_{22}}}&{{w_{23}}}\\\!{{w_{31}}}&{{w_{32}}}&{{w_{33}}}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{x_1}}\\{{x_2}}\\{{x_3}}\end{array}} \right] = {Wx}$ |
為了求解未知的混合模型,以便最終分離出真實的源,研究者提出了基于不同判決的優化學習算法。大致可以分為兩類:其一是基于輸出獨立性極大判據的 ICA 算法,如 FastICA[11]、InfomaxICA[12]、JADE[13]等;其二是基于信號非平穩特征的 ICA 算法,如 SOBI[14]。在本文前期的相關測試中,我們發現 SOBI 算法的 BVP 分離效果明顯好于其他幾種常用的 ICA 算法,而且運算量也相對較低。因此本文后續的 ICA-BVP 實驗結果均是采用 SOBI 算法獲得的。
根據 ICA 線性混合模型,其輸出 y =[y1,y2,y3]T 中的各分量具有不確定性排序,即所謂的排序模糊。實驗表明,在 ICA 的輸出信號中,BVP 出現的位置并不一致。ICA 排序模糊在短時數據的離線分析中一般不會帶來大的麻煩,因為可以采用人工方式確定目標信號。但在進行動態數據的在線分析時,通常采用滑動窗或者分段處理方式自動實現目標信號的定位和提取,此種情況下人工選擇的方式不可行,因此需要建立一種目標信號自動定位方法。在 ICA 應用領域,雖然相關的研究工作早有開展,但不存在普遍適用的目標信號定位方法,通常需要針對不同類型信號的特點,進行專門的目標分量識別和定位方法設計。
在已報道的結合 ICA 和面部視頻提取 BVP 的論文中,沒有太多提及 ICA 排序模糊這一問題,原因可能是所用視頻的時間較短。而在針對長時間視頻數據進行分析時,一般需要進行分段批處理,因此 ICA 排序模糊就給 BVP 的自動獲取帶來了困難。有鑒于此,本文提出了一種基于譜峭度的 BVP 分量自動識別的新方法,并成功應用于后續基于長視頻數據的動態 BVP 提取和心率估計中。
峭度(歸一化四階累積量)是對隨機變量z 高階統計特性的一種度量,具體計算公式如下(假設z 為零均值):
$kurt\left( z \right) = \frac{{E\left( {{z^4}} \right)}}{{{{\left[ {E\left( {{z^2}} \right)} \right]}^2}}} - 3$ |
峭度常用于隨機變量的非高斯度量,并對數據中的奇異值非常敏感。在信號檢測和處理領域,信號x(t)時域或者頻域樣本被看成是一隨機變量取值的集合,峭度可用于描述該信號在時域或者頻域的脈沖特性。譜峭度是對時間信號的頻譜數據進行峭度計算,可用于度量信號的頻域脈沖特性。根據峭度的數值特性,特定頻率的譜峰越明顯,譜峭度值通常越大[15]。在三路原始 RGB 信號的 ICA 分離結果中,由于 BVP 分量具有較明顯的準周期性,其頻譜在心跳頻率范圍內會出現非常顯著的譜峰,對應的譜峭度值自然很大,而其他兩路噪聲分量通常不具有明顯的譜峰,因此譜峭度值相對較低。圖 4 給出了基于滑動窗視頻數據的 ICA 分析和譜峭度度量的 BVP 自動獲取算法框圖。

2 實驗結果與分析
2.1 實驗范式設計和視頻數據采集
為了滿足后續實驗和算法驗證的需求,采用了三種實驗范式,其一是在保持攝像頭和受試者面部相對靜止的條件下采集視頻數據,無需刻意控制眨眼,拍攝時間 1 min 左右,記為范式 1;其二是受試者在視頻拍攝過程中,可進行一些正常的電腦操作,如瀏覽網頁、打字、說話以及面部的小范圍轉動等。視頻拍攝時長沒有特殊的限定,一般大于 3 min,其中最長的錄制時間為 12 min,記為范式 2;其三是在范式 2 的基礎上,要求受試者前 40 s 盡可能保持面部靜止,在后續面部視頻錄制過程中,受試者可以繼續保持相對靜止,也可以瀏覽網頁、打字和說話等,但要求不能有較長時間的大幅度頭部運動(如大角度轉頭或者低頭等),記為范式 3。在視頻錄制過程中,攝像頭距離受試者面部 0.5 m 左右。視頻均在室內拍攝,光線條件為“自然光+燈光”(白天)和“燈光”(夜晚)。拍攝設備為蘋果或三星手機的前置攝像頭,幀采樣頻率為 30 fps,分辨率為 1 280×720。實驗軟件平臺為 64 位 windows 7 系統下的 MATLAB R2012a。有 9 位受試者自愿參與了面部視頻數據采集實驗,年齡 20~50歲。為了表述方便,9 位受試者在文中分別用 S1–S9 命名。
2.2 ICA-BVP 和 G-BVP 方法的比較
為了驗證和比較 ICA-BVP 和 G-BVP 兩種方法的性能,研究眼動和光照變化等視頻干擾對 BVP 信號獲取以及心率估計的影響,本節將對若干有一定代表性的實測人臉視頻數據進行分析,進一步說明 ICA 方法在面部 PPG 信號處理中的特點和優勢。
圖 5 給出了針對受試者 S2 的 G-BVP 實驗結果。視頻拍攝基于范式 1,錄制時長為 20 s 左右。為了說明 G-BVP 方法的應用效果和存在的不足,實驗根據圖 3 所劃分的不同面部區域(如圖 5a~d),分別進行 BVP 波形提取和心率估算(所用的視頻段均保持一致)。具體步驟是,首先根據式(1)和(2)計算不同面部區域的 R/G/B 空間平均分量xR 、xG 、xB (圖 5e~h),然后對 G 分量xG 直接進行 0.6~10 Hz 帶通濾波處理,最后對獲得的 BVP 信號(濾波后的 G 分量)進行譜估計和心率估算。從圖 5i 可以看到,基于區域 3(面頰)的 BVP 波形(上圖)提取效果良好,頻譜中(下圖)與心率對應的譜峰非常明顯和干凈。但是,從區域 2(眼睛,圖 5b)和區域 4(嘴部,圖 5c)的實驗結果來看,眼和嘴的無意識運動會在 x =[xR ,xG ,xB ]T 中產生較明顯的運動干擾成分,如圖 5f、g 所示。圖 5j、k 分別給出了基于眼部、嘴部區域獲取的 BVP 時域波形和頻譜,雖然從頻譜中能分辨出與心率對應的譜峰,但 BVP 波形的完整性遭到了破壞,這對其他生命體征參數的估算(如心率變異性等)會產生不同程度的影響。

在目前已報道的研究中,通常采用全臉圖像作為分析區域(如圖 3 的區域 1),但是面部器官的不自覺運動(特別是眼動)所產生的干擾對 BVP 波形的影響依然較大,實驗結果如圖 5d、h、l 所示。不難想象,在復雜應用場景中,類似的運動干擾肯定會更加嚴重,雖然通過人臉跟蹤和區域選擇的方法可以在一定程度上緩解類似運動干擾的影響,但無疑會大大增加算法的時/空復雜度,這顯然不利于算法在手機等移動式計算平臺上的實現。
為了驗證 ICA 算法的實用效果,我們用 SOBI 算法對圖 5 所示的相同視頻數據進行處理,所得結果如圖 6 所示。通過比較 G-BVP 和 ICA-BVP 的實驗結果,可以清楚地看到,SOBI 算法在消除運動干擾方面起到了非常明顯的效果,針對不同面部區域分析所得的 BVP 信號波形均比較完整,對應心率的譜峰也更加明顯和干凈,這對后續生理參數的獲取非常有利。同時,由于 ICA 算法有較好的抗運動干擾能力,因此可以適當放松在面部跟蹤算法以及分析區域選擇方面的要求,例如,可以用眼部周邊較小的區域替代全臉區域進行 BVP 分析和提取,進而可降低算法的復雜度(注:在人臉跟蹤算法流程中,人眼定位是比較常用且相對容易實現的前期步驟)。另外,從面部視頻中分離出來的眨眼信息在一些特殊場合中也具有一定的應用價值(如疲勞監測等)。

2.3 BVP 信號的動態獲取和心率估計
在下面的實驗中,我們用一個基于范式 3 的時長為 12 min 的面部視頻驗證圖 4 所示算法的性能。需要說明的是,根據經驗,當受試者面部相對攝像頭保持良好的靜止狀態時,不同方法均可獲取相對完整的 BVP 波形和較準確的心率估計,因此前 40 s 靜止狀態下所得心率可作為后續長視頻分析實驗的參照標準。我們認為這一方案可省去采用標準醫用心率設備,在操作上更加方便。
圖 7a 是視頻中的某圖像幀,其中區域 3(紅色矩形框)作為參考心率的分析區域。為了盡可能保證參考心率估計的準確性,區域 3 中沒有包含眼睛區域。圖 7b、c 是對長視頻的前 40 s 數據分別采用 ICA-BVP 和 G-BVP 兩種方法所提取的 BVP 波形以及時頻分析結果。可以看到,在受試者處于靜止狀態下,兩種方法的心率估計結果完全一致,均為 80.3 次/分。

對后續視頻數據采用滑動窗方式進行分段處理,每段包含 300 幀圖像,相鄰視頻段之間沒有重疊。為了比較兩種方法針對不同面部區域的分析效果,分別選擇圖 7a中的區域 1(黃色矩形框,尺寸為 276×280)和區域 2(黑色矩形框,尺寸為 80×260)用于動態心率估計和統計分析。實驗結果如圖 8a、b、d、e 所示,其中,圖 8a、b 中的上圖分別是基于區域 1 和區域 2 所得到的動態心率,下圖給出了分段 ICA 輸出中 BVP 分量的位置變化,用以說明 ICA 輸出排序的模糊現象。結合 ICA-BVP 方法給出的動態心率估計結果,可以驗證譜峭度方法應用于 BVP 信號自動定位的實際效果。圖 8d、e 是用 box-plot(箱線圖)工具對兩種方法所得動態心率的統計分析。可以發現,ICA-BVP 相比 G-BVP,在針對區域 1 和 2 的動態心率估計中,均表現出了更好的穩定性和準確性。這一點很容易從動態心率波形和箱線圖給出的統計信息中看到,即 ICA-BVP 方法獲得的動態心率波動(野值數量)要明顯小于 G-BVP 方法。比較圖 8a、b 和圖 8d、e 還可以觀察到,采用面積較大的分析區域(區域 1),有利于緩解運動干擾的影響,當然算法的時/空復雜度會有所增加。另外,從圖 8b、e 所示的眼部區域(區域 2)的分析結果來看,運動干擾對 ICA-BVP 方法也會產生一定的影響。不過實驗表明,只要適當增加區域 2 的面積(如區域 4,尺寸為 150×290),ICA-BVP 方法的分析效果相比 G-BVP 方法往往能得到更明顯的改善(見圖 8c、f)。

基于圖 4 所示的算法,對 6 位受試者(S3–S8)的面部視頻進行分析。實驗視頻基于范式 3,錄制時間不低于 3 min。對 ICA-BVP 和 G-BVP 兩種方法的性能進行比較時,以動態心率的波動值(偏差)為參考指標。具體步驟為,先基于每段視頻前 40 s 左右的靜止視頻數據估算出參考心率R_HR,然后分段獲取基于后續視頻數據的動態心率估計值D_HR(n),n=1, ,N,并計算D_HR(n)圍繞參考心率R_HR 的偏差值,即
$STD = \sqrt {\frac{1}{N}\sum\limits_{n = 1}^N {{{\left[ {D\_HR\left( n \right) - R\_HR} \right]}^2}} } $ |
表 1 給出了基于 6 位受試者面部視頻圖 7a 分析區域 1 的實驗結果,可以看到 ICA-BVP 方法獲取的動態心率的波動要小于 G-BVP 方法。

2.4 典型視頻干擾及其對 BVP 提取的影響
在上述實驗中,圍繞眼部區域的運動干擾問題有較多討論。其原因涉及兩個方面:其一,在基于面部視頻的實用心率檢測系統實現過程中,一般會用到人臉檢測算法。而眼睛定位通常是人臉檢測過程的首要步驟。從本文前面的實驗結果來看,ICA-BVP 方法對眼部自然運動產生的干擾有較強的適應能力。因此在完成眼睛定位后,通過適當的面部矩形區域擴展,即可準確、快速地提取出用于獲取 BVP 的面部分析區域。這樣既可以簡化面部區域的選擇過程,也可以提高運算效率。其二,我們在實驗中發現,一些受試者在視頻錄制過程中,雖然能夠保持面部與攝像頭相對靜止,但很難有效控制面部器官的運動,如眨眼、臉部肌肉不自主抽動和笑等。因此,采用全部面部區域未必能獲得更好的效果。
圖 9a 為一受試者(S9)面部視頻幀截圖,完整視頻的錄制時長是 2 min,實驗中選擇其中的 30 s 視頻數據進行分析。受試者 S9 在視頻錄制過程中自然眨眼頻率較高(非實驗安排),因此由全部面部區域獲取的三通道原始 RGB 信號中包含了較密集的眼動干擾脈沖,如圖 9b 所示。圖 9c 是對原始信號帶通濾波后的三路 R(上)、G(中)、B(下)信號,用作 ICA-BVP 算法的輸入。圖 9d 是 ICA 的分離結果,其中上圖為眼動偽跡,下圖為 BVP 分量。可以看到,ICA-BVP 能較好地分離出眼動分量和 BVP 分量。圖 9e、f 分別是對兩種方法獲取的 BVP 信號進一步低通濾波處理后的時域波形及其頻譜,雖然從兩種方法的頻譜中可得到完全一致的心率估計值,但是 ICA-BVP 方法所獲得的 BVP 波形明顯好于 G-BVP 方法,因此更有利于心率變異性等生命體征參數的計算。

除了自然眨眼等面部器官運動所產生的干擾外,環境光突變對實驗效果的影響往往更加嚴重。我們用 S9 面部視頻文件中的另一段數據來說明光線變化的影響。在該段視頻錄制到 22 s 左右時,有人從受試者身邊經過引起了光照的瞬間變化,由此在 RGB 信號中產生較大幅度的干擾脈沖,如圖 10a 所示。利用與前面完全相同的實驗步驟,對該段視頻進行分析,結果如圖 10b~d 所示。其中圖 10b 分別是 ICA-BVP 和 G-BVP 兩種方法獲取的 BVP 波形,圖 10c、d 是對應的頻譜和時頻分析結果。可以看到,此種情況下,ICA-BVP 依然能正常地工作,但 G-BVP 方法已基本失效。然而在真實環境下,類似的光線變化對視頻圖像的干擾很難避免。從上述實驗結果中可以看到,采用 ICA 方法可以在較大程度上緩解瞬間光線突變所產生的影響,這對于改善系統的實用性非常有幫助。

2.5 討論
值得一提的是,采用心率作為評估指標只能部分說明不同視頻 BVP 獲取方法的性能差異。因為,即便 BVP 信號中存在一定的干擾成分,對心率估計的準確性往往也不會有大的影響。這一點可以從圖 5 和圖 6 所示的實驗結果中看到。通過對 BVP 信號波形的比較,ICA-BVP 方法所得 BVP 信號的波形質量明顯要好于 G-BVP 方法,但是兩種方法的心率估計結果(BVP 譜峰位置)卻基本一致。因此,以心率作為評估指標顯然存在一定的不足。不過在基于面部視頻的長程動態心率監測過程中,受試者不自主運動以及測試環境的隨機變化等均可能產生難以預料的干擾成分,此種情況下,ICA-BVP 方法往往能發揮其干擾消除方面的優勢,給出更穩定和準確的心率估計結果。不難理解,能夠真實反映 BVP 獲取方法性能的是 BVP 波形的完整性。不過 BVP 波形質量的量化評估指標很難確定,雖然借助專業醫療儀器可同步檢測到動態血流信號數據,但現有醫療設備的抗干擾能力(特別是抗運動干擾能力)也比較有限,通常只能在相對理想的環境下提供較準確的實驗數據和結果,面對復雜的非臨床環境或干擾測試實驗,專業醫療儀器的穩定性和精確性也難以保證。因此,在不同方法的性能比較實驗中,如何建立合理的量化評估指標是一個值得進一步研究的問題。
3 結論
本文對基于人臉視頻的 BVP 信號獲取方法進行了研究,基于實測視頻數據,分析和比較了 ICA-BVP 和 G-BVP 兩種方法的實際性能。實驗結果表明,ICA 方法在消除面部器官運動和光照變化所產生的視頻干擾方面,具有較大的優勢。針對 ICA 輸出排序模糊問題,本文提出了基于譜峭度的 BVP 自動定位方法,取得了較好的應用效果。此外,本文在面部分析區域選擇方面也進行了討論,所得結論具有一定的參考價值。特別從眼部區域的分析結果中可以看到,ICA-BVP 方法不僅能從面部視頻提取出 BVP 信號,而且能較完整地分離出眨眼波形。我們認為,在一些特殊的應用場合,眼動信息的無接觸獲取同樣具有潛在的應用價值。不過 ICA 方法的運算復雜度相對較高,因此在手機等移動平臺上實現時,相比 G-BVP 方法更加占用資源,這是它的不足之處,也是今后需要進一步改進的地方。
需要說明的是,由于真實的視頻拍攝環境非常復雜,干擾生成因素非常多,很難通過仿真實驗的方式對不同情況進行模擬,因此只有通過大量實測視頻數據的實驗分析才可能得到相對可靠的結論。
引言
心臟的(準)周期性搏動會引起血管的(準)周期性收縮與舒張,由此產生了與心跳同步的血容量變化脈沖(blood volume pulse, BVP)信號。光電容積描記(photoplethysmography, PPG)技術可用來探測和記錄反映微血管中血容量變化的 BVP 信號。在此基礎上,通過對 BVP 信號的消噪和增強處理,可進一步獲取心率、心率變異性、血氧飽和度和呼吸率等重要生命體征參數[1]。因此近年來,基于 PPG 技術的 BVP 信號獲取和處理方法成為了臨床醫療和健康監護等領域的一個研究熱點,具有廣泛的應用前景。
在目前已提出的各種 PPG-BVP 信號獲取方法中,基于人臉視頻序列的無接觸式 BVP 獲取技術備受關注。Verkruysse 等[2](2008)、Poh 等[3](2011)、Kwon 等[4](2012)、de Haan 等[5](2013)和 Jiang 等[6](2014)分別提出了基于彩色人臉視頻的 BVP 信號獲取及心率等生命體征參數估計的方法。這類方法的基本思路均涉及對視頻圖像三基色(R/G/B)分量的運用,不同之處主要體現于對三基色視頻數據的使用方式以及后續信號處理技術方面。其中,最基本的方法是直接對 G 分量信號進行時域濾波處理以獲取 BVP 信號,本文稱為 G-BVP 方法。在測試條件相對理想的情況下,G-BVP 方法能夠以較少的運算代價獲取 BVP 信號,因此非常有利于在手機等移動平臺上實現。但是研究表明,如果存在較強的視頻干擾(如運動干擾和光照突變),G-BVP 方法的性能則會明顯下降。針對 PPG 信號的干擾成分消除問題,研究者提出了若干改進思路和新方法。其中包括基于獨立分量分析(independent component analysis, ICA)等盲源分離技術的 BVP 信號獲取方法[3],文中稱之為 ICA-BVP 方法。從原理上看,ICA 方法應該具有較好的 BVP 信噪比改善能力,但一些研究者對 ICA-BVP 方法在實際應用中的真實性能提出質疑。例如,Kwon 等[4]、de Haan 等[5]和 Jiang 等[6]發表的研究結果表明,ICA-BVP 方法相比其他方法并無任何優勢。因此,一些研究者不建議采用 ICA-BVP 方法[4,6]。
本文對基于面部視頻的 BVP 信號獲取方法進行研究,重點是 ICA-BVP 方法的適用性問題。研究過程中,基于不同面部區域的 BVP 提取實驗討論了面部器官不自主運動(如眨眼、面部肌肉動作等)可能對面部視頻數據產生的干擾,并且分析了瞬間光照變化對面部視頻數據造成的影響,從多個方面比較了 ICA-BVP 和 G-BVP 兩種方法的應用效果。針對 ICA 所固有的輸出排序模糊,論文還提出了一種基于譜峭度的 BVP 信號識別方法,用以改善 ICA-BVP 方法的實用性。
1 方法
方法流程如圖 1 所示,其中虛線框標識部分是本文予以重點介紹的內容。

1.1 面部區域分割
從面部視頻信號中提取出 BVP 信號,首先要從包含復雜背景的視頻幀中將人臉區域提取出來,在已報道的論文中,通常采用人臉跟蹤算法進行面部定位,并對全部面部區域進行 BVP 提取。研究中發現,眼睛、嘴巴以及面部肌肉等局部區域的自然運動均會在xR 、xG 和xB 三個時間序列中產生不同程度的脈沖干擾,如圖 2 所示。這些干擾成分對 BVP 提取效果以及心率估計的準確性會造成較大的影響。為了進行兩種方法抗干擾能力的評估,本文選擇四種不同面部區域進行分析,如圖 3 所示(受試者為 S1)。其中,區域 1 是目前常用的分析區域,即整個面部,區域 2 主要包含眼部區域,區域 3 是面頰區域,區域 4 主要包含嘴部,其中自然眨眼和嘴部肌肉運動等往往會產生較明顯的干擾成分。這類源自受試者面部器官不自主運動的干擾成分與光照變化和面部整體運動生成的干擾相互疊加,形成具有很強隨機性和復雜性的干擾分量。


1.2 空間平均和預處理
面部圖像區域的每個像素點均包含源自心臟活動的 BVP 信息,但各像素點也同時含有各種隨機噪聲。由于 BVP 信號相對穩定,而隨機噪聲的生成過程近似獨立,因此利用傳統的相干平均法對選定區域內的像素點進行空間平均[3],能起到很好的抑制隨機噪聲和改善 BVP 信噪比效果。
設視頻圖像為 {I(n,m,t); 1≤n≤N, 1≤m≤M},{IR ,IG ,IB } 為圖像的 R、G、B 三基色分量,空間平均操作如下:
$\begin{array}{l}{x_R}(t) = \frac{1}{{N \times M}}\sum\limits_{n = 1}^N {\sum\limits_m^M {{I_R}(n,m,t)} } \\{x_G}(t) = \frac{1}{{N \times M}}\sum\limits_{n = 1}^N {\sum\limits_m^M {{I_G}(n,m,t)} } \\{x_B}(t) = \frac{1}{{N \times M}}\sum\limits_{n = 1}^N {\sum\limits_m^M {{I_B}(n,m,t)} } \end{array}$ |
上式中,N、M 為選定面部圖像區域的高和寬,n、m 為圖像區域的空間坐標,t 為每幀圖像對應的時間點(對應幀序號)。
預處理包括對 x =[xR ,xG ,xB ]T的高通濾波[5]和標準化[3,7]兩部分。高通濾波用于去除 x 中各分量的低頻趨勢項,本文中高通濾波截止頻率采用 0.6 Hz。信號標準化用于去除信號中的均值和方差歸一化,即對 x 中三個分量分別進行式(2)所示的運算操作。
${x_i} \leftarrow \frac{{{x_i} - E[{x_i}]}}{\sigma }$ |
其中i=R,G,B,E[xi ] 為求均值運算,σ 為 x 中各信號分量的標準差。
1.3 BVP 獲取方法
1.3.1 G-BVP 研究表明,在拍攝環境比較理想的情況下,如果被拍攝對象(受試者)的面部與攝像頭保持相對靜止,則面部視頻圖像的 G 分量(xG )與 BVP 信號的相似度非常高。因此,只需對 G 分量進行簡單的時域濾波處理就可以得到較完整的 BVP 信號。在此基礎上,可較好地完成后續生命體征參數的計算。這是一種目前較為常用的基于面部視頻的 BVP 獲取方法,本文稱之為 G-BVP 方法。
1.3.2 ICA-BVP ICA 是一種基于多路輸入的盲源分離方法[8-10],其基本原理也被相關領域研究者熟知。此處結合本文研究內容進行簡單介紹。為了便于描述,將前面給出的三基色空間平均信號 x =[xR ,xG ,xB ]T 重新定義為 x =[x1,x2,x3]T,其中原信號下標 {R,G,B} 分別對應于新的信號分量下標 {1,2,3}。
根據 ICA 對多維信號生成模型的定義,可將空間平均信號向量表達為:
${x} = \left[ {\begin{array}{*{20}{c}}{{x_1}}\\{{x_2}}\\{{x_3}}\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}{{a_{11}}}&{{a_{12}}}&{{a_{13}}}\\{{a_{21}}}&{{a_{22}}}&{{a_{23}}}\\{{a_{31}}}&{{a_{32}}}&{{a_{33}}}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{s_1}}\\{{s_2}}\\{{s_3}}\end{array}} \right] = {As}$ |
上式中 A 為混合矩陣,在有限時間內,矩陣元素aij 可看成是常數, s =[s1,s2,s3]T 為三個隱含源組成的源信號量,其中包含了 BVP 分量和干擾分量。因此,式(3)被稱之為 ICA 的線性瞬時混合模型或前向模型,其中,混合矩陣 A 和源 s 均未知。與式(3)對應的則是 ICA 的分離模型或后向模型,如式(4)所示,其中, W = A –1 為分離矩陣, y 是對真實源 s 的估計。
${y} = \left[ {\begin{array}{*{20}{c}}\!{{y_1}}\! \\\!{{y_2}}\! \\\!{{y_3}}\!\end{array}} \right] = \left[ {\begin{array}{*{20}{c}}\!{{w_{11}}}&{{w_{12}}}&{{w_{13}}}\\\!{{w_{21}}}&{{w_{22}}}&{{w_{23}}}\\\!{{w_{31}}}&{{w_{32}}}&{{w_{33}}}\end{array}} \right]\left[ {\begin{array}{*{20}{c}}{{x_1}}\\{{x_2}}\\{{x_3}}\end{array}} \right] = {Wx}$ |
為了求解未知的混合模型,以便最終分離出真實的源,研究者提出了基于不同判決的優化學習算法。大致可以分為兩類:其一是基于輸出獨立性極大判據的 ICA 算法,如 FastICA[11]、InfomaxICA[12]、JADE[13]等;其二是基于信號非平穩特征的 ICA 算法,如 SOBI[14]。在本文前期的相關測試中,我們發現 SOBI 算法的 BVP 分離效果明顯好于其他幾種常用的 ICA 算法,而且運算量也相對較低。因此本文后續的 ICA-BVP 實驗結果均是采用 SOBI 算法獲得的。
根據 ICA 線性混合模型,其輸出 y =[y1,y2,y3]T 中的各分量具有不確定性排序,即所謂的排序模糊。實驗表明,在 ICA 的輸出信號中,BVP 出現的位置并不一致。ICA 排序模糊在短時數據的離線分析中一般不會帶來大的麻煩,因為可以采用人工方式確定目標信號。但在進行動態數據的在線分析時,通常采用滑動窗或者分段處理方式自動實現目標信號的定位和提取,此種情況下人工選擇的方式不可行,因此需要建立一種目標信號自動定位方法。在 ICA 應用領域,雖然相關的研究工作早有開展,但不存在普遍適用的目標信號定位方法,通常需要針對不同類型信號的特點,進行專門的目標分量識別和定位方法設計。
在已報道的結合 ICA 和面部視頻提取 BVP 的論文中,沒有太多提及 ICA 排序模糊這一問題,原因可能是所用視頻的時間較短。而在針對長時間視頻數據進行分析時,一般需要進行分段批處理,因此 ICA 排序模糊就給 BVP 的自動獲取帶來了困難。有鑒于此,本文提出了一種基于譜峭度的 BVP 分量自動識別的新方法,并成功應用于后續基于長視頻數據的動態 BVP 提取和心率估計中。
峭度(歸一化四階累積量)是對隨機變量z 高階統計特性的一種度量,具體計算公式如下(假設z 為零均值):
$kurt\left( z \right) = \frac{{E\left( {{z^4}} \right)}}{{{{\left[ {E\left( {{z^2}} \right)} \right]}^2}}} - 3$ |
峭度常用于隨機變量的非高斯度量,并對數據中的奇異值非常敏感。在信號檢測和處理領域,信號x(t)時域或者頻域樣本被看成是一隨機變量取值的集合,峭度可用于描述該信號在時域或者頻域的脈沖特性。譜峭度是對時間信號的頻譜數據進行峭度計算,可用于度量信號的頻域脈沖特性。根據峭度的數值特性,特定頻率的譜峰越明顯,譜峭度值通常越大[15]。在三路原始 RGB 信號的 ICA 分離結果中,由于 BVP 分量具有較明顯的準周期性,其頻譜在心跳頻率范圍內會出現非常顯著的譜峰,對應的譜峭度值自然很大,而其他兩路噪聲分量通常不具有明顯的譜峰,因此譜峭度值相對較低。圖 4 給出了基于滑動窗視頻數據的 ICA 分析和譜峭度度量的 BVP 自動獲取算法框圖。

2 實驗結果與分析
2.1 實驗范式設計和視頻數據采集
為了滿足后續實驗和算法驗證的需求,采用了三種實驗范式,其一是在保持攝像頭和受試者面部相對靜止的條件下采集視頻數據,無需刻意控制眨眼,拍攝時間 1 min 左右,記為范式 1;其二是受試者在視頻拍攝過程中,可進行一些正常的電腦操作,如瀏覽網頁、打字、說話以及面部的小范圍轉動等。視頻拍攝時長沒有特殊的限定,一般大于 3 min,其中最長的錄制時間為 12 min,記為范式 2;其三是在范式 2 的基礎上,要求受試者前 40 s 盡可能保持面部靜止,在后續面部視頻錄制過程中,受試者可以繼續保持相對靜止,也可以瀏覽網頁、打字和說話等,但要求不能有較長時間的大幅度頭部運動(如大角度轉頭或者低頭等),記為范式 3。在視頻錄制過程中,攝像頭距離受試者面部 0.5 m 左右。視頻均在室內拍攝,光線條件為“自然光+燈光”(白天)和“燈光”(夜晚)。拍攝設備為蘋果或三星手機的前置攝像頭,幀采樣頻率為 30 fps,分辨率為 1 280×720。實驗軟件平臺為 64 位 windows 7 系統下的 MATLAB R2012a。有 9 位受試者自愿參與了面部視頻數據采集實驗,年齡 20~50歲。為了表述方便,9 位受試者在文中分別用 S1–S9 命名。
2.2 ICA-BVP 和 G-BVP 方法的比較
為了驗證和比較 ICA-BVP 和 G-BVP 兩種方法的性能,研究眼動和光照變化等視頻干擾對 BVP 信號獲取以及心率估計的影響,本節將對若干有一定代表性的實測人臉視頻數據進行分析,進一步說明 ICA 方法在面部 PPG 信號處理中的特點和優勢。
圖 5 給出了針對受試者 S2 的 G-BVP 實驗結果。視頻拍攝基于范式 1,錄制時長為 20 s 左右。為了說明 G-BVP 方法的應用效果和存在的不足,實驗根據圖 3 所劃分的不同面部區域(如圖 5a~d),分別進行 BVP 波形提取和心率估算(所用的視頻段均保持一致)。具體步驟是,首先根據式(1)和(2)計算不同面部區域的 R/G/B 空間平均分量xR 、xG 、xB (圖 5e~h),然后對 G 分量xG 直接進行 0.6~10 Hz 帶通濾波處理,最后對獲得的 BVP 信號(濾波后的 G 分量)進行譜估計和心率估算。從圖 5i 可以看到,基于區域 3(面頰)的 BVP 波形(上圖)提取效果良好,頻譜中(下圖)與心率對應的譜峰非常明顯和干凈。但是,從區域 2(眼睛,圖 5b)和區域 4(嘴部,圖 5c)的實驗結果來看,眼和嘴的無意識運動會在 x =[xR ,xG ,xB ]T 中產生較明顯的運動干擾成分,如圖 5f、g 所示。圖 5j、k 分別給出了基于眼部、嘴部區域獲取的 BVP 時域波形和頻譜,雖然從頻譜中能分辨出與心率對應的譜峰,但 BVP 波形的完整性遭到了破壞,這對其他生命體征參數的估算(如心率變異性等)會產生不同程度的影響。

在目前已報道的研究中,通常采用全臉圖像作為分析區域(如圖 3 的區域 1),但是面部器官的不自覺運動(特別是眼動)所產生的干擾對 BVP 波形的影響依然較大,實驗結果如圖 5d、h、l 所示。不難想象,在復雜應用場景中,類似的運動干擾肯定會更加嚴重,雖然通過人臉跟蹤和區域選擇的方法可以在一定程度上緩解類似運動干擾的影響,但無疑會大大增加算法的時/空復雜度,這顯然不利于算法在手機等移動式計算平臺上的實現。
為了驗證 ICA 算法的實用效果,我們用 SOBI 算法對圖 5 所示的相同視頻數據進行處理,所得結果如圖 6 所示。通過比較 G-BVP 和 ICA-BVP 的實驗結果,可以清楚地看到,SOBI 算法在消除運動干擾方面起到了非常明顯的效果,針對不同面部區域分析所得的 BVP 信號波形均比較完整,對應心率的譜峰也更加明顯和干凈,這對后續生理參數的獲取非常有利。同時,由于 ICA 算法有較好的抗運動干擾能力,因此可以適當放松在面部跟蹤算法以及分析區域選擇方面的要求,例如,可以用眼部周邊較小的區域替代全臉區域進行 BVP 分析和提取,進而可降低算法的復雜度(注:在人臉跟蹤算法流程中,人眼定位是比較常用且相對容易實現的前期步驟)。另外,從面部視頻中分離出來的眨眼信息在一些特殊場合中也具有一定的應用價值(如疲勞監測等)。

2.3 BVP 信號的動態獲取和心率估計
在下面的實驗中,我們用一個基于范式 3 的時長為 12 min 的面部視頻驗證圖 4 所示算法的性能。需要說明的是,根據經驗,當受試者面部相對攝像頭保持良好的靜止狀態時,不同方法均可獲取相對完整的 BVP 波形和較準確的心率估計,因此前 40 s 靜止狀態下所得心率可作為后續長視頻分析實驗的參照標準。我們認為這一方案可省去采用標準醫用心率設備,在操作上更加方便。
圖 7a 是視頻中的某圖像幀,其中區域 3(紅色矩形框)作為參考心率的分析區域。為了盡可能保證參考心率估計的準確性,區域 3 中沒有包含眼睛區域。圖 7b、c 是對長視頻的前 40 s 數據分別采用 ICA-BVP 和 G-BVP 兩種方法所提取的 BVP 波形以及時頻分析結果。可以看到,在受試者處于靜止狀態下,兩種方法的心率估計結果完全一致,均為 80.3 次/分。

對后續視頻數據采用滑動窗方式進行分段處理,每段包含 300 幀圖像,相鄰視頻段之間沒有重疊。為了比較兩種方法針對不同面部區域的分析效果,分別選擇圖 7a中的區域 1(黃色矩形框,尺寸為 276×280)和區域 2(黑色矩形框,尺寸為 80×260)用于動態心率估計和統計分析。實驗結果如圖 8a、b、d、e 所示,其中,圖 8a、b 中的上圖分別是基于區域 1 和區域 2 所得到的動態心率,下圖給出了分段 ICA 輸出中 BVP 分量的位置變化,用以說明 ICA 輸出排序的模糊現象。結合 ICA-BVP 方法給出的動態心率估計結果,可以驗證譜峭度方法應用于 BVP 信號自動定位的實際效果。圖 8d、e 是用 box-plot(箱線圖)工具對兩種方法所得動態心率的統計分析。可以發現,ICA-BVP 相比 G-BVP,在針對區域 1 和 2 的動態心率估計中,均表現出了更好的穩定性和準確性。這一點很容易從動態心率波形和箱線圖給出的統計信息中看到,即 ICA-BVP 方法獲得的動態心率波動(野值數量)要明顯小于 G-BVP 方法。比較圖 8a、b 和圖 8d、e 還可以觀察到,采用面積較大的分析區域(區域 1),有利于緩解運動干擾的影響,當然算法的時/空復雜度會有所增加。另外,從圖 8b、e 所示的眼部區域(區域 2)的分析結果來看,運動干擾對 ICA-BVP 方法也會產生一定的影響。不過實驗表明,只要適當增加區域 2 的面積(如區域 4,尺寸為 150×290),ICA-BVP 方法的分析效果相比 G-BVP 方法往往能得到更明顯的改善(見圖 8c、f)。

基于圖 4 所示的算法,對 6 位受試者(S3–S8)的面部視頻進行分析。實驗視頻基于范式 3,錄制時間不低于 3 min。對 ICA-BVP 和 G-BVP 兩種方法的性能進行比較時,以動態心率的波動值(偏差)為參考指標。具體步驟為,先基于每段視頻前 40 s 左右的靜止視頻數據估算出參考心率R_HR,然后分段獲取基于后續視頻數據的動態心率估計值D_HR(n),n=1, ,N,并計算D_HR(n)圍繞參考心率R_HR 的偏差值,即
$STD = \sqrt {\frac{1}{N}\sum\limits_{n = 1}^N {{{\left[ {D\_HR\left( n \right) - R\_HR} \right]}^2}} } $ |
表 1 給出了基于 6 位受試者面部視頻圖 7a 分析區域 1 的實驗結果,可以看到 ICA-BVP 方法獲取的動態心率的波動要小于 G-BVP 方法。

2.4 典型視頻干擾及其對 BVP 提取的影響
在上述實驗中,圍繞眼部區域的運動干擾問題有較多討論。其原因涉及兩個方面:其一,在基于面部視頻的實用心率檢測系統實現過程中,一般會用到人臉檢測算法。而眼睛定位通常是人臉檢測過程的首要步驟。從本文前面的實驗結果來看,ICA-BVP 方法對眼部自然運動產生的干擾有較強的適應能力。因此在完成眼睛定位后,通過適當的面部矩形區域擴展,即可準確、快速地提取出用于獲取 BVP 的面部分析區域。這樣既可以簡化面部區域的選擇過程,也可以提高運算效率。其二,我們在實驗中發現,一些受試者在視頻錄制過程中,雖然能夠保持面部與攝像頭相對靜止,但很難有效控制面部器官的運動,如眨眼、臉部肌肉不自主抽動和笑等。因此,采用全部面部區域未必能獲得更好的效果。
圖 9a 為一受試者(S9)面部視頻幀截圖,完整視頻的錄制時長是 2 min,實驗中選擇其中的 30 s 視頻數據進行分析。受試者 S9 在視頻錄制過程中自然眨眼頻率較高(非實驗安排),因此由全部面部區域獲取的三通道原始 RGB 信號中包含了較密集的眼動干擾脈沖,如圖 9b 所示。圖 9c 是對原始信號帶通濾波后的三路 R(上)、G(中)、B(下)信號,用作 ICA-BVP 算法的輸入。圖 9d 是 ICA 的分離結果,其中上圖為眼動偽跡,下圖為 BVP 分量。可以看到,ICA-BVP 能較好地分離出眼動分量和 BVP 分量。圖 9e、f 分別是對兩種方法獲取的 BVP 信號進一步低通濾波處理后的時域波形及其頻譜,雖然從兩種方法的頻譜中可得到完全一致的心率估計值,但是 ICA-BVP 方法所獲得的 BVP 波形明顯好于 G-BVP 方法,因此更有利于心率變異性等生命體征參數的計算。

除了自然眨眼等面部器官運動所產生的干擾外,環境光突變對實驗效果的影響往往更加嚴重。我們用 S9 面部視頻文件中的另一段數據來說明光線變化的影響。在該段視頻錄制到 22 s 左右時,有人從受試者身邊經過引起了光照的瞬間變化,由此在 RGB 信號中產生較大幅度的干擾脈沖,如圖 10a 所示。利用與前面完全相同的實驗步驟,對該段視頻進行分析,結果如圖 10b~d 所示。其中圖 10b 分別是 ICA-BVP 和 G-BVP 兩種方法獲取的 BVP 波形,圖 10c、d 是對應的頻譜和時頻分析結果。可以看到,此種情況下,ICA-BVP 依然能正常地工作,但 G-BVP 方法已基本失效。然而在真實環境下,類似的光線變化對視頻圖像的干擾很難避免。從上述實驗結果中可以看到,采用 ICA 方法可以在較大程度上緩解瞬間光線突變所產生的影響,這對于改善系統的實用性非常有幫助。

2.5 討論
值得一提的是,采用心率作為評估指標只能部分說明不同視頻 BVP 獲取方法的性能差異。因為,即便 BVP 信號中存在一定的干擾成分,對心率估計的準確性往往也不會有大的影響。這一點可以從圖 5 和圖 6 所示的實驗結果中看到。通過對 BVP 信號波形的比較,ICA-BVP 方法所得 BVP 信號的波形質量明顯要好于 G-BVP 方法,但是兩種方法的心率估計結果(BVP 譜峰位置)卻基本一致。因此,以心率作為評估指標顯然存在一定的不足。不過在基于面部視頻的長程動態心率監測過程中,受試者不自主運動以及測試環境的隨機變化等均可能產生難以預料的干擾成分,此種情況下,ICA-BVP 方法往往能發揮其干擾消除方面的優勢,給出更穩定和準確的心率估計結果。不難理解,能夠真實反映 BVP 獲取方法性能的是 BVP 波形的完整性。不過 BVP 波形質量的量化評估指標很難確定,雖然借助專業醫療儀器可同步檢測到動態血流信號數據,但現有醫療設備的抗干擾能力(特別是抗運動干擾能力)也比較有限,通常只能在相對理想的環境下提供較準確的實驗數據和結果,面對復雜的非臨床環境或干擾測試實驗,專業醫療儀器的穩定性和精確性也難以保證。因此,在不同方法的性能比較實驗中,如何建立合理的量化評估指標是一個值得進一步研究的問題。
3 結論
本文對基于人臉視頻的 BVP 信號獲取方法進行了研究,基于實測視頻數據,分析和比較了 ICA-BVP 和 G-BVP 兩種方法的實際性能。實驗結果表明,ICA 方法在消除面部器官運動和光照變化所產生的視頻干擾方面,具有較大的優勢。針對 ICA 輸出排序模糊問題,本文提出了基于譜峭度的 BVP 自動定位方法,取得了較好的應用效果。此外,本文在面部分析區域選擇方面也進行了討論,所得結論具有一定的參考價值。特別從眼部區域的分析結果中可以看到,ICA-BVP 方法不僅能從面部視頻提取出 BVP 信號,而且能較完整地分離出眨眼波形。我們認為,在一些特殊的應用場合,眼動信息的無接觸獲取同樣具有潛在的應用價值。不過 ICA 方法的運算復雜度相對較高,因此在手機等移動平臺上實現時,相比 G-BVP 方法更加占用資源,這是它的不足之處,也是今后需要進一步改進的地方。
需要說明的是,由于真實的視頻拍攝環境非常復雜,干擾生成因素非常多,很難通過仿真實驗的方式對不同情況進行模擬,因此只有通過大量實測視頻數據的實驗分析才可能得到相對可靠的結論。