李文娟,沈 澍,2,孫紹山,陳偉男
(1.南京郵電大學 計算機學院,江蘇 南京 210023;2.江蘇省無線傳感網高技術重點實驗室,江蘇 南京 210023)
步態是一種新興的生物識別特征,相比于人臉、指紋等識別特征,具有不可偽裝、環境適應強等特點。除了作為人臉、指紋識別等方法的補充,步態識別既可以滿足一些尋常場景的應用需求,也可以填補一些特殊場景的應用缺口。目前研究者們已經逐漸將步態應用于身份識別[1-3]、疾病診斷[4-5]、安防監控[6]等領域。該文將步態分析應用于用戶身份識別,在特殊場景例如案件偵查下提供新興的識別技術,在疫情期間也可以做到無接觸式身份識別,減少病毒傳播。
根據獲取信息方式的不同,步態識別通常可劃分為基于圖像序列的步態識別[7-8]和基于運動傳感器的步態識別[9-10]。第一種是通過攝像機捕捉步態圖像。Thunwa Sattrupai等人[8]找出步態視頻中每一幀的關鍵點并尋找軌跡序列的相關幀,利用密集軌跡進行識別。在前視角下識別準確率達到85%,但是由于背光問題,導致在后視角下準確率較低。可見,利用攝像機進行步態識別,不僅成本高,也會受到光照、視角和被遮擋衣物的影響。
第二種是通過可穿戴式傳感器采集步態數據。與基于圖像序列的步態識別方式相比,基于傳感器的識別只需要低成本的可穿戴設備或智能手機,不受環境影響。因此,基于傳感器的識別技術越來越受到人們的重視。智能手機集成了多種高精度、高智能、多功能的傳感器,利用智能手機采集人體走路時產生的慣性傳感器信號進行用戶身份識別,應用設備成本低且便攜性強,具有較好的發展前景。
毛晨飛[11]利用手機傳感器來獲取步態信號,并利用支持向量機(SVM)分類模型和自己所設計的BP網絡在30人的數據集上進行實驗,識別準確率分別達到了90.45%和90.17%。Zou等人[12]使用加速度計和陀螺儀獲取步態數據,并通過步態識別技術進行人體識別。為了提高計算精度,他們提出了一種由CNN和長短期記憶(LSTM)組成的混合深度神經網絡。它被用于提取時域和空間域的特征。該方法在自己搭建的whuGait Dataset #1(118名受試者)數據集上的識別準確率達到了93.5%。
現階段,利用傳感器采集步態信號所建立的大型公開的步態數據集有日本大版大學科學研究所提供的OU-ISIR[13]和武漢大學提出的whuGait[12]。OU-ISIR數據集中每個受試者的步態數據僅包含1 000多個采樣點,數據量較少,而whuGait中的數據在采集時沒有限制設備的放置位置,對研究采集設備的放置位置對識別性能的影響不能提供幫助。因此,考慮到可用的開源數據集較少,以及受限于數據量大小以及采集設備位置,需要根據自己的需求來搭建更合適的步態數據集。
除了數據集以外,現有的識別方法準確率較低,距離實際應用還有較長距離。因此,基于卷積神經網絡設計了新的識別模型并開發了一個步態識別系統,旨在幫助提升識別效率,為促進步態識別在實際中的應用貢獻一份力量。系統主要包括身份注冊模塊與身份識別模塊。注冊模塊用于采集數據建立新的步態數據集,用于支撐該研究,同時也可以為后續的研究者提供更多步態數據。識別模塊采用了該文設計的模型進行身份識別。實驗證明該系統具有較好的魯棒性和識別準確率。
一個集成數據采集與識別功能的系統主要包括兩個模塊:身份注冊與身份識別。身份注冊模塊需要用戶填寫個人信息和采集步態信號,身份識別模塊需要用戶再次采集步態數據,然后系統根據采集到的數據進行用戶身份識別,系統總體流程如圖1所示。對于數據庫中不存在的用戶,需要將采集到的數據預先送入模型進行訓練,然后系統拉取最新訓練過的模型。在進行身份識別時,只要將采集到的數據送入已經訓練過的模型中進行推理,獲取識別結果。

圖1 系統總體流程
1.2.1 身份注冊
身份注冊主要包括個人信息錄入,需要填寫姓名、性別、身高、體重并拍攝照片,隨后進行步態數據的采集。采集步態數據時需要用戶拿起手機正常行走2分鐘,系統會實時獲取行走時手機內置的加速度傳感器和陀螺儀傳感器產生的信號,采集完成后自動生成本地文件并上傳至云服務器,同時觸發步態識別模型的訓練,從而完成用戶的整個身份注冊。對于采集到的數據可用于構建步態數據集。具體界面如圖2所示。

圖2 身份注冊界面
1.2.2 身份識別
用戶登陸以后,拿起手機正常走5秒后系統直接將采集到的數據送入模型進行推理,并且每隔5 s就會執行一次,用戶行走期間會一直動態顯示識別結果,當結束采集后會將最終識別信息展示出來。圖3展示了識別模塊的界面。

圖3 身份識別界面
目前步態識別研究距實用階段還需要走很長的路,主要體現在可用數據集較少、識別準確率較低等方面。這也是本系統開發所需要攻堅的難點問題。因此對于步態識別系統,主要分為三個關鍵模塊:數據采集、模型搭建和模型部署。首先,通過在智能手機上開發采集系統來采集步態數據,接著,搭建步態識別模型用于身份識別,最后,將模型部署到手機端,結合采集功能構成一個完整的步態識別系統。
步態識別系統的第一個主要功能就是進行步態數據采集。加速度傳感器和陀螺儀傳感器能夠測量運動加速度和旋轉角速度,采集到的信號可用于步態研究,已經被較多研究者們使用[14-15]。本系統通過手機內置的加速度計和陀螺儀傳感器采集步態信號,實驗使用的手機型號為華為P20。根據采樣定理,將采樣頻率設置為50 Hz,保證采樣值可以包含原始信號的所有信息。當人在走路時,采集設備可以放置于身體不同部位。需要驗證采集設備的不同放置位置與識別性能之間的關系,因此選擇采集將手機放置在手臂、手和后腰三個位置的步態數據。
對于采集到的原始信號,還需要進行相應的預處理操作。首先,根據其信號特征,采用巴特沃斯低通濾波[16]對數據進行平滑處理,減少其他噪音的干擾。其次,手機采集到的數據是連續信號,需要將其劃分為一個個獨立樣本。已有研究者Zou[12]根據Acc曲線的局部最大值來確定連續信號的周期分割點:
(1)
其中,Accx,Accy,Accz是加速度計x,y和z軸方向的值。按照Acc曲線極值分割樣本存在一些誤差。如果分割長度不能涵蓋一個完整的步態周期,很容易忽略一些特征。圖4為六個不同的受試者拿著手機行走時的Acc曲線圖。對于不同受試者而言,從50到178左右的采樣點均能包含兩個步態周期。因此,對于采集到的數據,選擇將長度為128個采樣點的滑動窗口按照一定的步長來滑動分割數據,同時,也能夠增強數據量大小。

圖4 不同受試者的步態信號
步態識別研究面臨的第二個問題是準確率不夠。為了提升識別準確率,便于推動步態識別在實際生活中的應用,分別利用機器學習算法和深度神經網絡搭建識別模型。
2.2.1 基于機器學習的步態識別模型搭建
在送入機器學習模型之前需要對采集到的原始數據進行特征提取。計算多個特征的重要性,分析比較并選取最優的一些特征作為模型的輸入,避免特征過多導致過擬合現象。通過實驗對比,最終選擇了6類時頻域特征作為最終的輸入,分別是平均值、標準差、中值、最大值、最小值、偏斜度和峰度。偏斜度是對步態信號分布非對稱程度的度量,計算方法為:
(2)
其中,m3為樣本的三階中心矩,m2為樣本二階中心矩,S為樣本長度,xi為第i個點的值,fmean為樣本均值。
峰度能夠反映步態信號概率密度函數的陡峭程度,計算方法為:
(3)
其中,m4為樣本的四階中心矩。
2.2.2 基于深度學習的步態識別模型搭建
與機器學習方法相比,深度學習是一種深層次表征學習,其可以采用卷積神經網絡自動對數據進行深層特征提取。在有一定量的數據支持下,利用卷積神經網絡對信號進行識別可以達到較好的效果。因此設計了一個添加注意力機制的神經網絡模型,結構如圖5所示,將相同的輸入數據分別送入兩個特征提取模塊,通過不同的權重矩陣矩以提取不同的特征。每次進行特征提取的計算方法為:
(4)

接著,在網絡后面添加了注意力機制,通過自學習的方式重新校準通道的重要性并根據通道重要性來提升有用的特征并抑制無用特征。
最后,對于兩個特征提取模塊提出的特征進行融合:

(5)
并利用全連接層網絡對所提取的特征進行分類,完成身份識別功能。
為了避免模型出現過擬合,還添加了Dropout層,增加模型泛化能力。此外,選擇交叉熵作為模型的損失函數,對于單個樣本,其交叉熵損失的計算如下:
(6)
其中,N為輸出類別數,如果該樣本屬于第i個類別,則yi=1,否則為0。pi為該樣本屬于i類的概率。

圖5 神經網絡模型結構
選擇深度學習模型作為最終的識別模型,要構建身份識別系統就需要將該模型部署到智能手機上。現階段深度學習模型在智能手機上的應用主要有兩種方式,第一種是在智能終端對原始數據進行預處理,然后把數據傳至服務器并送入深度學習模型進行推理,并將預測結果返回至終端設備上。利用此種方式實現模型推理相對簡單,但從上傳數據至服務器到返回預測結果給終端耗時長,不適合身份識別這種對實時性要求較高的場景。因此,選擇在服務器訓練好識別模型,然后部署到終端設備上并直接在該設備上進行模型推理。
實驗中采用了TensorFlow來搭建識別模型,為了能夠將模型部署在資源受限的邊緣設備,需要在安卓端創建模型推理所需的環境。將模型輸出為pb文件并存放于Android中assets文件夾下;接著,引入TensorFlow框架需要的兩個文件libtensorflow_inference.so和libandroid_tensorflow_inference_java.jar;最后,利用TensorFlowInferenceInterface類的feed()、run()和fetch()方法來實現模型推理并獲取推理結果。
該步態識別系統的實現還面臨一個問題是擴充數據庫。對于數據庫中不存在的人群,需要提前采集其步態數據并送入識別模型進行訓練。為了能夠在系統使用階段實時擴充數據庫,在用戶填寫個人信息及采集步態數據后,設置在系統將采集到的步態數據上傳到服務器的同時觸發模型重訓練,然后在系統的識別階段設置其自動拉取最新的訓練模型。
為了測試該系統的應用性能,在華為P20手機上進行實驗,采樣頻率設置為50 Hz。在南京郵電大學選取了30位處于20~25歲年齡段的學生,讓他們將手機分別放置在手臂、手和后腰3個位置正常行走1分鐘,重復3次,前兩次采集的步態數據作為訓練集,第3次采集的步態數據作為測試集。
對于每位志愿者,共采集了9 000條數據,每條數據分別包含相同時間戳下的加速度傳感器和陀螺儀x,y,z軸信號。觀察到在數據收集過程的最初10秒和最后10秒內,傳感器數據存在波動。這種波動的原因是一些用戶在數據收集過程開始后,仍在查看智能手機的屏幕,甚至在數據收集過程結束前就會查看手機。為了減輕在開始和結束時這種波動的影響,將最初和最末尾的10 s數據移除,然后對數據應用了帶通濾波,濾除其他噪音干擾,得到了一個完整的步態數據集。該數據集包含三個子數據集,分別為不同采集位置下30個人的步態信號,將其命名為NJUPT Dataset I,并開源到IEEE Dataport上[17]。
將NJUPT Dataset I按照固定長度為128個采樣點的滑動窗口以50個采樣點的滑動步長進行滑動分割,并按照7∶3的比例劃分訓練集和測試集。針對機器學習算法,計算出樣本的6個時域特征作為輸入,針對神經網絡模型,將數據以X=[accx, accy, accz,gyrx,gyry,gyrz]T格式作為輸入。隨后,將數據分別送入隨機森林、K最近鄰算法、支持向量機和2.2節中提出的神經網絡模型進行訓練,其中訓練集和測試集比例為7∶3,然后根據準確率來衡量識別性能。實驗結果如表1所示。

表1 不同算法在NJUPT Dataset I上的識別效果 %
由表1中可看出,所有算法在腰部位置的識別準確率最佳,均超過了95%,甚至通過神經網絡模型進行識別時的準確率能夠達到99.91%,可見腰部是設備的最佳放置位置。手部位置的識別效果均處于較低水平,顯然人們在走路時總是很自然地擺動手臂,手臂的長度、擺幅都會干擾身份識別。考慮到將手機拿在手上是最常用的方式,后續會針對手部位置進一步研究。觀察實驗結果還可以得出,神經網絡模型和隨機森林分類器較其他算法而言性能更佳,考慮到神經網絡模型無需自動進行特征提取,選擇此模型作為最終的識別模型。
此外,還將神經網絡模型在幾個較為權威的步態數據集上進行訓練,并且將其與Zou等人提出的LSTM模型以及CNN+LSTM并聯模型[12]進行對比。數據處理方法同上,學習率設置為0.000 1。針對不同的數據集,也做了一些超參數調整,比如dropout rate和epoch的設置。最終的實驗結果如表2所示。

表2 算法性能對比 %
可以看出,該模型在武漢大學提出的whuGait Dataset #1 和whuGait Dataset #2步態數據集上的識別準確率較CNN+LSTM與LSTM模型提升了1%~3%左右。
由于OU-ISIR數據量較少,在實驗時通過超參數調整以及數據增強方法,使模型在OU-ISIR數據集上較CNN+LSTM方法提升了14.9%。通過上述實驗證明,該系統能夠有效提升身份識別性能。
步態識別研究仍處于初步發展階段,距離規模化應用仍然任重道遠。通過采集用戶走路產生的慣性傳感器信號進行身份識別,可以用于促進步態識別發展。在以步態進行識別用戶的研究中,智能手機內置的高精度傳感器完全可以滿足對原始步態數據獲取的需求,同時智能手機存在應用成本低、便攜性強等優勢。該文利用手機進行步態數據采集,建立自己的步態數據集。通過機器學習算法和卷積神經網絡進行步態特征分類,實現對用戶身份的識別,最后將模型部署到手機上,結合數據采集功能搭建了一個完整的步態識別系統。通過實驗表明,將手機放置在腰上時,該系統的識別準確率能夠達到99.91%,為促進步態識別的研究貢獻一份力量。