張文濤,丑永新*,李 鑫,丁 凱,楊 苗,2
(1.常熟理工學院 電氣與自動化工程學院, 江蘇 蘇州 215500;2.蘭州理工大學 電氣工程與信息工程學院,甘肅 蘭州 730050)
身份識別作為一種信息安全技術,已經廣泛地應用到安防、支付、社交等多個領域。依據密碼、證件、鑰匙等傳統身份識別技術存在易被復制、竊取或者遺忘等缺陷,已不能滿足信息安全的應用需求。人體生物特征具有唯一性,指紋[1-3]、人臉[4-6]、虹膜等生物特征已廣泛用于身份識別。然而,人體指紋可以被復制,人臉隨著年齡增長會不斷變化,虹膜需要近距離采集,這些問題在身份識別應用中日益凸顯,識別精度有待提高。
心臟收縮與舒展的驅動下,血液在心血管系統中往復循環,在人體皮膚的淺表脈管處(如指端、耳垂、橈動脈等處)獲取的脈搏信號,可以間接反映心血管系統的運行規律。人體心血管系統結構具有唯一性,其運行規律具有很強的穩定性,因此,脈搏信號可用于身份識別。
到目前為止,已有學者嘗試研究基于脈搏信號的身份識別方法。有學者從脈搏信號時域波形中提取主波間期、波谷、重搏波和波峰等特征進行身份識別[7];有學者從脈搏主波間期的一階和二階導數中提取特征點,基于KNN等方法進行身份識別[8];也有學者直接對分割后的脈搏波通過徑向基函數網絡、貝葉斯分類器、卷積神經網絡等機器學習算法分類,實現身份識別[9-11],這些研究成果表明脈搏信號可用于身份識別。然而,從脈搏信號時域波形和主波間期中提取的特征主觀性較強,泛化性能差,直接基于脈搏波進行智能識別的算法運算量大,且準確性有待提高。近年來,有學者提出脈搏信號解析建模技術,對人體脈搏信號變化進行量化分析,已廣泛用于性別[12]、年齡[13]和心血管疾病[14]識別等領域。成碩等人提出一種基于脈搏信號解析建模的身份識別技術[15],為本研究工作的開展奠定了理論基礎和科學依據。
因此,本研究提出一種基于脈搏信號的身份識別系統設計方法。系統由上位機和下位機組成,下位機進行脈搏信號的采集和無線發送;上位機實現脈搏信號的處理和分析,并得出識別結果。同時,為了驗證系統的可靠性,設計試驗對所研制系統的準確性進行評估。
所研制系統的總體設計如圖1所示。系統由上位機和下位機組成,上下位機之間通過WiFi連接,進行數據通信和無線傳輸。下位機以STM32單片機為核心,實現脈搏信號的采集、打包和無線遠傳;在PC端基于LabVIEW軟件開發人機交互界面,對接收的脈搏信號進行接收、濾波、分割、解析建模和身份智能識別,并給出識別結果。

圖1 系統總體設計Fig.1 Scheme of system
下位機由脈搏傳感器、信號采集模塊、無線通信模塊和電源模塊組成。其中,脈搏傳感器獲取模擬脈搏信號,信號采集模塊實現模擬脈搏信號的AD轉換和數據打包,由無線通信模塊將打包后的數據發送至上位機。
1.2.1 脈搏傳感器
采用醫用透射式光電容積脈搏傳感器HKG-07B拾取指尖處脈搏信號。該傳感器由光源和光電變換器組成,光源發射的光線會透過指尖,由于脈搏的搏動,使得光的透光率發生變化,光電變換器將這一變化轉換為電壓的變化并將其放大后輸出,傳感器實物圖及接口說明如圖2所示。

圖2 HKG-07B及接口說明Fig.2 HKG-07B ang its interface
1.2.2 信號采集模塊
以STM32單片機為核心搭建信號采集模塊,如圖3所示,為其最小系統電路圖。STM32單片機內部集成了3個μs級的A/D轉換器(16通道)和2通道12位的D/A轉換器,將脈搏傳感器的輸出端與單片機的ADC_IN9(19腳)相連。在單片機中,采用定時中斷的方式對模擬脈搏信號進行采樣,采樣頻率為500 Hz,得到數字脈搏信號。

圖3 STM32單片機最小系統電路圖Fig.3 Minimum system of STM32
在得到數字脈搏信號后,在單片機中對其進行打包,送往無線通信模塊,無線傳輸模塊將數據無線傳輸至上位機。為了保證上位機接收到的脈搏數據正確性,下位機在發送數據時以幀頭、脈搏數據、幀尾的固定格式發送,上位機接收到數據后,需要對數據進行解析,通過這種方式可以有效提高數據傳輸的穩定性,數據幀格式如表1所示。

表1 數據幀格式Tab.1 Data format for frames
1.2.3 無線通信模塊
為了提高系統的便攜性,采用無線的方式實現上下位機的通信,選擇ESP8266 WiFi模塊實現無線通信。該模塊與單片機的連接如圖4所示,將該模塊的TX和RX引腳與STM32單片機的21和22腳相連,單片機可通過對ESP8266串口發送AT指令來配置WiFi、連接服務器和數據發送。

圖4 ESP8266模塊電路圖Fig.4 Circuit of ESP8266 module
首先,配置ESP8266的WiFi模式為STA模式并連接路由器;然后,配置為單路連接模式并開啟WiFi透傳,連接TCP服務器并進入透傳模式;最后,STM32單片機將打包的數據通過DMA發送到串口,由ESP8266 WiFi模塊發送至上位機。
1.2.4 電源模塊
電源模塊采用5 V、1 A可充電鋰電池。由于STM32單片機和HKG-07B傳感器需要3.3 V電壓供電,所以添加了穩壓電路的設計,穩壓電路采用SPX3819穩壓芯片,將鋰電池輸入的5 V電壓轉為3.3 V的穩定電壓。為了消除在電流傳遞途中因布線等問題造成的電磁干擾,對穩壓后的電路另外添加去耦電容電路,可有效消除在電流傳遞過程中產生的高頻電磁干擾,同時還能起到蓄能的作用,削弱因電流變化導致的對采集電路的干擾。
穩壓電路如圖5所示。電流從5V處輸入,經過C1和C2兩個電容對輸入的電流進行濾波,使輸入更加平滑,經過SPX3819穩壓芯片后,芯片輸出端為3.3 V的穩定電壓,同時在輸出端并聯C3和C4兩個電容以確保器件的穩定。

圖5 穩壓電路圖Fig.5 Circuit of Voltage Regulator
去耦電容電路如圖6所示。C8、C9、C10和C11并聯后接在穩壓芯片輸出端3.3 V和GND兩端,可有效消除在電流傳遞過程中產生的高頻電磁干擾。

圖6 去耦電容電路圖Fig.6 Circuit of decoupling capacitor
1.2.5 下位機實物
下位機實物如圖7所示,由可充電鋰電池、HKG-07B脈搏傳感器、ESP8266 WiFi模塊和STM32電路板構成。預留出鋰電池DC插頭、傳感器接口、WiFi模塊接口和程序下載接口。鋰電池可通過插入DC插頭給下位機系統供電,HKG-07B脈搏傳感器通過3.5 mm的耳機座從單片機中獲取電能,同時輸出采集到的脈搏信號,使用J-Link實現程序的下載與調試。

(a) 下位機PCB電路

(b) 下位機整體實物圖
在PC端基于LabVIEW軟件開發了人機交互界面,如圖8所示。該界面主要包括:信息提示區、系統控制區、數據處理結果顯示區、身份識別結果顯示區。

圖8 上位機人機交互界面Fig.8 Human-computer interface in master module
信息提示區位于界面中間區域,用黃色標識。顯示系統當前所處的狀態,包括“TCP連接成功”“數據采集”“脈搏波分割”“解析建模”“識別成功/失敗”5種狀態。
系統控制區包含“開始采集”“存儲數據”“識別糾正”“退出系統”4個按鍵。其中,在系統學習階段,系統的識別率較低,設置了“識別糾正”功能。當識別錯誤后,彈出圖9所示的信息輸入界面,重新輸入采集對象信息,系統會根據采集對象信息整合數據,重新識別。

圖9 信息輸入界面Fig.9 Information input interface
數據處理結果顯示區主要顯示系統運行中數據的處理過程,讓數據可視化。該區域主要包括4個數據顯示圖:原始的脈搏信號、濾波后的脈搏信號、信號分割的數據和解析建模的脈搏波。
身份識別結果顯示區主要顯示身份識別的結果,包含識別者信息、標簽和識別率三部分,識別率在70%以上為識別成功。
上位機實現基于脈搏信號的身份識別,主要流程如圖10所示。首先,對WiFi模塊發送的數據進行接收和解析。然后,對脈搏信號進行濾波、脈搏波分割、模型求解和智能識別,并給出識別結果。

圖10 身份識別主流程圖Fig.10 Main flow chart of identityauthentication
2.2.1 脈搏信號濾波
接收到的脈搏信號中,含有基線漂移、工頻干擾和肌電干擾。設計低通濾波器濾除肌電干擾,設計陷波器濾除基線漂移和工頻干擾。低通濾波器的傳遞函數為:
(1)
式中,M=fs/f0,n為濾波器的階數,f0為低通濾波器的截止頻率。本系統的采樣頻率為500 Hz,經過試驗,n=1,f0=60 Hz,即M=500/60≈8時,濾波效果最佳。
陷波濾波器的傳遞函數為:
(2)
式中,Q表示濾波器的增益記,R為濾波器傳遞函數的分子階數,P為濾波器傳遞函數的分母階數,n為濾波器的階數。M=fs/f0,Q=R/P,f0表示帶阻濾波器的第一個截止頻率。由于采樣頻率為500 Hz,經過試驗測得到當f0=50,P=10,Q=32,R=320,n=2時,系統的濾波效果最佳。
本系統使用MathScript節點與自帶的IIR濾波器實現脈搏信號的低通濾波器和陷波器,如圖11所示。

圖11 濾波器的編程實現Fig.11 Filter programmingin Lab VIEW
2.2.2 脈搏波分割
心臟收縮導致的波稱為脈搏信號的主波,而心臟舒張產生脈搏信號的降支,直至達到最低點,稱為波谷,該點也被定義為脈搏波的起點。主波為脈搏波中最突出的波,容易檢測,因此,尋找到兩個主波的位置,然后求出兩波峰的最小值點便是波谷點。脈搏波分割流程如圖12所示。首先,將存儲的脈搏數據讀取出來,求取該數據的最大值和平均值,將最大值與平均值之和的0.3倍作為最終的閾值。然后,將數據中大于閾值的點置1,將小于閾值的點置0,得到一個新的數組X,再用讀取的原數據與X點乘就得到了大于閾值的曲線。對數組X進行差分,值為-1的點便是大于閾值曲線的起點和終點,求出兩點間的最大值點就是P波的峰值點。

圖12 脈搏波分割流程Fig.12 Pulse wave segmentation process
2.2.3 脈搏信號建模與特征提取
脈搏信號建模與特征提取的流程如圖13所示。首先,根據分割得到的波谷計算出脈搏主波間期PPI,PPI(i)表示第i個脈搏波的寬度,BG則是讀取的波谷點位置。計算公式為:

圖13 脈搏信號建模與特征提取流程圖Fig.13 Pulse signal modeling and feature extraction flowchart
PPI(i)=BG(i+1)-BG(i)。
(3)
然后,對脈搏波進行歸一化,降低幅值差異的影響。采樣了Min-Max歸一化方法,將數據統一縮放到區間[0,1]上。Min-Max歸一化公式如下:
(4)
在此基礎上,使用“spline”三次樣條插值歸一化的方法,將所有的脈搏波通過插值的方式將每個脈搏波的長度固定為1 000個點,來消除脈搏寬度的影響。
在對脈搏波進行解析建模之前,計算脈搏波基線的公式為:
(5)
式中,yi(1)表示第i個脈搏波的起點,ki表示第1個脈搏波基線斜率,bi為第i個脈搏波的縱截波,yi(PPI(i))表示第i個脈搏波的終點,PPI(i)表示第i個脈搏波的寬度,xit表示第i個時間點。
從脈搏波中減去基線,并采用非線性最小二乘法求解三高斯模型的參數[13],將得到9個特征值,加上前面求解的PPI和脈搏基線函數,一共獲得12個特征值,特征點集如下:
(6)

P=[PPI,K,B,A1,B1,C1,A2,B2,C2,A3,B3,C3]。
(7)
2.2.4 基于脈搏信號的身份識別
對于建模得到的特征向量集,采用隨機森林法以采集對象為單位進行身份智能識別。隨機森林采用隨機的方式來創建,其包含多個決策樹的集成分類器。隨機森林的核心思想可以看做是兩個關鍵詞,一個是“隨機”,一個是“森林”。本采用Matlab自帶的 ‘randomforest-matlab’工具箱設計分類器,其中用于構建隨機森林分類器訓練的函數為:model_RF = classRF_train(P_train,T_train,ntree);函數中參數P_train表示訓練集的輸入樣本矩陣,T_train表示為訓練集的輸出樣本向量,ntree為隨機森林決策樹的個數。
對訓練好分類器進行測試的函數為:Results=classRF_predict(P_test,model_RF);函數的參數中P_test表示待預測樣本的輸入矩陣,model_RF為創建好的隨機森林分類器。在LabVIEW軟件,采用Matlab Script節點內嵌Matlab程序實現身份識別。
為了評估系統身份識別的準確性,在實驗室招募20名采集對象進行系統測試。每名同學采集90 s的脈搏數據,并對其進行標簽分配,第一名對象標簽是1,最后一個的標簽則是20,以此類推,標簽與提取的特征建立對應關系。每個采集對象的識別概率如表2所示,可以看出,最高的是10號,概率為95.89%;最低的是13號,概率為32.74%(識別失敗)。大多數的測試者都能成功識別身份,以70%作為判別識別結果成功與否的閾值,則只有一名采集對象沒有識別,身份識別的準確率為19/20=95%。

表2 試驗結果Tab.2 Experimental Results
脈搏信號含有人體心血管系統豐富的生理和病理信息,不同個體心血管系統的特異性使得脈搏信號可用于身份識別。本文設計了一種基于脈搏信號的身份識別系統,該系統可采集脈搏信號,并對脈搏信號采用解析建模的方法進行量化分析,最后通過隨機森林的方法實現身份智能識別。實驗結果取得了較高的準確率,但是多數對象的識別概率較低,這是由于采集對象較少和脈搏信號采樣長度過短導致的。未來,將招募更多實驗對象,建立數據庫,對所提出的系統進行訓練,提高準確率。