基于成像光電容積脈搏波描記法(iPPG)和盲源分離(BSS)理論,提出一種非接觸估計心率方法。利用網絡攝像頭在自然光中錄制人臉視頻圖像,將視頻圖像中檢測的人臉區域分離為RGB三通道分量,對一定數量RGB數據做歸一化、球化等預處理,再經獨立分量分析(ICA)理論和聯合對角化(JADE)算法,利用頻譜分析估計心率。利用Bland-Altman理論分析估計結果與商用脈搏血氧儀測試結果的一致性,估計結果中均方根誤差為2.06次/min,表明本方法能夠實現非接觸心率測量,同時可以作為遠程、非接觸多生理參數測量的研究基礎。
引用本文: 王英志, 韓太林. 基于聯合對角化算法的非接觸心率估計. 生物醫學工程學雜志, 2014, 31(4): 729-733. doi: 10.7507/1001-5515.20140136 復制
版權信息: ?四川大學華西醫院華西期刊社《生物醫學工程學雜志》版權所有,未經授權不得轉載、改編
引言
目前,心率測量的常用方法有心電圖檢測和基于光電容積脈搏波描記法(photoplethysmography,PPG)的脈搏血氧儀測量。兩種方法在長期監測過程中都存在不足,心電圖檢測過程中使用的凝膠藥膏或者胸背帶會引起患者皮膚過敏和不適;商用脈搏血氧儀在指尖或耳垂的長時間夾戴會給患者帶來疼痛感[1]。上述方法給特殊患者,尤其是心臟病患者的長期監測帶來了極大的不便。因此,近年來在線非接觸式的監測患者生理參數的需求越來越急迫。本文基于成像光電容積脈搏波描記法(imaging photoplethysmography,iPPG)理論,再利用網絡攝像頭獲得數據,經過盲源分離(blind source separation,BSS)理論和聯合對角化(joint approximate diagonalization of eigenmatrices,JADE)算法,再利用頻譜分析估計心率。本文詳細介紹了測量方法的理論、算法、實驗過程和實驗數據,并對實驗數據進行了分析。本方法是對心率在線非接觸測量的又一次有效嘗試,為遠程非接觸多生理參數測量的應用奠定基礎。
1 心率測量光學原理
1.1 PPG原理
PPG原理是基于動脈血液對光的吸收量隨動脈搏動而變化。將某波長的光束照射到皮膚表面,光束將通過反射或透射方式送到光電器件。在光電檢測中,皮膚、肌肉、骨骼和靜脈血液等組織對光的吸收量保持恒定,只有動脈血液對光的吸收量發生變化。隨著心臟搏動,血管血容量多時,光吸收量大,檢測到的光強度小;血管血容量少時,光吸收量小,檢測到的光強度大[2]。
1.2 iPPG原理
iPPG是在PPG原理基礎上,根據皮膚反射光成像,把圖像中混合的光譜強度變化信息分離出來,獲得心率等人體生理信息。在黃寶華等的研究中,波長為400~700 nm范圍內,反射光譜與皮膚組織內血液含量的變化關系為:當血液含量增加時,皮膚反射光譜強度下降;當血液含量減少時,皮膚反射光譜強度上升[3-5]。
紅、綠、藍(R、G、B)三色光的波長均在400~700 nm范圍內,而在實際應用中,包含R、G、B三色光譜的彩色視頻圖像是容易獲得的,并且此圖像是多張彩色圖片的組合。在文獻[5]中,當皮膚血液含量減少或增加5%時,R、G、B三色光的反射強度對應著變強和減弱。B變化最大,G次之,R變化最小,對應的變化值分別約為:0.3、0.2和0.1個單位。因此,心臟收縮致使皮膚血液含量的變化,可以在自然光中通過皮膚表面反射回來的R、G、B三色光的變化反映出來。本文方法是基于iPPG這一生物光學原理設計完成的。實際上,反射光強的變化很小,分析和測量出這種變化是本方法的關鍵。
2 BBS原理
BSS理論是指在不知道源信號和傳輸通道參數的情況下,根據輸入信號的統計特性,僅由觀測信號恢復出源信號各個獨立成分的過程。BBS可以理解為對觀測到的源信號的線性瞬時混疊信號進行分離,可以用如下的混合方程描述[6],即
| $x\left( t \right)=As\left( t \right)+n\left( t \right)$ | 
其中,源信號s(t)=[s1(t),s2(t),…,sn(t)]T由n個獨立的未知信號si(t)構成,混合信號x(t)=[x1(t),x2(t),…,xm(t)]T由m個觀測信號xi(t)構成,n(t)=[n(t),n(t),…,nm(t)]T由m個噪聲信號構成,矩陣A為m×n的混合矩陣。若忽略噪聲影響或噪聲BBS前已被降低到可接受范圍內時,上式可以寫成:
| $x\left( t \right)=As\left( t \right)$ | 
信號BBS是指在s(t)和A未知的情況下,求一個r×m的矩陣W,使輸出y(t)=Wx(t)逼近源信號,且y(t)=[y1(t),y2(t),…,yn(t)]T。
本方法中盲信號處理時有以下假設[7]:① 混合矩陣A為可逆矩陣;② 彩色圖像分離出的R、G、B三色圖像,假設是三個傳感器獲得的源信號,且它們之間滿足統計獨立;③ 噪聲信號與源信號相互統計獨立。
3 JADE算法
3.1 信號預處理
信號的預處理包括歸一化和球化。
歸一化是將觀測矢量x(t)用如下公式進行處理:
| $x{{\prime }_{i}}\left( t \right)=\frac{{{x}_{i}}\left( t \right)-{{\mu }_{i}}}{{{\sigma }_{i}}},i=1,2,3,\ldots ,m,$ | 
其中μi和σi分別是均值和標準偏差,而且為零均值和單位方差。
球化是尋找一組正交的旋轉矩陣V為z=Vx(t),除去球化信號各分量之間的相關性[8]。通過球化處理后,在高維數據情況下可以減少自由參數個數,提高方法性能。假設找到的分離矩陣為W,根據式(3),有
| $E\{s{{s}^{T}}\}=E\{Wz{{z}^{T}}{{W}^{T}}\}=W{{W}^{T}}=I$ | 
球化矩陣V可以利用混合信號x(t)協方差矩陣Rx=E{x(t)xT(t)}特征值分解,獲得特征矢量矩陣U和以特征值為對角元素的對角矩陣D,整體數據的線性球化變化為
| $V={{D}^{-1/2}}{{U}^{T}}$ | 
		3.2   聯合近似對角化[8 -9 ]
	
		
			
		先求出觀測信號球化過程z=Vx(t)的四階累積量,歸一化處理后,zi,zj,zk,zl(1≤i,j,k,l)的均值為零,由四階累積量定義得
| $\begin{align} & cum=\left( {{z}_{i}},{{z}_{j}},{{z}_{k}},{{z}_{l}} \right)=E\left[ {{z}_{i}}{{z}_{j}}{{z}_{k}}{{z}_{l}} \right]- \\ & E[{{z}_{i}}{{z}_{j}}\left] E \right[{{z}_{k}}{{z}_{l}}\left] -E \right[{{z}_{i}}{{z}_{k}}\left] E \right[{{z}_{j}}{{z}_{l}}]- \\ & E[{{z}_{i}}{{z}_{l}}\left] E \right[{{z}_{j}}{{z}_{k}}], \\ \end{align}$ | 
依照順序求出所有的累積量,得到n2個四階累積量為M1,M2,…,Mn2,令M=[M1,M2,…,Mn2],由四階累積量矩陣QZ(M)的定義得:球化后的觀測矢量z的四階累積量矩陣的第i,j元素為
| ${{[{{Q}_{Z}}\left( M \right)]}_{ij}}=\sum\limits_{k,l=1}^{n}{cum\left( {{z}_{i}},{{z}_{j}},{{z}_{k}},{{z}_{l}} \right){{M}_{kl}},}$ | 
式中Mkl為矩陣M的第k,l元素,且M為n×n陣,其中第i,j個元素為1,其余元素為零。
對每個Mi∈M求四階累積量矩陣,可以證明以Mi∈M為權重矩陣構成累積量矩陣QZ(Mi)必可分解為QZ(Mi)=λMi,式中: λ=k4(sm)是QZ(Mi)的特征值。
由四階累積量矩陣的定義可知QZ(Mi)是對稱矩陣,且QZ(Mi)=λMi,故必存在正交歸一化矩陣P使四階累積量矩陣QZ(Mi)對角化,即
| ${{P}^{T}}{{Q}_{Z}}({{M}_{i}})P=Diag[{{k}_{4}}({{s}_{1}}),{{k}_{4}}({{s}_{2}}),\ldots ,{{k}_{4}}({{s}_{n}})],$ | 
然后尋找一個正交歸一化矩陣P同時對所有四階累積量矩陣QZ(Mi)進行JADE。在實際計算中,用近似對角化來代替完全對角化,使變換后各個QZ(Mi)同時盡可能對角化。定義下列對照函數,即
| ${{D}_{M}}\left( P \right)=\sum\limits_{{{M}_{i}}\in M}{off}\left[ {{P}^{T}}{{Q}_{Z}}\left( {{M}_{i}} \right)P \right]{{,}_{~}}$ | 
式中非對角分量off(·)定義為off(A)=。
定義了對照函數后,通過采用雅克比旋轉搜索酉矩陣T對累積量矩陣QZ(Mi)進行優化,使對照函數非對角線元素的平方和最值的T即為待辨識的酉矩陣。最后通過反演來估計源信號y(t),即
| $y\left( t \right)={{T}^{T}}\cdot V\cdot x\left( t \right)=Wx\left( t \right)$ | 
4 實驗及數據分析
4.1 實驗裝置及環境
本實驗在室內進行,以光譜范圍為380~780 nm的自然光作為唯一光源,R、G、B三色光的波長在此范圍內。使用DellD630筆記本電腦和Logitech公司型號為C170的USB攝像頭。測試者靜坐在筆記本電腦前,距離攝像頭大約0.4 m,錄制帶有人臉的彩色視頻圖像。視頻圖像為:15幀/s(fps),AVI格式,像素分辨率640×480,色彩深度24-bit RGB(3ch×8bit/ch)。測試者夾戴的脈搏血氧儀為秦皇島康泰(CONTEXC)公司生產,型號為CMS50D+,通過數據線連接電腦可以實時獲得被測者心率數據。實驗裝置與實驗條件如圖 1所示。
 圖1
				實驗裝置與環境
			
												
				Figure1.
				Experimental setup and environment
						
				圖1
				實驗裝置與環境
			
												
				Figure1.
				Experimental setup and environment
			
								4.2 數據獲取及處理
實驗過程中,編程環境為Visual C,采用開源的計算機視覺庫(OpenCV,V2.3.4)和Matlab函數庫。實驗的具體步驟為:① 錄制帶有人臉的視頻圖像。② 用OpenCV的Haar-like算法檢測人臉。該算法是基于Viola等[10]和Lienhart等[11]的貢獻發展起來的。該算法返回含有人臉的矩形框,矩形框的參數為長寬和左上角的坐標值(x,y),此矩形框作為后續計算用的感興趣區域(region of interest,ROI)。為了防止ROI影響算法的性能,對每幀圖像做如下處理:如果沒有人臉被檢測到,則前一個ROI參數被使用;如果檢測到的人臉數量多于一個,選擇與前一個ROI參數最為接近的矩形框作為人臉識別的結果。③ 獲得ROI參數的同時,把每幀ROI分離為R、G、B三個分量,并且把每個分量的空間平均值作為觀測點,一系列觀測點構成三組觀測信號,根據BSS理論,三組觀測信號可以做為三個傳感器采集的數據,表示為x(t)=[x1(t),x2(t),x3(t)]T,如式(2)。④ 當獲得數據x(t)量超過設定值后,對三組觀測數據做預處理:歸一化、球化。⑤ 預處理后的數據做JADE算法處理,得到估計的源信號為y(t)=[y1(t),y2(t),y3(t)]T。⑥ 設置操作范圍[0.5~4 Hz](對應[30~240]次/min),對y(t)作快速傅里葉變換,求y(t)的功率譜。⑦ 在三組功率譜數據中,選擇功率譜能量最大處所對應的頻率為估計的心率。實現流程如圖 2所示。圖 2(a)為帶有人臉的視頻圖像,錄制視頻時,同步處理數據,可以實時獲得估計的心率,其中iPPG為JADE算法估計的結果,PPG為脈搏血氧儀測量的結果。圖 2(b)為每幀圖像中識別出來的人臉圖像,圖 2(c)自上而下分別是每幀圖像分離出來的R、G、B三色圖像,圖 2(d)自上而下分別為某個時間段RGB三組觀測信號預處理后的信號,圖 2(e)為JADE算法估計出的三組源信號,圖 2(f)為JADE估計出的源信號對應的功率譜,本次測量功率譜能量最大在1.29 Hz處,對應心率77.4次/min。實驗過程中脈搏血氧儀獲得心率作為參考值,本次測試的值為78次/mi n(1.3 Hz)。
 圖2
				數據獲取及處理示意圖
						
				圖2
				數據獲取及處理示意圖
			
									(a)帶有人臉的視頻圖像;(b)每幀圖像中識別出來的人臉圖像;(c)每幀圖像分離出來的R、G、B三色圖像;(d)某個時間段RGB三組觀測信號預處理后的信號;(e)JADE算法估計出的三組源信號;(f)JADE估計出的源信號對應的功率譜
Figure2. Data acquisition and processing schematic diagram(a) Video images with human face; (b) Face recognition from each image frame; (c) The R,G,B three color image separated from each frame image; (d) A time period the signal preprocessed by three RGB observed signals; (e) The three groups of source signals estimated by JADE algorithm; (f) The power spectrum corresponding to the signal source estimated by JADE
圖 3為源信號經過歸一化后的功率譜。從圖中可以看出頻率為1.29 Hz附近也包含尖峰,但是沒有合適的算法能夠把此尖峰的頻率確定出來。圖 2(f)中JADE分量的功率譜脈沖頻率(1.29 Hz)信噪比更高,可以通過尋找功率譜能量最大的方法確定。
JADE算法獲得三個分量并求出各自功率譜,沒有證據表明每次估計的心率都與某個確定的分量的功率譜對應。用同樣的實驗方法與過程,不同的10個人,錄制10段視頻圖像,同時記錄與之對應的脈搏血氧儀測量的心率。脈搏血氧儀測量的心率、JADE算法求得三個分量對應的心率、iPPG方法獲得的心率所對應的10組數據如表 1所示。對于一個人,在不同時間段進行試驗,實驗數據如表 2所示。在表 1與表 2中,iPPG方法獲得的心率與脈搏血氧儀測量的心率多組數據非常接近,只有表 1的一組(第8組)數據的誤差比較大。誤差產生的主要原因可能是運動偽影和自然光線的變化。
實驗中也發現,暗光條件下本方法的信噪比降低了,估計的心率誤差大。但是在一天中的不同時刻,不同強度的自然光亮度(ROI空間平均值為50~160)下,估計的心率誤差小。
 表1
                多人測量數據(次/min)
		 	
		 			 				Table1.
    			Measurement data of many people (beat/min)
			
						表1
                多人測量數據(次/min)
		 	
		 			 				Table1.
    			Measurement data of many people (beat/min)
       		
       				 表2
                同一個人的多次測量數據(次/min)
		 	
		 			 				Table2.
    			Repeated measurement data of the same person (beat/min)
			
						表2
                同一個人的多次測量數據(次/min)
		 	
		 			 				Table2.
    			Repeated measurement data of the same person (beat/min)
       		
       				4.3 數據統計及分析
為了說明JADE算法的效果,用Bland-Altman理論分析JADE算法估計的心率與脈搏血氧儀測量的結果。相同于以上方法與過程,對20個被測試者的150對測量值的Bland-Altman理論分析結果如圖 4所示,橫坐標表示同一實驗中兩種方法的平均值,縱坐標表示此同一實驗中兩種方法測量值的差值。兩種方法測量值差值的均值(Mean)為0.05 次/min,一致性的95%置信區間為-3.87~4.02 次/min,均方根誤差為2.06 次/min,相關系數r為0.98。提示JADE方法與脈搏血氧儀方法具有一致性。
 圖4
				JADE方法和脈搏血氧儀方法測量心率的一致性
			
												
				Figure4.
				Consistency of the heart rate between JADE method and pulse oximetry sensor method
						
				圖4
				JADE方法和脈搏血氧儀方法測量心率的一致性
			
												
				Figure4.
				Consistency of the heart rate between JADE method and pulse oximetry sensor method
			
								5 結論
實驗結果表明,在自然光照環境下,利用普通的網絡攝像頭獲得彩色視頻圖像,根據iPPG理論,利用BSS理論和JADE算法對混合有心臟舒張和收縮的微弱變化信號的人臉反射的R、G、B三色光進行處理,可在混合信號中分離出心率。實驗數據表明,在近距離短時間內,該方法與脈搏血氧儀方法測量心率具有一致性。
在網絡攝像頭越來越普及的今天,能夠在自然光條件下準確估計心率,對遠程醫療和特殊患者的長期監測具有廣闊的應用前景。此外,在PPG技術基礎上還可以估計呼吸頻率、血壓值和血氧飽和度[12-15],因此可以在本方法的基礎上深入研究,實現人體生理參數如呼吸頻率、血壓值和血氧飽和度的非接觸、連續測量。
引言
目前,心率測量的常用方法有心電圖檢測和基于光電容積脈搏波描記法(photoplethysmography,PPG)的脈搏血氧儀測量。兩種方法在長期監測過程中都存在不足,心電圖檢測過程中使用的凝膠藥膏或者胸背帶會引起患者皮膚過敏和不適;商用脈搏血氧儀在指尖或耳垂的長時間夾戴會給患者帶來疼痛感[1]。上述方法給特殊患者,尤其是心臟病患者的長期監測帶來了極大的不便。因此,近年來在線非接觸式的監測患者生理參數的需求越來越急迫。本文基于成像光電容積脈搏波描記法(imaging photoplethysmography,iPPG)理論,再利用網絡攝像頭獲得數據,經過盲源分離(blind source separation,BSS)理論和聯合對角化(joint approximate diagonalization of eigenmatrices,JADE)算法,再利用頻譜分析估計心率。本文詳細介紹了測量方法的理論、算法、實驗過程和實驗數據,并對實驗數據進行了分析。本方法是對心率在線非接觸測量的又一次有效嘗試,為遠程非接觸多生理參數測量的應用奠定基礎。
1 心率測量光學原理
1.1 PPG原理
PPG原理是基于動脈血液對光的吸收量隨動脈搏動而變化。將某波長的光束照射到皮膚表面,光束將通過反射或透射方式送到光電器件。在光電檢測中,皮膚、肌肉、骨骼和靜脈血液等組織對光的吸收量保持恒定,只有動脈血液對光的吸收量發生變化。隨著心臟搏動,血管血容量多時,光吸收量大,檢測到的光強度小;血管血容量少時,光吸收量小,檢測到的光強度大[2]。
1.2 iPPG原理
iPPG是在PPG原理基礎上,根據皮膚反射光成像,把圖像中混合的光譜強度變化信息分離出來,獲得心率等人體生理信息。在黃寶華等的研究中,波長為400~700 nm范圍內,反射光譜與皮膚組織內血液含量的變化關系為:當血液含量增加時,皮膚反射光譜強度下降;當血液含量減少時,皮膚反射光譜強度上升[3-5]。
紅、綠、藍(R、G、B)三色光的波長均在400~700 nm范圍內,而在實際應用中,包含R、G、B三色光譜的彩色視頻圖像是容易獲得的,并且此圖像是多張彩色圖片的組合。在文獻[5]中,當皮膚血液含量減少或增加5%時,R、G、B三色光的反射強度對應著變強和減弱。B變化最大,G次之,R變化最小,對應的變化值分別約為:0.3、0.2和0.1個單位。因此,心臟收縮致使皮膚血液含量的變化,可以在自然光中通過皮膚表面反射回來的R、G、B三色光的變化反映出來。本文方法是基于iPPG這一生物光學原理設計完成的。實際上,反射光強的變化很小,分析和測量出這種變化是本方法的關鍵。
2 BBS原理
BSS理論是指在不知道源信號和傳輸通道參數的情況下,根據輸入信號的統計特性,僅由觀測信號恢復出源信號各個獨立成分的過程。BBS可以理解為對觀測到的源信號的線性瞬時混疊信號進行分離,可以用如下的混合方程描述[6],即
| $x\left( t \right)=As\left( t \right)+n\left( t \right)$ | 
其中,源信號s(t)=[s1(t),s2(t),…,sn(t)]T由n個獨立的未知信號si(t)構成,混合信號x(t)=[x1(t),x2(t),…,xm(t)]T由m個觀測信號xi(t)構成,n(t)=[n(t),n(t),…,nm(t)]T由m個噪聲信號構成,矩陣A為m×n的混合矩陣。若忽略噪聲影響或噪聲BBS前已被降低到可接受范圍內時,上式可以寫成:
| $x\left( t \right)=As\left( t \right)$ | 
信號BBS是指在s(t)和A未知的情況下,求一個r×m的矩陣W,使輸出y(t)=Wx(t)逼近源信號,且y(t)=[y1(t),y2(t),…,yn(t)]T。
本方法中盲信號處理時有以下假設[7]:① 混合矩陣A為可逆矩陣;② 彩色圖像分離出的R、G、B三色圖像,假設是三個傳感器獲得的源信號,且它們之間滿足統計獨立;③ 噪聲信號與源信號相互統計獨立。
3 JADE算法
3.1 信號預處理
信號的預處理包括歸一化和球化。
歸一化是將觀測矢量x(t)用如下公式進行處理:
| $x{{\prime }_{i}}\left( t \right)=\frac{{{x}_{i}}\left( t \right)-{{\mu }_{i}}}{{{\sigma }_{i}}},i=1,2,3,\ldots ,m,$ | 
其中μi和σi分別是均值和標準偏差,而且為零均值和單位方差。
球化是尋找一組正交的旋轉矩陣V為z=Vx(t),除去球化信號各分量之間的相關性[8]。通過球化處理后,在高維數據情況下可以減少自由參數個數,提高方法性能。假設找到的分離矩陣為W,根據式(3),有
| $E\{s{{s}^{T}}\}=E\{Wz{{z}^{T}}{{W}^{T}}\}=W{{W}^{T}}=I$ | 
球化矩陣V可以利用混合信號x(t)協方差矩陣Rx=E{x(t)xT(t)}特征值分解,獲得特征矢量矩陣U和以特征值為對角元素的對角矩陣D,整體數據的線性球化變化為
| $V={{D}^{-1/2}}{{U}^{T}}$ | 
		3.2   聯合近似對角化[8 -9 ]
	
		
			
		先求出觀測信號球化過程z=Vx(t)的四階累積量,歸一化處理后,zi,zj,zk,zl(1≤i,j,k,l)的均值為零,由四階累積量定義得
| $\begin{align} & cum=\left( {{z}_{i}},{{z}_{j}},{{z}_{k}},{{z}_{l}} \right)=E\left[ {{z}_{i}}{{z}_{j}}{{z}_{k}}{{z}_{l}} \right]- \\ & E[{{z}_{i}}{{z}_{j}}\left] E \right[{{z}_{k}}{{z}_{l}}\left] -E \right[{{z}_{i}}{{z}_{k}}\left] E \right[{{z}_{j}}{{z}_{l}}]- \\ & E[{{z}_{i}}{{z}_{l}}\left] E \right[{{z}_{j}}{{z}_{k}}], \\ \end{align}$ | 
依照順序求出所有的累積量,得到n2個四階累積量為M1,M2,…,Mn2,令M=[M1,M2,…,Mn2],由四階累積量矩陣QZ(M)的定義得:球化后的觀測矢量z的四階累積量矩陣的第i,j元素為
| ${{[{{Q}_{Z}}\left( M \right)]}_{ij}}=\sum\limits_{k,l=1}^{n}{cum\left( {{z}_{i}},{{z}_{j}},{{z}_{k}},{{z}_{l}} \right){{M}_{kl}},}$ | 
式中Mkl為矩陣M的第k,l元素,且M為n×n陣,其中第i,j個元素為1,其余元素為零。
對每個Mi∈M求四階累積量矩陣,可以證明以Mi∈M為權重矩陣構成累積量矩陣QZ(Mi)必可分解為QZ(Mi)=λMi,式中: λ=k4(sm)是QZ(Mi)的特征值。
由四階累積量矩陣的定義可知QZ(Mi)是對稱矩陣,且QZ(Mi)=λMi,故必存在正交歸一化矩陣P使四階累積量矩陣QZ(Mi)對角化,即
| ${{P}^{T}}{{Q}_{Z}}({{M}_{i}})P=Diag[{{k}_{4}}({{s}_{1}}),{{k}_{4}}({{s}_{2}}),\ldots ,{{k}_{4}}({{s}_{n}})],$ | 
然后尋找一個正交歸一化矩陣P同時對所有四階累積量矩陣QZ(Mi)進行JADE。在實際計算中,用近似對角化來代替完全對角化,使變換后各個QZ(Mi)同時盡可能對角化。定義下列對照函數,即
| ${{D}_{M}}\left( P \right)=\sum\limits_{{{M}_{i}}\in M}{off}\left[ {{P}^{T}}{{Q}_{Z}}\left( {{M}_{i}} \right)P \right]{{,}_{~}}$ | 
式中非對角分量off(·)定義為off(A)=。
定義了對照函數后,通過采用雅克比旋轉搜索酉矩陣T對累積量矩陣QZ(Mi)進行優化,使對照函數非對角線元素的平方和最值的T即為待辨識的酉矩陣。最后通過反演來估計源信號y(t),即
| $y\left( t \right)={{T}^{T}}\cdot V\cdot x\left( t \right)=Wx\left( t \right)$ | 
4 實驗及數據分析
4.1 實驗裝置及環境
本實驗在室內進行,以光譜范圍為380~780 nm的自然光作為唯一光源,R、G、B三色光的波長在此范圍內。使用DellD630筆記本電腦和Logitech公司型號為C170的USB攝像頭。測試者靜坐在筆記本電腦前,距離攝像頭大約0.4 m,錄制帶有人臉的彩色視頻圖像。視頻圖像為:15幀/s(fps),AVI格式,像素分辨率640×480,色彩深度24-bit RGB(3ch×8bit/ch)。測試者夾戴的脈搏血氧儀為秦皇島康泰(CONTEXC)公司生產,型號為CMS50D+,通過數據線連接電腦可以實時獲得被測者心率數據。實驗裝置與實驗條件如圖 1所示。
 圖1
				實驗裝置與環境
			
												
				Figure1.
				Experimental setup and environment
						
				圖1
				實驗裝置與環境
			
												
				Figure1.
				Experimental setup and environment
			
								4.2 數據獲取及處理
實驗過程中,編程環境為Visual C,采用開源的計算機視覺庫(OpenCV,V2.3.4)和Matlab函數庫。實驗的具體步驟為:① 錄制帶有人臉的視頻圖像。② 用OpenCV的Haar-like算法檢測人臉。該算法是基于Viola等[10]和Lienhart等[11]的貢獻發展起來的。該算法返回含有人臉的矩形框,矩形框的參數為長寬和左上角的坐標值(x,y),此矩形框作為后續計算用的感興趣區域(region of interest,ROI)。為了防止ROI影響算法的性能,對每幀圖像做如下處理:如果沒有人臉被檢測到,則前一個ROI參數被使用;如果檢測到的人臉數量多于一個,選擇與前一個ROI參數最為接近的矩形框作為人臉識別的結果。③ 獲得ROI參數的同時,把每幀ROI分離為R、G、B三個分量,并且把每個分量的空間平均值作為觀測點,一系列觀測點構成三組觀測信號,根據BSS理論,三組觀測信號可以做為三個傳感器采集的數據,表示為x(t)=[x1(t),x2(t),x3(t)]T,如式(2)。④ 當獲得數據x(t)量超過設定值后,對三組觀測數據做預處理:歸一化、球化。⑤ 預處理后的數據做JADE算法處理,得到估計的源信號為y(t)=[y1(t),y2(t),y3(t)]T。⑥ 設置操作范圍[0.5~4 Hz](對應[30~240]次/min),對y(t)作快速傅里葉變換,求y(t)的功率譜。⑦ 在三組功率譜數據中,選擇功率譜能量最大處所對應的頻率為估計的心率。實現流程如圖 2所示。圖 2(a)為帶有人臉的視頻圖像,錄制視頻時,同步處理數據,可以實時獲得估計的心率,其中iPPG為JADE算法估計的結果,PPG為脈搏血氧儀測量的結果。圖 2(b)為每幀圖像中識別出來的人臉圖像,圖 2(c)自上而下分別是每幀圖像分離出來的R、G、B三色圖像,圖 2(d)自上而下分別為某個時間段RGB三組觀測信號預處理后的信號,圖 2(e)為JADE算法估計出的三組源信號,圖 2(f)為JADE估計出的源信號對應的功率譜,本次測量功率譜能量最大在1.29 Hz處,對應心率77.4次/min。實驗過程中脈搏血氧儀獲得心率作為參考值,本次測試的值為78次/mi n(1.3 Hz)。
 圖2
				數據獲取及處理示意圖
						
				圖2
				數據獲取及處理示意圖
			
									(a)帶有人臉的視頻圖像;(b)每幀圖像中識別出來的人臉圖像;(c)每幀圖像分離出來的R、G、B三色圖像;(d)某個時間段RGB三組觀測信號預處理后的信號;(e)JADE算法估計出的三組源信號;(f)JADE估計出的源信號對應的功率譜
Figure2. Data acquisition and processing schematic diagram(a) Video images with human face; (b) Face recognition from each image frame; (c) The R,G,B three color image separated from each frame image; (d) A time period the signal preprocessed by three RGB observed signals; (e) The three groups of source signals estimated by JADE algorithm; (f) The power spectrum corresponding to the signal source estimated by JADE
圖 3為源信號經過歸一化后的功率譜。從圖中可以看出頻率為1.29 Hz附近也包含尖峰,但是沒有合適的算法能夠把此尖峰的頻率確定出來。圖 2(f)中JADE分量的功率譜脈沖頻率(1.29 Hz)信噪比更高,可以通過尋找功率譜能量最大的方法確定。
JADE算法獲得三個分量并求出各自功率譜,沒有證據表明每次估計的心率都與某個確定的分量的功率譜對應。用同樣的實驗方法與過程,不同的10個人,錄制10段視頻圖像,同時記錄與之對應的脈搏血氧儀測量的心率。脈搏血氧儀測量的心率、JADE算法求得三個分量對應的心率、iPPG方法獲得的心率所對應的10組數據如表 1所示。對于一個人,在不同時間段進行試驗,實驗數據如表 2所示。在表 1與表 2中,iPPG方法獲得的心率與脈搏血氧儀測量的心率多組數據非常接近,只有表 1的一組(第8組)數據的誤差比較大。誤差產生的主要原因可能是運動偽影和自然光線的變化。
實驗中也發現,暗光條件下本方法的信噪比降低了,估計的心率誤差大。但是在一天中的不同時刻,不同強度的自然光亮度(ROI空間平均值為50~160)下,估計的心率誤差小。
 表1
                多人測量數據(次/min)
		 	
		 			 				Table1.
    			Measurement data of many people (beat/min)
			
						表1
                多人測量數據(次/min)
		 	
		 			 				Table1.
    			Measurement data of many people (beat/min)
       		
       				 表2
                同一個人的多次測量數據(次/min)
		 	
		 			 				Table2.
    			Repeated measurement data of the same person (beat/min)
			
						表2
                同一個人的多次測量數據(次/min)
		 	
		 			 				Table2.
    			Repeated measurement data of the same person (beat/min)
       		
       				4.3 數據統計及分析
為了說明JADE算法的效果,用Bland-Altman理論分析JADE算法估計的心率與脈搏血氧儀測量的結果。相同于以上方法與過程,對20個被測試者的150對測量值的Bland-Altman理論分析結果如圖 4所示,橫坐標表示同一實驗中兩種方法的平均值,縱坐標表示此同一實驗中兩種方法測量值的差值。兩種方法測量值差值的均值(Mean)為0.05 次/min,一致性的95%置信區間為-3.87~4.02 次/min,均方根誤差為2.06 次/min,相關系數r為0.98。提示JADE方法與脈搏血氧儀方法具有一致性。
 圖4
				JADE方法和脈搏血氧儀方法測量心率的一致性
			
												
				Figure4.
				Consistency of the heart rate between JADE method and pulse oximetry sensor method
						
				圖4
				JADE方法和脈搏血氧儀方法測量心率的一致性
			
												
				Figure4.
				Consistency of the heart rate between JADE method and pulse oximetry sensor method
			
								5 結論
實驗結果表明,在自然光照環境下,利用普通的網絡攝像頭獲得彩色視頻圖像,根據iPPG理論,利用BSS理論和JADE算法對混合有心臟舒張和收縮的微弱變化信號的人臉反射的R、G、B三色光進行處理,可在混合信號中分離出心率。實驗數據表明,在近距離短時間內,該方法與脈搏血氧儀方法測量心率具有一致性。
在網絡攝像頭越來越普及的今天,能夠在自然光條件下準確估計心率,對遠程醫療和特殊患者的長期監測具有廣闊的應用前景。此外,在PPG技術基礎上還可以估計呼吸頻率、血壓值和血氧飽和度[12-15],因此可以在本方法的基礎上深入研究,實現人體生理參數如呼吸頻率、血壓值和血氧飽和度的非接觸、連續測量。
 
        

 
                 
				 
						 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	 
                                                                    
                                                                        
                                                                        
                                                                        