王 彬 付 雄 王俊昌
(南京郵電大學(xué)計(jì)算機(jī)學(xué)院 江蘇 南京 210023)
隨著可穿戴技術(shù)的飛速發(fā)展,可穿戴設(shè)備已經(jīng)在人們的生活中越來越普遍,但是在設(shè)備擁有者隱私保護(hù)方面尚未形成有效且標(biāo)準(zhǔn)的做法[1]。為了使各種可穿戴設(shè)備中的重要信息不外漏或不被盜取,需要可穿戴產(chǎn)品能夠?qū)崿F(xiàn)身份識(shí)別的功能。目前主流的口令、密碼等認(rèn)證方式雖然能有效地認(rèn)證身份,但存在著遺忘和丟失的問題,同時(shí)還需要用戶主動(dòng)配合,這通常會(huì)帶來不必要的麻煩和損失[2]。
近年來,利用生物特征進(jìn)行身份識(shí)別已經(jīng)成為計(jì)算機(jī)領(lǐng)域和生物醫(yī)藥科學(xué)領(lǐng)域中的首選安全驗(yàn)證方式[3]。步態(tài)特征是生物行為特征中的一種典型特征,主要是指人在正常步行狀態(tài)下所表現(xiàn)出的行為特征,它不易被盜取而且廣泛存在[4]。步態(tài)特征差異通常表現(xiàn)在步頻、步長(zhǎng)、腳落地時(shí)的輕重程度等幾個(gè)方面。利用人步行狀態(tài)下獨(dú)有的特點(diǎn)能夠有效地區(qū)分個(gè)體[5]。
目前基于步態(tài)特征的身份識(shí)別技術(shù)主要有以下三個(gè)方向:機(jī)器視覺、地面壓力傳感器和加速度傳感器。機(jī)器視覺的方法首先利用圖片拍攝或視頻錄制等手段采集用戶行走時(shí)的圖像信息建立個(gè)人信息庫(kù),再通過圖像識(shí)別技術(shù)進(jìn)行比對(duì)從而辨別不同的用戶[6],但其存在著視覺范圍、障礙物遮擋、拍攝角度、光線不足等問題,繼續(xù)發(fā)展和推廣應(yīng)用的局限性較大?;诘孛鎵毫鞲衅鞯姆椒ㄔ诘孛嫔箱佒脡毫鞲衅鳎缓蟛杉脩舨叫型ㄟ^時(shí)足底壓力的分布情況[7],但該方法需要在特定設(shè)備和場(chǎng)景下才能進(jìn)行有效的身份驗(yàn)證,實(shí)際中應(yīng)用較少。加速度傳感器具有不受視覺影響和場(chǎng)地限制、數(shù)據(jù)采集方便快捷的優(yōu)勢(shì),因此基于步態(tài)特征的身份識(shí)別更多是依賴加速度傳感器實(shí)現(xiàn)。
近些年來,國(guó)內(nèi)外的專家運(yùn)用加速度傳感器采集步態(tài)特征用于步態(tài)識(shí)別出現(xiàn)了很多方向。Derawi等[8]采用時(shí)間插值固定采樣點(diǎn)的時(shí)間間隔、平均周期長(zhǎng)度,以步態(tài)樣本的幅值序列和時(shí)間序列為特征,利用動(dòng)態(tài)規(guī)整算法(Dynamic Time Warping,DTW)計(jì)算不同長(zhǎng)度序列的距離,識(shí)別率有所提高,但是需要在數(shù)據(jù)處理階段進(jìn)行大量工作,包括數(shù)據(jù)歸一化、數(shù)據(jù)樣本維數(shù)調(diào)整,且在識(shí)別階段需要花費(fèi)大量時(shí)間用于規(guī)整路徑,這對(duì)于計(jì)算能力有限的移動(dòng)終端來說是不可接受的。
2019年,孔菁等[9]對(duì)手機(jī)自定義坐標(biāo)軸進(jìn)行空間轉(zhuǎn)換,選用極大值、均方根、梅爾頻率倒譜系數(shù)等7種特征,使用支持向量機(jī)算法來對(duì)樣本進(jìn)行訓(xùn)練分類,達(dá)到身份識(shí)別的目的。運(yùn)用機(jī)器學(xué)習(xí)算法需要較高的配置,會(huì)帶來高能耗的問題,而且該算法高能耗換來的準(zhǔn)確度提升也不明顯。2019年,Sun等[10]提出一種速度自適應(yīng)步態(tài)周期分割方法和個(gè)性化閾值生成方法,采用基于快速傅里葉變換(FFT)的步態(tài)周期估計(jì)方法來提高步態(tài)分割的準(zhǔn)確性,使用皮爾森相關(guān)系數(shù)來衡量步態(tài)周期模板和用戶步態(tài)周期的相似接近程度。與具有固定速度和閾值的可用方法相比,在各種步行速度下的步態(tài)和用戶識(shí)別率得到一定改善。
然而上述研究都是基于恒定步行速度的假設(shè),而且都是在劃分出步態(tài)周期后,再應(yīng)用基于距離或度量函數(shù)的方法如DTW、PCC(Pearson Correlation Coefficient)進(jìn)行識(shí)別,這就需要明確的步進(jìn)周期檢測(cè),會(huì)受周期檢測(cè)失敗和周期性相位錯(cuò)位的影響[11]。在實(shí)際應(yīng)用場(chǎng)景中,會(huì)出現(xiàn)步行異常導(dǎo)致步態(tài)周期的不穩(wěn)定,這時(shí)單個(gè)步態(tài)周期在時(shí)域上不同,通過插值等手段度量單個(gè)步態(tài)周期頻域上的序列距離作為認(rèn)證標(biāo)準(zhǔn)具有片面性。
鑒于此,本文不針對(duì)單個(gè)步態(tài)的差距進(jìn)行深入討論,著重于用戶行走習(xí)慣上的差異,提出步頻分布的新型步態(tài)特征,進(jìn)行持續(xù)認(rèn)證下的步態(tài)周期分布差異研究,從而達(dá)到身份識(shí)別的目的。文獻(xiàn)[12]的研究表明,行人的步頻、步速同為Gauss(正態(tài)分布),平均步頻為1.96 step/s,而且步頻分布在不同人群中的差異性比較大,這也揭示了步頻分布用于身份識(shí)別的可行性。
本文提出一種基于步頻分布的身份識(shí)別算法,主要有兩部分組成:步頻分布模型的刻畫、身份識(shí)別算法。首先在數(shù)據(jù)處理階段對(duì)加速度傳感器的數(shù)據(jù)進(jìn)行采集;然后在特征提取與建模階段通過動(dòng)態(tài)閾值切割步態(tài),統(tǒng)計(jì)得到步頻分布建立步態(tài)特征模型;最后基于相對(duì)熵得到識(shí)別結(jié)果。實(shí)驗(yàn)結(jié)果表明,基于步頻分布的身份識(shí)別算法的識(shí)別準(zhǔn)確率達(dá)到86%以上,可在大樣本認(rèn)證情況下有效地識(shí)別用戶身份,對(duì)比當(dāng)前的DTW和PCC算法,設(shè)備能耗最多不超過DTW和PCC算法的50%,提高了步態(tài)識(shí)別的準(zhǔn)確度,降低了可穿戴設(shè)備終端的能耗。
正常步態(tài)情況下,從一側(cè)腳跟著地開始到該側(cè)腳跟再次著地為止的時(shí)間被稱為一個(gè)步態(tài)周期。一個(gè)完整的步態(tài)周期分為首次觸地、支撐和擺動(dòng)三個(gè)階段,每個(gè)階段對(duì)應(yīng)不同步態(tài)時(shí)期。步頻是人行走1 s的步數(shù)。通過計(jì)算一個(gè)步態(tài)周期的時(shí)間SingleStepTime來作為一步的時(shí)間,則步頻StepFrequency需要用一個(gè)完整步態(tài)周期的持續(xù)時(shí)間的倒數(shù)來表示。為簡(jiǎn)化,本文直接使用一個(gè)完整步態(tài)周期的時(shí)間來作為刻畫步頻的一種方式,下文談?wù)摬筋l分布都指的是單個(gè)步態(tài)時(shí)間的分布。StepFrequency的計(jì)算如下:
(1)
本文提出一種基于步態(tài)切割的步頻分布生成算法,基本思想為:分析出人在行進(jìn)過程中,加速度傳感器的信號(hào)呈現(xiàn)周期性的特征,以波峰為界限,切割傳感器信號(hào)獲得單個(gè)步態(tài),并統(tǒng)計(jì)單個(gè)步態(tài)周期的時(shí)間記錄入步頻分布。相關(guān)變量的定義如表1所示。
表1 變量和函數(shù)定義
首先對(duì)步頻分布區(qū)間進(jìn)行處理,人行走一步的時(shí)間約為0.4~0.6 s[13],在區(qū)間[0.4,0.6]之間作m等分,則每個(gè)單獨(dú)步態(tài)都會(huì)分布在其中的小區(qū)間上,初始每個(gè)子區(qū)間為0。
接著對(duì)持續(xù)產(chǎn)生的加速度信號(hào)需要進(jìn)行波峰的檢測(cè),波峰需要滿足的條件:
(1)目前的信號(hào)Pi為下降趨勢(shì);
(2)之前的信號(hào)Pi-1為上升趨勢(shì);
(3)持續(xù)上升的次數(shù)等于2;
(4)信號(hào)值大于上閾值α。
在檢測(cè)到波峰之后,為了避免噪聲導(dǎo)致的“偽波峰”的影響,需要過濾掉波峰相距太近的情況,要求兩個(gè)相鄰波峰時(shí)間差大于兩個(gè)波峰差的閾值β。在行進(jìn)過程中,不斷地梯度化更新波峰波谷的差值閾值μ,確??梢赃^濾掉噪聲的同時(shí),不會(huì)遺漏掉有效數(shù)據(jù)。最后計(jì)算兩個(gè)相鄰波峰的時(shí)間差值d,遍歷步頻分布區(qū)間S找到對(duì)應(yīng)子區(qū)間Si,頻數(shù)加1。具體算法如算法1所示。
算法1基于步態(tài)切割的步頻分布生成算法
輸入: 加速度信號(hào)集合P。
輸出: 步頻分布序列S={S1,S2,…,Sm}。
1.初始化S每個(gè)區(qū)間
2.for eachPiinPdo
3. ifPi>Pi-1then
4.flag=true
5.count++
6. else
7.flag=false
8.count=0
9. if !flagandcount=2 andPi>αthen
10.p=Pi-1
11.Tp=Cp
12.T= 當(dāng)前系統(tǒng)時(shí)間
13. ifT-Tp>βandp-v>=μthen
14.Cp=T
15.d=Cp-Tp
16. 找到d所在的區(qū)間Si
17.Si++
18. end if
19. if(T-Tp)>βthen
20. 梯度化閾值μ
21. end if
22. else
23.v=Pi-1
24. continue
25.end for
26.returnS
算法在初始化步頻分布集合S時(shí),劃分為m個(gè)小區(qū)間,時(shí)間復(fù)雜度為O(m);加速度信號(hào)集合P有n個(gè)數(shù)據(jù),遍歷P的時(shí)間復(fù)雜度為O(n),判斷波峰需要借助常數(shù)級(jí)的空間,空間復(fù)雜度為O(1);尋找單個(gè)步態(tài)落到的步頻分布區(qū)間,時(shí)間復(fù)雜度為O(m),算法整體時(shí)間復(fù)雜度O(m×n)。
相對(duì)熵,又稱為信息散度或KL散度,源于信息論,是衡量概率分布相似度的一種方式,表示一條信息的信息量大小和它的不確定性有密切關(guān)系。信息領(lǐng)域中,相對(duì)熵常用來量化兩個(gè)隨機(jī)分布之間的距離,當(dāng)這兩個(gè)隨機(jī)分布相同的時(shí)候,它們的相對(duì)熵為0,當(dāng)兩個(gè)隨機(jī)分布的差異越大時(shí),它們之間的相對(duì)熵也會(huì)越大。
根據(jù)第1節(jié)基于步態(tài)切割的步頻分布生成算法,可以建立不同人物的步態(tài)特征模型,判斷兩份步態(tài)特征模型是否為同一個(gè)人是身份識(shí)別的最終目標(biāo)。本文在識(shí)別階段,首先對(duì)步頻分布處理,獲取步頻的概率分布,然后計(jì)算兩份步頻概率分布的相對(duì)熵來比較兩份步態(tài)數(shù)據(jù)的相似度,從而達(dá)到身份識(shí)別的目的。
假設(shè)對(duì)于一個(gè)未認(rèn)證的認(rèn)證者B,步頻分布為B(x)={B1,B2,…,Bn},其聲稱與目標(biāo)用戶A為同一個(gè)人。那么需要將認(rèn)證者B的步頻特征與用戶A的步頻特征進(jìn)行比較,假設(shè)用戶A的一份步頻分布為A(x)={A1,A2,…,An},可以通過式(2)、式(3)計(jì)算A、B用戶的兩份樣本的步頻概率分布PA(x)={a1,a2,…,an}、PB(x)={b1,b2,…,bn}。
(2)
(3)
因此,樣本A(x)和B(x)的差異為:
(4)
式(4)計(jì)算得到的值,代表了概率分布PA(x)與PB(x)之間的差異的一個(gè)度量。然而通過一份樣本進(jìn)行識(shí)別誤差很大,考慮到之前A用戶會(huì)有多份樣本存在,把之前的樣本也參與比較分析會(huì)提高識(shí)別準(zhǔn)確率。
對(duì)于用戶A已有的樣本A1={A11,A12,…,A1n}和A2={A21,A22,…,A2n}是同一個(gè)人的兩份樣本,可以計(jì)算A1和A2的相對(duì)熵:
(5)
式(5)可以應(yīng)用于合法用戶A的所有樣本{A1,A2,…,An},得到合法用戶A的平均相對(duì)熵:
(6)
對(duì)于一個(gè)聲稱用戶A的用戶B,應(yīng)用式(4),對(duì)于任意用戶A的樣本Ai(i=1,2,…,n),如果滿足:
Dkl(B||Aj)≤k×D(A)
(7)
那么認(rèn)定B是A的一個(gè)樣本,認(rèn)證成功;否則,認(rèn)定B是一個(gè)偽冒者。
假設(shè)樣本B聲稱是A用戶,兩份步頻概率分布P=(a:3/5,b:1/5,c:1/5),Q=(a:5/9,b:3/9,d:1/9),此時(shí)引入常量τ,然后可以將P和Q轉(zhuǎn)換為P′=(a:3/5-τ/3,b:1/5-τ/3,c:1/5-τ/3,d:τ),Q′=(a:5/9-τ/3,b:3/9-τ/3,c:τ,d:1/9-τ/3),并求Dkl(P′‖Q′)。
本文提出的可穿戴計(jì)算中基于步頻分布的身份識(shí)別算法,用于在可穿戴終端上能夠高效率低功耗地識(shí)別終端用戶。實(shí)驗(yàn)選用Android系統(tǒng)平臺(tái)來評(píng)估本文的算法。在安裝開發(fā)好的應(yīng)用程序之后,以后臺(tái)服務(wù)形式運(yùn)行在宿主機(jī)上,無須用戶手動(dòng)干預(yù)。硬件環(huán)境為華為榮耀V9,操作系統(tǒng)為Android 7.0。
為了體現(xiàn)本文算法的優(yōu)越性,我們還與另外兩種經(jīng)典的步態(tài)識(shí)別算法進(jìn)行對(duì)比測(cè)試。一種是基于DTW的步態(tài)識(shí)別算法[8],該算法使用頻域上的序列作為步態(tài)特征,使用DTW算法規(guī)整路徑,計(jì)算歐式距離來實(shí)現(xiàn)身份識(shí)別,本文簡(jiǎn)稱這種算法為BDI(Base on DTW Identification);另一種是基于皮爾森相關(guān)系數(shù)相關(guān)相似性的模板匹配算法(PCC)[10],本文簡(jiǎn)稱這種算法為BPI(Base on PCC Identification)。本文提出的算法簡(jiǎn)稱為BSDI(Base on StepFrequency Distributed Identification)。
在實(shí)驗(yàn)數(shù)據(jù)采集階段,利用Android Studio開發(fā)工具開發(fā)一個(gè)小型的應(yīng)用程序進(jìn)行數(shù)據(jù)采集,設(shè)置采樣頻率60 Hz,并實(shí)時(shí)記錄數(shù)據(jù)到數(shù)據(jù)庫(kù)中。實(shí)驗(yàn)平臺(tái)內(nèi)置三軸加速度傳感器,三軸加速度傳感器的坐標(biāo)系是以手機(jī)屏幕為基準(zhǔn)的相對(duì)坐標(biāo)系[14]。以手機(jī)的幾何中心為原點(diǎn),X軸平行于手機(jī)機(jī)身的短邊且以向右側(cè)為正方向,Y軸平行于機(jī)身的長(zhǎng)邊且以向聽筒方向?yàn)檎较?,Z軸垂直于手機(jī)機(jī)身且以屏幕的朝向?yàn)檎较騕15]。不同方向的加速度信號(hào)值如圖1所示。
圖1 加速度信號(hào)圖
在選取數(shù)據(jù)源時(shí),由于Y軸和X軸在用戶行走時(shí)不太敏感,而Z軸和融合軸M(Mix)的加速度呈現(xiàn)較大的周期性特征[16],本文采用三軸加速度融合之后的融合軸M作為實(shí)驗(yàn)數(shù)據(jù)。融合軸M的信號(hào)值計(jì)算為:
(8)
實(shí)驗(yàn)采集階段共采集了不同身高、不同性別、不同年齡段共25名志愿者(編號(hào)1-25)兩天的步態(tài)數(shù)據(jù),每名志愿者每天手持手機(jī)步行時(shí)間大約20 min(去除起始與結(jié)束階段的不穩(wěn)定數(shù)據(jù)),統(tǒng)一在摩擦系數(shù)等客觀因素均相同的操場(chǎng)跑道進(jìn)行步行。共采集了500(2×25×10)份樣本。單個(gè)樣本為步行200步在[0.4,0.6]的 20個(gè)小區(qū)間的步頻分布。每個(gè)志愿者步行前一天的數(shù)據(jù)用于訓(xùn)練,計(jì)算該志愿者在式(7)中的認(rèn)證閾值k。后一天用于后續(xù)實(shí)驗(yàn)測(cè)試部分。
如圖2所示,本文選取了志愿者1-4展示步頻特征的差異性,顯而易見,同一個(gè)志愿者的不同樣本的分布擬合度很高,而不同志愿者的差異很明顯。
圖2 不同志愿者步頻分布圖
如圖3-圖4所示,實(shí)驗(yàn)測(cè)試過程中,數(shù)據(jù)表明在計(jì)算相對(duì)熵衡量?jī)煞輼颖镜南嗨贫葧r(shí),偽冒認(rèn)證的相對(duì)熵大都大于0.2,而真實(shí)認(rèn)證的相對(duì)熵穩(wěn)定在0~0.15之間。
圖3 志愿者1的樣本認(rèn)證相對(duì)熵對(duì)比圖
圖4 志愿者2的樣本認(rèn)證相對(duì)熵對(duì)比圖
圖3和圖4中,真實(shí)指的是同一個(gè)志愿者的不同樣本進(jìn)行的交叉認(rèn)證,偽冒是其他志愿者的樣本分別來認(rèn)證志愿者1和志愿者2。
實(shí)驗(yàn)訓(xùn)練階段利用25名志愿者的前一天的樣本訓(xùn)練,每個(gè)志愿者的10份樣本交叉認(rèn)證,令FRR(錯(cuò)誤拒絕率)為0,計(jì)算得到25名志愿者在式(7)中的認(rèn)證閾值k,結(jié)果如表2所示。
表2 實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)測(cè)試階段,將25個(gè)志愿者進(jìn)行1-25編號(hào),取1號(hào)志愿者作為目標(biāo)用戶,選取1-25號(hào)每個(gè)志愿者的10個(gè)樣本進(jìn)行認(rèn)證(以此類推到25號(hào)志愿者),共計(jì)進(jìn)行實(shí)驗(yàn)(25×25×10)=6 250次,識(shí)別結(jié)果如表2所示。
為驗(yàn)證本文算法的性能和效率,將其與BDI、BPI兩種步態(tài)識(shí)別算法在兩個(gè)方面進(jìn)行對(duì)比實(shí)驗(yàn):不同樣本量情況下識(shí)別率的對(duì)比,不同時(shí)間下持續(xù)認(rèn)證給設(shè)備帶來的能耗對(duì)比。實(shí)驗(yàn)時(shí)BDI和BPI均采用60 Hz的采樣率。
以25個(gè)志愿者作為目標(biāo)人物,重復(fù)實(shí)驗(yàn)取平均值,結(jié)果如圖5所示。逐漸增加偽冒認(rèn)證和真實(shí)認(rèn)證的樣本量,本文算法仍然可以保持86%以上的識(shí)別準(zhǔn)確率,而其他算法識(shí)別準(zhǔn)確率在隨著樣本量增大之后逐漸降低。真實(shí)樣本數(shù)是選取作為目標(biāo)用戶的樣本,偽冒樣本是其他志愿者的樣本。
圖5 不同樣本量下的識(shí)別率比較
進(jìn)行能耗對(duì)比實(shí)驗(yàn)時(shí),實(shí)驗(yàn)平臺(tái)榮耀V9手機(jī)所有的前后臺(tái)應(yīng)用關(guān)閉,僅運(yùn)行本文的身份識(shí)別應(yīng)用程序,采用耗電量(mAh)作為能耗的體現(xiàn)。如圖6所示,本文算法無論是短時(shí)間的認(rèn)證,還是長(zhǎng)時(shí)間的認(rèn)證,耗電量都很低,最多僅有其他兩種算法的50%。
圖6 不同時(shí)間下持續(xù)性認(rèn)證的能耗比較
由上述兩方面的對(duì)比實(shí)驗(yàn)證明,本文算法在大樣本認(rèn)證情況下,具有較高的識(shí)別準(zhǔn)確率且能耗低。這表明,本文提出的基于步頻分布的身份識(shí)別算法能有效地識(shí)別身份,并可用于計(jì)算能力較弱、內(nèi)存小的穿戴式設(shè)備中。
本文針對(duì)現(xiàn)階段可穿戴計(jì)算領(lǐng)域中身份識(shí)別算法的低效和能耗大的問題,在充分分析步態(tài)構(gòu)成之后,著重考慮用戶的行為習(xí)慣,提出一種基于步頻分布的身份識(shí)別方法,刻畫一種新型的步態(tài)特征,并通過相對(duì)熵進(jìn)行認(rèn)證。實(shí)驗(yàn)證明,本文算法有著較高的識(shí)別準(zhǔn)確率和較低的能耗,在各種可穿戴設(shè)備上會(huì)有比較好的實(shí)際應(yīng)用價(jià)值。雖然本文算法準(zhǔn)確率比較高,但是在步態(tài)切換時(shí)不能表現(xiàn)出良好的識(shí)別度,未來將繼續(xù)改進(jìn)本文算法,使其在實(shí)際應(yīng)用中有更高的實(shí)用性。