郭浩雨,馮秀芳
(太原理工大學 軟件學院,山西 晉中 030600)
近年來,隨著傳感技術的提高和無線設備的普及,人體行為識別成為當下熱門的研究方向。目前國內(nèi)外對手勢識別的研究主要分為基于可穿戴傳感器、基于計算機視覺和基于無線信號等3個研究方向[1-3]。
其中,基于可穿戴傳感器的研究主要是利用人體可接觸的相關傳感設備。該研究方法的缺陷是成本較高以及攜帶不便等問題。劉曉光等[4]提出一種基于閾值和極端隨機樹融合的實時跌倒檢測方法,可解決跌倒檢測的實時性與準確性無法兼得的問題。
基于計算機視覺的研究主要是用攝像頭采集動作行為的視頻或者圖像,然后通過數(shù)字圖像處理技術進行識別。但該研究方法易受光照條件、障礙物的影響,同時會涉及他人隱私。徐訪等[5]提出一種具有分級網(wǎng)絡結構的動態(tài)手勢識別方法,可將手勢識別任務分步完成。
基于無線信號的研究主要是通過特定的設備來獲取包含動作行為信息的波形數(shù)據(jù),再提取出其中的特征信息進行識別[6]。這種方法具有成本低、分布廣以及擴展性好等優(yōu)點。劉佳慧等[7]通過LSTM模型實現(xiàn)了對4種不同手勢的識別;周啟臻等[8]提出將CSI信號重構為連續(xù)的圖像幀并利用時間域和空間域的雙重特征進行分析識別。
綜上,針對當前大多數(shù)手勢識別方法存在精度偏低、適應性差等缺陷,本文提出一種基于Bi-LSTM的CSI手勢識別算法BGR(Bi-LSTM gesture recognition)。該算法的主要創(chuàng)新點在于:
(1)特征提取。將原始數(shù)據(jù)重構為固定長度的信號片段,利用PCA對CSI信號進行降維分析,得到手勢動作的主要特征信息。同時通過低通濾波除去由背景噪聲和多徑效應產(chǎn)生的信息干擾,最后在時域尺度上生成連續(xù)手勢動作的特征整體。
(2)提出一種基于Bi-LSTM的手勢特征融合模型,通過該模型可對手勢動作進行復合特征提取,實現(xiàn)對不同種手勢的分類識別,克服傳統(tǒng)方法單一化提取手勢特征信息的缺陷。
信道狀態(tài)信息(channel state information,CSI)是描述無線信道狀態(tài)信息的集合,反映了信號在傳輸過程中產(chǎn)生的時延、衰減以及相位偏移[9,10]。利用正交頻分復用技術可將無線信號調(diào)制到若干個子載波上進行通信,接收端可從每個數(shù)據(jù)包中提取出CSI數(shù)據(jù),每個CSI數(shù)據(jù)中包含由當前手勢動作引起的幅值以及相位的變化信息。其公式如下
Hk=|Hk|e-j∠Hk
(1)
式中:Hk為第k個子載波的CSI數(shù)據(jù), |Hk| 和∠Hk分別為振幅和相位。其中,相較于CSI的相位信息,振幅具有穩(wěn)定的特點,因此將其作為本方法的主要研究特征。
Wi-Fi信號在傳輸過程中會由于人體的存在和動作行為產(chǎn)生反射、折射、散射以及衍射等現(xiàn)象,這些現(xiàn)象會對信號本身產(chǎn)生不同程度的干擾[11]?;贑SI的手勢識別研究思路是通過對Wi-Fi信號的變化進行檢測分析其在傳播中接觸到人體的動作狀態(tài),從而完成手勢識別。Wi-Fi信號的傳播模型如圖1所示。
圖1 Wi-Fi信號傳播模型
信號的動態(tài)傳播在頻域中表示如下
Y(f,t)=H(f,t)×X(f,t)
(2)
式中:X(f,t) 和Y(f,t) 分別為發(fā)射和接收信號,H(f,t) 為信道頻率響應(channel frequency response,CFR)。
當信號經(jīng)過不同的路徑到達接收端時,CFR可表示為
(3)
式中:e-j2πΔft是由載波頻移導致的相位差,ak(f,t) 表示第k條路徑上的衰減和初始相位偏移,e-j2πfτk(t)為第k條路徑由時延τk(t)產(chǎn)生的相位差。
總體的CSI數(shù)據(jù)包括動態(tài)路徑和靜態(tài)路徑兩部分的信道頻率響應,具體公式表達如下
H(f,t)=e-j2πΔft(Hs(f)+Hd(f,t))
(4)
式中:Hs(f) 為靜態(tài)CFR,是一個常量。Hd(f,t) 為動態(tài)CFR,是由人體動作影響導致的信號頻率變化總和。當人體發(fā)生具體手勢動作時,動態(tài)CFR會產(chǎn)生變化,因此總的CSI數(shù)據(jù)也會相應產(chǎn)生變化[12]。本研究旨在將人體發(fā)生手勢動作變化時獲取到原始的CSI數(shù)據(jù)進行處理分析,并將連續(xù)動作作為輸入特征進行算法的訓練識別,最終得到不同種類手勢的分類結果。
BGR算法分為預處理階段和訓練識別兩部分,預處理階段首先將原始CSI數(shù)據(jù)剪裁為統(tǒng)一大小,確保輸入模型的數(shù)據(jù)尺寸相同,并且可去除部分冗余信息;其次,為提取出特征更加明顯的手勢動作信息,利用PCA對子載波進行數(shù)據(jù)降維,將選取后的子載波數(shù)據(jù)作為模型的輸入特征;同時,由于信號在傳播過程中會受到人體以及傳播路徑的干擾導致存在高頻噪聲,因此對CSI數(shù)據(jù)進行低通濾波將多余的高頻噪聲去除,避免模型學習到無用的干擾信息,強化模型對有效手勢動作部分的學習;最后將預處理后得到的連續(xù)手勢特征信息放入特征融合模型逐層對其進行前向以及反向的自適應特征提取,并通過反向傳播和梯度下降算法對模型參數(shù)進行調(diào)優(yōu)。同時,利用Dropout機制對模型進行稀疏化約束,降低過擬合,最終通過softmax激活函數(shù)輸出多分類手勢識別結果。具體算法流程如圖2所示。
圖2 BGR算法流程
本算法采用Widar3.0[13]采集的CSI公開手勢動作數(shù)據(jù)集,包括推拉、揮手、鼓掌、畫圓、畫Z、畫N等6個手勢動作。每個手勢動作會在Wi-Fi范圍內(nèi)產(chǎn)生對應的CSI信號數(shù)據(jù),其數(shù)據(jù)格式為1×3×30×N的矩陣,其中1代表發(fā)射端天線數(shù)量,3代表接收端天線數(shù)量,30代表每個CSI數(shù)據(jù)包中的正交頻分復用子載波信息,N代表該手勢動作共采集到的CSI數(shù)據(jù)包的數(shù)量。由于子載波中的幅值具有穩(wěn)定等特點,因此本文提取出子載波中的幅度信息作為手勢特征。經(jīng)過處理后的每個數(shù)據(jù)包中的CSI數(shù)據(jù)可以表示如下
(5)
式中:Aij是每個子載波中的幅值,在Aij中,i表示第i根天線,j表示第j個子載波。
為了進一步分析不同子載波之間的關系,以及CSI數(shù)據(jù)與手勢之間的映射關系。本算法對3個不同天線對所收集的子載波進行對比分析。圖3為不同天線對所收集到的子載波數(shù)據(jù)。
圖3 不同天線對的子載波對比
從圖3中可看出,不同天線對所收集到的CSI數(shù)據(jù)雖然看似隨機,但在時域維度存在一定程度的相似性,因此需要通過相關技術對子載波進行處理,將部分冗余數(shù)據(jù)去除,僅保留主要代表手勢信息的子載波。同時,原始CSI數(shù)據(jù)中明顯包含較多的噪聲干擾。因此為了能夠準確提取出手勢動作的特征信息,首先需要進行預處理。
由于Wi-Fi信號在傳播過程中容易受到環(huán)境干擾、多徑傳播以及信號衰減等多發(fā)因素的影響,從而導致接收端采集到的CSI數(shù)據(jù)包中存在較多的噪聲,這會嚴重影響算法的手勢識別精度,因此需要對原始CSI數(shù)據(jù)進行預處理。
此外,由于不同手勢動作持續(xù)時長不一,導致獲取到的CSI信號樣本的尺寸不一致,這與深度學習輸入模型要求的固定數(shù)據(jù)格式矛盾。因此本算法對原有數(shù)據(jù)進行裁剪,將手勢數(shù)據(jù)統(tǒng)一重構為900×90,其中900為該手勢過程采集到的數(shù)據(jù)包,90為所有接受端所收到的子載波數(shù)。
2.2.1 降維分析
鑒于相同手勢數(shù)據(jù)下的不同子載波具有一定的關聯(lián)性,若直接將完整數(shù)據(jù)作為特征直接輸入則會導致過多的指標選擇工作量,因此進行降維分析。BGR算法使用主成分分析(principal component analysis,PCA)對CSI數(shù)據(jù)進行子載波選取。
PCA是一種數(shù)學降維的方法,即在高維空間中找到一個低維的正交坐標系,通過線性投影將高維數(shù)據(jù)映射低維空間中,從而到找出若干個綜合特征來替代原來的冗余特征,使這些綜合特征盡可能的表示出原有的信息量。PCA的具體步驟為首先對所有特征進行去中心化,求出其協(xié)方差矩陣。其公式如下
(6)
式中:m為元素個數(shù),ai和bi為矩陣中的元素,μ代表均值。最后計算協(xié)方差矩陣的特征值以及相對應的特征向量,再將原始特征投影到選取的特征向量上,得到降維后的新特征。其公式如下
(7)
由于較大方差的信道狀態(tài)信息對手勢動作具有更好動態(tài)響應,能夠更為細粒度的記錄手勢的變化特征,因此通過PCA對CSI數(shù)據(jù)進行子載波選取,根據(jù)貢獻率大小挑選出10個具有較大方差的子載波作為該次手勢動作的輸入特征,由此消除原始數(shù)據(jù)之間的相互影響,降低算法運行的時間復雜度。
2.2.2 濾波和歸一化
本算法研究的手勢動作的主體為手臂,其擺動頻率較低。而環(huán)境干擾造成的噪聲信息基本處于高頻部分[14],因此通過濾波去除高頻的噪聲分量,保留有用的低頻特征信息。利用巴特沃斯濾波器進行低通濾波,可將CSI數(shù)據(jù)中的高頻嘈雜點去除,從而避免模型在訓練中學習到過多的無關特征。其具體公式如下
(8)
式中:φp為截至頻率,n代表濾波器階數(shù)。通過該方法不僅能除去原始數(shù)據(jù)中的背景噪聲,同時也盡可能保留了低頻部分的動作信息。此外為了降低數(shù)據(jù)方差,使損失函數(shù)的收斂過程更加平緩,對CSI數(shù)據(jù)進行歸一化操作。圖4為CSI數(shù)據(jù)預處理前后的對比,其中圖4(a)為原始CSI手勢數(shù)據(jù),其中包含冗余的子載波信息以及噪聲干擾;圖4(b)為預處理后的CSI數(shù)據(jù),可看出特征提取較為明顯。
圖4 CSI數(shù)據(jù)預處理前后對比
2.3.1 LSTM
長短期記憶(long-short term memory,LSTM)模型是一種改進優(yōu)化后的循環(huán)神經(jīng)網(wǎng)絡模型,可有效解決傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡在訓練過程中由長期依賴導致的梯度消失等問題[15]。LSTM由若干個記憶單元構成,其中每個記憶單元又由細胞狀態(tài)、遺忘門、輸入門、更新門4部分組成。通過這些“門”的結構可讓信息選擇性的通過,用以去除或者傳遞信息到下一個細胞狀態(tài)。圖5表示LSTM單個記憶單元結構。
圖5 LSTM單個記憶單元結構
(1)細胞狀態(tài)(Ct),存儲當前時刻的特征信息,在所有鏈式記憶單元中傳遞。
(2)遺忘門,用于控制遺忘上一層細胞狀態(tài)的內(nèi)容,根據(jù)上一時刻的輸出ht-1和當前時刻的輸入xt, 通過sigmoid函數(shù)將其映射為[0,1]之間的向量ft,表示上一層細胞狀態(tài)的信息的保留程度,0代表全部遺忘,1代表全部保留。主要公式為
ft=σ(Wf·[ht-1,xt]+bf)
(9)
式中:Wf和bf分別是LSTM模型的權值和偏置,均為模型的訓練參數(shù);σ是激活函數(shù)sigmoid。
(10)
(4)輸出門,基于細胞狀態(tài)保存的信息選擇性的輸出細胞狀態(tài)Ct的內(nèi)容。通過sigmoid函數(shù)輸出信息被過濾的程度ot, 再利用tanh函數(shù)將當前細胞狀態(tài)中的信息映射在[-1,1]之間,二者相乘后即得到當前時刻的輸出ht。 主要公式為
ot=σ(Wo·[ht-1,xt]+bo)
ht=ot?tanh(Ct)
(11)
2.3.2 手勢特征融合模型
根據(jù)手勢動作具有一定的前后依賴關系,本文提出一種基于Bi-LSTM的手勢特征融合模型,其網(wǎng)絡結構如圖6所示。該模型的原理是利用正向的手勢動作序列數(shù)據(jù)與生成的反向手勢動作序列數(shù)據(jù)同時進行特征提取,再由兩個序列的隱藏層狀態(tài)相結合輸出識別結果。通過該模型可從時域維度將動作發(fā)生前、動作發(fā)生中以及動作發(fā)生后的CSI信息作為一個整體進行特征提取,其目的是避免以往手勢識別方法僅依據(jù)手勢動作的歷史信息作為特征進行分析識別的局限性和不足,能夠有效利用完整的手勢信息,從而實現(xiàn)高精度的分類識別。
圖6 手勢特征融合模型
研究[16]表明,在數(shù)據(jù)集相對較小,而模型訓練參數(shù)過多時會產(chǎn)生過擬合問題,即在訓練集上有較高契合度,但其泛化能力較差。針對模型中存在過擬合的問題,本算法采用Dropout機制在模型中隨機選取神經(jīng)元進行失活處理,從而達到稀疏性約束。其具體原理是以[0,1]之間的概率(一般為0.5)對應用該機制的神經(jīng)元進行隨機失活處理,失活后的神經(jīng)元會在該次迭代中無法更新權重和偏置,由此使得模型無法通過記憶固有特征信息來識別手勢動作,從而將模型變得“稀疏化”,解決了模型的過擬合問題。其公式為
(12)
綜上所述,手勢特征融合模型網(wǎng)絡參數(shù)見表1。其中,通過Bidirectional(LSTM)層的不斷疊加,利用時序權值共享將前向手勢動作序列的信息作為先驗知識并與反向手勢動作序列的特征進行整合,從而實現(xiàn)對手勢過程的雙向特征提取。同時,結合BatchNormalization層防止梯度消失以及通過Dropout降低過擬合,最后使用softmax作為Dense層的激活函數(shù),將手勢識別的多分類結果輸出。
表1 手勢特征融合模型網(wǎng)絡參數(shù)
在模型訓練上,BGR算法采用均方根梯度下降算法(root mean square prop,RMSprop)作為優(yōu)化器,初始學習率為0.0005,以及使用交叉熵損失函數(shù)(cross entropy error function)來對模型進行參數(shù)尋優(yōu)。同時,通過將訓練數(shù)據(jù)劃分為訓練集和驗證集,訓練集用于反向傳播以及更新參數(shù),驗證集用于判斷訓練停止時刻,即在近5次迭代訓練時若出現(xiàn)驗證集誤差升高則停止訓練,同時返回本次訓練參數(shù)。
經(jīng)過50個epoch的訓練,本算法最終在訓練集上準確率達到95.6%,測試集上準確率達到91.49%。將該算法在測試集上對6種手勢動作生成混淆矩陣,通過混淆矩陣可以看出算法對不同手勢的識別準確率以及將本種手勢誤識別為其它手勢的假陽率。圖7為BGR算法對6種手勢動作識別結果的混淆矩陣。從圖中可以看出,推拉、揮手、鼓掌、畫圓、畫Z、畫N的識別準確率分別為92%、88%、95%、91%、93%、90%,平均準確率為91.49%。
圖7 不同手勢識別結果的混淆矩陣
CSI手勢動作數(shù)據(jù)格式為A×M×N×30,其中A為本次手勢動作所采集到的數(shù)據(jù)包數(shù),M為發(fā)射端天線數(shù),N為接收端天線數(shù),其中每個天線對分別傳輸30個子載波數(shù)據(jù)。由于不同手勢動作的采集時間不同,因此其中的數(shù)據(jù)包數(shù)也不統(tǒng)一。為了更好讓算法對其進行特征提取,需要將所有數(shù)據(jù)固定為長度一致的信號片段。由于數(shù)據(jù)包中包含著從手勢動作前到手勢動作結束的整個過程信息,因此數(shù)據(jù)包數(shù)的選取也會對算法的性能產(chǎn)生一定的影響。綜上,本文選取不同的數(shù)據(jù)包數(shù)進行對比測試,其結果見表2。
表2 不同數(shù)據(jù)包選取對比
由表2可知,隨著數(shù)據(jù)包數(shù)的增加,本算法的平均手勢識別準確率也在提升。分析認為CSI數(shù)據(jù)包中含有大量手勢相關的子載波信息,正是通過這些信息模型才能提取并學習到手勢動作的相關特征,并實現(xiàn)分類指標。較多的數(shù)據(jù)包能夠提供給模型更加完整的手勢動作過程,從而使模型能夠對手勢過程進行特征融合,因此能夠提升模型的精度。而較少的數(shù)據(jù)包由于手勢過程中部分行為信息的缺失,導致模型沒有學習到相應的手勢特征,因此其識別準確率較低。本文將原始數(shù)據(jù)集中的數(shù)據(jù)長度進行統(tǒng)計分析,選取了最短手勢數(shù)據(jù)樣本中的最大數(shù)據(jù)包數(shù)900作為整體數(shù)據(jù)長度,目的是讓所有數(shù)據(jù)樣本在格式統(tǒng)一的情況下實現(xiàn)最優(yōu)識別精度。
由于樣本數(shù)據(jù)中包含著完整的手勢動作特征,所以不同大小的訓練樣本會直接對模型的識別準確率產(chǎn)生影響。為了能夠驗證算法的迭代擬合能力,因此設置不同的訓練樣本數(shù)進行對比測試。選取了3個不同大小的訓練集樣本,其中訓練集1中每個手勢動作的樣本數(shù)為300,訓練集2中每個手勢動作的樣本數(shù)為500,訓練集3中每個手勢動作的樣本數(shù)為750,即訓練集大小分別為1800,3000,4500。圖8為對比測試結果,可看出隨著手勢的樣本數(shù)增加,本算法的識別準確率升高,當使用全部數(shù)據(jù)集的4500個樣本時,其準確率最高。分析認為隨著不斷迭代訓練,較多手勢樣本的訓練集可以提供更多維度的手勢特征信息,以及強化模型在不同環(huán)境噪聲下的抗干擾能力,因此能夠有效提升算法的手勢識別準確率。
圖8 不同樣本數(shù)大小的手勢識別結果
為了能更好對CSI波形數(shù)據(jù)進行特征提取,因此在原始數(shù)據(jù)包中選取出不同的子載波作為手勢動作的輸入特征。當選取的子載波數(shù)不同時,同一手勢動作的特征信息量會相應的產(chǎn)生差異,為研究選取不同子載波數(shù)對算法識別準確率的影響,分別對原始數(shù)據(jù)進行1個、10個、20個子載波的選取并且分析選取不同子載波數(shù)下的手勢識別準確率。圖9為選取不同子載波數(shù)的手勢識別結果。
圖9 不同子載波數(shù)的手勢識別結果
在圖9中,當選取10個子載波作為輸入特征時識別準確率最高。分析認為當選取1個子載波作為輸入特征時,其提供的有效信息過少導致模型難以學習到完備的手勢動作信息,因此識別準確率較低;而當選取10個子載波作為輸入特征時,其提供了較為完備的特征信息以及具有較少的噪聲干擾,因此其識別準確率最高;當選取20個子載波作為輸入特征時,其提供了較多的冗余信息以及含有部分背景噪聲,從而對模型的識別造成一定的干擾,因此其識別準確率居中。
為從不同角度驗證BGR算法在手勢識別問題上的有效性和適用性,因此在測試集上與不同文獻中的方法展開綜合對比,其對比結果見表3。根據(jù)表3可看出BGR算法具有最優(yōu)的平均識別準確率。
表3 不同方法對比
此外,在相同的實驗條件下,通過控制不同訓練樣本數(shù)和不同子載波數(shù)兩個變量對上述方法進行橫向對比實驗,得到的對比結果如圖10所示。其中圖10(a)為不同方法在不同訓練樣本數(shù)下的結果對比;圖10(b)為不同方法在不同子載波數(shù)下的結果對比。
圖10 不同方法對比結果
由圖10可知,本文提出的BGR算法在不同訓練樣本數(shù)和不同子載波數(shù)條件下均取得了更優(yōu)的識別效果。分析認為傳統(tǒng)RNN方法不能將當前時刻的信息作為先驗知識傳遞給下一刻的隱藏單元并決策輸出,因此未能完整利用時序信息先后相關的數(shù)據(jù)特性,導致其識別準確率較低。其次,LSTM、GRU等方法雖然可通過輸入門、遺忘門以及輸出門保留“過去”時刻的手勢動作信息,但是無法利用“未來”時刻的手勢動作信息輔助決策當前的識別判定,因此也具有一定的局限性。而本算法通過利用手勢動作前后的時序關系,將連續(xù)手勢動作數(shù)據(jù)特征在時域尺度上進行整合分析,進而獲取到完整的手勢動作信息,由此能夠更加精確預測出手勢類別,所以在識別準確率上優(yōu)于其它方法,從而達到了最優(yōu)的手勢識別效果。
本文提出一種基于Bi-LSTM的CSI手勢識別檢測算法BGR(Bi-LSTM gesture recognition),首先將長度不一的原始手勢數(shù)據(jù)剪裁為固定長度的信號片段,再通過PCA提取出CSI信號主成分特征,并且使用巴特沃斯濾波器除去高頻背景噪聲和多徑效應干擾,然后經(jīng)歸一化后得到時域維度上的連續(xù)特征信息,最終利用手勢特征融合模型進行前向和反向的復合特征提取并更新模型權重,實現(xiàn)了對推拉、揮手、鼓掌、畫圓、畫Z、畫N等6個手勢動作的分類識別。與傳統(tǒng)手勢識別方法相比,本算法從時間維度考慮到前后手勢動作的連續(xù)性,并且將手勢動作過程作為整體特征進行分析,從而提高了手勢識別的準確率,同時具有較低的成本。此外,本文探討了選取不同數(shù)據(jù)包數(shù)對算法識別準確率的影響、不同樣本數(shù)對算法識別準確率的影響,以及不同子載波數(shù)對算法識別準確率的影響。最后與不同文獻中的方法進行橫向對比,結果表明該算法具有較高手勢識別準確率,因此具有較強的適應性。
另外,由于在復雜環(huán)境下Wi-Fi信號的傳播會受到干擾和影響,其包含的手勢特征語義會產(chǎn)生相應的衰減和模糊。因此如何在多人復雜條件下實現(xiàn)高精度的手勢識別以及強化對環(huán)境干擾的魯棒性是未來研究工作的主要內(nèi)容。