趙玲娜
(安徽水利水電職業技術學院,安徽 合肥 231603)
心率是診斷心血管疾病和反映人體健康狀態的重要指標。在臨床醫療中,心電圖一直以來都是心率檢測的國際標準,但是作心電圖的過程繁瑣復雜,檢測成本昂貴,很難普及到人們的日常生活中去[1]。為了避免指甲式心率檢測儀與人體接觸,而引起不適,研究者提出了一種基于圖像的光學體積描記圖法(image Photoplethysmography, iPPG)的非接觸式心率檢測方法[2]。
心臟的跳動會引起血管里血液流量的改變,臉部皮膚血管分布密集,而且表皮較薄,臉部血管里血液流量的變化會引起臉部皮膚的顏色產生變化。這種變化用肉眼難以發現,但是可以被光學攝像機識別。攝像機捕捉到的臉部顏色變化可以用于構造血液容積脈搏(Blood Volumn Pulse, BVP)信號。利用信號處理的相關理論對BVP信號進行去噪優化處理后,其變化的趨勢就可以間接地反應心跳規律。但是,通過iPPG獲取的BVP信號容易受到頭部晃動、面部表情以及環境光照的影響,導致心率測量誤差增大,不能準確反映被試者當前的心臟搏動情況。
為了解決上述問題,本文提出了一種名叫基于統計學框架的自適應濾波法,這是一種將ROI區域的選擇和瞬時心率都融入到統計學框架中,并通過自適應濾波器對有用信號和噪聲信號進行分離的方法。
本文的方法是從臉部視頻中提取BVP信號,再通過BVP信號進行心率估計。為了提高BVP信號的質量,本文在ROI區域的選取、BVP信號去噪、心率結果篩選等方面進行詳細的敘述。本文方法的主要步驟,如圖1所示,包括:①人臉區域檢測和跟蹤;②基于概率的ROI選擇;③LMS自適應濾波;④時頻域閾值處理。

圖1 方法流程框架
為了排除無關區域的干擾,以及減輕臉部晃動的影響,人臉區域的檢測和跟蹤是不可或缺的一步。我們采用了Viola-Jones人臉檢測器檢測出人臉區域,并用判別響應圖擬合(DRMF)方法[3]識別人臉中的66個特征點。之后使用KLT跟蹤技術[4]對人臉的運動進行跟蹤。
首先將每一幀的人臉區域分割為N個子區域,隨后分別計算每個子區域的綠色通道的像素灰度均值,共構建N條隨時間變化的綠色光強信號I (n,i )。其中n表示幀序列,i表示子區域序列。由于不同的子區域包含有不同的心跳相關信息量,所以只要對I(n,i ) 賦予權值H(i),將包含心跳相關信息量較大的區域設定高權值,將信息量小的區域設定低權值,就可以把滿足期望的子區域從人臉中篩選出來,從而排除不相關區域的干擾。接下來只要設計一套自動的權值制定系統,并將每個子區域的灰度均值PPGI(n,i)按權重累加,就可以構建出期望的BVP信號。
(1)
信噪比表示信號的可用信號功率和噪聲信號功率的比值,是評價信號質量的常用標準。所以I(n,i)的信噪比可以作為該子區域權值H(i)制定的依據。但是,由于I(n,i)的有用信號和噪聲信號事先無法得知,我們只能根據先驗知識將滿足我們期望的信號設置為有用信號。
理想的I(n,i)具有準周期性,其功率譜密度函數F(f,i)在心跳頻率附近會出現一個譜峰,而在其他頻率區域函數值則相對較低。功率譜密度函數的面積可以表示信號的功率,所以本文將F(f,i)中“尖峰”的面積作為有用信號的功率,將其余部分的面積作為噪聲信號的功率。因此,H(i)和F(f,i)之間的關系可以通過如下公式建立:
(2)
其中,a表示F(f,i)譜峰對應的頻率,b表示譜峰寬度的1/2,[a-b,a+b]表示有用信號的頻段。T表示iPPG(n,i)的采樣點數,即視頻的總幀數。α表示拉伸參數,主要用于權重的非線性拉伸,從而增加高權值的比重。
雖然對臉部區域分塊處理可以排除不相關區域的干擾,但是由于子區域包含的像素點較少,構建的I(n,i)往往容易受到運動偽影、光照變化、表情變化等一系列外界因素所引起的干擾。這會導致功率譜密度函數F(f,i)出現多個譜峰,進而在譜峰選擇時可能會出錯,得到的H(i)無法準確地反映該區域包含的心跳信息量。
未作任何處理的子區域iPPG信號Iraw(n,i)可以表示為兩種信號的組合:
Iraw(n,i)=Xp(n,i)+Xn(n,i)
(3)
其中,Xp(n,i)表示由血管中血液流量變化所引起的顏色變化信號,Xn(n,i)表示噪聲信號。
由于人的心跳在短時間內不會發生劇烈的變化,可以認為心率信號Xp(n,i)具有近周期性的特質;而在現實情況中,噪聲信號Xn(n,i)往往是非周期的寬帶信號。利用Xp(n,i)和Xn(n,i)在周期上的差異性,有限長最小均方誤差(LMS)自適應濾波器可以對兩種信號進行有效地分離處理,LMS自適應濾波器結構圖如圖2所示。

圖2 LMS自適應濾波器結構圖
如圖2所示,本文把Iraw(n,i)作為輸入信號送入自適應濾波器,把Iraw(n,i)的時延信號Iraw(n-D,i)作為期望信號,其中D為時延長度。經過濾波處理后,我們將輸出信號定義為Iy(n,i),將誤差信號定義為iPPGe(n,i)。上述信號用公式分別可以表示為:
Iraw(n-D,i)=Xp(n-D,i)+Xn(n-D,i)
(4)
Iy(n,i)=w(n,i)HXp(n,i)+wH(n,i)Xn(n,i)
(5)
Ie(n,i)=Iraw(n-D,i)-Iy(n,i)
(6)
只要D選擇為一個合適的值,Xn(n,i)與其延時信號Xn(n-D,i)就不具有相關性。這種情況下,不論怎樣調整濾波器的權重,wH(n,i)Xn(n,i)都無法逼近Xn(n-D,i)。相反,Xp(n,i)由于具有準周期性,它與其延時信號Xp(n-D,i)總是相關的,因此,利用自適應濾波器可以使wH(n,i)Xp(n,i)和Xp(n-D,i)最大程度地逼近。
LMS算法的基本原理是根據誤差反饋信號Ie(n,i)當前時刻的統計規律不斷調整濾波器抽頭系數wH(n,i),使Ie(n,i)的均方值J(n,i)最小。當Ie(n,i)的統計規律發生變化時,抽頭系數wH(n,i)也會隨之發生變化,所以輸入信號Iraw(n,i)可以是隨機信號,其統計規律不需要事先得到確定。
w(n,i)=argmin[J(n,i) ]
(7)
J(n,i)=E[|Ie(n,i) |2]
(8)
J(n,i)存在一個最小值,即這是一個優化問題,所以只要沿著J(n,i)的瞬時梯度就找到其最優點。J(n,i)的瞬時梯度可以表示為:
J(n,i)=-Iraw(n,i)Ie(n,i)
(9)
本文的視頻采集單元為一臺CMOS網絡攝像頭(羅技HD 1080p),采集速率為30fps,視頻幀圖片的分辨率為640*480像素,采用avi格式保存。視頻采集時長為30s。視頻數據處理單元為消費水平的計算機。測試者的頭部要求與攝像頭保持在同一水平線上,并且兩者的水平距離大約在0.5米左右。視頻的拍攝環境為實驗室內,光源為日光燈,采集的數據都在MATLAB平臺上進行處理。
一共有10個志愿者參與到了本次實驗數據的采集,其中包括5名男性和5名女性,年齡是18歲到30歲之間。實驗一共拍攝了N組視頻,包括80組靜態視頻,即測試者臉部保持靜止的狀態,以及80組動態視頻,即測試者臉部有輕微晃動,或者存在表情變化。根據多次實驗結果,本文的臉部子區域邊長n選定為20像素點,譜峰半寬b選為0.2Hz,LMS自適應濾波器的步長μ選定為0.1,期望信號的時延D選定為20幀,拉升系數α選定為10。


表1 靜態場景中主流方法對比
從表1可知,在測試者配合的情況下,四種方法的絕對誤差均值都在1.5bpm以內,標準差都在2bpm以內,RMSE都在2bmp內,心率誤判率都沒有超過2%,而且相關系數都高于0.9。這些數據反映了靜態情況下5種方法都可以準確地檢測出心率。通過對四種方法數據的縱向進行對比,本文的方法的誤差均值、標準差、RMSE、誤判率都要略低于其他方法,相關系數都要略高于其他方法。這可能由于CVPR2014和CVRP2016方法夾雜了與心率無關的信號,導致心率檢測對程受到了一定的干擾,而BOE2015則因沒有排除通頻帶內噪聲的干擾,以至于影響了權值的制定。此外,由于傅里葉變換沒有綜合考慮時域和頻域的信息,求得的心率值不能覆蓋整段視頻的時間。因此,在測試者保持靜態情況下,本文的方法具有相對較高的準確率。
現實環境中難免會存在一些影響檢測結果的干擾因素,比如測試者頭部的輕微晃動、臉部表情的變化等等。測試者不配合情況下的幾種方法的誤差統計如表2所列。從整體上看,四種方法的相關系數相比配合情況下都有較為明顯的下降。

表2 動態場景中主流方法對比
數據的縱向對比表明:動態情況下CVPR2014的誤判率最大,相關系數最低,算法性能最不穩定。快速心率檢測的平均誤差上限為5bpm,CVPR2014[5]的平均誤差為5.273bpm已經超出了規定的上限,因此對運動的魯棒性并不達標。BOE2015[6]算法的性能也受到了嚴重的影響,這是由于當臉部存在運動干擾時,其子區域的iPPG信號的頻譜將會不再呈現尖峰狀,或者會出現多個譜峰,造成權值選取的失真。 CVPR2016[7]和TBE2020[8]相比前兩種方法準確率略占優勢,但是依然沒有本文方法對抗動態干擾的效果好。
本文首先利用人臉檢測與跟蹤技術對測試者臉部進行跟蹤,隨后通過基于概率的ROI選擇框架選擇臉部的檢測區域,排除不相關區域的干擾。在概率權值的制定過程中,LMS自適應濾波器起到了分量有用信號和噪聲信號的作用,進一步確保ROI區域選擇的準確性。最后對BVP信號做連續小波變換并得到瞬時心率。通過對瞬時心率值的篩選,受到嚴重污染的檢測值會被徹底濾除,對瞬時心率求均值,則可以得到涵蓋整段視頻的平均心率值。但是本文的方法仍然存在一些缺陷,比如在測試者的臉部頻繁旋轉、光照變化強度過大的情況下,測得的心率會出現嚴重的失真,這是我們后續有待解決的問題。