劉 升,蘭少峰
(上海工程技術大學 管理學院,上海201620)
作為身份識別方法的一種,生物特征識別[1]具備安全性高、特征穩(wěn)定[2]等特點。目前,較常用的識別方法為指紋、人臉識別等,雖然具有可唯一識別的性能,但難以抵抗偽造指紋膜、偽造臉型的攻擊[3],也難以用于植入移動設備來保護個人信息?;诖?,本文采用一種生物識別技術——生理振動信息,其更加具有不可偽造、難以破解、識別率高的特性。本文采用這種身份識別方法,利用用戶的生物信息,通過智能手機內(nèi)置傳感器,采集用戶的生理振動數(shù)據(jù),進行數(shù)據(jù)去重力分析、特征提取、數(shù)據(jù)標準化化處理等。采用模式識別方法進行分類器設計,評價分類器優(yōu)劣,得出查準率、誤檢率等評價指標,實現(xiàn)用戶身份識別。
手機中的加速度傳感器是手機中一個非常重要的傳感器,主要作用是感應手機的運動狀態(tài)。并且能夠轉(zhuǎn)換成可用的輸出信號,它將獲取手機的3個參數(shù)。
如圖1所示,手機加速度傳感器的三維坐標系是以屏幕左下方為原點,X 軸沿著屏幕向右,Y 軸沿著屏幕向上,Z軸垂直屏幕向上。
在Android智能手機中,要想訪問手機傳感器并獲取傳感器數(shù)據(jù),必須先獲取傳感器管理,然后注冊傳感器,傳感器數(shù)值變化時,調(diào)用onSensorChanged (),最后保存?zhèn)鞲衅鲾?shù)據(jù)。
圖1 手機內(nèi)置加速度傳感器三維坐標系[4]
SensorManager是傳感器的一個綜合管理類,包括對傳感器的種類、采樣頻率、精確度等管理。要與傳感器交互,應用程序必須注冊一個監(jiān)聽器以檢測一個或多個傳感器相關的活動,可以使用registerListener()[5]注冊一個傳感器監(jiān)聽器。
SensorEventListener是傳感器的監(jiān)聽接口,通常用on-SensorChanged (SensorEvnet)方法。監(jiān)視傳感器值的改變,該方法的參數(shù)是一個SensorEvent對象,該對象具有對象、精度、新值、事件4 個描述傳感器的屬性[6]。感應檢測主要依靠該方法檢測到環(huán)境的改變事件而確定,因為感應檢測Sensor設備組件不同,所檢測的事件也不同。SensorEvent類中的values 屬性非常重要。加速度傳感器的values變量的3個元素值分別表示X、Y、Z軸的加速度值。
在訪問傳感器之后,需要對傳感器的數(shù)據(jù)進行提取。所有傳感器的數(shù)值保存在SensorEvent。數(shù)值的長度和意義取決于當前的傳感器類型。其包含三列值,分別表示加速度在立體坐標系X、Y、Z方向上的分量。
實驗中,要采集不同用戶的多組加速度傳感器的數(shù)據(jù)。讀取時,產(chǎn)生傳感器的英文名稱命名的txt文本文檔,每個文本文檔里包含四列數(shù)據(jù)信息:第一列是一個不小于0的數(shù)值,相當于一個計數(shù)器的功能;第二列是X 軸的數(shù)據(jù);第三列是Y 軸的數(shù)據(jù);第四列是Z軸的數(shù)據(jù)。
實驗采集了多組樣本,除了獲取10組手機機主的傳感器數(shù)據(jù)以外,還要獲取50位手機機主以外的人的傳感器數(shù)據(jù)作為測試數(shù)據(jù),以此進行對比。按照上述方法重復操作,得到50組測試數(shù)據(jù),其中,前10組為自己的數(shù)據(jù),后50組為別人的數(shù)據(jù)。
數(shù)據(jù)處理是對數(shù)據(jù)的采集、存儲、檢索、加工、變換和傳輸,是從大量的、雜亂無章的、難以理解的數(shù)據(jù)中抽取并推導出對于某些特定的人來說是有價值、有意義的數(shù)據(jù)的過程[7]。實驗中,使用Matlab軟件進行數(shù)據(jù)處理,首先從txt文本文檔中讀取從傳感器獲取的原始數(shù)據(jù),然后提取其數(shù)據(jù)特征,如均值、方差、能量、偏度和峰度等,分析數(shù)據(jù)特征,最后對數(shù)據(jù)特征進行標準化處理。
1.3.1 數(shù)據(jù)預處理及特征提取
實驗中,進行數(shù)據(jù)處理的是加速度傳感器采集的數(shù)據(jù),逐個讀取60組樣本數(shù)據(jù)。
原始數(shù)據(jù)是傳感器X 軸、Y 軸和Z軸三維數(shù)據(jù),以一組樣本數(shù)據(jù)為例,圖2是三軸的變化情況,其中橫坐標是數(shù)據(jù)文件中第一列的數(shù)據(jù),縱坐標為加速度傳感器的3個軸的數(shù)值,即數(shù)據(jù)文件中第二、三、四列的數(shù)據(jù)。
圖2 原始數(shù)據(jù)
有圖2以看出,Z軸的數(shù)值在9.8 m/s2上下徘徊,這是因為提取的原始數(shù)據(jù)中受到重力加速度的影響。重力加速度的影響要求在樣本的訓練和識別過程中都必須讓手機在空間中處于相同的位置,這將很大程度上會影響身份識別的精確度。因此要測量設備的實際加速度,重力作用的影響必須要從加速度傳感器數(shù)據(jù)中去除。
那么只要分別計算出3個軸所承受的重力,從原始加速度中減去就可以了,這樣就可以得到需要的凈加速度值。
設原始加速度樣本xi,迭代控制參數(shù)為α(0<α<1),則重力g 可以近似表示為
α越趨近于1,g 趨近于當前的x 的速度就越慢,由于樣本數(shù)據(jù)前后變化不明顯,重力加速度g 對它們的影響力相當,因此在實驗中,選取α=0.5。以Y 軸為例,圖3顯示了去除重力加速度影響前后的對比效果。
對原始數(shù)據(jù)去重力影響后,就可以對數(shù)據(jù)進行特征提取了。特征提取是尋找某些信號特征來區(qū)別一種信號于另一種信號的不同,實驗中,我們采用以下特征來進行討論:
均值:計算每一列數(shù)據(jù)的平均值,均值的計算公式為
標準差:計算每一列數(shù)據(jù)的方差,標準差計算公式為
圖3 去除重力加速度影響
能量:計算每一列數(shù)據(jù)的能量,計算能量的公式為
峰度:峰度又叫峰態(tài)系數(shù),是描述分布形態(tài)的陡緩程度。有時兩組數(shù)據(jù)的算術平均數(shù)、標準差都相同,但他們分布曲線頂端的高聳程度卻可能不同,峰度的計算公式為
偏度:偏度用于衡量x的對稱性。若偏度為負,則x均值左側(cè)的離散度比右側(cè)強;相反,則x均值左側(cè)的離散度比右側(cè)弱。偏度的計算公式為
提取到每一列的數(shù)據(jù)特征后,每一組樣本數(shù)據(jù)都產(chǎn)生一個15行1列的向量,將其保存在指定數(shù)組中,其中1到5為X 軸的5個特征值 (依次為均值、方差、能量、峰度和偏度),5到10為Y 軸的5個特征值,11到15為Z軸的5個特征值。至此,特征提取結(jié)束。
1.3.2 數(shù)據(jù)標準化處理
由于不同變量常常具有不同的單位和不同的變異程度,這使得數(shù)據(jù)之間相互比較非常困難。比如第一列是均值,第二列是方差,第三列是能量等,在進行對比時,相互之間的關系系數(shù)具有很大的差異,那么直接對此矩陣進行處理有很多會出現(xiàn)問題。因此,為了消除數(shù)值大小和變量自身變異大小和量綱影響的影響,使得數(shù)據(jù)之間具有可比性,必須對數(shù)據(jù)進行標準化處理。
z-score標準化方法在統(tǒng)計學中是一種無因次值,是借由從單一 (原始)數(shù)據(jù)中減去母體的平均值,再依照母體(母集合)的標準差分割成不同的差距。實驗中采用z-score標準化,計算公式[8]為
其中,σ≠0,x 是需要被標準化的原始數(shù)據(jù),μ是樣本的平均值,σ是樣本的標準差。
標準化的結(jié)果是沒有單位的純數(shù)值,大小在零上下徘徊,標準差為1,這就消除了變量自身變異和單位的不同對實驗結(jié)果的影響。
設計分類器目的是為了在通過一定的學習和訓練之后,能夠?qū)⑽粗獢?shù)據(jù)分類到已知類別。實驗將設計合適的分類器,以便將機主身份與機主以外的人身份分離開來,從而進行用戶身份的識別。近鄰分類法,是最成熟的分類器設計方法之一,也是最簡單的機器學習算法之一,在進行類別的判別時,只與有限個相鄰的訓練樣本有關,在進行分類時,主要根據(jù)周圍有限個鄰近的訓練樣本的屬性,這就是與傳統(tǒng)的依靠判別類域的方法來確定屬性的不同之處。文獻 [9]表明,如果待分類集的類域有較多的重合或交叉,那么近鄰分類法是最好的方法之一。
k-近鄰算法可簡單描述為:取未知樣本x 最近的k 個訓練樣本點,看這k 個訓練樣本點中多數(shù)屬于哪一類,就即可將x 歸于該類。具體地說,已知N 個訓練樣本,找出距離x 最近的k 個。在這N 個樣本中,分為w1類、w2類、…、wc類共c 個類別,若k1,k2,…,kc,分別為k個近鄰中屬于w1,w2,…,wc類的樣本數(shù),則可以定義判別函數(shù)[10]為
決策規(guī)則為:若gj(x)=則決策x ∈wj。
利用k-近鄰算法進行分類器設計,實驗通過Matlab軟件來實現(xiàn),首先讀取樣本特征數(shù)據(jù),然后設定訓練樣本和測試樣本個數(shù)及其類別,運用距離函數(shù)計算測試樣本與訓練樣本的距離,來對測試樣本進行分類。詳細處理時,需要解決尋找適當?shù)挠柧毤?、確定距離函數(shù)、決定k的取值、綜合k個鄰居的類別等問題。
2.2.1 尋找適當?shù)挠柧殧?shù)據(jù)集和距離函數(shù)
訓練數(shù)據(jù)集是對歷史數(shù)據(jù)的一個很好的覆蓋,這樣才能保證最近鄰有利于預測,實驗中,選取樣本的前10組作為第一類的訓練數(shù)據(jù),第11組到第35組作為第二類的訓練數(shù)據(jù),選取的各類訓練樣本的數(shù)量不同,這是考慮到第一類(即自己本人)的樣本數(shù)據(jù)之間的相似程度較大,而第二類(即別的不同的幾個人)的樣本數(shù)據(jù)之間的相似度較小,為了增加分類的正確率,設置第二類的訓練集相對較大。
本文選用歐氏距離作為距離函數(shù)進行度量,空間中歐式距離的計算方法如下:n維歐氏空間是一個點集,它的每個點X 可以表示為(X[1],X[2],…,X[n]),其中X[i](i=1,2,…,n)是實數(shù),稱為X 的第i 個坐標,兩個點A =(a[1],a[2],…,a[n])和B =(b[1],b[2],…,b[n])之間的距離d(A,B)定義為下面的公式
2.2.2 k的取值
k的取值大小,會對分類的結(jié)果有一定影響。如果選擇較小的k值,就相當于用較小的領域中的訓練實例進行預測,“學習”近似誤差會減小,只有與輸入實例較近或相似的訓練實例才會對預測結(jié)果起作用,導致的問題是 “學習”的估計誤差會增大;如果選擇較大的k 值,相當于用較大領域中的訓練實例進行預測,其優(yōu)點是可以減少 “學習”的估計誤差,但缺點是 “學習”的近似誤差會增大。因此,一般先對k確定一個初始值,再進行調(diào)整,直到找到合適的值為止。實驗中,由于采集的數(shù)據(jù)樣本較少,k的取值也相對較小,分別取k=1,3,5,7,9進行分析比較。
本實驗在MATLAB6.0環(huán)境下進行編程實現(xiàn),硬件平臺處理器為Intel Core i5CPU2.0GHZ,內(nèi)存2.00G,操作系統(tǒng)環(huán)境為Windows 7,32位。k 值分別取1、3、5、7、9等值進行比較分析,分別將第1至第10組和第11至第45組作為第1和第2類的訓練樣本,然后選取樣本的總體作為測試組。結(jié)果返回這類的類別。
利用k-近鄰法進行模式分類后,實驗結(jié)果見表1,其中類別1為自己的樣本數(shù)據(jù),類別2為別人的樣本數(shù)據(jù)。
為了能夠清晰的看出取不同值時識別率的高低,結(jié)果見表2,k分別取1,3,5,7,9時的不同類別的正確識別率、錯誤拒絕率和總的識別率和錯誤率。由此表可以看出,k取1時的識別率最高,達到了98.33%,基本達到了實驗要求的識別率,因此,選取k=1進行分類器的設計,可以用此方法進行手機用戶身份識別。
利用生物特征識別技術,采用用戶生理振動進行身份認證,是一種高效的身份識別方法。實驗通過采集60 組不同用戶的生理振動信息,最高達到了98.33%的識別率,識別結(jié)果表明該生物識別技術具有強有力的研究前景。實驗也顯示一些問題:樣本容量較小、特征的選取基于低維的統(tǒng)計量、模式識別方法有待對比改進等。未來更大范圍的擴展樣本容量、采用高階統(tǒng)計量更為豐富的特征、更為有效的模式識別方法將會進一步提升用戶身份識別的效果。
表1 實驗結(jié)果
表2 不同k值的實驗結(jié)果分析
[1]Wayman J.Biometrics in identity management systems [J].Security &Privacy,IEEE,2008,6 (2):30-37.
[2]Mordini E.Body,biometrics and identity [J].Bioethics,2008,22 (9):488-498.
[3]Wang S.Cloud computing lightweight authentication protocol[J]. Applied Mechanics and Materials, 2013, 284:3502-3506.
[4]Bartolini.Mobile sensor deployment in unknown fields[C]//Proceedings IEEE INFOCOM,2010:1-5.
[5]Allen G.Managing and accessing local databases[M].Begin-ning Android 4,2011:367-379.
[6]Zechner M.An Android game development framework [M].Beginning Android Games,2012:193-236.
[7]Romero C.A survey on pre-processing educational data [M].Mining.Springer International Publishing,2014:29-64.
[8]Peguero A.Latino/a student misbehavior and school punishment[J].Hispanic Journal of Behavioral Sciences,2011,33(1):54-70.
[9]Liu Z.A new belief-based K-nearest neighbor classification method [J].Pattern Recognition,2013,46 (3):834-844.
[10]Loperfido N.Skewness and the linear discriminant function[J].Statistics &Probability Letters,2013,83 (1):93-99.