柳 村,馮秀芳
(太原理工大學 軟件學院,山西 晉中 030600)
手勢識別作為人機交互的重要組成部分,具備廣泛的應用前景。目前常見的手勢識別研究主要分為計算機視覺、無線信號和穿戴設備傳感器3種方向。
基于計算機視覺的研究主要依托于高清攝像頭采集到的視頻或者圖片,利用圖像處理技術對手勢信息進行特征提取,達到手勢識別的目的。文獻[1-3]主要使用高清圖像和深度學習結合的方式達到準確判斷人體行為的目的。但該研究方法受限于攝像頭的性能,并且易受光照和遮擋物等外在條件的干擾。
基于穿戴設備傳感器的研究主要依托于專用傳感器道具,并根據不同行為產生的傳感器變化信息實現手勢識別。文獻[4,5]分別通過兩種不同的傳感器和特征算法實現穿戴者的行為檢測。但該研究方法需要專用道具的支持,存在安裝困難、成本較高等問題,無法在日常生活中實現大規模的使用。
基于無線信號的研究主要依托于日常生活中常見的Wi-Fi信號,從網絡設備中獲取到包含人體行為的信號信息,利用信號波動特征進行識別,具有覆蓋范圍廣、實現成本低的優勢。文獻[6]使用子載波融合和不良數據鏈路剔除等方法實現了人體動態活動的識別;文獻[7]通過獲取動態信道狀態信息(channel state information,CSI)分量,提高了識別的準確率;文獻[8]通過提取CSI中的幅度和相位信息,采用改進后的支持向量機對人體動作進行分類識別。
針對當前研究存在的缺陷,本文提出一種基于無線信號和改進TCN的手勢識別方法GRT,結合Widar-3.0[9,10]中的CSI原始數據實現10種手寫阿拉伯數字手勢的分類識別,并取得了較為突出的效果。
信道狀態信息是一種協議的數據格式,用以表示基于正交頻分復用技術的無線網卡從物理層系統頻帶內子載波粒度的信道頻率響應(channel frequency response,CFR)采樣,是一條通信鏈路上的信道屬性,反映出信號在傳輸路徑上的信號延遲、衰減和相移,包含子載波的幅度和相位信息,如式(1)所示
Hk=|Hk|e-j∠Hk
(1)
式中:Hk表示第k個子載波的CSI數據, |Hk| 為第k個子載波的幅值數據,∠Hk為第k個子載波的相位數據[11]。本文主要研究依托于子載波的幅值信息。
人體的行為活動會對信號狀態產生較大影響。在室內環境中,通信鏈路的射頻信號會遭受各種物理因素的干擾,出現反射、衍射以及散射等現象。如圖1所示,當信號傳播碰到人體時,會改變信號的傳播方向,通過接收和分析此時信號傳播的不同狀態,可以實現人體不同行為的分類及判別。
設X(f,t) 和Y(f,t) 為發送信號和接收信號在時刻t時頻率為f的子載波頻域信息表示,其中H(f,t) 為此時的CFR[12],則這兩個信號的關系可以由式(2)表示為

圖1 Wi-Fi信號動態傳播
Y(f,t)=H(f,t)×X(f,t)
(2)
CSI是由各個天線對不同頻率子載波對應的CFR組成,包括靜態路徑和動態路徑的頻率狀態響應。故當人體在Wi-Fi信號區域內活動時,整體CSI就會發生變化,產生的變化信息即為無線信號中的手勢特征。
由于CSI數據具有較好的穩定性和魯棒性,GRT方法使用Wi-Fi信號的CSI數據對人體不同的手勢進行識別,且幅值數據相對于相位數據具備更好的特征性,故本文使用CSI數據當中的幅值信息作為GRT的研究數據。
整體流程如圖2所示,核心部分包括數據預處理和特征提取兩個模塊。

圖2 GRT方法流程
數據預處理階段,對于原始CSI數據當中的大量噪聲和干擾信息,使用巴特沃斯低通濾波和離散小波變換對數據進行濾波和去噪處理,并在此基礎上進行數據歸一化,之后將其整理成分別代表不同發射天線上的子載波集合。特征提取階段,將經過預處理的CSI分組數據以多輸入的網絡結構結合搭建好的改進TCN進行訓練,生成有效模型,并統計訓練過程的損失值和不同手勢的識別準確率。
本文所使用的CSI數據來源于Widar-3.0公開數據集。其中包含了人體在完成0~9這10個手寫阿拉伯數字手勢下產生的CSI原始數據。每個手勢數據文件經過處理之后可以得到一個復數矩陣N×30×3×1,即CSI的幅值信息,其中N代表該手勢動作下產生的CSI數據包的數量,30代表子載波的數量,3代表發射天線的數量,1代表接收天線的數量。每個CSI數據包均可用矩陣表示,如式(3)所示
(3)
式中:s1n、s2n、s3n分別表示CSI數據3條CSI流的第n個振幅數據[8]。人體行為所引起的信號變化特征主要存在于每一條CSI信號流當中,需要對原始的CSI數據進行預處理,更好地凸顯其中的特征。
由于Wi-Fi信號易受環境干擾,會使得產生的CSI數據出現噪聲過大、信號雜亂等問題,從而影響之后的分類工作。為了便于進行特征提取,需要對CSI原始數據進行預處理。
GRT使用低通濾波、數據去噪以及歸一化的方法對數據進行預處理。
2.2.1 低通濾波處理
在本文所研究的數字手勢識別當中,人體的主要運動部位是手指和手臂,故引起的振動頻率主要分布在低頻部分,而產生的噪聲信息主要分布于高頻部分。鑒于該特點,使用巴特沃斯濾波器進行低通濾波,可以最大程度保證通頻帶內頻率響應平緩。其具體表示如式(4)所示
(4)
式中: |H(ω)| 表示振幅,ω表示信號的頻率,n表示濾波階數,ωc表示截止頻率。該方法在起到消除噪聲干擾的同時,最大程度保證了低頻部分特征的完整性,從而提升之后特征提取的效果。
但由于巴特沃斯濾波器在阻帶中增益下降的速度較慢,噪聲消除能力有限,導致經過處理了的信號數據仍存在部分高頻噪聲,不能直接用于模型訓練。
2.2.2 數據去噪處理
鑒于小波變換在時頻局部化提取特征的顯著性,GRT方法使用離散小波變換對濾波后數據進行去噪處理。通過變換使得基本小波的尺度和平移進行離散化,并將信號分成近似系數和細節系數。其中近似系數描述信號的低尺度,即低頻信息;細節系數描述信號的高尺度,即高頻信息。小波變換的目的是突出信號在某一方面的特征,主要的公式如式(5)所示
(5)
式中:a為小波的尺度,τ為小波的平移量,μ為固定參數。而離散小波變換主要是對數據進行拆分重構處理,使得信息當中某個頻段的特征凸顯出來。
由于本文所研究的數據特征主要位于低頻部分,因此GRT方法通過離散小波變換對數據的高頻部分進行信號重構,將動態閾值用于細節系數,達到進一步去除噪聲的目的。
圖3為原始CSI幅值數據和兩次去噪處理及數據歸一化后的CSI幅值數據的對比圖。數據歸一化的目的主要是使得數據轉變為標準化的格式,方便之后網絡的特征提取。

圖3 CSI數據預處理前后對比
經過對比可以證實巴特沃斯濾波器和離散小波變換方法的有效性,保證信號數據變化趨勢完整的前提下,實現了噪聲的去除。
經過上述數據預處理得到的信號信息為一維數據,并且具有較強的時序性。GRT方法提出一種改進的時間卷積網絡(temporal convolutional networks,TCN)對信號序列數據進行特征提取。
由于原始TCN存在參數量隨著網絡深度增大而大幅增加的問題,在這種情況下易導致過擬合現象的發生。為了避免這種情況的發生,更好地實現特征復用和特征的深度提取,GRT在TCN的基礎上進行改進和優化。
2.3.1 TCN結構的改進
針對參數量增大問題,GRT方法在TCN當中引入密集連接結構進行網絡優化。密集連接是一種實現特征復用的跨層連接方式。其網絡結構的輸出可用式(6)表示
Xl=Hl([X0,X1,…,Xl-1])
(6)
式中:l表示對應網絡的層,X0,X1,…,Xl-1表示對應層的輸出,Hl表示非線性變換過程,該過程是一個組合操作,其中可能包括卷積、批歸一化、池化等過程。通過密集連接得到的網絡每一層輸出都是之前所有層特征拼接并進行非線性變換的結果,使得盡可能保留了之前層的特征信息,實現了特征復用,同時在一定程度上可以規避TCN網絡對于小數據集下參數過多引起的過擬合現象。
改進后的TCN網絡如圖4所示,將TCN網絡當中的每個時間模塊利用密集連接的方式進行改進,在減少卷積通道數量的同時降低特征維度,達到利用較小參數實現深度特征提取的目的,也在最大程度上避免了過擬合情況的產生[13]。

圖4 改進后的TCN結構
如表1所示,由于更改了網絡結構,可訓練參數量發生了下降,使得網絡訓練速度加快,資源消耗減少,更適應于對時延性能有要求的手勢識別。

表1 不同網絡類別的參數量
2.3.2 時間模塊的改進
如圖5所示,原始TCN當中的時間模塊結構使用了ResNet[14]當中的殘差塊,同時利用因果卷積和擴張卷積結合搭建新的模型塊,形成時間模塊。之后使用權重歸一化和Dropout層來堆疊網絡規避過擬合現象。這樣的結構不僅使得殘差結果對數據的波動更加敏感,而且良好地解決了網絡退化的問題。

圖5 ResNet中的殘差塊
但由于外部結構使用了密集連接跨層結構,時間模塊內部的殘差連接可以去除,在減少參數量的同時保證了特征提取效果。同時為了降低模塊的特征維度,在結構中額外加入一層一維卷積進行處理,可以更有效地捕獲特征信息,如圖6所示。

圖6 改進后的時間模塊結構
同時為了更好地保留歷史信息部分,時間模塊當中繼續沿用了原始TCN當中的因果卷積和空洞卷積設計內容,對于具備時間特征的數據或序列有良好的建模能力。
相比于通過門控單元存儲信息的長短時記憶網絡(long short-term memory,LSTM),放棄使用門控單元,而是通過因果卷積增加網絡層數的方式來獲取歷史信息并通過當前已知的條件去預測結果,其具體表示如式(7)所示
(7)
式中:x1,x2,…,xt-1代表已知的歷史信息,需要對當前時刻t下的結果進行預測,得到預測結果p(x)。
為了代替門控單元實現對歷史信息的存儲,需要增大網絡層數堆疊信息或者選取較大的卷積核增加感受野,這樣不僅使得網絡的運算量突增,而且會導致梯度消失等問題,對網絡的訓練效果產生影響。擴張卷積的引入可以在避免以上問題的同時擴大卷積的感受野,使其獲取到更多歷史信息,提升預測的準確率。感受野RF可以用式(8)表示
RF=(K-1)×d+1
(8)
式中:K為濾波器大小,d為膨脹因子系數,擴大感受野需要改變這兩個參數的大小。在擴張卷積操作中,膨脹因子d會隨著網絡深度的增加以指數方式增長,引入擴張卷積網絡能用較少的層數獲得更大的感受野。
并且根據CSI幅值數據特性,將空洞卷積的擴張率進行了改進,由之前隨著時間模塊的遞進式擴張方式進一步調整為更適合GRT方法的擴張率增長方式。使得在有限網絡層數內獲取到更多的歷史信息,在一定程度上提升了對當前時刻結果的預測的準確度,也避免了無用的層數堆疊。
2.3.3 整體網絡結構的改進
由于上述提出的改進方法增大了網絡深度,在此情況下為了增強網絡的魯棒性和泛化能力,需要使用較多的數據進行訓練。本文所使用CSI幅值擁有3組相關信號數據,為了更好地實現手勢信號的深度特征提取且避免過擬合發生,GRT方法引入多輸入網絡結構進行訓練。
如圖7所示,首先將3組天線對的CSI幅值數據分別通過改進后的TCN進行訓練后進行特征融合,對融合后的特征進行了展平(Flatten)處理,同時加入了Dropout層來抑制整體模型過擬合現象的發生,最后利用全連接層和Softmax多分類進行數據類別的預測。

圖7 結合多輸入的網絡結構
2.3.4 損失函數的設置
本文使用的手勢信號標簽為阿拉伯數字0~9,分別對應10種不同的手勢,屬于多分類訓練任務。為了提升訓練效果,對數據集標簽使用獨熱編碼處理。由于改進TCN屬于多輸入單輸出型網絡,訓練過程中在進行Softmax回歸處理之后需要使用交叉熵損失函數進行交叉熵計算以保持良好的分類精度
(9)
式(9)為交叉熵的計算,其中lable(i)為獨熱編碼后的標簽變量,C為分類數,n為訓練樣本數,predict(i)為對應的預測結果向量。利用交叉熵損失函數的計算來判定實際的輸出與期望的輸出的接近程度,同時結合梯度下降來不斷進行權重的更新,以此增強模型的準確率。
本文所采用數據集選取自Widar3.0,其中包含3類室內場景下10個手寫數字手勢的信號數據,分別為阿拉伯數字0~9,總計2000個CSI信息包。該數據集由配置Intel5300網卡的商用Wi-Fi設備以30 Hz的采樣率持續接收CSI數據分組,發射端的天線數量為3根,接收端的天線數量為1根,在真實場景下進行采集,因此包含場景噪聲等諸多干擾因素,有助于驗證GRT方法的魯棒性。
實驗數據選取數據集中每個手勢的80%作為訓練樣本,將數據集中每個手勢剩余的20%作為測試樣本,使用Adam優化算法來適應調整訓練過程中的學習率變化。
本文實驗的評價指標為手勢識別分類的準確率,并使用混淆矩陣進行實驗分析。
本文所進行的主要實驗和對比實驗均依托于Python 3.7下的谷歌深度學習框架Tensorflow2.0構建。硬件配置見表2。
本文所使用的GRT方法對訓練樣本數據進行預處理之

表2 本文實驗的硬件配置
后,通過多輸入的方式將其引入到改進TCN網絡當中進行訓練。測試樣本數據使用同樣的預處理方法進行操作,輸入已訓練好的模型當中進行測試,并整理實驗結果得到識別準確率。圖8是對10種手勢進行識別的混淆矩陣,表示每個手勢動作被識別成10個動作的概率。

圖8 手勢識別結果的混淆矩陣/%
從圖8中可以看出每種手勢識別的準確率均為較高水平,平均識別準確率達98.3%,其中手勢較為復雜的幾類數字識別率更高,出現誤判的可能較小,例如手寫數字“8”,由于其手部動作較為明顯且完整,對于整個信號區域內的信號動態傳播影響作用較大,GRT方法基本可以做到準確識別。而對于手部動作較為相似的手勢可能會出現極少量的誤判情況。
3.4.1 不同樣本數量影響
由于訓練樣本的CSI數據當中包含著復雜的環境信息和動作信息,且深度學習的方法具有依賴大規模數據集的特點,需要從大量的數據當中提取到特征信息并進行分類,所以訓練樣本的大小也會對訓練結果產生一定的影響。本文實驗分別選取每個動作的120個、140個、160個、180個、200個樣本進行訓練并觀察測試結果,見表3。

表3 不同訓練樣本數量的影響
由表3可以看出,隨著訓練樣本數量的增加,該模型的手勢平均識別精度也在增加。這說明樣本數量是影響實驗結果的一個重要因素,在一定范圍內增大樣本數據的數量更有利于模型精度的提升,但隨著樣本的數量增大,引起平均識別精度提高的速率明顯變小,驗證樣本數量已經逐漸滿足了本文所提出網絡的特征提取需求,識別精度趨于平穩狀態,過多的訓練樣本反而會導致網絡訓練過慢,影響系統的實用性。本文實驗選擇的單個手勢訓練樣本數為200個,使得網絡在訓練效率和識別精度之間達到平衡狀態,可以使用較少的資源得到較高的手勢識別準確率。
3.4.2 不同子載波數量影響
在CSI數據當中包含的子載波數量為A×M×N×30,其中A為獲取到的數據包個數,M為發送端天線數,N為接收端天線數。每根天線上傳輸了固定的30條子載波,子載波的選取數量也會對實驗結果產生一定的影響。本文實驗選擇每根天線上10條、20條、30條不同的子載波數量進行訓練并觀察結果。
如表4所示,隨著每根天線上選取子載波數量的增加,該模型的手勢識別平均精度也在增加,驗證了子載波數量是影響實驗結果的一個重要因素。由于本文所使用實驗器材涉及3組不同的天線對,每組天線對上都保留了在無線信號環境下手勢的特征信息,使用多組數據并列輸入的方式會盡可能保留手勢動作的特征性。相較于不同樣本數量,不同的子載波數量對于模型平均識別精度的提升更大,由于在較少子載波用于訓練的情況下,CSI幅值數據所體現出來的特征性有限,對于一些動作微小的手部動作特征無法提取完全,手勢識別的準確率也較低。

表4 不同子載波數量的影響
但隨著網絡輸入的子載波數量越多,可以提取出更多有效的信息進行高精度的識別。為了達到識別的最佳效果,本文選擇每根天線均使用全部的30條子載波進行實驗,實現最優識別結果。
3.4.3 消融實驗對比
由于本文所提出的GRT方法當中使用了改進的TCN網絡,需要進行消融實驗來確定改進模塊的有效性。
實驗主要分為4組進行,第一組使用本文提出的完整改進TCN結構;第二組使用在第一組的基礎上去除多輸入網絡結構改進的TCN;第三組使用在原始網絡基礎上僅保留密集連接改進的TCN;第四組使用不進行任何改進的原始的TCN網絡。表5為消融實驗的對比結果。
通過表5的對比結果可以看出,對比原始TCN每一步的網絡改進思路都對平均識別精度有一定的提升,驗證了改進TCN的可行性和GRT方法的有效性。
3.4.4 不同方法對比
為了驗證本文提出GRT方法的有效性,在完全相同的

表5 消融實驗對比結果
數據集和實驗環境下使用其它文獻方法和部分深度學習網絡與GRT方法進行實驗對比。包括KNN、AFSA-SVM、LSTM、GRU、CNN、TCN這6種方法,分別使用各個網絡進行模型訓練并測試,得到對比結果見表6。

表6 不同方法對比結果
從表6中可以看出深度學習方法的平均識別精度整體略高于機器學習方法。這是由于深度學習可以從大量數據當中直接獲取到更高等級的特征,有助于特征提取的進行,從而實現更高精度的分類識別。其它深度學習網絡由于特征提取的單一性和不完整性,均在平均識別精度上低于GRT方法。實驗結果表明,GRT方法當中的改進TCN相對于其它方法具有更好的識別效果。
同時為了進一步對GRT方法進行對比驗證,在不同訓練樣本數和不同子載波選取數兩個變量下分別對其它4種不同深度學習網絡的平均識別精度進行統計,并與GRT方法進行對比,得到的對比結果如圖9所示。

圖9 不同方法對比結果
GRT方法在不同訓練樣本和不同數量子載波選取條件下精確度均優于其它4種網絡。由于包含了TCN利用了網絡深度實現歷史信息的存儲的特點,同時加入空洞卷積來代替循環神經網絡當中的輸入門、遺忘門和輸出門,對比LSTM、GRU和CNN在減少參數量的同時增加了網絡的魯棒性,更好地實現有效信息的提取。相較TCN,GRT方法通過融入密集連接的思想,盡可能減少了模型的參數,加快訓練速度的同時避免了較小數據集下過擬合情況的產生,在準確率上獲得了較大的提升。GRT方法在模型結構上使用多輸入網絡的方式對所有數據進行處理,摒棄了傳統的主成分分析方法,最大程度上保留了所有信號的特征信息,相比于選取特定信息進行訓練在準確率上有較為顯著的提升。以上對比結果表明了GRT方法的有效性和合理性。
本文提出一種基于無線信號和改進TCN的手勢識別方法GRT。首先使用巴特沃斯低通濾波、離散小波變換和數據歸一化對提取到的CSI幅值數據進行預處理,在最大程度上保留信號特征的同時去除干擾噪聲;之后構建融入密集連接的改進TCN網絡,將處理好的CSI幅值數據以天線為單位通過多輸入網絡的結構分組輸入到網絡當中進行訓練,最后實現對0~9這10種手寫阿拉伯數字的手勢識別。實驗結果表明,本文提出方法在普適環境下平均識別率達到98.3%,具有良好的識別效果,驗證了改進網絡的可行性和合理性。
由于無線信號的衰退性和不穩定性,在不同環境下特征表現不同,易受到各種人為動作的干擾。如何在多人復雜環境下實現高精度的人體行為識別,減少環境造成的影響是未來工作當中研究的重點內容。