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

圖1 系統(tǒng)總體設(shè)計(jì)Fig.1 Scheme of system
下位機(jī)由脈搏傳感器、信號(hào)采集模塊、無(wú)線通信模塊和電源模塊組成。其中,脈搏傳感器獲取模擬脈搏信號(hào),信號(hào)采集模塊實(shí)現(xiàn)模擬脈搏信號(hào)的AD轉(zhuǎn)換和數(shù)據(jù)打包,由無(wú)線通信模塊將打包后的數(shù)據(jù)發(fā)送至上位機(jī)。
1.2.1 脈搏傳感器
采用醫(yī)用透射式光電容積脈搏傳感器HKG-07B拾取指尖處脈搏信號(hào)。該傳感器由光源和光電變換器組成,光源發(fā)射的光線會(huì)透過指尖,由于脈搏的搏動(dòng),使得光的透光率發(fā)生變化,光電變換器將這一變化轉(zhuǎn)換為電壓的變化并將其放大后輸出,傳感器實(shí)物圖及接口說(shuō)明如圖2所示。

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

圖3 STM32單片機(jī)最小系統(tǒng)電路圖Fig.3 Minimum system of STM32
在得到數(shù)字脈搏信號(hào)后,在單片機(jī)中對(duì)其進(jìn)行打包,送往無(wú)線通信模塊,無(wú)線傳輸模塊將數(shù)據(jù)無(wú)線傳輸至上位機(jī)。為了保證上位機(jī)接收到的脈搏數(shù)據(jù)正確性,下位機(jī)在發(fā)送數(shù)據(jù)時(shí)以幀頭、脈搏數(shù)據(jù)、幀尾的固定格式發(fā)送,上位機(jī)接收到數(shù)據(jù)后,需要對(duì)數(shù)據(jù)進(jìn)行解析,通過這種方式可以有效提高數(shù)據(jù)傳輸?shù)姆€(wěn)定性,數(shù)據(jù)幀格式如表1所示。

表1 數(shù)據(jù)幀格式Tab.1 Data format for frames
1.2.3 無(wú)線通信模塊
為了提高系統(tǒng)的便攜性,采用無(wú)線的方式實(shí)現(xiàn)上下位機(jī)的通信,選擇ESP8266 WiFi模塊實(shí)現(xiàn)無(wú)線通信。該模塊與單片機(jī)的連接如圖4所示,將該模塊的TX和RX引腳與STM32單片機(jī)的21和22腳相連,單片機(jī)可通過對(duì)ESP8266串口發(fā)送AT指令來(lái)配置WiFi、連接服務(wù)器和數(shù)據(jù)發(fā)送。

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

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

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

(a) 下位機(jī)PCB電路

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

圖8 上位機(jī)人機(jī)交互界面Fig.8 Human-computer interface in master module
信息提示區(qū)位于界面中間區(qū)域,用黃色標(biāo)識(shí)。顯示系統(tǒng)當(dāng)前所處的狀態(tài),包括“TCP連接成功”“數(shù)據(jù)采集”“脈搏波分割”“解析建?!薄白R(shí)別成功/失敗”5種狀態(tài)。
系統(tǒng)控制區(qū)包含“開始采集”“存儲(chǔ)數(shù)據(jù)”“識(shí)別糾正”“退出系統(tǒng)”4個(gè)按鍵。其中,在系統(tǒng)學(xué)習(xí)階段,系統(tǒng)的識(shí)別率較低,設(shè)置了“識(shí)別糾正”功能。當(dāng)識(shí)別錯(cuò)誤后,彈出圖9所示的信息輸入界面,重新輸入采集對(duì)象信息,系統(tǒng)會(huì)根據(jù)采集對(duì)象信息整合數(shù)據(jù),重新識(shí)別。

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

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

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

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

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

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

表2 試驗(yàn)結(jié)果Tab.2 Experimental Results
脈搏信號(hào)含有人體心血管系統(tǒng)豐富的生理和病理信息,不同個(gè)體心血管系統(tǒng)的特異性使得脈搏信號(hào)可用于身份識(shí)別。本文設(shè)計(jì)了一種基于脈搏信號(hào)的身份識(shí)別系統(tǒng),該系統(tǒng)可采集脈搏信號(hào),并對(duì)脈搏信號(hào)采用解析建模的方法進(jìn)行量化分析,最后通過隨機(jī)森林的方法實(shí)現(xiàn)身份智能識(shí)別。實(shí)驗(yàn)結(jié)果取得了較高的準(zhǔn)確率,但是多數(shù)對(duì)象的識(shí)別概率較低,這是由于采集對(duì)象較少和脈搏信號(hào)采樣長(zhǎng)度過短導(dǎo)致的。未來(lái),將招募更多實(shí)驗(yàn)對(duì)象,建立數(shù)據(jù)庫(kù),對(duì)所提出的系統(tǒng)進(jìn)行訓(xùn)練,提高準(zhǔn)確率。