針對手指視頻圖像 R 分量飽和失真現象,本文提出了一種基于迭代的閾值分割算法,自適應生成 R 分量待檢測區域,通過計算待檢測區域灰度均值,從而提取出人體脈搏信號。原始脈搏信號存在基線漂移及高頻噪聲,結合脈搏信號特征,設計了零相位數字濾波器來濾除噪聲干擾。在不同智能手機上采集了指尖視頻圖像,利用本文提出的算法提取出了待檢測區域。考慮到每次測量時指尖壓力會有所不同,本文對不同壓力下提取的脈搏信號做了對比分析。為了驗證本文提出的算法在心率檢測方面的準確性,做了心率檢測對比實驗。結果表明,本文提出的算法能準確提取出人體心率信息,同時具備一定的可移植性,為進一步在智能手機平臺上開發生理監測應用提供了一定的理論幫助。
引用本文: 余江軍, 周亮, 劉朝暉, 李治國, 單秋莎. 基于指尖視頻圖像的自適應脈搏信號提取算法研究. 生物醫學工程學雜志, 2020, 37(1): 150-157. doi: 10.7507/1001-5515.201901038 復制
版權信息: ?四川大學華西醫院華西期刊社《生物醫學工程學雜志》版權所有,未經授權不得轉載、改編
引言
隨著我國人口老齡化程度加重,心血管病患者越來越多。國家心血管病中心發布的《中國心血管病報告 2017》概要[1]顯示,中國心血管病患病率近年來處于一種持續上升狀態,急需一種簡單便攜的心血管病監測方案。智能手機的普及以及性能的提升,使其越來越成為理想的生理監測載體[2]。
通過智能手機獲取脈搏信號的方法,最早由 Pelegris 等[3]提出,其通過計算每幀圖像灰度均值獲得脈搏信號。Jonathan 等[4]考慮了 R、G、B 分量的差異,通過人為選定不同分量計算區域,獲得了三通道的脈搏信號。Karlen 等[5]提出了一種感興趣區域(region of interest,ROI)選取方法,通過將單幀圖片分割成多個子區域,計算子區域灰度均值,獲得多個脈搏信號,然后比較其幅值變化范圍,從而選擇最佳 ROI。然而隨著視頻圖像分辨率的提高,該方法需要計算的通道數大大增加,故較少采用。Scully 等[6]、Nam 等[7]將通過智能手機提取的脈搏信號與專業的心電圖設備進行了比較,結果證實了手機獲取的脈搏信號的可靠性。
本文擬通過手指視頻圖像 R 分量來提取脈搏信號。現有的該類研究大多數基于 G 分量,而 R 分量相比于 G 分量,其灰度變化幅度更大,更容易提取出脈搏信號[8-9]。而且,R 分量與 B 分量的組合符合血氧飽和度檢測的雙波長條件[10-11],通過 R 分量提取脈搏信號具有一定的研究價值。但是目前通過智能手機采集的指尖視頻圖像,其 R 分量普遍存在飽和失真現象,將飽和區域作為計算區域,將得不到脈搏信號。針對飽和失真現象,本文提出了一種基于迭代的閾值分割算法,自適應生成 R 分量非飽和區域,將非飽和區域作為 ROI,從而提取出脈搏信號。
1 基于指尖視頻圖像的脈搏信號獲取方法
1.1 基于指尖視頻圖像的脈搏信號獲取流程
脈搏信號提取流程見圖 1。首先打開智能手機視頻錄制功能,關閉手機白平衡功能,避免其影響數據的可靠性[5]。然后將食指指尖貼到智能手機后置攝像頭上,使用 LED 燈補光,手機上將采集到包含有生理信息的彩色視頻圖像。考慮到手機端處理速度較慢,為了提高處理效率,利用藍牙將視頻圖像傳輸到了個人計算機(personal computer,PC)上,在 PC 端完成視頻圖像的分析處理,從而提取出生理信息。在采集時,手指盡量保持靜止狀態。在獲得視頻信息后,首先經過視頻幀處理,獲得包含生理信息的多幀彩色圖片,再經過 RGB 通道分離提取出 R 分量,然后提取 ROI,通過計算每幀 R 分量 ROI 灰度均值,獲得一維原始脈搏信號:
 圖1
				脈搏信號提取流程圖
			
												
				Figure1.
				The chart of pulse signal extraction
						
				圖1
				脈搏信號提取流程圖
			
												
				Figure1.
				The chart of pulse signal extraction
			
								|  | 
 為 ROI 內總的像素點,
 為 ROI 內總的像素點, 為 R 分量第
 為 R 分量第  幀 ROI 內的第
 幀 ROI 內的第  個像素點的灰度值,
 個像素點的灰度值, 為手機視頻圖像采樣率。
 為手機視頻圖像采樣率。
1.2 R 分量飽和失真現象
目前智能手機普遍采用 8 bit 量化方式,由于量化級數的限制,超過最大量化級數的區域只能顯示最大灰度值 255,失去了真實的灰度信息,其被稱之為飽和失真現象。飽和區域并不固定,其與特定設備有關。除此之外,每一幀的飽和區域也會隨著血容積變化而有微小變化,所以在檢測時需要提取出最優非飽和區域,該區域內每一幀都不會出現飽和失真現象。圖 2a 為提取出的第一幀 R 分量偽彩色圖,其白色區域對應飽和失真區域;圖 2b 為其灰度統計直方圖,從直方圖中可以更加直觀地看出多個像素處于飽和狀態,即最大灰度值 255;圖 2c 為 R 分量單個像素點在時間序列上的標準差所組成的三維曲面圖,m、n 分別代表經過下采樣的單幀圖片的行和列,縱軸為標準差。圖 2c 能直觀地反映飽和失真現象,藍色部分幾乎全接近零值,說明其灰度值隨時間變化較小,對應于飽和區域;相反,黃色部分值較大,說明其隨時間變化較明顯,對應非飽和區域。
 圖2
				R 分量飽和失真現象介紹
						
				圖2
				R 分量飽和失真現象介紹
			
									a. R 分量第一幀偽彩色圖;b. 與 a 對應的灰度統計直方圖;c. R 分量標準差三維曲面圖
Figure2. Introduction to saturation distortion of R componenta. pseudocolor image of the first frame of R component; b. grayscale statistic histogram corresponding to fig. a; c. three-dimensional surface diagram of standard deviation of R component
1.3 基于迭代的閾值分割方法生成 ROI
經過 RGB 通道分離提取出 R 分量后,需要選取合適的 ROI。由于飽和區域因飽和失真現象失去了原有的灰度信息,所以將非飽和區域作為 ROI。脈搏信號具有周期性,即視頻圖像灰度值會呈現周期性變化,所以在檢測時只需檢測一個脈搏周期對應的序列圖片,就能將最優非飽和區域篩選出來,飽和區域存在一個共同的特性,絕大多數灰度值為 255,所以我們自定義了一個閾值函數:
|  | 
T 為閾值,將其設定為 255 可以有效去除飽和區域,但是為了避免后續幀灰度值向上波動導致非飽和區域再次出現部分飽和失真現象,將其適當減小設定為 250。將第一幀 R 分量 A1 經過閾值處理后得到二值矩陣 T1,為了便于直觀地感受飽和區域,在顯示時將灰度值進行了反轉,如圖 3 所示。其中白色區域對應飽和區域,黑色區域對應非飽和區域,由于探測器存在隨機噪聲,使得白色區域內還存在微小黑色區域。這些點使得 n 值不準確,將其稱為噪聲點。在獲得 T1 后,將第二幀 R 分量 A2 與 T1 對應元素相乘生成復合矩陣 C1:
 圖3
				不同 k 值生成的 R 分量非飽和區域
			
												
				Figure3.
				Unsaturated region of R component generated by different k values
						
				圖3
				不同 k 值生成的 R 分量非飽和區域
			
												
				Figure3.
				Unsaturated region of R component generated by different k values
			
								|  | 
即:
|  | 
在 C1 中,上一幀飽和像素點  經過點乘運算后仍為零,將 C1 做上述自定義閾值處理后,獲得二值矩陣 T2,再將 T2 與下一幀 R 分量對應元素相乘生成復合矩陣 C2,依次迭代 k 次,Tk 內非零值區域即為最終的 ROI,可以看出,隨著 k 值增加,黑色區域逐漸縮小,逐漸接近最優 ROI,統計 ROI 內非零值個數即可得到
 經過點乘運算后仍為零,將 C1 做上述自定義閾值處理后,獲得二值矩陣 T2,再將 T2 與下一幀 R 分量對應元素相乘生成復合矩陣 C2,依次迭代 k 次,Tk 內非零值區域即為最終的 ROI,可以看出,隨著 k 值增加,黑色區域逐漸縮小,逐漸接近最優 ROI,統計 ROI 內非零值個數即可得到  。在選取
。在選取  時,應包含一個脈搏周期:
 時,應包含一個脈搏周期:
|  | 
 為正常人最低心率,一般不低于 40 次/分,手機采樣率
 為正常人最低心率,一般不低于 40 次/分,手機采樣率  普遍為 30 Hz,基于此,
 普遍為 30 Hz,基于此, 值選為 45。對于噪聲干擾點,在做迭代閾值分割處理時,只有每一幀都未飽和才會被納入最終的 ROI 里面,再經過 k 次閾值處理,概率將趨于零,從圖 3 中 k = 20、k = 45 兩圖可以看出,噪聲點已完全被消除。
 值選為 45。對于噪聲干擾點,在做迭代閾值分割處理時,只有每一幀都未飽和才會被納入最終的 ROI 里面,再經過 k 次閾值處理,概率將趨于零,從圖 3 中 k = 20、k = 45 兩圖可以看出,噪聲點已完全被消除。
1.4 脈搏波信號獲取
在獲得理想的 ROI 之后,統計 ROI 內非零值個數,通過式(1)計算每一幀 ROI 的灰度均值,再通過求反運算,即可得到脈搏波信號。考慮到探測器隨機噪聲的干擾,在獲得理想區域后,對每幀圖片做了一次 5 × 5 大小的中值濾波處理,圖 4 為通過 R 分量提取出的脈搏信號。
 圖4
				提取 R 分量獲得的脈搏信號
			
												
				Figure4.
				Pulse signal obtained by R component
						
				圖4
				提取 R 分量獲得的脈搏信號
			
												
				Figure4.
				Pulse signal obtained by R component
			
								2 脈搏信號處理
2.1 零相位數字濾波原理
可以看出,原始脈搏信號存在很強的基線漂移噪聲,除此之外,在下降沿還存在高頻脈沖噪聲,主要是因為采集過程中存在隨機噪聲及環境光干擾。去除這些噪聲的方法主要有形態濾波法[12]、經驗模態分解[13]及小波變換[14]等。形態濾波法去除基線漂移噪聲簡單有效,但無法直接濾除高頻噪聲;經驗模態分解重構過程中需要多次擬合,容易產生誤差;小波變換則依賴于小波基的選取。
傳統的數字濾波方法除了會改變輸入信號每一頻率分量的復振幅,還會導致相位發生變化,使得輸入信號經過 LTI 系統后存在相位失真,而脈搏信號特征值的提取需要保留原始信號的相位信息。為獲得零相位失真信號,可以先將輸入序列按順序濾波,然后將所得結果逆轉后反向通過濾波器,再將所得結果逆轉后輸出,即可得精確零相位失真的輸出信號,將其稱為零相位數字濾波(Forward filter,Reverse filter,Reverse output,FRR)[15],其數學證明如下:
|  | 
|  | 
|  | 
|  | 
可得:
|  | 
 為輸入信號,
 為輸入信號, 為輸出信號,
 為輸出信號, 為輸入信號在頻率域表示,
 為輸入信號在頻率域表示, 為輸出信號在頻率域表示,由式(10)可以看出,輸出信號與輸入信號之間不存在相位關系,即輸出為零相位失真信號。
 為輸出信號在頻率域表示,由式(10)可以看出,輸出信號與輸入信號之間不存在相位關系,即輸出為零相位失真信號。
2.2 利用零相位數字濾波器去除脈搏信號基線漂移及高頻噪聲
通過智能手機平臺提取脈搏信號方法相對于傳統的光電容積描記(photoplethysmography,PPG)系統,增加了將光強信號轉變為圖像信號這一步驟,同時減少了信號采樣率。脈搏信號頻率主要集中在 0.7~3.0 Hz 這一區間,為了濾除噪聲頻率,采用 3 階巴特沃斯帶通濾波器作為 FRR 的基礎濾波器,設計其通帶范圍 0.7~3.0 Hz,阻帶上限頻率 5.0 Hz,阻帶下限頻率 0.4 Hz,帶邊頻率衰減 ≤ 3 dB,0.4 Hz 以下及 5.0 Hz 以上衰減 ≥ 18 dB,將原始信號經過 FRR 濾波器后即可得到去除基線漂移及高頻噪聲的脈搏信號。由于原始信號采樣率較低,我們利用三次樣條函數對濾波后的信號進行了插值處理,將采樣率提高到了 300 Hz,有利于特征信息的準確提取。圖 5 為經過濾波及插值處理后的歸一化脈搏信號,可以看出,經過處理后的脈搏信號在形態上更加接近于傳統的脈搏信號,同時包含了重搏波等細節信息。
 圖5
				去除噪聲信號
			
												
				Figure5.
				Signals after removing the noises
						
				圖5
				去除噪聲信號
			
												
				Figure5.
				Signals after removing the noises
			
								3 結果分析
3.1 不同智能手機 ROI 提取
為了驗證算法的普適性,我們選取了 5 款不同的智能手機,分別采集了同一測試者的手指視頻圖像,采用本文提出的算法計算 ROI。其設備性能如表 1 所示,檢測結果如圖 6 所示,白色對應飽和區域,黑色對應非飽和區域。可以看出,除小米手機外,其余幾款手機都存在飽和失真現象,但是不管是否存在飽和失真現象,本文提出的方法都能有效地提取出 ROI。
 表1
                不同智能手機性能對比
		 	
		 			 				Table1.
    			Performance comparison of different smartphones
			
						表1
                不同智能手機性能對比
		 	
		 			 				Table1.
    			Performance comparison of different smartphones
       		
       				 圖6
				不同設備非飽和區域檢測結果
			
												
				Figure6.
				Detection results of unsaturated regions on different equipment
						
				圖6
				不同設備非飽和區域檢測結果
			
												
				Figure6.
				Detection results of unsaturated regions on different equipment
			
								3.2 不同壓力下脈搏信號對比
手指與手機攝像頭接觸時,因為個體習慣的不同,手指與攝像頭之間會存在不同的壓力。目前對壓力導致的差異研究較少,在采集脈搏信號時,主要的方式為皮膚組織與檢測設備之間不施加壓力。基于此,有必要研究在智能手機上提取脈搏信號時,不同壓力對脈搏信號的影響。本文采用了一種傾斜智能設備的方法來提取不同壓力下的脈搏信號,如圖 7 所示。具體的方式為:在實驗平臺上固定智能設備底端側面,防止其往兩端滑動,然后食指緊貼后置攝像頭,通過智能手機傾斜不同的角度來增加手指與攝像頭之間的壓力,并對傾斜壓力 F 進行了測定,傾斜角度 θ 逐漸增加,然后采集不同角度下的手指視頻圖像,其對應了不同壓力下的脈搏信號。
 圖7
				不同壓力下脈搏信號提取示意圖
			
												
				Figure7.
				Schematic diagram of pulse signal extraction under   different pressure
						
				圖7
				不同壓力下脈搏信號提取示意圖
			
												
				Figure7.
				Schematic diagram of pulse signal extraction under   different pressure
			
								圖 8 為不同壓力下的原始脈搏信號,可以看出,不施加壓力及壓力為 1.2 N 時獲得的脈搏信號信噪比較低。此外,不同壓力下脈搏信號峰峰值也相差較大,峰峰值即相鄰峰谷值差。雖然壓力改變了脈搏信號峰峰值大小,但是其對脈搏信號某些特征信息影響不大,比如峰值點個數,說明在一定范圍內,壓力對心率信息影響較小。
 圖8
				不同壓力下脈搏信號對比
			
												
				Figure8.
				Comparison of pulse signals under different pressures
						
				圖8
				不同壓力下脈搏信號對比
			
												
				Figure8.
				Comparison of pulse signals under different pressures
			
								為了進一步明確壓力對脈搏信號幅值的影響,我們提取了不同壓力下的峰峰值,以多個脈搏周期峰峰值的平均值來代表不同壓力下的交流量,繪制了脈搏信號交流量隨指尖壓力的變化趨勢曲線(見圖 9)。可以看出,當壓力從零逐漸增加時,交流量也隨之增加,到達某一最大值后隨著壓力增加交流量逐漸減小。所以在測量時,手指與攝像頭之間應保持一定的壓力,結合圖 8,建議人體手指與攝像頭之間的壓力在 0.3~0.7 N 范圍內,此區間內更易提取出信噪比較高且包含特征信息的脈搏信號。
 圖9
				脈搏信號交流量隨壓力變化曲線
			
												
				Figure9.
				Variation curve of AC volume of pulse signal with   pressure
						
				圖9
				脈搏信號交流量隨壓力變化曲線
			
												
				Figure9.
				Variation curve of AC volume of pulse signal with   pressure
			
								3.3 不同測試者心率提取結果
為了檢驗算法的可靠性,我們選擇了 10 位測試者,使用 iphone 手機采集他們非運動狀態下的右手食指視頻圖像。本次實驗測試者均知情同意。在實驗前,先讓測試者熟悉本次實驗流程,儀器準備就緒后開始實驗。首先將右手食指貼在智能手機后置攝像頭上,手指與攝像頭之間保持一定的壓力,同時使用 glad-stone 公司生產的指夾式脈搏血氧儀夾持在左手食指上,準備就緒后開始采集手指視頻信息,待脈搏血氧儀數據穩定后記錄下心率值,視頻采集結束,保存視頻信息并編號,通過藍牙無線傳輸功能將視頻信息保存到 PC 端,以上過程均由視頻采集人員輔助完成。最后通過 MATLAB 平臺對視頻圖像分析處理,獲得人體脈搏信號,通過搜索算法獲得脈搏信號的峰谷值信息,利用式(11)計算人體心率信息:
|  | 
 為心率值,
 為心率值, 為手機視頻圖像采樣率,
 為手機視頻圖像采樣率, 為一維脈搏信號包含的總的峰值點個數,
 為一維脈搏信號包含的總的峰值點個數, 為起始峰值點包含的總的采樣點數。將計算獲得的心率值與指夾式脈搏血氧儀所檢測心率值進行比對,指夾式脈搏血氧儀型號為 YK-83C,測量精度 ± 1 次/分,對比結果見表 2,最大誤差 ± 2 次/分,平均相對誤差為 1.59%,進一步驗證了算法的可靠性。
 為起始峰值點包含的總的采樣點數。將計算獲得的心率值與指夾式脈搏血氧儀所檢測心率值進行比對,指夾式脈搏血氧儀型號為 YK-83C,測量精度 ± 1 次/分,對比結果見表 2,最大誤差 ± 2 次/分,平均相對誤差為 1.59%,進一步驗證了算法的可靠性。
 表2
                心率檢測結果對比
		 	
		 			 				Table2.
    			Comparison of the results of heart rate measurement
			
						表2
                心率檢測結果對比
		 	
		 			 				Table2.
    			Comparison of the results of heart rate measurement
       		
       				3.4 誤差分析
要想獲得理想的脈搏信號,首先需要準確提取 ROI。在測量時,手指難免會不自覺抖動,導致手指與攝像頭之間的壓力或者手指位置存在微小變動,從而產生運動噪聲,但是由于所選 ROI 較大,一定程度上可以降低運動噪聲。另外,由于采樣時間較短,所測心率與實際心率值之間必然會存在一定誤差。將本文方法與同類相關研究進行比較,結果見表 3。通過實驗結果及相關工作對比可以看出,本文使用的方法在計算心率信息時可靠性更高。
 表3
                實驗結果對比
		 	
		 			 				Table3.
    			Comparison of experimental results
			
						表3
                實驗結果對比
		 	
		 			 				Table3.
    			Comparison of experimental results
       		
       				4 結論
通過智能手機采集手指視頻圖像,采用基于迭代的閾值分割算法實現了紅像素自適應脈搏信號提取,不同設備檢測結果顯示,不管是否存在飽和失真現象,本文提出的算法都能有效地將非飽和區域提取出來。采用零相位數字濾波器濾除噪聲干擾,并對信號做了插值處理,經過處理后的脈搏信號相比原始信號更加光滑,特征更加明顯,有助于后續特征值的準確提取。本研究還給出了人體手指與攝像頭之間的壓力建議范圍,此范圍內易于提取出信噪比較高且包含特征信息的脈搏信號。心率檢測結果顯示最大誤差 ± 2 次/分,平均相對誤差 1.59%,驗證了算法的可靠性。通過智能手機平臺提取生理信息不需要借助其他輔助設備,具有很強的實用價值,可以預見未來手機平臺上必將會開發出更多可靠的輔助生理檢測應用。
利益沖突聲明:本文全體作者均聲明不存在利益沖突。
引言
隨著我國人口老齡化程度加重,心血管病患者越來越多。國家心血管病中心發布的《中國心血管病報告 2017》概要[1]顯示,中國心血管病患病率近年來處于一種持續上升狀態,急需一種簡單便攜的心血管病監測方案。智能手機的普及以及性能的提升,使其越來越成為理想的生理監測載體[2]。
通過智能手機獲取脈搏信號的方法,最早由 Pelegris 等[3]提出,其通過計算每幀圖像灰度均值獲得脈搏信號。Jonathan 等[4]考慮了 R、G、B 分量的差異,通過人為選定不同分量計算區域,獲得了三通道的脈搏信號。Karlen 等[5]提出了一種感興趣區域(region of interest,ROI)選取方法,通過將單幀圖片分割成多個子區域,計算子區域灰度均值,獲得多個脈搏信號,然后比較其幅值變化范圍,從而選擇最佳 ROI。然而隨著視頻圖像分辨率的提高,該方法需要計算的通道數大大增加,故較少采用。Scully 等[6]、Nam 等[7]將通過智能手機提取的脈搏信號與專業的心電圖設備進行了比較,結果證實了手機獲取的脈搏信號的可靠性。
本文擬通過手指視頻圖像 R 分量來提取脈搏信號。現有的該類研究大多數基于 G 分量,而 R 分量相比于 G 分量,其灰度變化幅度更大,更容易提取出脈搏信號[8-9]。而且,R 分量與 B 分量的組合符合血氧飽和度檢測的雙波長條件[10-11],通過 R 分量提取脈搏信號具有一定的研究價值。但是目前通過智能手機采集的指尖視頻圖像,其 R 分量普遍存在飽和失真現象,將飽和區域作為計算區域,將得不到脈搏信號。針對飽和失真現象,本文提出了一種基于迭代的閾值分割算法,自適應生成 R 分量非飽和區域,將非飽和區域作為 ROI,從而提取出脈搏信號。
1 基于指尖視頻圖像的脈搏信號獲取方法
1.1 基于指尖視頻圖像的脈搏信號獲取流程
脈搏信號提取流程見圖 1。首先打開智能手機視頻錄制功能,關閉手機白平衡功能,避免其影響數據的可靠性[5]。然后將食指指尖貼到智能手機后置攝像頭上,使用 LED 燈補光,手機上將采集到包含有生理信息的彩色視頻圖像。考慮到手機端處理速度較慢,為了提高處理效率,利用藍牙將視頻圖像傳輸到了個人計算機(personal computer,PC)上,在 PC 端完成視頻圖像的分析處理,從而提取出生理信息。在采集時,手指盡量保持靜止狀態。在獲得視頻信息后,首先經過視頻幀處理,獲得包含生理信息的多幀彩色圖片,再經過 RGB 通道分離提取出 R 分量,然后提取 ROI,通過計算每幀 R 分量 ROI 灰度均值,獲得一維原始脈搏信號:
 圖1
				脈搏信號提取流程圖
			
												
				Figure1.
				The chart of pulse signal extraction
						
				圖1
				脈搏信號提取流程圖
			
												
				Figure1.
				The chart of pulse signal extraction
			
								|  | 
 為 ROI 內總的像素點,
 為 ROI 內總的像素點, 為 R 分量第
 為 R 分量第  幀 ROI 內的第
 幀 ROI 內的第  個像素點的灰度值,
 個像素點的灰度值, 為手機視頻圖像采樣率。
 為手機視頻圖像采樣率。
1.2 R 分量飽和失真現象
目前智能手機普遍采用 8 bit 量化方式,由于量化級數的限制,超過最大量化級數的區域只能顯示最大灰度值 255,失去了真實的灰度信息,其被稱之為飽和失真現象。飽和區域并不固定,其與特定設備有關。除此之外,每一幀的飽和區域也會隨著血容積變化而有微小變化,所以在檢測時需要提取出最優非飽和區域,該區域內每一幀都不會出現飽和失真現象。圖 2a 為提取出的第一幀 R 分量偽彩色圖,其白色區域對應飽和失真區域;圖 2b 為其灰度統計直方圖,從直方圖中可以更加直觀地看出多個像素處于飽和狀態,即最大灰度值 255;圖 2c 為 R 分量單個像素點在時間序列上的標準差所組成的三維曲面圖,m、n 分別代表經過下采樣的單幀圖片的行和列,縱軸為標準差。圖 2c 能直觀地反映飽和失真現象,藍色部分幾乎全接近零值,說明其灰度值隨時間變化較小,對應于飽和區域;相反,黃色部分值較大,說明其隨時間變化較明顯,對應非飽和區域。
 圖2
				R 分量飽和失真現象介紹
						
				圖2
				R 分量飽和失真現象介紹
			
									a. R 分量第一幀偽彩色圖;b. 與 a 對應的灰度統計直方圖;c. R 分量標準差三維曲面圖
Figure2. Introduction to saturation distortion of R componenta. pseudocolor image of the first frame of R component; b. grayscale statistic histogram corresponding to fig. a; c. three-dimensional surface diagram of standard deviation of R component
1.3 基于迭代的閾值分割方法生成 ROI
經過 RGB 通道分離提取出 R 分量后,需要選取合適的 ROI。由于飽和區域因飽和失真現象失去了原有的灰度信息,所以將非飽和區域作為 ROI。脈搏信號具有周期性,即視頻圖像灰度值會呈現周期性變化,所以在檢測時只需檢測一個脈搏周期對應的序列圖片,就能將最優非飽和區域篩選出來,飽和區域存在一個共同的特性,絕大多數灰度值為 255,所以我們自定義了一個閾值函數:
|  | 
T 為閾值,將其設定為 255 可以有效去除飽和區域,但是為了避免后續幀灰度值向上波動導致非飽和區域再次出現部分飽和失真現象,將其適當減小設定為 250。將第一幀 R 分量 A1 經過閾值處理后得到二值矩陣 T1,為了便于直觀地感受飽和區域,在顯示時將灰度值進行了反轉,如圖 3 所示。其中白色區域對應飽和區域,黑色區域對應非飽和區域,由于探測器存在隨機噪聲,使得白色區域內還存在微小黑色區域。這些點使得 n 值不準確,將其稱為噪聲點。在獲得 T1 后,將第二幀 R 分量 A2 與 T1 對應元素相乘生成復合矩陣 C1:
 圖3
				不同 k 值生成的 R 分量非飽和區域
			
												
				Figure3.
				Unsaturated region of R component generated by different k values
						
				圖3
				不同 k 值生成的 R 分量非飽和區域
			
												
				Figure3.
				Unsaturated region of R component generated by different k values
			
								|  | 
即:
|  | 
在 C1 中,上一幀飽和像素點  經過點乘運算后仍為零,將 C1 做上述自定義閾值處理后,獲得二值矩陣 T2,再將 T2 與下一幀 R 分量對應元素相乘生成復合矩陣 C2,依次迭代 k 次,Tk 內非零值區域即為最終的 ROI,可以看出,隨著 k 值增加,黑色區域逐漸縮小,逐漸接近最優 ROI,統計 ROI 內非零值個數即可得到
 經過點乘運算后仍為零,將 C1 做上述自定義閾值處理后,獲得二值矩陣 T2,再將 T2 與下一幀 R 分量對應元素相乘生成復合矩陣 C2,依次迭代 k 次,Tk 內非零值區域即為最終的 ROI,可以看出,隨著 k 值增加,黑色區域逐漸縮小,逐漸接近最優 ROI,統計 ROI 內非零值個數即可得到  。在選取
。在選取  時,應包含一個脈搏周期:
 時,應包含一個脈搏周期:
|  | 
 為正常人最低心率,一般不低于 40 次/分,手機采樣率
 為正常人最低心率,一般不低于 40 次/分,手機采樣率  普遍為 30 Hz,基于此,
 普遍為 30 Hz,基于此, 值選為 45。對于噪聲干擾點,在做迭代閾值分割處理時,只有每一幀都未飽和才會被納入最終的 ROI 里面,再經過 k 次閾值處理,概率將趨于零,從圖 3 中 k = 20、k = 45 兩圖可以看出,噪聲點已完全被消除。
 值選為 45。對于噪聲干擾點,在做迭代閾值分割處理時,只有每一幀都未飽和才會被納入最終的 ROI 里面,再經過 k 次閾值處理,概率將趨于零,從圖 3 中 k = 20、k = 45 兩圖可以看出,噪聲點已完全被消除。
1.4 脈搏波信號獲取
在獲得理想的 ROI 之后,統計 ROI 內非零值個數,通過式(1)計算每一幀 ROI 的灰度均值,再通過求反運算,即可得到脈搏波信號。考慮到探測器隨機噪聲的干擾,在獲得理想區域后,對每幀圖片做了一次 5 × 5 大小的中值濾波處理,圖 4 為通過 R 分量提取出的脈搏信號。
 圖4
				提取 R 分量獲得的脈搏信號
			
												
				Figure4.
				Pulse signal obtained by R component
						
				圖4
				提取 R 分量獲得的脈搏信號
			
												
				Figure4.
				Pulse signal obtained by R component
			
								2 脈搏信號處理
2.1 零相位數字濾波原理
可以看出,原始脈搏信號存在很強的基線漂移噪聲,除此之外,在下降沿還存在高頻脈沖噪聲,主要是因為采集過程中存在隨機噪聲及環境光干擾。去除這些噪聲的方法主要有形態濾波法[12]、經驗模態分解[13]及小波變換[14]等。形態濾波法去除基線漂移噪聲簡單有效,但無法直接濾除高頻噪聲;經驗模態分解重構過程中需要多次擬合,容易產生誤差;小波變換則依賴于小波基的選取。
傳統的數字濾波方法除了會改變輸入信號每一頻率分量的復振幅,還會導致相位發生變化,使得輸入信號經過 LTI 系統后存在相位失真,而脈搏信號特征值的提取需要保留原始信號的相位信息。為獲得零相位失真信號,可以先將輸入序列按順序濾波,然后將所得結果逆轉后反向通過濾波器,再將所得結果逆轉后輸出,即可得精確零相位失真的輸出信號,將其稱為零相位數字濾波(Forward filter,Reverse filter,Reverse output,FRR)[15],其數學證明如下:
|  | 
|  | 
|  | 
|  | 
可得:
|  | 
 為輸入信號,
 為輸入信號, 為輸出信號,
 為輸出信號, 為輸入信號在頻率域表示,
 為輸入信號在頻率域表示, 為輸出信號在頻率域表示,由式(10)可以看出,輸出信號與輸入信號之間不存在相位關系,即輸出為零相位失真信號。
 為輸出信號在頻率域表示,由式(10)可以看出,輸出信號與輸入信號之間不存在相位關系,即輸出為零相位失真信號。
2.2 利用零相位數字濾波器去除脈搏信號基線漂移及高頻噪聲
通過智能手機平臺提取脈搏信號方法相對于傳統的光電容積描記(photoplethysmography,PPG)系統,增加了將光強信號轉變為圖像信號這一步驟,同時減少了信號采樣率。脈搏信號頻率主要集中在 0.7~3.0 Hz 這一區間,為了濾除噪聲頻率,采用 3 階巴特沃斯帶通濾波器作為 FRR 的基礎濾波器,設計其通帶范圍 0.7~3.0 Hz,阻帶上限頻率 5.0 Hz,阻帶下限頻率 0.4 Hz,帶邊頻率衰減 ≤ 3 dB,0.4 Hz 以下及 5.0 Hz 以上衰減 ≥ 18 dB,將原始信號經過 FRR 濾波器后即可得到去除基線漂移及高頻噪聲的脈搏信號。由于原始信號采樣率較低,我們利用三次樣條函數對濾波后的信號進行了插值處理,將采樣率提高到了 300 Hz,有利于特征信息的準確提取。圖 5 為經過濾波及插值處理后的歸一化脈搏信號,可以看出,經過處理后的脈搏信號在形態上更加接近于傳統的脈搏信號,同時包含了重搏波等細節信息。
 圖5
				去除噪聲信號
			
												
				Figure5.
				Signals after removing the noises
						
				圖5
				去除噪聲信號
			
												
				Figure5.
				Signals after removing the noises
			
								3 結果分析
3.1 不同智能手機 ROI 提取
為了驗證算法的普適性,我們選取了 5 款不同的智能手機,分別采集了同一測試者的手指視頻圖像,采用本文提出的算法計算 ROI。其設備性能如表 1 所示,檢測結果如圖 6 所示,白色對應飽和區域,黑色對應非飽和區域。可以看出,除小米手機外,其余幾款手機都存在飽和失真現象,但是不管是否存在飽和失真現象,本文提出的方法都能有效地提取出 ROI。
 表1
                不同智能手機性能對比
		 	
		 			 				Table1.
    			Performance comparison of different smartphones
			
						表1
                不同智能手機性能對比
		 	
		 			 				Table1.
    			Performance comparison of different smartphones
       		
       				 圖6
				不同設備非飽和區域檢測結果
			
												
				Figure6.
				Detection results of unsaturated regions on different equipment
						
				圖6
				不同設備非飽和區域檢測結果
			
												
				Figure6.
				Detection results of unsaturated regions on different equipment
			
								3.2 不同壓力下脈搏信號對比
手指與手機攝像頭接觸時,因為個體習慣的不同,手指與攝像頭之間會存在不同的壓力。目前對壓力導致的差異研究較少,在采集脈搏信號時,主要的方式為皮膚組織與檢測設備之間不施加壓力。基于此,有必要研究在智能手機上提取脈搏信號時,不同壓力對脈搏信號的影響。本文采用了一種傾斜智能設備的方法來提取不同壓力下的脈搏信號,如圖 7 所示。具體的方式為:在實驗平臺上固定智能設備底端側面,防止其往兩端滑動,然后食指緊貼后置攝像頭,通過智能手機傾斜不同的角度來增加手指與攝像頭之間的壓力,并對傾斜壓力 F 進行了測定,傾斜角度 θ 逐漸增加,然后采集不同角度下的手指視頻圖像,其對應了不同壓力下的脈搏信號。
 圖7
				不同壓力下脈搏信號提取示意圖
			
												
				Figure7.
				Schematic diagram of pulse signal extraction under   different pressure
						
				圖7
				不同壓力下脈搏信號提取示意圖
			
												
				Figure7.
				Schematic diagram of pulse signal extraction under   different pressure
			
								圖 8 為不同壓力下的原始脈搏信號,可以看出,不施加壓力及壓力為 1.2 N 時獲得的脈搏信號信噪比較低。此外,不同壓力下脈搏信號峰峰值也相差較大,峰峰值即相鄰峰谷值差。雖然壓力改變了脈搏信號峰峰值大小,但是其對脈搏信號某些特征信息影響不大,比如峰值點個數,說明在一定范圍內,壓力對心率信息影響較小。
 圖8
				不同壓力下脈搏信號對比
			
												
				Figure8.
				Comparison of pulse signals under different pressures
						
				圖8
				不同壓力下脈搏信號對比
			
												
				Figure8.
				Comparison of pulse signals under different pressures
			
								為了進一步明確壓力對脈搏信號幅值的影響,我們提取了不同壓力下的峰峰值,以多個脈搏周期峰峰值的平均值來代表不同壓力下的交流量,繪制了脈搏信號交流量隨指尖壓力的變化趨勢曲線(見圖 9)。可以看出,當壓力從零逐漸增加時,交流量也隨之增加,到達某一最大值后隨著壓力增加交流量逐漸減小。所以在測量時,手指與攝像頭之間應保持一定的壓力,結合圖 8,建議人體手指與攝像頭之間的壓力在 0.3~0.7 N 范圍內,此區間內更易提取出信噪比較高且包含特征信息的脈搏信號。
 圖9
				脈搏信號交流量隨壓力變化曲線
			
												
				Figure9.
				Variation curve of AC volume of pulse signal with   pressure
						
				圖9
				脈搏信號交流量隨壓力變化曲線
			
												
				Figure9.
				Variation curve of AC volume of pulse signal with   pressure
			
								3.3 不同測試者心率提取結果
為了檢驗算法的可靠性,我們選擇了 10 位測試者,使用 iphone 手機采集他們非運動狀態下的右手食指視頻圖像。本次實驗測試者均知情同意。在實驗前,先讓測試者熟悉本次實驗流程,儀器準備就緒后開始實驗。首先將右手食指貼在智能手機后置攝像頭上,手指與攝像頭之間保持一定的壓力,同時使用 glad-stone 公司生產的指夾式脈搏血氧儀夾持在左手食指上,準備就緒后開始采集手指視頻信息,待脈搏血氧儀數據穩定后記錄下心率值,視頻采集結束,保存視頻信息并編號,通過藍牙無線傳輸功能將視頻信息保存到 PC 端,以上過程均由視頻采集人員輔助完成。最后通過 MATLAB 平臺對視頻圖像分析處理,獲得人體脈搏信號,通過搜索算法獲得脈搏信號的峰谷值信息,利用式(11)計算人體心率信息:
|  | 
 為心率值,
 為心率值, 為手機視頻圖像采樣率,
 為手機視頻圖像采樣率, 為一維脈搏信號包含的總的峰值點個數,
 為一維脈搏信號包含的總的峰值點個數, 為起始峰值點包含的總的采樣點數。將計算獲得的心率值與指夾式脈搏血氧儀所檢測心率值進行比對,指夾式脈搏血氧儀型號為 YK-83C,測量精度 ± 1 次/分,對比結果見表 2,最大誤差 ± 2 次/分,平均相對誤差為 1.59%,進一步驗證了算法的可靠性。
 為起始峰值點包含的總的采樣點數。將計算獲得的心率值與指夾式脈搏血氧儀所檢測心率值進行比對,指夾式脈搏血氧儀型號為 YK-83C,測量精度 ± 1 次/分,對比結果見表 2,最大誤差 ± 2 次/分,平均相對誤差為 1.59%,進一步驗證了算法的可靠性。
 表2
                心率檢測結果對比
		 	
		 			 				Table2.
    			Comparison of the results of heart rate measurement
			
						表2
                心率檢測結果對比
		 	
		 			 				Table2.
    			Comparison of the results of heart rate measurement
       		
       				3.4 誤差分析
要想獲得理想的脈搏信號,首先需要準確提取 ROI。在測量時,手指難免會不自覺抖動,導致手指與攝像頭之間的壓力或者手指位置存在微小變動,從而產生運動噪聲,但是由于所選 ROI 較大,一定程度上可以降低運動噪聲。另外,由于采樣時間較短,所測心率與實際心率值之間必然會存在一定誤差。將本文方法與同類相關研究進行比較,結果見表 3。通過實驗結果及相關工作對比可以看出,本文使用的方法在計算心率信息時可靠性更高。
 表3
                實驗結果對比
		 	
		 			 				Table3.
    			Comparison of experimental results
			
						表3
                實驗結果對比
		 	
		 			 				Table3.
    			Comparison of experimental results
       		
       				4 結論
通過智能手機采集手指視頻圖像,采用基于迭代的閾值分割算法實現了紅像素自適應脈搏信號提取,不同設備檢測結果顯示,不管是否存在飽和失真現象,本文提出的算法都能有效地將非飽和區域提取出來。采用零相位數字濾波器濾除噪聲干擾,并對信號做了插值處理,經過處理后的脈搏信號相比原始信號更加光滑,特征更加明顯,有助于后續特征值的準確提取。本研究還給出了人體手指與攝像頭之間的壓力建議范圍,此范圍內易于提取出信噪比較高且包含特征信息的脈搏信號。心率檢測結果顯示最大誤差 ± 2 次/分,平均相對誤差 1.59%,驗證了算法的可靠性。通過智能手機平臺提取生理信息不需要借助其他輔助設備,具有很強的實用價值,可以預見未來手機平臺上必將會開發出更多可靠的輔助生理檢測應用。
利益沖突聲明:本文全體作者均聲明不存在利益沖突。
 
        

 
                 
				 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	 
                                                                    
                                                                        
                                                                        
                                                                         
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	 
																   	
                                                                    
                                                                    
																	