徐狄濤, 姜 斌, 包建榮, 劉 超, 朱 芳, 何劍海
(1.杭州電子科技大學(xué)通信工程學(xué)院,杭州310018;2.寧波職業(yè)技術(shù)學(xué)院電子信息工程學(xué)院,浙江寧波315800)
隨著可穿戴物聯(lián)設(shè)備推廣,其存儲(chǔ)的大量私人信息面臨丟失和泄露等問(wèn)題,故需采取措施來(lái)保護(hù)實(shí)驗(yàn)等場(chǎng)所敏感信息的安全[1]。傳統(tǒng)識(shí)別技術(shù)(指紋識(shí)別、密碼驗(yàn)證等)存在需要用戶合作、密碼遺忘、輸入錯(cuò)誤的問(wèn)題[2],而步態(tài)識(shí)別技術(shù)具有更安全的數(shù)據(jù)收集程序,不需要顯式用戶的交互,以及高抗欺詐性的優(yōu)點(diǎn)[3],通過(guò)將傳感器集成到各種可穿戴物聯(lián)網(wǎng)設(shè)備中,可以輕易地提取步態(tài)信號(hào)[4]。由于Arduino 源碼開(kāi)放且靈活性強(qiáng)[5-6],MEMS慣性傳感器體積小且廣泛運(yùn)用于電子設(shè)備[7-8],本文以Arduino 為硬件平臺(tái),Mpu6050 為采集模塊,藍(lán)牙為發(fā)送模塊,研發(fā)了成本低,體積小且通用性強(qiáng)的步態(tài)數(shù)據(jù)采集裝置,該裝置非常適用于高校實(shí)驗(yàn)室步態(tài)數(shù)據(jù)的采集與分析,使基于傳感器的步態(tài)識(shí)別更具成本效益。
國(guó)外,Muaaz等[9]用動(dòng)態(tài)時(shí)間規(guī)整(Dynamic Time Warping,DTW)對(duì)48 名志愿者的步態(tài)特征作匹配,得到相等錯(cuò)誤率(Equal Error Rate,EER)為16.26%的性能;Derawi 等[10]采用新的交叉DTW 方法進(jìn)行特征匹配,得到的準(zhǔn)確率為89.3%。國(guó)內(nèi),何書芹等[11]采用多尺度熵和DTW結(jié)合的方法,得到EER為13.7%的效果;童偉男[12]運(yùn)用多特征k 最近鄰(k-Nearest Neighbor,k-NN)分類算法,引入權(quán)值分配,使準(zhǔn)確率達(dá)到87.6%。上述算法在一定條件下實(shí)現(xiàn)了步態(tài)識(shí)別,但其準(zhǔn)確率仍不理想。為此,本文提出一種新的步態(tài)識(shí)別方法,該方法將DTW 與人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)相結(jié)合,通過(guò)DTW對(duì)不同長(zhǎng)度的步態(tài)特征參數(shù)進(jìn)行規(guī)整,同時(shí)引入步長(zhǎng)、步頻、步速特征參數(shù),利用列文伯格-馬夸爾特(Levenberg-Marquardt,LM)優(yōu)化算法改進(jìn)后的BP 神經(jīng)網(wǎng)絡(luò)[13-14]實(shí)現(xiàn)步態(tài)的識(shí)別,該方法在降低采樣率和網(wǎng)絡(luò)訓(xùn)練時(shí)間的同時(shí),有效提高了步態(tài)識(shí)別的準(zhǔn)確率,為步態(tài)識(shí)別的研究提供了新的思路。
圖1 數(shù)據(jù)采集裝置
圖2 原始步態(tài)信號(hào)波形圖
本文所用的實(shí)驗(yàn)平臺(tái)采用Mpu6050、Arduino開(kāi)發(fā)板、藍(lán)牙模塊HC-05 構(gòu)成步態(tài)數(shù)據(jù)采集裝置。Mpu6050 具有小體積、高性能、低成本、低噪聲的優(yōu)點(diǎn),實(shí)驗(yàn)采用±2 g 的加速度計(jì)量程,在靜止?fàn)顟B(tài)下,對(duì)Mpu6050 求平均消除系統(tǒng)誤差后,采集三軸加速度值;Arduino作為開(kāi)源硬件平臺(tái),具有便捷靈活、接口豐富、方便上手的優(yōu)點(diǎn),實(shí)驗(yàn)采用體積小巧且功能全面的Arduino Nano 開(kāi)發(fā)板,其核心處理器為ATmega328(Nano3.0),利用與硬件同名的Arduino 程序開(kāi)發(fā)軟件,將編譯完的程序通過(guò)USB線傳入Arduino控制板,實(shí)現(xiàn)程序設(shè)計(jì)與開(kāi)發(fā);藍(lán)牙具有低功耗、低成本等優(yōu)點(diǎn),實(shí)驗(yàn)采用HC-05 將數(shù)據(jù)采集裝置采集的數(shù)據(jù)實(shí)時(shí)傳輸?shù)絇C機(jī),實(shí)現(xiàn)了數(shù)據(jù)的存儲(chǔ)與傳輸。實(shí)驗(yàn)采集裝置如圖1 所示。
實(shí)驗(yàn)采集x軸(左右方向)、y 軸(重力方向)、z 軸(前后方向)3 個(gè)軸上的加速度值,其中1 名志愿者的原始步態(tài)信號(hào)如圖2 所示。通過(guò)對(duì)比,發(fā)現(xiàn)重力方向的波形具有良好的周期性和穩(wěn)定性。因此,本實(shí)驗(yàn)選取人體重力方向的加速度信號(hào)做步態(tài)識(shí)別。
步行時(shí)支撐腿的動(dòng)作包括腳跟著地、腳掌支撐、腳跟離地、初始蹬腿等[15]。這些時(shí)刻分別對(duì)應(yīng)重力方向加速度信號(hào)的極值點(diǎn),提取這些極值點(diǎn)作為特征點(diǎn)來(lái)進(jìn)行步態(tài)識(shí)別具有明確物理意義。采用小波變換過(guò)零點(diǎn)方法,即通過(guò)高斯函數(shù)平滑,將其一階導(dǎo)數(shù)作為小波基函數(shù),找到小波變換后的過(guò)零點(diǎn),提取加速度信號(hào)極值點(diǎn)。本實(shí)驗(yàn)提取步態(tài)周期的幅值及時(shí)間特征,并將其保存為幅值序列:M =[M1,M2,…,Mn]與時(shí)間序列:T =[T1,T2,…,Tn]。
由于步行存在偏差,即使是同一人每個(gè)周期的采樣點(diǎn)也不同,導(dǎo)致樣本的時(shí)長(zhǎng)也不同,所以要進(jìn)行時(shí)間歸一化。設(shè)每個(gè)樣本周期有n 個(gè)采樣點(diǎn),將原始的加速度信號(hào)歸一化到區(qū)間[0,1]上,使樣本采樣點(diǎn)為整個(gè)樣本相對(duì)時(shí)間,且可歸一化為:
圖3 為志愿者A 和B 的步態(tài)樣本信號(hào)。從中可以清楚地發(fā)現(xiàn),不同志愿者的步態(tài)曲線波動(dòng)差異較大,而同一志愿者的步態(tài)則有很大相似性。特征提取后,差異更加明顯,不同志愿者在一個(gè)樣本周期內(nèi),不僅幅值大小不相同,而且相對(duì)時(shí)間也完全不同,這為步態(tài)識(shí)別提供了良好基礎(chǔ)。
圖3 步態(tài)樣本信號(hào)及特征對(duì)比曲線圖
因人行走時(shí)步態(tài)間存在差異,即使從同一志愿者樣本提取特征點(diǎn),其個(gè)數(shù)也不同。而從不同志愿者樣本提取特征點(diǎn),其個(gè)數(shù)基本都不同。因此,本實(shí)驗(yàn)采用動(dòng)態(tài)時(shí)間規(guī)整,通過(guò)擴(kuò)展或縮短序列來(lái)計(jì)算兩個(gè)序列的相似性。
以志愿者A和B 的兩個(gè)步態(tài)周期的幅值特征序列Ma、Mb為例,設(shè)兩個(gè)特征序列分別為:MA=[Ma1,Ma2,…,Man],MB=[Mb1,Mb2,…,Mbm],為了將這兩個(gè)序列對(duì)齊,需構(gòu)建一個(gè)n ×m 矩陣,矩陣中的元素(i,j)表示Mai和Mbj兩個(gè)點(diǎn)間的距離,即通過(guò)對(duì)彎曲函數(shù)的約束,最小累積距離的路徑有(i-1,j)、(i -1,j -1)、(i,j -1)。此時(shí),最小累積距離可表示為
一個(gè)步態(tài)周期包括左步態(tài)和右步態(tài)共兩步。由于步態(tài)樣本長(zhǎng)度的選取影響步態(tài)識(shí)別率,若選取樣本長(zhǎng)度過(guò)長(zhǎng),則處理的數(shù)據(jù)量將大為增加;否則,提取的樣本的特征點(diǎn)不穩(wěn)定,導(dǎo)致識(shí)別率降低。因此,將6 個(gè)連續(xù)步態(tài)作為一個(gè)樣本,每個(gè)樣本包含3 個(gè)完整的步態(tài)周期。設(shè)志愿者A和B的兩個(gè)參考樣本分別為:SA=其中MAi和MBj分別表示每個(gè)步態(tài)周期的特征序列,將兩個(gè)樣本匹配,則SA和SB的幅值失真距離表示為:參考樣本SA及樣本SB中的一個(gè)幅值序列匹配路徑如圖4 所示,相應(yīng)的匹配曲線如圖5 所示。經(jīng)動(dòng)態(tài)時(shí)間規(guī)整后,兩條幅值序列具有相同的特征點(diǎn)數(shù),且對(duì)比更加直觀,不同人的特征點(diǎn)具有很大差異性,將不同幅值序列的特征點(diǎn)都規(guī)整到12 個(gè)點(diǎn),為BP 神經(jīng)網(wǎng)絡(luò)的輸入提供了數(shù)據(jù)來(lái)源。
圖4 幅值序列的匹配路徑
圖5 幅值序列的匹配曲線
BP神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)需確定隱含層的數(shù)量及輸入層、隱含層、輸出層節(jié)點(diǎn)數(shù)。在BP 神經(jīng)網(wǎng)絡(luò)中,雖然隱含層層數(shù)的增加能提高識(shí)別率,但神經(jīng)網(wǎng)絡(luò)的復(fù)雜度大大增加??紤]到可穿戴設(shè)備中處理器的計(jì)算能力較低,為保證步態(tài)識(shí)別的實(shí)時(shí)性,本實(shí)驗(yàn)只選擇一個(gè)隱含層。
實(shí)驗(yàn)以一個(gè)步態(tài)周期為基礎(chǔ),第1 層為輸入層,含有17 個(gè)輸入節(jié)點(diǎn),構(gòu)成17 維輸入向量(X1,X2,…,X17)T,分別表示17 個(gè)特征參數(shù),特征參數(shù)包括經(jīng)過(guò)動(dòng)態(tài)時(shí)間規(guī)整后的12 點(diǎn)幅值序列、正負(fù)(1/0)輸入、標(biāo)準(zhǔn)偏差STD、步長(zhǎng)L、步頻c、步速v。設(shè)f為采樣頻率,n為一個(gè)步態(tài)周期的采樣點(diǎn)數(shù),則標(biāo)準(zhǔn)偏差STD、步長(zhǎng)L、步頻c、步速v的計(jì)算公式如下:
第2 層為隱含層,設(shè)l為輸入層的節(jié)點(diǎn)數(shù),n 為輸出層的節(jié)點(diǎn)數(shù),則一般情況下隱含層節(jié)點(diǎn)數(shù)m 可表示為:
確定隱含層節(jié)點(diǎn)數(shù)范圍后,通過(guò)實(shí)驗(yàn)訓(xùn)練,確定本實(shí)驗(yàn)隱含層節(jié)點(diǎn)數(shù)為7,激活函數(shù)采用連續(xù)可微且更接近生物神經(jīng)元信號(hào)的S型激活函數(shù)。
第3 層為輸出層,含2 個(gè)輸出節(jié)點(diǎn),構(gòu)成2 維輸出向量(Y1,Y2)T,即(0,1)T表示真實(shí)用戶;(1,0)T表示仿冒用戶。
綜上所述,本文的算法流程圖6 所示。
圖6 DTW-ANN算法流程圖
根據(jù)圖6 所示的流程圖,DTW-ANN 算法的步驟可以簡(jiǎn)化為以下兩個(gè)步驟:
(1)注冊(cè)階段。采集已知用戶的樣本并提取特征序列,用DTW 成本函數(shù)計(jì)算幅值序列和時(shí)間序列的累積距離,分別作擬合函數(shù)生成閾值,并將擁有不同特征數(shù)的特征序列規(guī)整到12 點(diǎn),解決了BP 神經(jīng)網(wǎng)絡(luò)輸入結(jié)構(gòu)固定的問(wèn)題。
(2)認(rèn)證階段。采集受試者的樣本并提取特征序列,用DTW成本函數(shù)計(jì)算與參考樣本幅值序列與時(shí)間序列的累積距離Dac,Dt,并將其通過(guò)二級(jí)認(rèn)證系統(tǒng)初步識(shí)別,運(yùn)用LM 算法,即調(diào)節(jié)變量因子u 優(yōu)化BP神經(jīng)網(wǎng)絡(luò),將DTW規(guī)整的固定長(zhǎng)度特征,正負(fù)輸入及步長(zhǎng)、步頻、步速作為BP 神經(jīng)網(wǎng)絡(luò)的輸入節(jié)點(diǎn)進(jìn)行訓(xùn)練及測(cè)試。該方法相比單一的DTW,能實(shí)現(xiàn)更高精度的步態(tài)識(shí)別,并且LM算法能快速收斂,確保系統(tǒng)的實(shí)時(shí)和準(zhǔn)確性。
本次實(shí)驗(yàn)采樣頻率設(shè)置為40 Hz,采集了10 名志愿者(6 名男性,4 名女性)的步態(tài)數(shù)據(jù)。數(shù)據(jù)采集時(shí),將數(shù)據(jù)采集裝置固定在志愿者腰帶右側(cè)的位置。志愿者按照其步行習(xí)慣,在水平過(guò)道上直線行走1 min,3名志愿者采集5 d共采樣25 次,7 名志愿者采樣5 次。設(shè)A,B,C,D分別表示不同的志愿者;SA,SB,SC,SD分別代表不同志愿者的參考樣本;SA1,SA2,SA3,SA4,SA5,SA6分別表示志愿者A 的其他6 個(gè)步態(tài)樣本。通過(guò)DTW算法分別計(jì)算同一志愿者樣本間的失真距離和不同志愿者樣本間的失真距離,實(shí)驗(yàn)結(jié)果如表1、2 所示。步態(tài)識(shí)別時(shí),每次選擇570 個(gè)樣本組成樣本集,其中300 個(gè)樣本來(lái)自同1 名志愿者組成正類,270 個(gè)樣本來(lái)自其余的9 名志愿者,每名志愿者提供30 個(gè)樣本組成負(fù)類。將80%的樣本用作訓(xùn)練,20%的樣本用來(lái)測(cè)試,實(shí)驗(yàn)結(jié)果如表3 所示。其中TP,TN表示正確分類,分別表示將原先是正類的預(yù)測(cè)為正類和將原先是負(fù)類的預(yù)測(cè)為負(fù)類;而FP,F(xiàn)N 表示錯(cuò)誤分類,分別表示將原先是負(fù)類的預(yù)測(cè)為正類和將原先是正類的預(yù)測(cè)為負(fù)類。圖10 為根據(jù)BP 神經(jīng)網(wǎng)絡(luò)訓(xùn)練結(jié)果繪制的受試者工作特征(Receiver Operating Characteristic,ROC)曲線圖。
表1 用DTW計(jì)算同一志愿者失真距離
表2 用DTW計(jì)算不同志愿者失真距離
表3 測(cè)試樣本的步態(tài)識(shí)別結(jié)果
由表1 及2 可知,同一志愿者兩個(gè)樣本幅值失真距離和時(shí)間失真距離均比不同志愿者樣本小,可通過(guò)抽取一定數(shù)量樣本,設(shè)置成本函數(shù)閾值,自動(dòng)初步驗(yàn)證樣本。將類內(nèi)最大距離作為下閾值,類間最小距離作為上閾值,當(dāng)測(cè)試樣本與參考樣本失真距離小于下閾值時(shí),則認(rèn)為同一人;而大于上閾值時(shí),則認(rèn)為是不同人。根據(jù)采集的數(shù)據(jù)樣本,計(jì)算得幅值的上閾值為0.561 9,下閾值為0.425 8,時(shí)間的上閾值為0.081 4,下閾值為0.054 5。
設(shè)置BP網(wǎng)絡(luò)最大訓(xùn)練次數(shù)為10 000 次,目標(biāo)誤差為0.001,學(xué)習(xí)率為0.01,分別用標(biāo)準(zhǔn)BP算法、擬牛頓法、LM算法對(duì)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練。訓(xùn)練結(jié)果如圖7~9 所示。由圖可知,標(biāo)準(zhǔn)BP算法即使訓(xùn)練到10 000步,均方誤差仍為26.28 ×10-3,不能達(dá)到理想目標(biāo),存在收斂速度慢,容易陷入局部最優(yōu)解的問(wèn)題;擬牛頓算法在462 步時(shí)達(dá)到收斂,均方誤差為999.65 ×10-6;LM算法僅需23 步就能訓(xùn)練完成,此時(shí)均方誤差為935.04 ×10-6。因此,采用LM對(duì)標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)改進(jìn),在兼顧BP網(wǎng)絡(luò)識(shí)別準(zhǔn)確率的情況下,大大減少了訓(xùn)練時(shí)間,節(jié)省成本的同時(shí)提高了效益。
圖7 標(biāo)準(zhǔn)BP算法步態(tài)識(shí)別訓(xùn)練誤差曲線
圖8 擬牛頓算法步態(tài)識(shí)別訓(xùn)練誤差曲線
圖9 LM算法步態(tài)識(shí)別訓(xùn)練曲線
將BP神經(jīng)網(wǎng)絡(luò)模型的預(yù)測(cè)結(jié)果從小到大排序并把每個(gè)概率作為閾值,可以得到多個(gè)混淆矩陣。對(duì)于每個(gè)混淆矩陣可以計(jì)算得到特異度(False Positive Rate,F(xiàn)PR)和靈敏度(True Positive Rate,TPR)兩個(gè)指標(biāo)。以FPR為x軸,TPR 為y 軸作圖得ROC 曲線;以(0,1)為起點(diǎn),(1,0)為終點(diǎn)做一條直線,兩條線的交點(diǎn)即為EER。由表4 及圖10 可知,對(duì)于不同的人,本文平均步態(tài)識(shí)別率可以達(dá)到91.5%,EER 為9.1%。相比現(xiàn)有的步態(tài)識(shí)別算法,識(shí)別的準(zhǔn)確率大大提高并且有效降低了EER,表明本文所提出的方法具有一定的實(shí)用性和有效性。
表4 不同算法結(jié)果對(duì)比
圖10 ROC曲線圖
本文設(shè)計(jì)了低成本且通用性強(qiáng)的步態(tài)數(shù)據(jù)采集裝置來(lái)獲取步態(tài)加速度信號(hào),在低采樣率前提下,提出了一種動(dòng)態(tài)時(shí)間規(guī)整和人工神經(jīng)網(wǎng)絡(luò)相結(jié)合的步態(tài)識(shí)別方案。該方法通過(guò)DTW 算法,對(duì)步態(tài)特征序列進(jìn)行規(guī)整,求得失真距離,通過(guò)閾值判斷自動(dòng)實(shí)現(xiàn)對(duì)樣本的初步驗(yàn)證,將規(guī)整后的特征參數(shù)與步長(zhǎng)、步速、步頻特征相結(jié)合,利用LM 改進(jìn)的BP 神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)步態(tài)識(shí)別。與現(xiàn)有方法相比,該方法兼顧采樣率和識(shí)別率,有效降低了成本且具有較好魯棒性,符合未來(lái)安全認(rèn)證要求,具有信息安全保護(hù)方面的應(yīng)用價(jià)值。