郭阿英,許志猛,陳良琴
(福州大學物理與信息工程學院,福州 350108)
隨物聯網的不斷發展和應用,人的感知技術已成為實現以人為中心的物聯網應用系統的核心關鍵技術。其中人體動作識別技術在智能家居[1]、醫療監護[2]和體感游戲[3]等方面有著廣闊的應用前景。
現有的人體動作感知技術的實現方法主要分為兩大類:一是基于穿戴式傳感器的方式,如加速度傳感器[4]和標記點式光學動作捕捉等[5];另一類是基于非穿戴式的方式,如基于視頻圖像[6]和基于雷達的識別[7]等。基于傳感器的動作感知技術[8]具有易于采集數據的優點,但需隨身攜帶傳感器,造成不便?;谝曨l圖像的動作識別技術[9-10]具有直觀、易識別的優點,但該方法對于光照敏感,且在有遮擋時無法工作。基于雷達的活動感知技術[7]具有精度高的優點,然而其成本較高,不利于在物聯網中廣泛使用。為了滿足物聯網系統中對低成本、高精度和便攜的人體動作感知技術的需求,基于WiFi的動作感知技術應運而生。
基于WiFi的無線局域網作為一種便捷、低成本的通信方式得到了廣泛的應用。近年來通過利用廣泛部署的無線局域網,研究人員提出了許多新的感知技術。文獻[11]提出了利用WiFi的信道狀態信息(Channel State Information,CSI)識別運動與靜止兩種狀態。文獻[12]提出了一種識別人體摔倒的檢測系統Wifall,利用CSI的幅度變化識別出人是否摔倒。而文獻[13]提出利用相位差進行實時識別摔倒,設計一個名為RT-Fall的系統,性能優于Wifall,但這兩者都只能檢測摔倒一個動作。文獻[14]分析了CSI 與人體移動速度的動態聯系,利用小波分解特征設計算法實現了“走”、“坐”、“站”和“彎腰”等動作的識別,然而其準確率僅為93.1%。
為此,本文通過對濾波的優化設計和動作起止區間的提取,基于線性判別分析算法提出了一種人體動作的識別方法,實現了較高的識別準確率。

圖3 人體不同動作所對應的WiFi信號CSI幅值變化
本文設計了一個基于WiFi信號的人體動作識別系統,系統框架如圖1所示。WiFi信息采集主要通過兩臺配備有無線網卡的計算機實現,其中一臺計算機配置為發送模式,可控制數據包的發送速率;另一臺計算機配置為接收模式,通過csitool[15]工具收集WiFi信號的信號強度值和信道狀態信息。收發兩臺計算機間WiFi信號傳播的范圍構成了檢測空間,人體在檢測空間中的活動會使得無線信號的傳播受到影響,引起傳輸信道的變化。因此,通過在接收端計算機對WiFi信號進行檢測和處理,可識別出人體活動的動作。

圖1 系統框圖
WiFi的接收信號強度信息(Received Signal Strength Information,RSSI)用于判斷鏈路的質量,但提供的信息比較單一;而CSI是來自物理層的信息,提供了WiFi信號中30個正交頻分復用子載波的信道信息,包括幅度和相位,可提供時域和頻域的信道狀態變化信息[16]。圖2是一次測試中WiFi信號的RSSI值和1、10、25三個子載波的CSI值對比情況。從圖中可看出,CSI的幅度變化比RSSI明顯,可以看成是更加細粒度的RSSI,能夠更加精確地反應人體動作對WiFi信號的影響。此外,觀察圖中三個子載波可以發現,盡管三個子載波所攜帶的CSI相似,但是不論是幅值大小還是幅度的變化都具有其獨特性。因此,所有的子載波攜帶的CSI信息均可用于人體動作的識別。為了降低復雜度,本文設計的系統取30個子載波CSI的均值進行分析和處理。

圖2 WiFi信號的RSSI值和CSI值
圖3是人體做出不同動作時所得到的CSI的幅值。從圖3(a)可以看出,人處于靜止狀態時CSI幅度變化不大;而當人體處于運動狀態,CSI幅度波動較大,如圖3(b)~圖3(f)所示。其中,紅色箭頭標注的是幅度波動大的區間,對應于人體發生動作的起止區間。從圖中可以看到CSI對于環境的變化相當敏感,且不同人體動作所對應的CSI的幅度變化特征也不同。由此,通過對CSI的處理和檢測可以實現人體動作的識別。
從圖3可以看出,采集到的CSI幅度信息帶有大量的噪聲。為了減少噪聲的影響,本文采用了Hampel濾波結合小波變換去噪的方法對采集到的CSI信息進行預處理。
Hampel Filter[17]的原理是把在區間外任何一個點都視為異常點,并將被判為異常點的數據將由中位數進行替代,對采集數據的異常值具有較好的濾波效果。通過對比圖4(a)和圖4(b),可以發現Hampel濾波可以很好地去除CSI中的毛刺。
小波變換去噪的原理是信號經過小波分解,得到各尺度系數,經閾值處理后進行重構得到去噪后的信號[18]。小波變換去噪可以很好地保護有用信號的尖峰和突變信號。由于人的動作頻率處于低頻,本文采用無偏風險估計閾值進行處理。從圖4(c)看出,采集到的CSI信息經過Hampel濾波和小波去噪處理后波形變得平滑且保留了人體動作引起的CSI幅度變化信息。

圖4 數據去噪結果
從圖3可以看出,人體在靜止時,CSI信息變化不大,而能夠反映人體動作的CSI信息主要包含在發生動作變化所對應的區間。因此,檢測出人體動作發生變化的起止區間對提高動作識別準確率具有重要作用。將圖3對應的CSI信息經過濾波處理后求方差可以得到圖5所示的CSI幅度方差。

圖5 人體不同動作所對應的WiFi信號CSI幅值滑動方差
從圖5可以看出,在每個動作的持續的時間內,CSI滑動方差都具有大的波動,當動作完成時,滑動方差的值變小且趨于平穩,與無動作靜止時的滑動方差相似。由此我們可以依據CSI幅度方差檢測動作的起始點,CSI的方差大于設定的閾值時,即表示人體處于活動狀態,由此確定檢測區間的起始點。
經過前述處理,系統從運動區間的CSI幅度中提取了以下幾個特征作為動作識別的特征向量,如表1所示。

表1 動作識別特征向量
綜合考慮算法的復雜度和性能后,本文選用了線性判別式分析算法(Linear Discriminant Analysis,LDA)[19]實現人體動作的識別。LDA是模式識別的經典算法,是一種線性分類器。其基本思想是將高維的模式樣本投影到最佳鑒別矢量空間,以達到抽取分類信息和壓縮特征空間維數的效果,投影后保證模式樣本在新的子空間有最大的類間距離和最小的類內距離,即在該子空間中有最佳的可分離性。該準則也被稱為Fisher鑒別準則。
假設有兩個類的樣本類C和樣本類D,其均值分別為:
(1)
(2)
其類內方差分別為:
(3)
(4)
類內散度矩陣為:
Sw=Sc+Sd
(5)
類間散度矩陣為:
Sb=(μc-μd)(μc-μd)T
(6)
根據Fisher鑒別準則表達式:
(7)
令其比值最大化,即可求得投影直線向量為:
(8)
分割點為:

(9)
因此當值大于此分割點時屬于類D,反之屬于類C。根據以上分類原則,將表1中的特征向量按照以上的步驟進行分類,從而可得到一個好的分類效果。
實驗采用一發一收兩臺計算機實現WiFi信號的發射和接收,無線網卡采用Intel 5300 NIC,選用2.4 GHz頻段,發射端采用1根天線,接收端采用3根天線,工作模式采用監控模式,發包率為100個/s。如圖6所示,天線距離地面高度為1 m,兩天線相距2.4 m。人體活動檢測區域為2.4 m×2.4 m,如圖7所示。

圖6 天線的擺放

圖7 測試房間示意圖
實驗測試人員有9位,每位測試者在檢測區域分別做“坐下”、“站起”、“蹲下”、“走”、“撿”5個動作,每個動作重復10次,選其中3位參與者的數據作為測試數據,其余6名參與者的數據作為訓練數據。
表2是實驗測試結果。從表中可以看出,除了走路的動作識別率為80%,其余的動作識別率均在100%,平均識別率為96%,具有較好的識別效果。

表2 實驗結果

圖8 不同分類模型對比
3.2.1 分類方法
圖8是采取不同的分類模型時對應的動作識別率。三種方法的計算時間相近,但是從圖中可以看出,本文采用的LDA分類器的動作識別正確率高于SVM和KNN。
3.2.2 濾波方法
圖9是本文采用的Hampel濾波結合小波變換的濾波方法和高斯濾波對應的動作識別率的比較情況。由圖可知,本文采用的濾波方法除了走路動作的識別率低于高斯濾波,其他動作的識別率均高于高斯濾波方法,且識別率可達到100%。因此從總體來看,本文采用的濾波方法的優于高斯濾波,具有較好的效果。

圖9 不同濾波方法的對比
3.2.3 數據傳輸速率
對上述5組動作采用不同數據傳輸速率進行實驗,每組動作采集20組數據,不同數據傳輸速率對應的平均識別率如圖10所示。由圖可以看出數據傳輸速率較小時對應的動作識別較小,隨著數據傳輸速率的增大,識別率也逐漸增大。因為當數據傳輸速率較小時,捕捉到的動作信息也較小。而較高的數據傳輸速率雖有較高的識別率,但是對設備性能要求較高,也會帶來更多的計算量。

圖10 不同數據傳輸速率的對比

圖11 室內外環境下的對比
3.2.4 室內外環境
圖11是5種動作在室內外環境下對比的平均識別率。室外環境為樓頂。由圖可知室外環境下的動作識別率會下降。由于室外的噪聲大,且存在風吹樹葉產生的干擾性移動物等因素會影響傳輸信道的穩定性,導致了數據不理想。
本文提出了一種基于WiFi信道狀態信息的人體動作感知方法。提出了采用Hampel濾波結合小波變換去噪對采集到的CSI進行處理,以及通過CSI方差識別人體活動區間的方法,構建特征向量并利用線性判別分析作為分類模型,實現了對人體“坐下”、“站起”、“蹲下”、“走”、“撿”5個動作的識別。實驗表明該方法具有較好的識別率,對“坐下”、“站起”、“蹲下”、“撿”4個動作的識別準確率可以達到100%,對“走”的識別準確率也可達到80%。需要指出的是,本文的研究是針對單人單個動作的識別,未來還可進一步研究多人同時動作或者發生連續動作的檢測,以實現在更復雜的應用場景中人體動作的智能感知和識別。