李翔宇, 許 力, 李瑞興
1(閩江師范高等專科學(xué)校 計算機系,福州 350108)
2(福建師范大學(xué) 數(shù)學(xué)與信息學(xué)院,福州 350007)
3(物聯(lián)網(wǎng)福建省高校應(yīng)用工程中心,福州 350108)
隨著智能移動設(shè)備的普及,智能移動終端正面臨著越來越多的安全威脅,設(shè)計安全高效的移動設(shè)備身份認(rèn)證方案顯得尤為必要. 傳統(tǒng)的基于密碼學(xué)機制的認(rèn)證方法存在密碼被盜用、密碼被遺忘等問題,通過生物特征識別技術(shù)可以很好的解決這些問題. 文獻[1-3]的研究者提出了通過采集人的生物特征樣本進行身份識別的生物特征識別技術(shù).生物特征可以分為:生理特征和行為特征,其中生理特征是先天因素決定的,如指紋、虹膜、人臉以及DNA等,行為特征是由后天造成的,如簽名、手勢姿勢、滑屏解鎖姿勢等. 由于生物特征能夠區(qū)分不同的人身份,且難以被模仿,可以有效的保護個人的隱私安全. 加速度傳感器以其低廉的價格、較高的靈敏性和較小的體積被廣泛內(nèi)置于智能手機中,利用手機內(nèi)置的加速度傳感器獲取用戶認(rèn)證手勢產(chǎn)生的加速度信號作為生物特征識別具有可操作性[4].基于動態(tài)手勢特征的身份認(rèn)證方法比較流行的方法有:基于DTW的方法[4,5]、基于HMM的方法[6]和基于支持向量機的方法[7]等. Varga J[8]等提出了一種新的智能手機和類似設(shè)備的認(rèn)證方法,該方法基于用戶對設(shè)備本身所做的手勢,結(jié)合密碼信息對用戶認(rèn)證. 劉威[9]等人改進了了全局序列對齊(GSA) 算法,對匹配后的序列進行插值操作,提高了中文空中簽名身份認(rèn)證效果.Liu Q[10]等人提出了一種能夠抵抗用戶姿勢變化的手勢認(rèn)證方法,通過手機內(nèi)置傳感器采集姿態(tài)行為數(shù)據(jù),采用K-means算法獲取用戶的每個姿態(tài),并為每個姿態(tài)訓(xùn)練一個認(rèn)證模型. 苗敏敏[11]等提出了差分至底向上線性分段方法對有效手勢動作端點自動檢測,最后利用DTW算法對測試手勢與模板手勢進行匹配計算.劉樂樂[12]等利用手機加速度傳感器、陀螺儀傳感器以及距離傳感器等采集用戶接聽電話時的數(shù)據(jù),使用DTW算法的識別結(jié)果構(gòu)造概率分配函數(shù),采用Dempster/Shafer證據(jù)理論進行融合. 龐永春[13]等通過提取手勢運動一階、二階歸一化導(dǎo)數(shù)序列及運動方向為身份驗證特征序列,采用DTW算法比較注冊模板特征序列與測試特征序列,判斷用戶身份真實性. 文獻[4,11-13]均是基于DTW算法實現(xiàn)動態(tài)手勢特征的身份認(rèn)證,但DTW算法在計算時間序列之間的相似度時的計算復(fù)雜度較高. 劉賢梅[14]等人基于窗口距離構(gòu)造距離矩陣,采用基于全局和局部約束的DTW優(yōu)化算法進行運動的相似度計算,以提高算法的效率. Niennattrakul V[15]等人將累積距離矩陣限制在一個小的平行四邊形中,并通過記錄限制的下邊界的值以查表的方式進行累積距離矩陣的計算,減少了計算時間,提高了算法效率. 但這些算法在獲得計算效率的同時,卻降低了匹配的精度識別的錯誤相應(yīng)的提高了. 為此,本文針對DTW算法在智能手機動態(tài)手勢身份認(rèn)證進行研究,提出了基于CM-DTW算法的智能手機動態(tài)手勢身份認(rèn)證方法,CM-DTW算法首先采集用戶解鎖時的加速度傳感器三軸坐標(biāo)值以及壓力傳感器的觸屏面積值全面反映用戶行為特點,對采集的特征數(shù)據(jù)標(biāo)準(zhǔn)化和平滑去噪處理,其次通過Sakoe-Chiba窗約束降低DTW算法的累積距離計算并訓(xùn)練獲取候選模板集,采用線性插值或線性降采樣歸一化候選模板,得到一個標(biāo)準(zhǔn)化的用戶模板作為算法的認(rèn)證模板.
利用智能手機內(nèi)置加速度傳感器以及壓力傳感器獲取用戶滑動解鎖過程中的數(shù)據(jù)值,用戶滑動解鎖的手指接觸屏幕時開始采集,直到手指離開屏幕時結(jié)束采集. 采集數(shù)據(jù)的頻率設(shè)定為50 Hz,從開始到結(jié)束采集的數(shù)據(jù)序列稱為手勢數(shù)據(jù). 手勢數(shù)據(jù)的定義如下:
其中,ri={ri1,ri2,ri3,ri4}(i=1,2,…,n)是一個4維數(shù)據(jù),其中ri1,ri2,ri3是手機內(nèi)置加速度傳感器的X,Y,Z三軸的參數(shù)值,ri4是手機內(nèi)置壓力傳感器的值.
本文算法將采用歐幾里德距離計算各特征點之間的距離,為了避免各維度的量值不一致造成距離向量值較大的維度傾斜,需對采集的手勢數(shù)據(jù)進行標(biāo)準(zhǔn)化處理,以降低各維度的量值不同造成距離無法準(zhǔn)確反映特征數(shù)據(jù)之間關(guān)系的影響. 采用z-score[16]標(biāo)準(zhǔn)化法對式(1)中的手勢數(shù)據(jù)標(biāo)準(zhǔn)化處理,手勢數(shù)據(jù)的標(biāo)準(zhǔn)化處理后的結(jié)果如式(2)所示:
其中,r為集合R的一個數(shù)據(jù)序列,μ為R的均值,σ為R的標(biāo)準(zhǔn)差. 由于利用z-score標(biāo)準(zhǔn)化方法標(biāo)準(zhǔn)化后的時間序列形狀與原始時間序列較為相近,因此其經(jīng)常被用于時間序列數(shù)據(jù)挖掘任務(wù)中[17].
由于用戶解鎖時,手指在屏幕上滑動時會有不同幅度的抖動,因此采集的數(shù)據(jù)中可能會產(chǎn)生噪聲數(shù)據(jù).通過對手勢數(shù)據(jù)進行平滑處理,可以有效的消除采集數(shù)據(jù)環(huán)境因素造成的誤差. 基于加權(quán)移動平均法[18]的思想,將式(2)的結(jié)果通過式(5)進行平滑處理計算.
其中,k≥N/2,N為加權(quán)平均法平移移動計算的窗口大小,一般設(shè)定為奇數(shù),表示一個手勢序列中的第k個數(shù)據(jù)點平滑后結(jié)果,wi是第i個數(shù)據(jù)的權(quán)重.
DTW算法解決了語音識別中的發(fā)音長短不一的模板匹配問題,在孤立語音識別中被廣泛使用. 由于滑動解鎖時的手勢數(shù)據(jù)與語音信號數(shù)據(jù)類似,具有時序關(guān)系和時空變化性,因此很多研究者將DTW算法應(yīng)用于手勢身份認(rèn)證中. DTW算法是一種將時間規(guī)整和距離測度相結(jié)合的一種非線性規(guī)整技術(shù). 對長短不一的兩個時間序列計算最小距離,距離越小則說明這兩個時間序列越相似. 使用DTW算法進行身份認(rèn)證時,需要測試序列與用戶參考模板序列之間的距離,以此距離的大小確定合法身份和非法身份. 對于測試序列和參考模板序列描述如式(6)和式(7)所示:
G(M)和T(N)分別表示經(jīng)過數(shù)據(jù)處理后的M個數(shù)據(jù)點的測試序列和N個數(shù)據(jù)點的參考模板序列. 采用歐幾里德距離計算兩個序列數(shù)據(jù)點之間的距離,對于測試序列的第i個數(shù)據(jù)gi和參考模板序列的第j個數(shù)據(jù)tj之間的距離計算如式(8)所示:
由測試序列和參考模板序列的數(shù)據(jù)點兩兩計算歐幾里德距離可以創(chuàng)建一個M×N維距離矩陣D,元素(gi,tj)的值d(gi,tj)表示數(shù)據(jù)點gi和tj的歐幾里德距離. DTW算法計算兩個序列之間的距離,實質(zhì)上尋找一個合適的規(guī)整函數(shù)j= f(i),并使該函數(shù)滿足式(9):
P(G,T)是測試序列G(M)和參考模板序列T(N)的最優(yōu)的匹配距離. 動態(tài)規(guī)整算法的原理是矩陣D在尋找一條從起始點(g1,t1)到終止點(gM,tN)之間的路徑,且該路徑的累積距離是最小的. 為了實現(xiàn)累積距離最優(yōu),DTW算法的規(guī)整函數(shù)需要滿足全局約束和局部約束的限制. 其中規(guī)整函數(shù)需要滿足的局部約束條件有以下三點:
1) 端點約束,端點約束要求兩個序列的起始點和終止點保持一致.
2) 單調(diào)約束,手勢數(shù)據(jù)的產(chǎn)生具有先后順序,規(guī)整函數(shù)必須保證匹配路徑不違背手勢數(shù)據(jù)產(chǎn)生的時間先后順序,因此必須滿足式(11).
3) 連續(xù)性約束,為了保證匹配信息的損失最小,規(guī)整函數(shù)不能跳過任何一個匹配點,通過DTW算法求解最優(yōu)化問題,可以得到最佳路徑的累積距離為:
其中,p(gi,tj)表示矩陣D的點(1,1)到點(i,j)所尋路徑的最小累積距離,因此p(gM,tN)的值是測試序列G(M)和參考模板序列T(N)的最小累積距離,即這兩者的DTW距離.
采用經(jīng)典DTW算法計算兩個序列的距離時,使用動態(tài)規(guī)劃方法需要計算存儲一個較大的矩陣,計算需要的時間復(fù)雜度為O(mn). 為了提高DTW算法計算手勢序列距離的計算效率,在序列彎曲計算中引入了全局約束窗口避免無效的路徑搜索. CM-DTW算法采用Sakoe-Chiba[19]窗降低對無效數(shù)據(jù)點之間距離的計算,從而提高計算兩個序列的效率. 圖1中的全局路徑約束下,DTW算法需要計算的空間其實不是一個完整的矩陣,而是局限于對角線附近的帶狀區(qū)域.
Sakoe-Chiba全局約束可以理解為對點(gi,tj)中下標(biāo)的限制,使?jié)M足i-f≤j≤i+f ,f是一個常數(shù).
在Sakoe-Chiba約束條件下,測試序列G(M)和參考模板序列T(N)兩個序列計算DTW距離的匹配規(guī)整路徑依次為c1,c2,…,cK(其中ck= (i,j)),如圖2所示.
圖1 Sakoe-Chiba 約束窗圖
圖2 Sakoe-Chiba約束路徑歸整圖
由于手勢數(shù)據(jù)序列的長度可能差異較大,需要對搜索路徑斜率做一定的約束,使下標(biāo)滿足:
用戶手勢身份認(rèn)證是將測試手勢數(shù)據(jù)與用戶的模板手勢數(shù)據(jù)計算相似度,通過閾值劃分測試手勢數(shù)據(jù)為合法用戶手勢數(shù)據(jù)或非法用戶手勢數(shù)據(jù). 手勢身份認(rèn)證中手勢模板代表合法用戶的身份,因此手勢模板的正確選取直接影響到手勢身份認(rèn)證結(jié)果.
CM-DTW算法的手勢模板的生成:首先通過合法用戶的手勢數(shù)據(jù)構(gòu)建候選模板集,然后將候選模板集的手勢模板采用線性升降采樣歸一化生成標(biāo)準(zhǔn)的用戶手勢模板. 標(biāo)準(zhǔn)手勢模板生成的具體步驟如下:
1) 用戶重復(fù)采集手勢數(shù)據(jù)n次,采集到n組手勢數(shù)據(jù)R1,R2,…,Rn,以同樣的方式采集m個用戶數(shù)據(jù)作為干擾手勢數(shù)據(jù);
2)運用式(2)和式(5)對用戶采集的n組數(shù)據(jù)進行標(biāo)準(zhǔn)化和平滑去噪處理,并劃分訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù);
3)利用Sakoe-Chiba窗約束下的DTW算法計算用戶的每組訓(xùn)練手勢數(shù)據(jù)與其他訓(xùn)練手勢數(shù)據(jù)(同一用戶下的其他手勢數(shù)據(jù)與干擾手勢數(shù)據(jù))之間的規(guī)整距離;
4)對每組手勢數(shù)據(jù)與同一用戶下的其他手勢數(shù)據(jù)的規(guī)整距離求均值作為該手勢的標(biāo)準(zhǔn)閾值,其中第i個用戶的j組數(shù)據(jù)的均值為Mean(i,j);
5)以Mean(i,j)×rate(i,j)作為第i個用戶的第j條數(shù)據(jù)的最優(yōu)閾值,對其他所有數(shù)據(jù)進行身份認(rèn)證,其中rate(i,j)是第i個用戶的第j條數(shù)據(jù)的最優(yōu)閾值比例;
6)根據(jù)步驟3)中計算的結(jié)果,在步驟5)的最優(yōu)閾值分類下,獲得各組手勢數(shù)據(jù)的身份認(rèn)證結(jié)果,并采用加權(quán)的準(zhǔn)確率指標(biāo)WA對其評價,計算每組數(shù)據(jù)的身份認(rèn)證指標(biāo)值,其中WA(i,j)為第i個用戶的第j組數(shù)據(jù)的WA指標(biāo)值. 計算同一個用戶下的所有數(shù)據(jù)的指標(biāo)均值A(chǔ)VG_WA(i). 當(dāng)WA(i,j)≥AVG_WA(i)時,則認(rèn)為第j組數(shù)據(jù)作為第i個用戶的候選模板. 符合第i用戶候選模板要求的手勢數(shù)據(jù)構(gòu)建候選模板集.其中WA指標(biāo)的公式如式(13)所示:d為非法手勢認(rèn)證為合法手勢數(shù),β為相應(yīng)的權(quán)重值,其公式表示如式(14)所示:
其中,a為合法手勢認(rèn)證為合法手勢數(shù),b為合法手勢認(rèn)證為非法手勢數(shù),c為非法手勢認(rèn)證為非法手勢數(shù),
7)對候選模板集的所有手勢數(shù)據(jù)長度,求平均值L;
8)為便于標(biāo)準(zhǔn)化模板,將候選模板集里所有的手勢數(shù)據(jù)進行伸縮處理,處理成長度L的歸一化模板. 模板的伸縮處理采用文獻[20]中數(shù)據(jù)序列長度歸一化方法實現(xiàn),其中模板R(S)(S為手勢模板序列的長度)歸一化處理有3種情況:
① 當(dāng)S=L時,R(L)= R(S);
② 當(dāng)S>L時,通過對R(S)進行降采樣實現(xiàn)模板收縮. 首先將R(S)中的第i數(shù)據(jù)點ri映射到R(L)中的gj,則相對應(yīng)的下標(biāo)映射按照式(15)實現(xiàn):
③ 當(dāng)S<L時,通過線性插值方法來實現(xiàn)R(S)延伸. 首先按照式 (15)將R(S)中的第i數(shù)據(jù)點ri映射到R(L)中的gj,然后將所有g(shù)j的按照j遞增依次進行排j<j1,則gj=gj1,若j滿足jk<j<jk+1,則可以使用式 (16)計算該值:
9)將步驟8)處理后的候選模板求均值,將該均值模板作為用戶的標(biāo)準(zhǔn)模板其中為第i個用戶的標(biāo)準(zhǔn)模板. 將與訓(xùn)練手勢數(shù)據(jù)(第i個用戶的手勢數(shù)據(jù)的約束下獲得WA(Ri)指標(biāo)值,將最優(yōu)閾值作為模板的最終模板閾值.和干擾手勢數(shù)據(jù))計算規(guī)整距離,在最優(yōu)閾值
基于CM-DTW算法的手勢身份認(rèn)證主要包含兩個階段:手勢模板訓(xùn)練和身份認(rèn)證. 手勢模板訓(xùn)練首先將采集的多條用戶信息進行數(shù)據(jù)標(biāo)準(zhǔn)化、平滑去噪處理,并挑選候選模板,然后采用線性升降采樣對候選模板歸一化,生成每個用戶的標(biāo)準(zhǔn)手勢模板,通過標(biāo)準(zhǔn)手勢模板對訓(xùn)練集進行認(rèn)證,在加權(quán)準(zhǔn)確率指標(biāo)的約束下,獲得最優(yōu)的身份認(rèn)證閾值,最終獲得一個標(biāo)準(zhǔn)模板庫. 身份認(rèn)證階段對用戶測試手勢數(shù)據(jù)進行數(shù)據(jù)標(biāo)準(zhǔn)化、平滑去噪處理,使用處理后的數(shù)據(jù)與用戶標(biāo)準(zhǔn)手勢模板計算CM-DTW規(guī)整距離,如果該規(guī)整距離小于該模板的最優(yōu)認(rèn)證閾值,則該測試數(shù)據(jù)與模板數(shù)據(jù)屬于同一個用戶,否則,測試數(shù)據(jù)與模板數(shù)據(jù)不屬于同一用戶. 身份認(rèn)證流程如圖3所示.
實驗仿真平臺采用Matlab R2017a (9.2.0 538062),實驗數(shù)據(jù)的采集通過華為p10手機采集完成. 實驗數(shù)據(jù)共征集40人參與采集,年齡分布于20到47歲之間,其中男生26人,女生14人. 按照要求采集數(shù)據(jù)時,一只手手持手機,且將手機屏幕正面向上,根據(jù)軟件提示,另一只手的食指以“Z”字滑動解鎖屏幕. 每個人連續(xù)采集手勢數(shù)據(jù)15組,共采集600組手勢數(shù)據(jù). 其中每個人采集的15組手勢數(shù)據(jù)中,10組數(shù)據(jù)用于訓(xùn)練算法的手勢模板,另外5組數(shù)據(jù)用于測試驗證算法.
圖3 身份認(rèn)證流程圖
訓(xùn)練數(shù)據(jù)與測試數(shù)據(jù)通過歸一化和平滑處理等預(yù)處理操作. 為了突出數(shù)據(jù)的特點,通常給予需平滑的數(shù)據(jù)最高的權(quán)重,求得中間位置的數(shù)據(jù)的加權(quán)平均值作為平滑后的結(jié)果[21]. 因此,數(shù)據(jù)平滑處理時的窗口大小設(shè)定為5,同時權(quán)重值依次設(shè)定為1,2,3,2,1.驗證階段的Sakoe-Chiba窗約束參數(shù)f的值取
本實驗通過經(jīng)典DTW算法對訓(xùn)練數(shù)據(jù)進行身份認(rèn)證,其中最優(yōu)模板是指訓(xùn)練手勢數(shù)據(jù)作為模板對其他訓(xùn)練手勢數(shù)據(jù)認(rèn)證獲得最優(yōu)WA的模板,其中閾值的比例變化范圍是(0.5,1.5),以0.1的變化幅度遞增.兩種模板對訓(xùn)練數(shù)據(jù)的身份認(rèn)證結(jié)果如表1和圖4所示,其中TP(True Positive)為合法用戶樣本被正確認(rèn)證的比例,TN(True Negtive)表示非法用戶被認(rèn)證為非法用戶的比例.
從表1可以發(fā)現(xiàn),多數(shù)用戶在使用標(biāo)準(zhǔn)模板進行身份認(rèn)證的TP值和TN值較高于最優(yōu)模板,且對40個用戶的TP和TN的平均值,標(biāo)準(zhǔn)模板相比于最優(yōu)模板的效果更優(yōu). 圖4顯示了標(biāo)準(zhǔn)模板的折線高于最優(yōu)模板,說明標(biāo)準(zhǔn)模板可以得到一個較好的準(zhǔn)確率. 綜合表1和圖4的結(jié)果,將標(biāo)準(zhǔn)模板應(yīng)用于用戶的手勢身份認(rèn)證將取得很好的結(jié)果.
本實驗選擇40名用戶的訓(xùn)練數(shù)據(jù),采用CMDTW算法和經(jīng)典DTW算法分別計算同一個用戶手勢之間的距離和該用戶手勢與其他用戶手勢數(shù)據(jù)之間的距離,并記錄相應(yīng)的運算耗時均值,如圖5所示.
表1 標(biāo)準(zhǔn)模板與最優(yōu)模板身份認(rèn)證的TP值和TN值
圖4 標(biāo)準(zhǔn)模板與最優(yōu)模板身份認(rèn)證的WA值
從圖5可知,CM-DTW算法在同用戶和不同用戶的認(rèn)證認(rèn)證耗時明顯小于經(jīng)典DTW算法,提高了手勢識別的認(rèn)證效率.將CM-DTW算法應(yīng)用于手機身份認(rèn)證過程,可以降低用戶認(rèn)證的時間,提高用戶的體驗效果.
本實驗中,CM-DTW算法首先通過訓(xùn)練數(shù)據(jù)訓(xùn)練獲得40組用戶的模板和最優(yōu)閾值,并與經(jīng)典DTW算法對測試數(shù)據(jù)進行身份認(rèn)證,其中閾值的比例變化范圍是(0.5,1.5),以0.1的變化幅度遞增,獲得的最優(yōu)WA指標(biāo)值作為最終的驗證結(jié)果,兩個算法的手勢驗證結(jié)果如表2和圖6所示.
圖5 CM-DTW算法與經(jīng)典DTW算法的運算耗時
表2 CM-DTW算法與經(jīng)典DTW算法身份認(rèn)證的TP值和TN值
從表2可以發(fā)現(xiàn),與經(jīng)典DTW算法相比,CMDTW算法身份認(rèn)證的TN均值略高,TP均值略低. 對比兩種算法在40組用戶的TN、TP值,兩種算法的TP、TN指標(biāo)值均各有高低. 圖6中顯示兩種算法的折線較為接近,說明CM-DTW算法與經(jīng)典DTW算法的WA值相差較小. 綜合表1和圖6的指標(biāo)值可知,對比經(jīng)典DTW算法,CM-DTW算法在對40組用戶手勢數(shù)據(jù)的身份認(rèn)證中能夠保證準(zhǔn)確率.
圖6 CM-DTW算法與經(jīng)典DTW算法的WA值
本文提出了一種基于CM-DTW算法的智能手機動態(tài)手勢身份認(rèn)證方法,通過全局規(guī)整路徑約束,實現(xiàn)了提高智能手機動態(tài)手勢認(rèn)證的效率,通過歸一化的方法伸縮手勢數(shù)據(jù)長度得到標(biāo)準(zhǔn)化的手勢模板,消除了手勢模板選擇不夠精確的問題,提高了手勢身份認(rèn)證的認(rèn)證精度.