張夢歡, 王亞剛
(西安郵電大學 計算機學院,陜西 西安 710061)
手勢是人機交互的重要方式,手勢識別是許多移動應用的基礎,并且正在成為新應用領域的重要技術。手勢密碼被廣泛應用于公共設施,公寓樓和智能家居的訪問控制。但是,由于目前的認證方法(例如,PIN和密碼)存在被非法用戶泄漏和盜取,因此這種認證方法提供的認證功能較差。圍繞攝像機或基于指紋的技術構建的替代身份驗證解決方案也不理想,不僅部署和維護昂貴,容易遭受各種攻擊[1]。目前,用于活動識別的無線技術最新突破[2]使現在的工作成為可能。在無線傳感技術中,它只需使用麥克風和揚聲器即可輕松部署聲音感應,而且無需用戶佩戴其他硬件設備,與其他基于基礎架構的解決方案(例如,視頻監控[3])相比,它對隱私的干擾較小。經典的用戶身份驗證方法包括基于文本[4]和基于圖形的密碼[5]。但是,由于任何人都將身份驗證密碼視為密碼的合法用戶,因此,這些方法容易遭受身份驗證密碼的泄漏。目前還有一些身份驗證方法包括訪問智能卡[6]、指紋[7]和面部識別[8]等,這些認證方法效果雖然比較好,但還存在一些問題,它們部署相對比較昂貴,并且獲得用戶生物信息還遭受各種攻擊。
近年來,WiFi已經成為感知信息的強大媒介,通過測量無線信道如何受人類活動的影響,可完成諸如步態識別[9]、手勢識別[10]等。目前,WiFi技術也開始支持捕獲用戶輸入。例如,通過測量了手指觸摸導致的物理振動[11]如何變化,捕獲不同表面上的用戶輸入,這些方法涉及昂貴的成本。還有其他方法可以對用戶進行身份驗證[12],多數情況下是根據生物特征信息來檢查用戶的合法性?;谏镄畔⒌挠脩羯矸蒡炞C和識別方案包括指紋[7]、面部[8]和步態識別[9],已被廣泛使用并受到關注,但生物特征識別認證涉及用戶隱私問題。
針對上述問題,本文提出了一種新的用戶密鑰訪問技術,利用聲音頻率的選擇性衰減進行活動識別,提供一種驗證用戶是否為認證密鑰所有者的方法,不需要采集用戶的生物信息,是一種低成本的輔助身份驗證系統。其中,包括了手勢檢測和目標識別的算法。手勢檢測算法基于動態能量閾值,當檢測到手勢時,通過能量閾值分割出手勢動作。對于目標識別,利用聲音信號的頻率選擇性衰減和多徑效應捕獲不同用戶手指運動的獨特屬性,然后使用卷積神經網絡(convolutional neural network,CNN)提取信號來完成這項工作,并進一步使用支持向量機(support vector machine,SVM)模型將信號特征映射到已知的用戶手勢輸入動作,準確地判斷用戶的輸入并能夠驗證不同的用戶,提高了用戶手勢識別的準確率。
類似于信號在無線傳輸的過程中,超聲波信號穿過介質時,由于兩者相互作用,當在無線設備的發送端和接收端(揚聲器和麥克風)之間產生手勢動作,會導致傳播信號發生反射/衍射。其中,部分聲音信號反射,部分信號則經過多徑效應進行傳播,到達接收端。此外,在多徑效應下,信號傳播的時間沿著不同的路徑變化。因此,麥克風接收的聲音信號是通過多個延遲信號組成的。
信號通過信道傳輸后,信號的每個頻率分量的變化不一致,當手指在信號發送和接收端間運動時,動態手勢改變了信道的傳輸函數,引起聲音信號的頻率選擇性衰減,使信道頻域上的能量發生改變。用戶靜止時,信道頻域上的能量基本保持不變,當用戶的手在發送端和接收端的信號傳輸區域內運動時,信號傳輸路徑發生變化,信號進行反射/衍射,使得信道頻域上的能量產生變化。
移動設備的內置揚聲器發出調制的高頻聲信號,然后由內置麥克風捕獲并記錄其回聲信號。然后,對麥克風記錄的原始聲音信號進行預處理,提取特征信號,然后使用提取的信號特征值來進行手勢識別。系統基本流程圖如圖1所示。

圖1 操作流程
接收超聲信號,將動作對高頻信號的影響作為輸入。數據收集完成后對數據進行預處理,去掉聲音信號首尾沒有動作的數據,使用巴特沃斯濾波器進行去噪,然后通過閾值來截取部分動作,并對截取后的數據進行特征提取。基于短時傅里葉變換(short-time Fourier transform,STFT)的特性,利用傅立葉變換將時域信號轉換為頻域信號,并及時對快速傅里葉變換(fast Fourier transform,FFT)后的每一幀的頻域信號(頻譜圖)進行疊加以獲得聲譜圖,STFT功能可以很好表示隨時間變化的信號頻率。在認證部分中,使用提取的頻譜圖對模型進行訓練,對于同一動作,經過訓練后,訓練后的結果將用作SVM分類器的輸入,以識別和認證,確定輸入動作是什么,并確定合法用戶。
信號調制過程中,選擇序列調制,將指定的信號序列調制到固定的頻率載波上形成帶寬信號。為了避免出現其他頻率的噪音,使用帶通濾波器對調制信號進行帶通濾波,留下需要帶寬信號。
收集聲音信號數據后,將原始聲音信號數據進行讀取,并用閾值方法截取聲音信號,再用巴特沃斯低通濾波器進行濾波。然后直接提取高頻特征,獲得信號的STFT時頻關系。STFT的窗大小為1 024,重疊大小為512,每1 024個點做一次FFT,可以得到信號的頻譜圖。同時進行灰度處理,將3通道的彩色圖處理成單通道的灰度圖,達到數據壓縮的目的降低訓練CNN模型的時間。
當手在移動的過程中,聲音傳輸時的多徑會隨著手的移動產生變化,在每一個時間點獲得超聲波的頻率衰減時,這些頻率衰減就形成一個頻率衰減曲線(FAP),FAP就可以看成是一個手勢動作的圖像。圖2是寫字母“A”,數字“8”和手勢“手勢3(逆時針圓圈)”時的STFT。不同字母,數字和動作的筆觸不同,輸入不同動作會對信號頻率產生不同的影響,對應的提取STFT后,不同頻率的信號有不同的影響效果,最終不同動作的頻譜圖也不同。

圖2 不同動作的頻譜圖
預處理后的信號特征作為CNN的輸入進行手勢識別[13]。對于CNN模型[14],網絡結構每層依次為Conv2D(作為輸入層),Maxpooling2D,Conv2D,Maxpooling2D,Dropout,Conv2D,Conv2D,Conv2D,Maxpooling2D,Dropout,Flatten,Dense,Dropout,Dense,Dropout,Dense(class,activation=’softmax’),卷積層的卷積核大小依次是8×8,6×6,3×3,3×3,3×3,最大池化層的池化大小依次是5×5,4×4,4×4。其中,Dropout層是為了避免模型過度擬合。然后通過Flatten層將中間層的輸出繪制為一維矢量,以便將其輸入到全連接層,兩個全連接層進一步調整網絡中的權重。最后一個全連接層中,SoftMax激活函數用于輸出分類標簽,以便以后與其他分類器進行比較。此CNN模型中使用的激活函數為tanh,盡管ReLU激活功能當前在圖像領域中更為常用,在測試數據后,tanh的激活功能可以更好地對目標任務進行處理。在模型訓練過程中,當迭代次數設置為2 000時,結果是穩定的。
輔助認證過程中,不同類型的分類器效果不同。選擇了8個不同的分類器來訓練數據。8個分類器是邏輯回歸(logistic regression,LR)、SVM、K最近鄰(K nearest neighbour,KNN)、決策樹高斯樸素貝葉斯(Gaussian naive Baye-sian,GNB)分類器、隨機森林(random forest,RF)、梯度提升(gradient boosting,GB),并直接使用CNN識別。經過測試,最終選擇了CNN+SVM進行輔助身份驗證,此時SVM中采用線性核函數。
為了分析和評估系統的性能,邀請了33名志愿者參加實驗數據的收集,使用魅藍Note6手機進行系統性能測試。志愿者根據各自的行為習慣輸入手勢動作。
采集環境:1)安靜環境:數據采集過程中,沒有其他噪音干擾; 2)噪音環境:當志愿者執行手指手勢輸入時,播放高達80 dB的噪聲。
收集的數據集:33名志愿者在安靜的環境和受噪聲干擾的環境中接收26個大寫字母,0~9個數字,4個手勢[11]以及連續的動作。以下通過不同動作,不同噪聲環境和不同距離來分析系統識別和驗證的準確性。
3.1.1 評估單獨的動作
志愿者書寫26個大寫字母(確保33名志愿者在同一場景下收集實驗數據,方便后續的數據處理和實驗結果的驗證)。大多數動作的識別準確度均在96 %以上,部分動作識別準確度達到100 %。如圖3所示,對于三種不同的動作,平均識別準確率達到96 %以上。

圖3 26個大寫字母識別準確率
3.1.2 環境噪聲的影響
具體的數據收集是志愿者在安靜的環境和音樂噪音為80 dB的環境中收集數據。如圖4顯示單獨動作和連續動作在兩種環境下的身份驗證準確率。

圖4 不同環境識別準確率
3.1.3 不同距離的影響
用戶收集實驗數據時,評估用戶手指手勢與麥克風之間的距離。測試了4個距離段,分別在距麥克風0~5,5~10,10~15,15~20 cm書寫26個大寫字母,0~9個數字和4個手勢[11],驗證距離是否會影響系統的身份驗證準確性。如圖5所示,隨著手離麥克風越來越遠,識別準確率降低。因此,在隨后的輔助認證數據收集中,要求志愿者手和麥克風的距離保持在15 cm以內,用戶進行手勢輸入。

圖5 不同距離識別準確率
為了更好地應用于現實生活中,實驗環境位于日常工作辦公室中。招募了15名志愿者進行合法的用戶身份驗證,在3個月內完成了實驗數據的收集。收集實驗數據之前,向每個志愿者詳細解釋了實驗測試動作。
3.2.1 數據量統計
1)單獨動作:對于15位志愿者,本文要求根據寫作習慣書寫26個大寫字母,0~9個數字和:4個手勢。每個動作重復30次,對志愿人員沒有任何限制。寫入過程中收集的數據總量為18 000(40×30×15)。
2)連續操作密碼:上述40個動作中,隨機選擇4個密碼組合,找到4組隨機組合的密碼進行數據收集,并且在書寫過程中對志愿者的行動規模沒有限制。收集的總數據為1 800(4×30×15)。
3)從一些志愿者處收集其他數據,包括不同的材料,不同分類器等,以測試系統的性能。
3.2.2 用戶驗證準確性結果
1)15名志愿者對26個大寫字母,0~9位數字和4個簡單手勢進行用戶身份驗證和識別。如圖6所示,不同的身份驗證用戶,不同動作的準確性存在差異,字母驗證的準確性優于數字和手勢,因為動作越復雜,用戶在捕獲過程中獲得的特征信息越多。因此,識別和認證的效果也更好。

圖6 不同動作的用戶認證
2)不同材料的用戶輔助認證,對于不同的材料表面,主要選擇對硬材料(例如木材)和軟材料(例如硅膠)執行用戶身份驗證。6名志愿者在兩個材料表面上輸入手勢。如圖7所示,軟材料略低于硬材料的認證準確率,但兩者都在96 %以上,并且可以有效地對用戶進行身份驗證。

圖7 不同材質的用戶輔助認證
3)系統通過CNN模型訓練,并使用SVM進一步分類識別。比較了7種分類器的性能,包括LR,SVM,KNN,DT,GNB,RF和GB。圖8顯示了當用戶輸入26個大寫字母,0~9個數字和手勢時,不同分類器的識別精度,可以看出,使用SVM進行分類認證的準確性略高于其他分類器,SVM分類的準確性超過96 %。

圖8 不同分類器的識別準確率
本文構建了一種智能用戶訪問模型,使用超聲波檢測來提高用戶使用指紋和其他生物識別技術的安全性。基于頻率選擇性衰減和在空中傳播的聲音信號的多徑效應,通過發送固定的高頻信號,捕獲動作以提取STFT特征;然后使用神經網絡進行訓練,可以對用戶的手勢進行識別。為用戶提供3個不同的獨立密碼(4個簡單手勢,大寫字母,數字)和一種連續密碼,將保存的頻譜圖作為CNN的輸入,CNN可以執行為每個用戶建模訓練,并使用SVM進行用戶分類身份驗證。在Android系統的手機上實施了該系統,結果表明:該系統對用戶的手勢識別及身份認證可以達到96 %以上的準確度。