張 夢,管同元,卓豪輝,吳茗蔚
(浙江科技學(xué)院 信息與電子工程學(xué)院,浙江 杭州 310023)
非接觸手勢識別具有巨大的應(yīng)用市場,采用攝像頭[1-2]、雷達(dá)[3-4]以及傳感器[5-6]等方式雖然取得了一定成效,但仍存在光照敏感、設(shè)備昂貴以及操作不便等弊端。與之相比,基于WiFi信道狀態(tài)信息(Channel State Information,CSI)的手勢識別具有成本低、擴(kuò)展性強和不受光照條件影響等優(yōu)點。近年隨著深度學(xué)習(xí)的發(fā)展,許多基于深度學(xué)習(xí)的WiFi手勢識別方法被提出。CrossSense[7]通過漫游網(wǎng)絡(luò)實現(xiàn)了跨場景的手勢識別;EI[8]使用對抗網(wǎng)絡(luò)實現(xiàn)了6種動作的識別;劉佳慧等[9]使用長短期記憶網(wǎng)絡(luò)(Long-Short Term Memory,LSTM)實現(xiàn)了對4種手勢的識別。上述深度學(xué)習(xí)方法通過直接建立CSI數(shù)據(jù)與動作間的映射取得了良好成效。但直接建立原始信號與手勢映射的模式,限制了對信號動力學(xué)的理解。對此,Widar3.0[10]提出身體速度譜(Body-coordinate Velocity Profile,BVP)這一概念并結(jié)合CNN-GRU深度學(xué)習(xí)模型,在手勢識別問題上取得了良好成效。王熾等[11]在BVP基礎(chǔ)上提出3D-CNN模型實現(xiàn)對6種手勢識別。理論上,深度學(xué)習(xí)模型訓(xùn)練期間用到的標(biāo)記數(shù)據(jù)越充分,所得到的模型效果越好。但數(shù)據(jù)的收集和標(biāo)注需要耗費極大的人力和物力,由于難以收集到足夠多的數(shù)據(jù),最終導(dǎo)致訓(xùn)練出來的模型性能不佳。另一方面,手勢和不同個體間的差異會直接導(dǎo)致BVP數(shù)據(jù)在格式上出現(xiàn)差異。雖然可以通過重采樣進(jìn)行標(biāo)準(zhǔn)化處理,但標(biāo)準(zhǔn)化后的BVP特征與CSI不再是直接映射關(guān)系,模糊了其對手勢的表達(dá)。
為解決上述2個問題,本文基于膠囊網(wǎng)絡(luò)(Capsule Network,CapNet)[12]結(jié)構(gòu)簡單、不會因池化丟失信息的優(yōu)點并結(jié)合門循環(huán)單元[13](Gated Recurrent Unit,GRU)提出了一種基于CapNet的遷移學(xué)習(xí)模型GRU-CapNet,將圖像識別領(lǐng)域中訓(xùn)練好的模型遷移到WiFi手勢識別任務(wù)中,以提升手勢識別準(zhǔn)確率。另外,還提出一種改進(jìn)的BVP估計算法,通過動態(tài)計算CSI手勢數(shù)據(jù)的分割模式,直接得到格式統(tǒng)一的BVP特征數(shù)據(jù),避免了重采樣導(dǎo)致映射關(guān)系不直接的問題。在公開數(shù)據(jù)集和家用小型轎車場景下分別進(jìn)行了試驗,結(jié)果驗證了所提方法的有效性。
CSI是估計通信鏈路的信息,頻率為f的子載波的CSI可表示為[14]:
H(f)=‖H(f)‖ej∠H(f),
(1)
式中,H(f)為單個子載波的CSI;‖H(f)‖和∠H(f)表示CSI的幅度與相位。移動物體會導(dǎo)致信號產(chǎn)生多普勒頻移(Doppler Frequency Shift,DFS),同時信號傳播過程存在多徑效應(yīng)。多徑效應(yīng)下,頻率為f的子載波在t時刻的CSI可通過DFS來描述[15]:
(2)
式中,Hs為不包含DFS的靜態(tài)分量總和;Pd表示包含DFS的動態(tài)信號集合;αl表示復(fù)雜衰減;φ(f,t)為相位偏移。通過共軛相乘、減去均值以及功率調(diào)整操作,可以得到含有顯著DFS的分量[16]。隨后,通過短時傅里葉變換即可得到多普勒頻移分布(Doppler Frequency Shift Profile,DFSP)。
以人的朝向為x軸正方向,所在位置為原點建立坐標(biāo)系。BVP通過式(3)計算[10]:
(3)
式中,M為各接收端與發(fā)射端建立的鏈接數(shù);V為BVP數(shù)據(jù);D(i)和c(i)為不同鏈接中的DFSP和傳播衰減;EMD(·,·)為2個分布的EMD距離[17];η為稀疏正則化系數(shù);‖·‖0用于度量非零量的個數(shù);A(i)表示第i條鏈接上速度與多普勒頻移的映射矩陣,其滿足公式[10]:
(4)
(5)
CSI數(shù)據(jù)長度會因手勢及手勢執(zhí)行對象間的差異而變化,進(jìn)而導(dǎo)致BVP的序列長度發(fā)生變化。為了消除這種差異,Widar3.0中[10]通過重采樣來統(tǒng)一BVP序列長度,其流程如圖1(a)所示。
(a) 固定分割模式
(b) 動態(tài)分割模式圖1 不同分割模式BVP計算流程Fig.1 BVP calculation process under different segmentation models
(6)
動態(tài)分割模式較固定分割模式相比,其在最初階段通過標(biāo)準(zhǔn)BVP序列長度計算CSI模式段長度。因此,可直接得到標(biāo)準(zhǔn)格式的BVP數(shù)據(jù),進(jìn)而建立起原始CSI數(shù)據(jù)與BVP特征之間的直接映射關(guān)系。同時,動態(tài)分割模式下不再需要進(jìn)行額外的重采樣操作,進(jìn)而提升了BVP的計算效率。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)在分類、檢測等視覺任務(wù)領(lǐng)域取得了很好的效果[18]。CNN可以根據(jù)應(yīng)用場景自動提取圖像的適當(dāng)特征,但其在訓(xùn)練過程中需要大量地標(biāo)記數(shù)據(jù)。本文使用遷移學(xué)習(xí)來解決上述問題,遷移學(xué)習(xí)就是將源領(lǐng)域的學(xué)習(xí)模型遷移到目標(biāo)領(lǐng)域,其不要求源域數(shù)據(jù)和目標(biāo)域數(shù)據(jù)具有相同分布,因此可以將圖像識別領(lǐng)域訓(xùn)練好的模型應(yīng)用到WiFi手勢識別任務(wù)中。
與傳統(tǒng)的CNN不同,傳統(tǒng)CNN在進(jìn)行池化操作時存在丟失實體在區(qū)域內(nèi)位置信息的缺陷,而膠囊網(wǎng)絡(luò)通過向量來表示相應(yīng)的特征,不會丟失實體在區(qū)域內(nèi)的位置信息[12]。其核心部分為基礎(chǔ)膠囊(Primary Caps)和數(shù)字膠囊(Digit Caps)。
對于一個普通輸入,構(gòu)建一個包含T×D個通道的卷積層,其中T為基礎(chǔ)膠囊通道的數(shù)量,D為每個膠囊的維度。通過卷積計算,即可得到長和寬為L×W的T×D個輸出通道,這樣便創(chuàng)建了L×W×T個維度為D的基礎(chǔ)膠囊。
數(shù)字膠囊由s個膠囊組成,每個膠囊代表一個類別,通過計算每個膠囊的二范數(shù)來表示當(dāng)前類別的概率,二范數(shù)最大的膠囊即表示模型的預(yù)測類別。基礎(chǔ)膠囊通過動態(tài)路由算法來確定與數(shù)字膠囊的關(guān)聯(lián),任意數(shù)字膠囊的輸入通過式(7)計算[12]:
(7)
(8)
經(jīng)過r次迭代,膠囊之間的路由權(quán)重便得以建立。
BVP特征反映了速度在時間和空間上的變化,包含了速度在時間上的信息。為了防止卷積神經(jīng)網(wǎng)絡(luò)丟失時間維度上的信息,本文綜合使用了循環(huán)神經(jīng)網(wǎng)絡(luò)和CNN。通過組合GRU和CapNet,并使用遷移學(xué)習(xí)遷移在Mnist數(shù)據(jù)集上預(yù)訓(xùn)練的CapNet,提出了一種基于CapNet遷移學(xué)習(xí)的GRU-CapNet(tf)網(wǎng)絡(luò),其結(jié)構(gòu)如圖2所示。之所以選擇GRU與CapNet有如下考慮:
圖2 GRU-CapNet結(jié)構(gòu)Fig.2 GRU-CapNet structure
① GRU與LSTM相比在時序建模方面的性能與LSTM相當(dāng),但涉及的參數(shù)更少,在數(shù)據(jù)受限的情況下更容易訓(xùn)練(后續(xù)試驗部分會進(jìn)行驗證);
② CapNet相較于圖像識別領(lǐng)域的其他模型,如:AlexNet[18],VGG-19[19],ResNet[20]等,克服了池化操作帶來的信息損失且結(jié)構(gòu)更加簡單。而本文的出發(fā)點在于通過遷移學(xué)習(xí)讓模型在有限數(shù)據(jù)集下能夠充分訓(xùn)練獲得更高的準(zhǔn)確率,而遷移學(xué)習(xí)過程中模型無法進(jìn)行完全遷移,需要針對具體應(yīng)用進(jìn)行微調(diào)。也就是說模型中的部分參數(shù)需要重新進(jìn)行訓(xùn)練,那么在這種情況下,CapNet作為一種結(jié)構(gòu)更為簡單的模型所涉及到需要重新訓(xùn)練的參數(shù)更少,因此更加符合本文需求。
對于輸入格式是20×20×20的手勢BVP序列,首先使用包含784個單元的GRU提取BVP數(shù)據(jù)的時序特征。隨后將得到的特征向量重塑成28×28的特征映射圖并且進(jìn)行歸一化處理,輸入到在Mnist數(shù)據(jù)集上預(yù)訓(xùn)練過的膠囊網(wǎng)絡(luò)遷移結(jié)構(gòu)中。遷移結(jié)構(gòu)包含Conv1卷積層和基礎(chǔ)膠囊層,第1層Conv1卷積層是由256個9×9卷積核組成的普通卷積層,卷積核的步長為1并使用ReLU作為激活函數(shù);第2層基礎(chǔ)膠囊層,其中包含了32個8d膠囊,每個膠囊卷積核大小是9×9,步長為2,同樣使用ReLU作為激活函數(shù)。
緊隨遷移結(jié)構(gòu)的是數(shù)字膠囊層,數(shù)字膠囊層由n個16d的數(shù)字膠囊組成,每個數(shù)字膠囊的值由基礎(chǔ)膠囊層的輸出通過動態(tài)路由算法計算得到。最后,通過計算數(shù)字膠囊層中每個數(shù)字膠囊的二范數(shù)來表示在不同類別上的概率。由于數(shù)字膠囊層膠囊的個數(shù)n與手勢分類的類別有關(guān),需要針對不同類別修改數(shù)字膠囊的個數(shù),因此數(shù)字膠囊層無法直接遷移已訓(xùn)練好的權(quán)重,需要進(jìn)行重新訓(xùn)練,即微調(diào)(Fine Tuning)。
為驗證本文提出方法的有效性,在公開室內(nèi)數(shù)據(jù)集和家用小型轎車應(yīng)用場景下采集到的數(shù)據(jù)集上分別進(jìn)行了試驗。試驗過程中,計算機(jī)操作系統(tǒng)為Win10,CPU分別為Intel i7-9700和Intel i5-6500;GPU為NVIDIA Tesla K80;有關(guān)BVP計算的試驗程序均在Matlab R2016b上實現(xiàn);有關(guān)手勢識別模型的訓(xùn)練和測試試驗程序在Python 3.7.9上實現(xiàn),使用到的相關(guān)庫及版本號為:Numpy 1.19.2,Pandas 1.2.4,TensorFlow 2.1.0。
本節(jié)試驗所用數(shù)據(jù)集來自Widar 3.0:DataSet提供的室內(nèi)CSI手勢數(shù)據(jù),其包含16志愿者×6手勢×5位置×5朝向×5次重復(fù)共12 000個CSI手勢數(shù)據(jù),6種手勢分別為推&拉、右掃、拍手、劃動、畫圓以及畫Z。
3.1.1 特征提取算法對比試驗
試驗分別使用動態(tài)CSI分割模式與固定CSI分割模式在公開CSI數(shù)據(jù)集上計算對應(yīng)的BVP特征集。為了方便表示,稱固定CSI分割模式所得BVP特征集為BVPSet,動態(tài)CSI分割模式所得BVP特征集為DBVPSet。為了驗證本算法的通用性,分別在GRU[13],LSTM[9]模型以及引言中所提基于BVP提出的CNN-GRU[10],3D-CNN[11]模型和本文所提GRI-CapNet(tf)模型上使用五折交叉驗證進(jìn)行測試。即將BVP數(shù)據(jù)分為5份,分別取其中一份作為測試集,剩下的作為訓(xùn)練集進(jìn)行訓(xùn)練,最終計算出這5次結(jié)果的平均值作為試驗結(jié)果。為了保證每份數(shù)據(jù)不會出現(xiàn)偏斜的情況,采用同分布采樣保證每份數(shù)據(jù)在各個手勢類別上的分布一致,最終所得結(jié)果如表1所示。
表1 特征集準(zhǔn)確率Tab.1 Accuracy of feature set 單位:%
結(jié)果表明,不同模型在DBVPSet上所得識別準(zhǔn)確率均優(yōu)于在BVPSet上所得識別準(zhǔn)確率,準(zhǔn)確率分別提升1.57%~3.34%。因此可以說明基于動態(tài)CSI片段分割的BVP估計算法能夠有效地提高數(shù)據(jù)支撐度,增強BVP與CSI間的映射關(guān)系。進(jìn)一步,統(tǒng)計了在DBVPSet上不同模型的識別延遲與內(nèi)存占用情況,如表2所示。
在計算資源有限的前提下,可用資源與服務(wù)的有效派發(fā)是一個重要問題.依據(jù)分布式計算、并行計算、虛擬化等技術(shù),云計算能夠有效地將服務(wù)器和計算機(jī)資源以統(tǒng)一的資源池形式進(jìn)行有機(jī)融合,根據(jù)用戶需求動態(tài)高效地進(jìn)行資源分發(fā),提高了資源利用率和降低了使用成本[1].這種基于共享架構(gòu)的計算模式,需要按照用戶的不同需求進(jìn)行響應(yīng)并保證服務(wù)質(zhì)量(Quality of Service, QoS),實現(xiàn)靈活的資源分配.因此,合理且高效的云計算資源調(diào)度分配模型的設(shè)計,對于提高資源利用率和實現(xiàn)良好的用戶體驗至關(guān)重要.
表2 識別延遲和內(nèi)存占用Tab.2 Identify latency and memory usage
從各模型占用內(nèi)存與識別延遲可以看到,本文提出的GRU-CapNet模型雖然占用內(nèi)存最大,但其識別延遲僅為4.78 ms,與其他模型僅存在不超過2.5 ms的差異,因此可認(rèn)為各模型的識別延遲處于相近水平。結(jié)合表1和表2也可以驗證,GRU相對于LSTM有接近的性能(DBVPSet上識別準(zhǔn)確率僅相差0.42%),同時涉及到的參數(shù)更少(占用內(nèi)存相比LSTM減少2.8 MB)。
為了更全面地比較改進(jìn)前后特征提取算法的差異,使用2臺設(shè)備進(jìn)行對照試驗分別統(tǒng)計了不同標(biāo)準(zhǔn)長度下的BVP平均計算延遲和準(zhǔn)確率。其中,設(shè)備1使用Intel i7-9700處理器,設(shè)備2使用Intel i5-6500處理器,其余軟硬件配置均相同。計算延遲與識別準(zhǔn)確率分別如表3和圖3所示。
表3 計算延遲統(tǒng)計Tab.3 Calculating latency statistics
圖3 識別準(zhǔn)確率Fig.3 Recognition accuracy
顯然,在動態(tài)CSI分割模式下,不同設(shè)備上BVP計算延遲均顯著減少,且減少程度隨著BVP標(biāo)準(zhǔn)序列長度的增加逐漸加大,最高減少了21.7 s。這是因為隨著標(biāo)準(zhǔn)序列長度的增加,重采樣計算所需計算的采樣點逐漸增多;而在動態(tài)CSI分割模式下不再需要進(jìn)行重采樣操作,所以大幅減少了BVP計算延遲。
各模型識別準(zhǔn)確率隨標(biāo)準(zhǔn)序列長度的增加出現(xiàn)先增后減的趨勢,在取值為20時均達(dá)到最大。這是因為序列較短與過長情況下BVP的時間特征過度壓縮和過于分散,從而引起特征包含的有效信息不足。所以選定20作為標(biāo)準(zhǔn)序列長度,此時計算延遲在不同設(shè)備上分別減少了6.6,12.1 s。
3.1.2 遷移學(xué)習(xí)對照試驗
為了驗證遷移學(xué)習(xí)的效果,本節(jié)進(jìn)行了遷移前后的對照試驗,3.1.1節(jié)中已驗證DBVPSet數(shù)據(jù)集數(shù)據(jù)支撐度更高,本節(jié)遷移學(xué)習(xí)相關(guān)試驗均在DBVPSet上進(jìn)行,同樣地采用五折交叉驗證。為方便對比,使用GRU-CapNet(raw)表示未使用遷移學(xué)習(xí)的GRU-CapNet原始模型,其路由迭代次數(shù)均設(shè)置為3。訓(xùn)練過程中遷移前后模型GRU-CapNet(raw)與GRU-CapNet(tf)在測試集上準(zhǔn)確率(Accuracy)隨訓(xùn)練迭代次數(shù)的變化情況如圖4所示。
圖4 準(zhǔn)確率變化曲線Fig.4 Accuracy variation curve
由圖4可知,在相同情況下,使用遷移學(xué)習(xí)使得模型在訓(xùn)練過程中的準(zhǔn)確率提升速度更快。同時可以發(fā)現(xiàn),在使用遷移學(xué)習(xí)過后,僅需少量訓(xùn)練迭代模型識別準(zhǔn)確率即可超過90%,最終準(zhǔn)確率相比未使用遷移學(xué)習(xí)的模型提升了大約8%。訓(xùn)練過程中GRU-CapNet(raw)與GRU-CapNet(tf)的損失(Loss)隨訓(xùn)練迭代次數(shù)的變化趨勢如圖5所示。
圖5 損失變化曲線Fig.5 Loss variation curve
損失隨著訓(xùn)練迭代次數(shù)的增加呈現(xiàn)下降的趨勢,最終趨于穩(wěn)定。其中,GRU-CapNet(raw)的損失穩(wěn)定在0.1左右,GRU-CapNet(tf)的損失穩(wěn)定在0.04左右。相較于未使用遷移學(xué)習(xí)的原始模型而言,使用遷移學(xué)習(xí)后模型的整體損失更低,同時初始損失處于較低區(qū)間內(nèi)。最終GRU-CapNet(raw)與GRU-CapNet(tf)模型五折交叉驗證的平均結(jié)果如表4所示。
表4 五折交叉驗證平均結(jié)果Tab.4 5-fold cross-validation average results
圖6 GRU-CapNet(raw)混淆矩陣Fig.6 Confusion matrix of GRU-CapNet (raw)
圖7 GRU-CapNet(tf)混淆矩陣Fig.7 Confusion matrix of GRU-CapNet (tf)
本節(jié)在家用小型轎車場景下應(yīng)用本文所提有關(guān)方法針對駕駛員手勢識別進(jìn)行了相關(guān)試驗。
3.2.1 數(shù)據(jù)采集
試驗環(huán)境為家用小轎車,車輛型號為雪佛蘭科魯茲。采用一臺路由器作為發(fā)送設(shè)備,3臺安裝有Intel 5300網(wǎng)卡的筆記本電腦作為接收設(shè)備。發(fā)包頻率為1 000 Hz,發(fā)送設(shè)備與接收設(shè)備以及被測對象的布局如圖8所示。
圖8 試驗環(huán)境Fig.8 Test environment
測試手勢分別為揮手、畫圓、畫Z和推&拉4種,圖9為不同手勢動作的示意圖。共有14位志愿者參與了數(shù)據(jù)采集,每人每種手勢采集了20個數(shù)據(jù)樣本,最終獲取共計1 120個手勢CSI數(shù)據(jù)。
(a) 揮手
(b) 畫圓
(c) 畫Z
(d) 推&拉圖9 手勢示意Fig.9 Hand gestures
3.2.2 結(jié)果與分析
使用動態(tài)CSI分割模式的BVP估計算法對采集到的駕駛員手勢數(shù)據(jù)進(jìn)行處理,然后通過GRU-CapNet(tf)模型進(jìn)行識別分類。試驗過程中使用五折交叉驗證,同時與3.1.1節(jié)中使用到的其他模型進(jìn)行對比試驗,其結(jié)果如表5所示。
表5 各模型識別準(zhǔn)確率Tab.5 Recognition accuracy of different models 單位:%
在車輛應(yīng)用場景下,GRU-CapNet(tf)的駕駛員手勢識別準(zhǔn)確率達(dá)到了97.95%,較其他模型提升6.63%~8.04%。GRU-CapNet(tf)對4種手勢的分類混淆矩陣如圖10所示。其中,推&拉動作的識別準(zhǔn)確率最高,達(dá)到98.93%,揮手的識別準(zhǔn)確率為98.57%,畫Z的識別準(zhǔn)確率為97.5%,畫圓的識別準(zhǔn)確率最低為96.79%。
圖10 混淆矩陣Fig.10 Confusion matrix
從結(jié)果可知,本文所提方法在有限數(shù)據(jù)集上得到的性能遠(yuǎn)高于其他方法。這是因為遷移的預(yù)訓(xùn)練模型在源領(lǐng)域已經(jīng)充分訓(xùn)練,相較于從0開始訓(xùn)練其初始狀態(tài)已處于較高水平,因此所得結(jié)果遠(yuǎn)高于其他方法。
本文提出了一種基于膠囊網(wǎng)絡(luò)遷移學(xué)習(xí)的WiFi手勢識別方法GRU-CapNet。同時在已有BVP估計算法的基礎(chǔ)上提出了一種基于動態(tài)CSI分割模式的BVP估計算法。通過試驗證明,基于遷移學(xué)習(xí)的GRU-CapNet模型在數(shù)據(jù)集受限條件下性能顯著高于其他模型,在駕駛員手勢識別應(yīng)用場景下對手勢的識別準(zhǔn)確率達(dá)到97.95%,為手勢識別方法提供了新的思路;改進(jìn)的BVP估計算法能夠明顯提升數(shù)據(jù)支撐度且顯著減少計算延遲。在接下來的工作中,將針對BVP計算過程中延遲較高的問題進(jìn)行進(jìn)一步研究,以提升整體識別過程的實時性。