錢 興,張曉明,2,郝子浩
(1.中北大學(xué)儀器與電子學(xué)院,太原 030051;2.中北大學(xué)儀器科學(xué)與動(dòng)態(tài)測(cè)試教育部重點(diǎn)實(shí)驗(yàn)室,太原 030051)
步態(tài)識(shí)別是一種新興的生物特征識(shí)別技術(shù),旨在通過人們走路的姿態(tài)進(jìn)行運(yùn)動(dòng)狀態(tài)的識(shí)別。隨著智能硬件的發(fā)展,基于慣性傳感器采集到的步態(tài)序列數(shù)據(jù)可以用來識(shí)別穿戴人員的位置和運(yùn)動(dòng)信息,主要應(yīng)用在單兵作戰(zhàn)導(dǎo)航和樓宇內(nèi)導(dǎo)航定位等領(lǐng)域。顯然步態(tài)的識(shí)別和分類具有重要意義,而目前關(guān)于慣性傳感器采集到的序列數(shù)據(jù)中步態(tài)識(shí)別研究很少,因此設(shè)計(jì)一種針對(duì)序列數(shù)據(jù)的步態(tài)識(shí)別方法很有必要。
微機(jī)電系統(tǒng)(Micro-Electro-Mechanical System, MEMS)慣性傳感器具有潛在的成本、尺寸、質(zhì)量等優(yōu)勢(shì),其采集到的序列數(shù)據(jù)信息量大、輸出信息實(shí)時(shí)性強(qiáng),使其更適合應(yīng)用在步態(tài)識(shí)別中。A. H.Johnston等運(yùn)用智能手表內(nèi)置的加速度傳感器與陀螺儀對(duì)人員進(jìn)行實(shí)時(shí)識(shí)別,結(jié)果證明加速度傳感器優(yōu)于陀螺儀。但三軸加速度傳感器對(duì)運(yùn)動(dòng)太過敏感導(dǎo)致步態(tài)周期劃分不準(zhǔn)確,從而導(dǎo)致步態(tài)識(shí)別率不高。近年來,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)自提出以來,就憑借其在分類識(shí)別中展現(xiàn)出的優(yōu)勢(shì)而受到了廣泛關(guān)注。已有研究人員利用CNN提取智能手機(jī)信號(hào)來識(shí)別人體步態(tài),但由于僅使用手機(jī)加速度傳感器,其識(shí)別準(zhǔn)確率和實(shí)時(shí)性都有待進(jìn)一步提高。也有研究人員將CNN成功應(yīng)用于腦電信號(hào)的特征提取并進(jìn)行運(yùn)動(dòng)分類,但由于腦電信號(hào)微弱且穩(wěn)定性較差,目前無法實(shí)際應(yīng)用。陳法權(quán)等采用多種慣性傳感器組合進(jìn)行步態(tài)識(shí)別,雖然增多傳感器能提高特征數(shù)量,但不同步態(tài)之間的相互干擾也相應(yīng)增多;另外其采用的激勵(lì)使用ReLU函數(shù),該函數(shù)對(duì)輸入閾值小于0 的神經(jīng)元有抑制作用,因此識(shí)別率僅為91.5%。
針對(duì)上述問題,1)本文采用了加速度傳感器與彎曲度傳感器組合獲取人體運(yùn)動(dòng)信息。彎曲度傳感器是一種測(cè)量彎曲角度的裝置。彎曲度傳感器是由一種可變電阻組成的,覆蓋在彎曲度傳感器的表面,不同的彎曲角度會(huì)改變彎曲度傳感器的電阻值,根據(jù)彎曲度傳感器的電阻值變化即可判斷彎曲角度。彎曲度傳感器放置在膝蓋位置能夠很好地采集到人體膝蓋彎曲程度的信息,并對(duì)步態(tài)周期進(jìn)行精準(zhǔn)分割,解決了三軸加速度傳感器步態(tài)周期劃分不準(zhǔn)確的問題;彎曲度信息與三軸加速度信息的組合能夠很好地對(duì)不同步態(tài)的特征值進(jìn)行區(qū)分,從而提高識(shí)別率。2)設(shè)計(jì)了一種激勵(lì)層改進(jìn)的CNN步態(tài)分類模型以進(jìn)行步態(tài)特征值的自動(dòng)提取,改進(jìn)后的激勵(lì)層采用了帶泄露線性整流函數(shù),該函數(shù)負(fù)數(shù)端斜率為一個(gè)常數(shù),能夠解決遇到卷積輸出數(shù)據(jù)小于0時(shí)神經(jīng)元被抑制的問題。最后,通過實(shí)測(cè)數(shù)據(jù)集進(jìn)行了學(xué)習(xí)和驗(yàn)證。
在步態(tài)數(shù)據(jù)采集單元中采用了加速度傳感器與彎曲度傳感器組合檢測(cè)系統(tǒng),此系統(tǒng)包括三軸加速度傳感器和彎曲度傳感器。傳感器安放位置如圖1所示,三軸加速度傳感器放在大腿靠近膝關(guān)節(jié)處(軸朝人體前方,軸沿腿向下),彎曲度傳感器放在膝關(guān)節(jié)處。圖2~圖6分別表示傳感器采集的五種步態(tài)模式,即走路、上下樓和上下坡的部分?jǐn)?shù)據(jù)。從圖中可以看出,彎曲度傳感器采集到的數(shù)據(jù)每經(jīng)歷一次波峰即完成一次步態(tài)周期,同時(shí)對(duì)應(yīng)著不同運(yùn)動(dòng)狀態(tài)的三軸加速度傳感器中的軸、軸、軸數(shù)據(jù)也各不相同。彎曲度數(shù)據(jù)在步態(tài)周期劃分中具有獨(dú)特優(yōu)勢(shì),但特征少,無法單獨(dú)用來步態(tài)識(shí)別;而三軸加速度傳感器步態(tài)周期劃分不準(zhǔn)確,單獨(dú)進(jìn)行步態(tài)識(shí)別時(shí)識(shí)別率較低。因此可以通過兩者結(jié)合進(jìn)行步態(tài)分類。
圖1 傳感器安放位置Fig.1 Sensor placement position
圖2 傳感器采集的步態(tài)模式:走路Fig.2 Gait pattern collected by sensor:walking
圖3 傳感器采集的步態(tài)模式:上樓Fig.3 Gait pattern collected by sensor:upstairs
圖4 傳感器采集的步態(tài)模式:下樓Fig.4 Gait pattern collected by sensor:downstairs
圖5 傳感器采集的步態(tài)模式:上坡Fig.5 Gait pattern collected by sensor:upslope
圖6 傳感器采集的步態(tài)模式:下坡Fig.6 Gait pattern collected by sensor:downslope
在傳感器采集到的信號(hào)中,定義加速度步態(tài)數(shù)據(jù)向量=[,,,,,],彎曲度步態(tài)數(shù)據(jù)向量=[],=1,2,3,…,,是分割后步態(tài)信號(hào)的序列長(zhǎng)度。由此構(gòu)成了步態(tài)信號(hào)的×4輸入矩陣
=[,]
(1)
采集到的矩陣數(shù)據(jù)在同一時(shí)刻具有相互關(guān)聯(lián)性,在不同時(shí)刻的同一傳感器數(shù)據(jù)在時(shí)間上也有關(guān)聯(lián)性,提取出的特征更能表示原始步態(tài)的信息。
CNN是一類包含卷積計(jì)算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),是深度學(xué)習(xí)的代表算法之一。其隱含層內(nèi)的卷積核參數(shù)共享和層間連接的稀疏性使得CNN能夠以較小的計(jì)算量處理類似網(wǎng)格結(jié)構(gòu)的數(shù)據(jù),三軸加速度傳感器和彎曲度傳感器采集到的序列數(shù)據(jù)為二維矩陣,適合用CNN提取數(shù)據(jù)特征和進(jìn)行步態(tài)識(shí)別。典型的CNN模型主要由輸入層、卷積層、激勵(lì)層、池化層、全連接層和輸出層組成。
輸入層主要是將1.2節(jié)得到的×4輸入矩陣作為CNN的初始輸入,將數(shù)據(jù)傳輸?shù)骄矸e層進(jìn)行計(jì)算。
卷積層主要是對(duì)輸入層傳輸過來的步態(tài)數(shù)據(jù)進(jìn)行步態(tài)特征值提取,卷積層中包括多個(gè)卷積核。通過對(duì)每一層的數(shù)據(jù)與卷積核做矩陣元素乘法求和并疊加偏差量,生成包含原始數(shù)據(jù)部分特征的步態(tài)矩陣。每一層的計(jì)算如下
(2)
(3)
其中:為第層輸出;-1為第層輸入;(,)為對(duì)應(yīng)特征值的大小;為當(dāng)前層卷積核;-1為當(dāng)前層的偏差量;(,)為卷積核的大??;、代表卷積核行列數(shù);代表卷積的步長(zhǎng);代表填充層數(shù);(,)代表的大小。
激勵(lì)層是將卷積層輸出結(jié)果做非線性映射,因?yàn)榫矸e層的計(jì)算是一種線性計(jì)算,對(duì)非線性情況無法很好擬合。有時(shí)也會(huì)把卷積層和激勵(lì)層合并在一起稱為卷積層。激勵(lì)層一般采用線性整流函數(shù)(Rectified Linear Unit, ReLU)作為其激勵(lì)函數(shù)。
池化層主要進(jìn)行特征選擇和信息過濾,主要目標(biāo)是降低卷積層提取出的特征值信息。大多數(shù)情況下,最大池化性能更優(yōu)。特征矩陣從激勵(lì)層傳入到池化層,池化層將保留局部區(qū)域的最大值,其操作定義如下
=Max(-1)
(4)
其中,Max表示池化層進(jìn)行最大池化操作。
全連接層(Fully Connected Layers,F(xiàn)C)在整個(gè)CNN中起到分類器的作用。如果該層的輸入是一個(gè)序列,則全連接層在每個(gè)時(shí)間步上獨(dú)立地起作用。全連接層通常設(shè)置為固定的神經(jīng)元數(shù)。
輸出層的上游是全連接層,通常使用邏輯函數(shù)或歸一化指數(shù)函數(shù)(softmax function)輸出分類標(biāo)簽。
CNN的激勵(lì)層通常使用線性整流函數(shù),如圖7所示,定義如下
圖7 線性整流函數(shù)Fig.7 Rectified linear unit
=max(0,)
(5)
但ReLU負(fù)數(shù)端斜率為0,使得卷積輸出的數(shù)據(jù)在負(fù)數(shù)部分無法表達(dá)出來,導(dǎo)致神經(jīng)元不能更新參數(shù)。步態(tài)的卷積層輸出的數(shù)據(jù)中含有負(fù)數(shù)部分,因此ReLU就不適用了。負(fù)數(shù)部分能否在激勵(lì)層中表達(dá)出來,是提高步態(tài)識(shí)別率的重要一步。為了解決這一問題,本文采用帶泄露線性整流函數(shù)(Leaky ReLU)對(duì)激勵(lì)層進(jìn)行改進(jìn),如圖8所示,定義如下
圖8 帶泄露線性整流函數(shù)函數(shù)Fig.8 Leaky rectified linear unit
=max(,)
(6)
該函數(shù)負(fù)數(shù)端斜率為一個(gè)常數(shù),是根據(jù)實(shí)際經(jīng)驗(yàn)來取值,文獻(xiàn)[17]進(jìn)行了大量的實(shí)驗(yàn),驗(yàn)證了取值范圍在0~0.5內(nèi)時(shí),Leaky ReLU能夠讓神經(jīng)元在負(fù)數(shù)部分進(jìn)行參數(shù)更新,達(dá)到對(duì)CNN的激勵(lì)層進(jìn)行優(yōu)化的目的,同時(shí)提高了步態(tài)的識(shí)別率。
采集到的三軸加速度傳感器數(shù)據(jù)與彎曲度傳感器數(shù)據(jù)在同一時(shí)刻具有相互關(guān)聯(lián)性,人體步態(tài)的特點(diǎn)是在不同時(shí)刻的同一傳感器數(shù)據(jù)在時(shí)間上也有關(guān)聯(lián)性。根據(jù)這些特點(diǎn)本文針對(duì)性地設(shè)計(jì)了一個(gè)基于CNN的步態(tài)識(shí)別優(yōu)化模型。此模型由9層構(gòu)成,如圖9所示,各層介紹如下。
圖9 CNN步態(tài)識(shí)別模型Fig.9 CNN gait recognition model
(1)輸入層
將×4的步態(tài)數(shù)據(jù)矩陣作為CNN的輸入層,其中是分割后步態(tài)信號(hào)的序列長(zhǎng)度,4分別為三軸加速度傳感器中的軸、軸、軸數(shù)據(jù)與彎曲度傳感器中的彎曲度數(shù)據(jù)。
(2)卷積層1
將滑動(dòng)卷積濾波器應(yīng)用于輸入。卷積層1的卷積核大小設(shè)置為:高度3,寬度1,步長(zhǎng)設(shè)置為1,卷積核層數(shù)設(shè)置為6,處理后得到6個(gè)98×4的特征矩陣。
(3)激勵(lì)層
采用Leaky ReLU對(duì)卷積后的數(shù)據(jù)進(jìn)行處理。
(4)池化層 1
將激勵(lì)層數(shù)據(jù)作為池化層的輸入。最大池化層的樹池是一個(gè)2×1矩陣,步幅為1。經(jīng)過處理后得到6個(gè)97×4的特征矩陣。
(5)卷積層2
卷積層2的卷積核大小設(shè)置為:高度 5,寬度 1,步長(zhǎng)設(shè)置為1,卷積核層數(shù)設(shè)置為12,處理后得到12個(gè)93×4的特征矩陣。
(6)激勵(lì)層
采用Leaky ReLU對(duì)卷積后的數(shù)據(jù)進(jìn)行處理。
(7)池化層 2
最大池化層的樹池是一個(gè)3×1矩陣,步幅為1。經(jīng)過處理后得到12個(gè)91×4的特征矩陣。
(8)全連接層
全連接層設(shè)置為4368個(gè)神經(jīng)元。
(9)輸出層
采用Softmax函數(shù)作為步態(tài)類型的輸出,主要作用是輸出數(shù)據(jù)對(duì)應(yīng)五種步態(tài)的概率值,概率最大的就是當(dāng)前人體運(yùn)動(dòng)的步態(tài)。
CNN訓(xùn)練包含了2個(gè)過程:正向傳播和反向傳播。使用現(xiàn)有的數(shù)據(jù)進(jìn)行正向傳播,計(jì)算出損失函數(shù)值,然后再進(jìn)行反向傳播。卷積層的反向傳播是一個(gè)與前向傳播類似的交叉相關(guān)計(jì)算
(7)
(8)
其中:為代價(jià)函數(shù)計(jì)算的誤差;′為激勵(lì)函數(shù)的導(dǎo)數(shù);為學(xué)習(xí)速率;根據(jù)反向傳播可以更新卷積核數(shù)值。本文CNN的誤差函數(shù)選擇的是Softmax。池化層在反向傳播中沒有參數(shù)更新,因此只需要根據(jù)池化方法將誤差分配到特征值的合適位置即可。CNN通常使用BP框架內(nèi)的隨機(jī)梯度下降和其變體,本文采用的是Adam算法,相較于其他算法更適合解決含大規(guī)模數(shù)據(jù)和參數(shù)的優(yōu)化問題。
實(shí)驗(yàn)測(cè)試人員14名,其中男女各7人,均無任何影響走路狀態(tài)的疾病。中國(guó)成年男性平均身高為169.7cm,成年女性平均身高為158.6cm。故選擇,男性7名,身高在 165~185cm 之間;女性7名,身高在 155 ~170cm 之間。分別測(cè)試走路、上下臺(tái)階、上下坡(45 °)。傳感器采集的數(shù)據(jù)量如下:走路4000s、上下臺(tái)階各4000s、上下坡各3800s。
實(shí)驗(yàn)使用的傳感器的采樣頻率為100Hz,正常人走路1min大約在100~120步,故一個(gè)步態(tài)周期大約在1s左右,所以選定每100個(gè)數(shù)據(jù)為一個(gè)周期進(jìn)行數(shù)據(jù)處理,即步態(tài)長(zhǎng)度=100。
實(shí)驗(yàn)使用90%的數(shù)據(jù)作為訓(xùn)練組,用于進(jìn)行CNN模型的訓(xùn)練;剩下的10%作為驗(yàn)證組,用于驗(yàn)證CNN模型的準(zhǔn)確程度。
3.2.1 模型參數(shù)對(duì)識(shí)別效果的影響
卷積核層數(shù)和卷積核大小對(duì)CNN步態(tài)識(shí)別率的影響,如表1和表2所示。
表1 卷積核層數(shù)的影響
表2 卷積核大小的影響
表1中,C1L代表卷積層1的卷積核層數(shù),C2L代表卷積層2的卷積核層數(shù),recognition rate代表此時(shí)的步態(tài)識(shí)別率。將卷積層1的卷積核層數(shù)分別調(diào)整為2、3、4、5、6、7、8、9、10層,其他相關(guān)參數(shù)如池化層參數(shù)等不進(jìn)行改變。從識(shí)別率中可以看出,當(dāng)卷積層1的卷積核層數(shù)為6時(shí)識(shí)別率最高。將卷積層2的層數(shù)分別調(diào)整為4、6、8、10、12、14、16、18、20層,其他相關(guān)參數(shù)同樣不進(jìn)行改變。從識(shí)別率中可以看出,當(dāng)卷積層2的卷積核層數(shù)為12時(shí)識(shí)別率最高。
表2中,C1S代表卷積層1的卷積核大小,C2S代表卷積層2的卷積核大小,recognition rate代表此時(shí)的步態(tài)識(shí)別率。將卷積層1的卷積核分別調(diào)整為1×1、2×1、3×1、5×1、7×1、9×1,其他相關(guān)參數(shù)不進(jìn)行改變。從識(shí)別率中可以看出,當(dāng)卷積層1的卷積核為3×1時(shí)識(shí)別率最高。將卷積層2的卷積核分別調(diào)整為1×1、3×1、5×1、7×1、9×1、11×1,其他相關(guān)參數(shù)不進(jìn)行改變。從識(shí)別率中可以看出,當(dāng)卷積層2的卷積核為5×1時(shí)識(shí)別率最高。由于矩陣之間的關(guān)聯(lián)性,3×1和5×1的卷積核適合處理步態(tài)數(shù)據(jù)的大小,從而達(dá)到最優(yōu)地提取數(shù)據(jù)特征的目的。
在激勵(lì)層改進(jìn)過的CNN模型中改變Leaky ReLU的值,由于取值范圍在0~0.5時(shí)效果達(dá)到最佳,故選擇0、0.01、0.05、0.1、0.5,觀察值對(duì)步態(tài)識(shí)別率的影響,如表3所示。
表3 k值的影響
表3中,取值分別為0、0.01、0.05、0.1、0.5。從數(shù)據(jù)中可以看出,改進(jìn)后的CNN識(shí)別模型隨著取值增大呈正態(tài)分布,在=001時(shí)識(shí)別效果達(dá)到最好。
3.2.2 改進(jìn)前后CNN模型的比較
將激勵(lì)層改進(jìn)過的CNN模型與未采用彎曲度傳感器改進(jìn)過的CNN模型和未改進(jìn)的CNN模型進(jìn)行比較。未改進(jìn)的CNN模型只將激勵(lì)層Leaky ReLU替換為ReLU,其他參數(shù)不改變,觀察對(duì)步態(tài)識(shí)別率的影響,如表4所示。
表4 改進(jìn)前后CNN模型的比較
表4中,將未采用彎曲度傳感器的CNN識(shí)別模型、未進(jìn)行激勵(lì)層改進(jìn)的CNN識(shí)別模型,與激勵(lì)層改進(jìn)過的CNN識(shí)別模型進(jìn)行對(duì)比,發(fā)現(xiàn)激勵(lì)層改進(jìn)過的CNN識(shí)別模型效果明顯提升。
從上述實(shí)驗(yàn)可以得知,卷積層1的卷積核大小為3×1,層數(shù)為6;卷積層2的卷積核大小為5×1,層數(shù)為12;Leaky ReLU的值為0.01時(shí)CNN識(shí)別模型的識(shí)別率達(dá)到最優(yōu),最優(yōu)識(shí)別率為95.79%。
本文提出了一個(gè)利用改進(jìn)后的CNN方法實(shí)現(xiàn)對(duì)序列數(shù)據(jù)的步態(tài)分類方案。
1)搭建了一個(gè)三軸加速度傳感器和彎曲度傳感器的檢測(cè)平臺(tái),能夠很好地對(duì)不同步態(tài)的特征值進(jìn)行區(qū)分。實(shí)驗(yàn)結(jié)果表明:相較于未采用彎曲度傳感器的CNN模型,步態(tài)識(shí)別率提高了4.78%。
2)設(shè)計(jì)了一種改進(jìn)后的CNN模型實(shí)現(xiàn)對(duì)步態(tài)的分類。實(shí)驗(yàn)結(jié)果表明:改進(jìn)后的CNN識(shí)別率達(dá)到了95.79%,相較于未改進(jìn)的CNN模型識(shí)別率提高了3.37%。同時(shí)為實(shí)現(xiàn)單兵作戰(zhàn)導(dǎo)航和樓宇內(nèi)導(dǎo)航定位中慣性器件的步態(tài)識(shí)別提供了解決方案。
本文選定每100個(gè)數(shù)據(jù)為一個(gè)周期進(jìn)行數(shù)據(jù)處理,而對(duì)不同人群的步態(tài)頻率是不相同的,為了分析序列數(shù)據(jù)的步態(tài)識(shí)別特性,提高步態(tài)分類的準(zhǔn)確程度,今后的工作重點(diǎn)是數(shù)據(jù)分割;與此同時(shí),擴(kuò)大不同人群的數(shù)據(jù)樣本,提高方案的通用性、準(zhǔn)確性和魯棒性。