


















摘 要:為解決目前大多數基于WiFi的手勢識別算法運用于缺乏訓練的遺漏用戶手勢時,算法精度偏低的問題,現提出一種基于SSGAN的與人無關的CSI手勢識別算法AP-SGGR。首先,從原始CSI子載波中提取幅值和相位序列;其次,對其進行離群值去除、巴特沃斯低通濾波去噪以及線性變換等預處理操作,構成聯合特征的CSI圖像;然后,選取少量遺漏用戶的無標簽CSI數據,通過半監督學習,建立起用戶與模型的映射關系;最后,在大規模多類型手勢數據集上進行對比測試,其平均準確率達到了91.39%。實驗結果表明,該算法提高了對遺漏用戶手勢的識別準確率。
關鍵詞:物聯網;人機交互;手勢識別;SSGAN;信道狀態信息;半監督生成對抗網絡
中圖分類號:TP183;TN92 文獻標識碼:A 文章編號:2095-1302(2024)12-00-06
0 引 言
手勢識別作為人機交互的核心技術之一,具有廣泛的應用前景。目前國內外對手勢識別的研究主要分為基于計算機視覺、基于可穿戴設備和基于無線信號等3個研究方向。
基于計算機視覺[1-2]的研究主要借助高清攝像機采集的圖片或視頻,然后利用圖像處理技術進行特征提取,達到手勢識別的目的。但該研究方法在昏暗或視野受限的條件下,識別精度有限且易造成隱私泄露等問題;基于可穿戴設備[3-4]的研究主要依托于人體可接觸的傳感器,并根據不同行為產生的傳感器變化信息實現手勢識別,但該研究方法成本高、安全系數低,不易大規模應用于日常生活。
相較于以上技術,基于無線信號的手勢識別有更好的普適性,其主要依托于日常生活中常見的WiFi信號,從特定設備中獲取包含人體行為的信道狀態信息,并利用其波動特征進行動作識別,這種方法具有隱私保護性強、成本低以及分布廣等特點。文獻[5]引入一種學習子空間投影算法消除CSI(Channel State Information)噪聲,并通過帶移位不變特征提取器的循環神經網絡,實現了手勢識別;文獻[6]基于LSTM模型實現了對4種不同手勢的識別;文獻[7]通過Bi-LSTM特征融合模型對CSI信號進行深層特征提取,實現了對6種不同手勢的識別。
上述手勢識別方法效果雖然不錯,但普遍未考慮已訓練模型識別未用于模型訓練的用戶手勢時性能下降的問題(本文稱該類用戶為遺漏用戶)。主要原因是各用戶的身體特征和行為習慣存在差異,做出相同手勢也會引起不同的信號波動。為此,本文提出一種獨立于人的手勢識別算法AP-SGGR(Amplitude Phase Semi Supervised Generative Adversarial Networks Gesture Recognition),通過將幅值與相位聯合的CSI圖像作為特征信號,提升手勢信息的維度,可以更加精準地捕捉手勢特征,并用SSGAN(Semi Supervised Generative Adversarial Networks)進行特征提取,通過半監督學習,引入少量遺漏用戶的無標簽樣本,以建立起該類用戶與模型的映射關系,提升識別準確率。最后在大規模多類型數據集上進行對比測試,解決目前手勢研究主要集中在小種類手勢識別方面的問題。結果表明,本算法對遺漏用戶在多類別的手勢識別工作中表現穩定。
1 WiFi感知原理
1.1 信道狀態信息
信道狀態信息是描述無線通信鏈路信道屬性并考慮影響信號傳播若干因素(如信號散射、環境衰減和距離衰減)的度量。其揭示了當無線信號以多徑方式傳播時,由于視線路徑中物體的阻擋,產生的信號時延、幅度衰減和相偏現象[8]。在IEEE 802.11n/ac標準中,使用正交頻分復用(OFDM)技術可從物理層測量和解析出CSI數據,其中每組CSI數據包含幅值和相位信息,具體如式(1)所示:
(1)
式中:H(k)為第k個子載波的CSI數據;|H(k)|為第k個子載波的幅值數據;∠Hk為第k個子載波的相位數據。本文選擇將CSI幅值和相位的聯合信號作為手勢特征。
1.2 信號動態傳播模型
在室內環境中,無線信號通常以多徑方式傳播,并且當WiFi信號范圍內無人時,無線信道保持相對穩定。一旦有人在覆蓋范圍內站立或移動,信號傳播路徑將由于信號反射而改變,產生信道干擾,導致CSI數據發生變化。而基于CSI的手勢識別就是通過對WiFi信號覆蓋范圍內由于人體運動引起的CSI數據變化進行檢測分析,從而識別人類行為。WiFi信號的傳播模型如圖1所示。
在頻域中,無線信號的動態傳播可以定義為:
(2)
式中:X(f, t)和Y(f, t)分別為發射端和接收端的信號;H(f, t)表示信道頻率響應(CFR),即信道狀態信息。
當無線信號沿多條路徑到達接收端時,CFR表示如下:
(3)
式中:ak(f, t)為第k條路徑的衰減和初相偏移;e-j2πfτk(t)為第k條路徑由時延τk(t)引起的相位誤差;e-j2πΔft為子載波頻移引起的相位誤差。
總CSI數據由靜態路徑的信道狀態響應和動態路徑的信道狀態響應2部分組成,具體如式(4)所示:
(4)
式中:Hd(f, t)和Hs(f, t)分別為動態信道狀態響應和靜態信道狀態響應。當感知用戶執行手勢時,信號中動態CFR會產生變化,導致總CSI數據也產生相應變化[9]。本文主要依托于人體手勢動作發生變化時獲取的原始CSI數據,通過對其進行處理分析,最終得到手勢分類結果。
2 AP-SGGR算法設計
AP-SGGR算法主要包括半監督訓練階段和測試階段,具體流程如圖2所示。將原始CSI數據分成無標簽的遺漏用戶訓練數據、帶標簽的遺漏用戶測試數據以及帶標簽的其他用戶訓練數據。由于WiFi信號易受硬件設備、周圍環境等因素的影響,導致原始CSI數據中含有大量噪聲,因此需采用預處理操作消除噪聲數據。在訓練階段,從訓練數據中提取CSI幅值和相位序列;然后對幅值序列進行離群值剔除、巴特沃斯低通濾波去噪處理,對相位序列進行線性變換,消除偏移誤差;最后將經過預處理的幅值和相位序列歸一化,構成CSI圖像訓練集,輸入SSGAN網絡中進行半監督訓練。在測試階段,將測試數據經相同預處理操作后,輸入已訓練好的SSGAN網絡中進行測試識別,并統計識別準確率。
2.1 數據獲取
本算法所使用的CSI數據來源于SignFi[10]公開數據集,包括多名用戶的150種日常使用的手勢。在WiFi范圍內,人體執行每個手勢動作將產生相對應的CSI數據,其數據格式為200×30×3×1的復數矩陣,其中200表示做每個手勢時所采集到的數據包數,30表示每個CSI數據包中30個OFDM子載波信息,3表示接收端天線數量,1表示發射端天線數量。每個數據包的CSI數據如式(5)所示:
(5)
式中:Hi, j為每個子載波的CSI值;i為第i根接收天線;j為第j個子載波。
2.2 數據預處理
由于WiFi信號易受多徑傳播、信號衰減等因素干擾,使得原始CSI數據出現噪聲過大等問題,不能直接使用。因此,需對CSI數據進行預處理,去除噪聲干擾。
2.2.1 幅值去噪
(1)離群值剔除
當WiFi設備通信狀態不佳或受到外界干擾時,會產生區別于其他信號的異常值(或稱離群值),若不移除,該突變數據將導致手勢識別準確率降低。為此,本文采用Hampel算法消除離群值[11],利用移動平均窗口的方法發現原始CSI幅值序列{X|x1, x2, ..., xn}中的離群值,并用其中位數來代替,從而消除異常數據帶來的負面影響。將式(6)范圍之外的所有點定義為離群值:
(6)
式中:i為第i個原始CSI幅值數據;k為數據左右窗口的大??;μi, k為窗口的中位數;σ為中位數絕對偏差的標準差;γ為剔除因子。
(2)巴特沃斯低通濾波
去除異常值后,接下來需要去除CSI幅值序列中的噪聲。在本文所研究的手勢識別中,人體運動部位主要是手臂,其振頻較低,而噪聲主要分布在較高頻率的細節信息中。鑒于該特點,本文選擇巴特沃斯低通濾波器,主要考慮到其具有通帶內最平坦的頻率響應,不會對手勢信息造成較大的失真,從而提升特征提取的效果。
圖3為原始CSI子載波幅值序列和濾波后的幅值序列對比圖。
2.2.2 相位去噪
相位作為一種對動作變化敏感的特征信息,可以用于識別不同的手勢動作,但由于WiFi收發設備的采樣時鐘和頻率不同步,導致接收端采樣得到的相位存在一定偏差,使得其無法準確反映環境中的手勢變化。為盡可能恢復其規律,需采用一種有效的相位校正方法來緩解相位偏移。
未經校正的接收端采樣得到的第i個子載波的測量相位φi'如式(7)所示:
(7)
式中:φi表示真實相位值;Δt表示采樣頻率偏移導致的時間偏移;β表示未知的相位偏移;Z表示測量噪聲;mi表示從-28到28的30個子載波的索引;N表示快速傅里葉變換點數,在IEEE 802.11n標準中,規定其為64。由于Δt和β未知,無法獲得真實相位,本文選擇通過線性變換消除未知誤差。
將整個頻帶上的相位斜率和偏移量分別定義為l1和l2。由于30個子載波是對稱的,可以推斷出:
(8)
因Z較小,可以忽略不計,通過將測量相位φi'減去線性項l1mi+l2,即可得到真實相位φi的線性組合值:
(9)
由此消除了Δt和β未知誤差。圖4為原始CSI子載波相位序列和線性變換后的相位序列對比圖。
2.3 CSI圖像構建
由于CSI描述的是WiFi信號在接收天線與發射天線之間的子載波信道信息,而不同天線對因手勢動作變化引起的數據波動存在差異,為保證手勢特征信息的完整性,本文設計將3個天線對上經濾波和校正后的幅值和相位序列矩陣轉換成三通道的CSI圖像。具體每個通道的構建過程如
式(10)~式(12)所示:
(10)
(11)
(12)
式中:t表示CSI子載波流的數據包數;m表示CSI子載波數;HA表示幅值序列的浮點數矩陣;HAmt表示CSI子載波流的
第m條子載波的第t個幅值數據;HP為相位序列的浮點數矩陣;HPmt表示CSI子載波流的第m條子載波的第t個相位數據;H表示每對天線對上幅值與相位序列合并而成的聯合矩陣。
為提高模型在訓練過程中的數值穩定性、收斂速度以及泛化能力,需將聯合矩陣里的浮點數映射為[-1,1]區間的數:
(13)
(14)
(15)
式中:HA'表示映射后的新幅值序列矩陣;HP'表示映射后的新相位序列矩陣;H'表示映射后的新聯合矩陣。將其他2個天線對上的數據流按同樣的方式處理,即可獲得CSI圖像。
2.4 基于SSGAN的CSI手勢識別模型
文獻[12]于2014年提出了一種由生成器和判別器組成的生成式模型GAN。其中,生成器將隨機噪聲張量z作為輸入,輸出為與真實樣本x保持相似特征分布的偽樣本G(z);判別器將真實樣本x和偽樣本G(z)作為輸入,輸出屬于真實樣本的概率值,其目的是準確判別出哪些樣本屬于真實樣本,哪些樣本屬于偽樣本。
但GAN主要用于圖像生成和二分類領域,為實現多分類的手勢識別任務,本文選擇SSGAN作為識別模型。原因是SSGAN將輸出層的Sigmoid激活函數替換為Softmax激活函數,實現了從判別真偽樣本到真實標簽多分類的轉變,使得生成的對抗網絡不僅具備生成和判別真偽的能力,同時還具有多分類功能,能更好地完成多類別的手勢識別工作。與此同時,SSGAN網絡中判別器的輸入除G(z)和無標簽樣本xu外,還增加了帶標簽樣本(xl, y)指導訓練。假設對于一個M分類任務,把偽樣本標記為M+1類,最后經判別器的輸出層輸出判別結果,由M維擴展至M+1維?;赟SGAN的CSI手勢識別模型結構如圖5所示。
2.4.1 生成器
將1個100維的隨機噪聲張量z輸入到生成器中,通過全連接層映射為25×5×512的3維張量,然后經過3層轉置卷積層進行上采樣,實現對特征圖的擴充。前2層使用ReLU激活函數,最后1層使用Tanh激活函數。3次上采樣后,最后輸出張量大小為200×60×3的偽樣本。生成器的結構參數見表1。
2.4.2 判別器
在判別器中,使用9層卷積層和1層全連接層,其中卷積層的激活函數設置為LeakyReLU函數,且在每3層卷積層后加入池化層和dropout層,用于簡化判別器的復雜度,防止過擬合。首先將偽樣本、帶標簽樣本和無標簽樣本圖像一同輸入到判別器中,經卷積層進行下采樣,實現特征提取。再利用Flatten展平特征參數,加速網絡收斂,通過1層全連接層(激活函數設置為Softmax函數),輸出M+1個類別概率值。判別器的結構參數見表2。
3 實驗結果與分析
3.1 實驗設計
鑒于當前研究主要集中在手勢類型較少的場景,無法滿足日常生活的需要。為此,本文將實驗條件設置為同時測試50種手勢,并與文獻[10]提出的卷積神經網絡進行綜合性實驗對比。
3.2 實驗環境
本文進行的所有實驗均依托于Python 3.7.5下的谷歌深度學習框架Tensorflow 1.15。硬件配置見表3。
3.3 實驗分析
3.3.1 半監督學習下測試遺漏用戶手勢的表現
為評估本算法在半監督學習下對遺漏用戶的手勢識別性能。隨機選取數據集中的一個用戶作為遺漏用戶,并把該用戶數據分成非重疊的無標簽訓練數據和測試數據,而其他用戶數據作為標簽訓練數據。
(1)標簽訓練樣本大小對遺漏用戶手勢識別的影響
標簽樣本作為SSGAN網絡進行半監督學習的訓練數據之一,不同數量的標簽樣本會對本算法的識別準確率產生影響。為驗證本算法在不同標簽樣本下的迭代擬合能力,本文隨機選取了l=(20%,40%,60%,80%,100%)的標簽樣本進行對比測試,結果如圖6所示。
從圖6中觀察可知,隨著標簽樣本比例的增加,本算法的識別準確率也在提升,且在不同的標簽數據下,均取得了最優的手勢識別準確率。實驗表明:標簽樣本的大小對本算法的識別性能有顯著影響,且需要一定數量的標簽數據才能達到較好的識別性能。當選擇l=60%的標簽數據時,本算法的識別準確率超過85%,接近所有標簽數據參與訓練時的準確率。
(2)無標簽訓練樣本大小對遺漏用戶手勢識別的影響
上節實驗已證明本算法能有效利用標簽樣本來提升對遺漏用戶的識別性能。但目前尚不清楚本算法是否可以有效利用無標簽樣本。
為此,本小節實驗隨機選取u=(20%,40%,60%,80%,100%)的無標簽樣本參與SSGAN網絡的半監督訓練,實驗結果如圖7所示。隨著u的增大,準確率不斷提升,且本算法在不同的無標簽數據下,均取得了最優的手勢識別準確率。當u=20%時的準確率僅比u=100%時低5.42個百分點。結果表明,即使采用少量的遺漏用戶的無標簽數據,本算法也可以很好地學習該用戶特征,提高對遺漏用戶的手勢識別準確率。
3.3.2 監督學習下測試遺漏用戶手勢的表現
當不存在遺漏用戶的無標簽數據時,不能通過捕獲遺漏用戶特征來提高模型手勢識別性能。為驗證此條件下本算法對遺漏用戶的識別能力,隨機將數據集中的一個用戶數據作為遺漏用戶測試集,其他用戶數據作為標簽訓練集。但為滿足半監督訓練的輸入要求,從標簽訓練集中隨機選取一小部分標簽樣本作為無標簽樣本用于SSGAN訓練,具體結果見表4。研究表明,本算法在沒有遺漏用戶數據的場景中仍有效。
3.3.3 泛化能力的驗證
為評價本算法在實際應用中的能力,選取2種指標進行驗證,包括不同的手勢類別數和遺漏用戶。
(1)不同手勢類別數對手勢識別的影響
為評估本算法在不同手勢種類中的表現,隨機選取SignFi數據集中的50、130和150種手勢進行識別,結果見表5。其中,本算法在50種手勢時的準確率為90.42%,130種手勢時的準確率為86.60%,150種手勢時的準確率為70.14%。隨著手勢種類數量的增加,識別準確率在下降。這是因為手勢多樣性的增加使得模型的學習任務變得更加復雜,并且削弱了其對遺漏用戶特征分布的學習能力。但總體來說,本算法足以滿足日常生活的需要。
(2)不同遺漏用戶對手勢識別的影響
為驗證本算法在不同遺漏用戶中的魯棒性,隨機選取SignFi數據集中的3個用戶分別作為遺漏用戶,結果見表6。其中,3個用戶的準確率分別為90.42%、87.08%、96.67%,平均準確率為91.39%。實驗結果表明,本算法針對不同的遺漏用戶仍具有不弱的泛化和識別能力。
綜上所述,本算法能勝任多個場景下的手勢識別工作,具有較強的泛化能力,可滿足日常需求。
4 結 語
本文提出了一種基于SSGAN網絡的手勢識別算法AP-SGGR,該算法利用生成對抗網絡通過半監督訓練的方法,提高了對遺漏用戶的手勢識別。首先將原始CSI數據分成無標簽的遺漏用戶訓練數據、帶標簽的遺漏用戶測試數據以及帶標簽的其他用戶訓練數據。訓練數據經異常值去除、低通濾波去噪、線性變換消除相位偏移誤差、歸一化等預處理操作后,輸入到SSGAN網絡中,通過調節各參數以進行半監督學習。將測試數據經相同預處理操作后,輸入到訓練好的SSGAN網絡中進行測試識別,最終實現了在多場景下對遺漏用戶的多類型手勢識別。與傳統手勢識別方法相比,本算法從信息利用角度出發,通過聯合CSI幅值與相位信息,增強了手勢特征,并利用半監督學習建立起模型與遺漏用戶的映射關系,捕獲了遺漏用戶的手勢相關信息,從而提高了對該用戶手勢識別的準確率。此外,本文探討了選取不同標簽數據對算法識別遺漏用戶手勢準確率的影響、不同無標簽數據對算法識別遺漏用戶手勢準確率的影響,以及不同手勢種類和遺漏用戶對算法識別準確率的影響。結果表明,本算法對遺漏用戶具有較高的手勢識別準確率。
鑒于CSI在不同環境下特征表現不同,對環境存在一定的依賴性,因此如何減少環境干擾,實現高精度的跨環境手勢識別是未來工作的重點研究內容。
注:本文通訊作者為楊嘉。
參考文獻
[1] MA R, ZHANG Z, CHEN E. Human motion gesture recognition based on computer vision [J]. Complexity, 2021: 1-11.
[2] OUDAH M, AL-NAJI A, CHAHL J. Hand gesture recognition based on computer vision: a review of techniques [J]. Journal of imaging, 2020, 6(8): 73.
[3] NGUYEN-TRONG K, VU H N, TRUNG N N, et al. Gesture recognition using wearable sensors with bi-long short-term memory convolutional neural networks [J]. IEEE sensors journal, 2021, 21(13): 15065-15079.
[4] YUAN G, LIU X, YAN Q, et al. Hand gesture recognition using deep feature fusion network based on wearable sensors [J]. IEEE sensors journal, 2020, 21(1): 539-547.
[5] KHAN D A, RAZAK S, RAJ B, et al. Human behaviour recognition using WiFi channel state information [C]// ICASSP 2019-2019 IEEE International Conference on Acoustics, Speech and Signal Processing(ICASSP). Brighton, UK: IEEE, 2019: 7625-7629.
[6]劉佳慧,王昱潔,雷藝.基于LSTM的CSI手勢識別方法[J].計算機科學,2019,46(z2):283-288.
[7]郭浩雨,馮秀芳.基于Bi-LSTM的CSI手勢識別算法[J].計算機工程與設計,2022,43(9):2614-2621.
[8] LEE C C, HUANG X C. Human activity detection via wifi signals using deep neural networks [C]// 2018 IEEE/ACM International Conference on Utility and Cloud Computing Companion(UCC Companion). [S.l]: [s.n.], 2018: 3-4.
[9] CHOI J S, LEE W H, LEE J H, et al. Deep learning based NLOS identification with commodity WLAN devices [J]. IEEE transactions on vehicular technology, 2017, 67(4): 3295-3303.
[10] MA Y, ZHOU G, WANG S, et al. Signfi: sign language recognition using wifi [J]. Proceedings of the ACM on interactive, mobile, wearable and ubiquitous technologies, 2018, 2(1): 1-21.
[11] LI T, SHI C, LI P, et al. A novel gesture recognition system based on CSI extracted from a smartphone with nexmon firmware [J]. Sensors, 2020, 21(1): 222.
[12] GOODFELLOW I, POUGET-ABADIE J, MIRZA M, et al. Generative adversarial networks [J]. Communications of the ACM, 2020, 63(11): 139-144.
基金項目:重慶市教育委員會科學技術研究項目(KJQN202000 615)
作者簡介:高 云(1981—),女,在讀博士研究生,副教授,研究方向為物聯網應用技術、人工智能。