史文華 戴 歡 周澤侖 蔣敬敬
(蘇州科技大學電子與信息工程學院 江蘇 蘇州 215000)
許多場景對人員數量都有應用需求,比如:車站根據人群密度對客流進行疏導,在保障公共安全的同時,提高出行效率[1];智能家居系統根據室內人數的多少自動調節電器的功率,實現節能的目的[2];商場根據各個區域人數的分布來分析消費者的消費習慣,從而及時調整銷售策略[3]。目前人數統計的方法可大致分為基于圖像的人數統計方法和基于可攜帶設備的人數統計方法兩大類。
基于圖像的人數統計方法較為傳統,主要依靠計算機視覺技術。Pore等[4]提出一種應用方向梯度直方圖找到人員目標,再根據卡爾曼信道生成人的運動軌跡,在軌跡進出口方向計算人員數量的方法。Sam等[5]提出了Switch-CNN網絡,利用圖像中人群密度的變化來提高預測人群數量的準確性。Shani等[6]利用卷積神經網絡在密集人群中進行稀疏頭部檢測,通過支持向量機對分割的圖像進行分類,再計算每個人群斑塊的人數完成人員計數。這類方法大多使用攝像頭獲取圖像信息,在復雜環境中易被物體遮擋,存在視覺盲區,同時受限于光學傳感器的特性,受光線影響較大,只有在光線充足的條件下才能有較好的效果。
基于可攜帶設備的人數統計方法主要依靠智能手機和電子標簽等設備實現人數統計。Kannan等[7]通過在室內人員的智能手機上安裝一款軟件,利用手機麥克風發出特定頻率的音頻信號,并用手機聽筒接收這些信號,對其進行分析處理,求出手機數量,依此估計出人員數量。Weppner等[8]提出基于iBeacon技術的方法,利用智能手機作為被檢測設備進行人數估計,融合不同設備的藍牙數據,將精確度提高到了75%。Ding等[9]使用RFID標簽進行區域內的人數統計工作,人數越多,標簽反向散射射頻信號的信號強度值的變化就越大,通過分析接收到的射頻信號估計出人員數量。這類基于設備的人數統計方法往往需要人員攜帶特定的設備,便利性差,且成本過高。
隨著Wi-Fi的普及,基于Wi-Fi進行人數統計的方法成為新的突破口,得到了學術界的廣泛關注。Seifeldin等[10]提出了Nuzzer系統,該系統利用RSSI的方差來計算人數。然而,由于RSSI無法刻畫多徑傳播,易受環境因素影響,在復雜環境下計算人數的準確度不高。Xi等[11]提出了FCC系統,該系統分析了人數與CSI變化之間的關系,并提出了膨脹后的CSI矩陣中非零元素百分比的度量標準,依據灰色模型理論[12]對多種人數情況下的非零元素百分比序列進行擬合得到增長曲線,之后計算出人數。Domenico等[13]提出了Trained-once Crowd Counting系統,其利用CSI幅度的特征差數據,通過最小化測試樣本與訓練樣本指數來計算人員數量。Zou等[14]提出FreeCount系統,該系統依據信息論進行特征選擇,選擇出最能代表人體運動敏感的特征,針對時間和環境差異建立具有魯棒性的分類器,最后求出區域內人員的數量。
本文提出一種基于信道狀態信息的室內人數統計方法。該方法首先從CSI原始數據中求出相位和幅度,使用解卷相位與線性變換的方法實現相位校正,減小因收發端時鐘不同步引起的頻率偏差和時延,使得相位能以簇的形式集中[15]。采用Hampel濾波器分別對CSI數據的幅度和矯正后的相位進行異常值檢測處理,濾除信號衰落和多徑效應引入的直流分量和噪聲,并采用PCA對去噪后的數據進行降維處理,提取出有效的特征,最后利用基于單層決策樹的AdaBoost算法訓練分類器進行分類,統計出室內人員數量。
無線信號在傳播過程中會產生多徑效應,造成信號衰落和相位移動。正交頻分復用(Orthogonal Frequency Division Multiplexing,OFDM)是一種多載波調制技術,能有效減弱多徑效應,其原理是將高速串行數據信號劃分成若干并行的低速數據流,并將信道劃分為若干個子信道,各個子載波相互正交。對于每一條子載波,可以使用CSI來描述無線信道的散射、衰落和功率衰減情況。在窄帶平坦衰落信道中,信道狀態的頻域模型可以表示為:
Y=HX+N
(1)
式中:X和Y分別是發射端和接收端信號向量;H是一個對角矩陣,為信道狀態信息矩陣;N為噪聲向量。對于包含K個子載波的CSI,其矩陣表示為:
H=diag(h1,h2,…,hK)
(2)
式中:K=114。每個子載波hk為復數形式,也可以表示為幅度和相位的形式:
hk=realk+j×imagk=|hk|ej∠hk
(3)

圖1為不同人數情況下CSI幅度的方差,當僅有1人時,CSI幅度的方差和其波動范圍都很小;當人數增加到3時,CSI幅度的方差和其波動范圍都變大;當人數為5時,CSI幅度的方差變得更大,且方差波動范圍更大。

圖1 不同人數情況下CSI幅度方差
如圖2所示,(a)、(b)和(c)分別為場景中有1人、3人和5人的情況下,經矯正后的CSI相位的分布情況。可以看出,隨著人數增多,相位的波動和離散程度變大,且分布在(π,2π)上的數據變多。

(a) 1人情況下CSI相位

(b) 3人情況下CSI相位

(c) 5人情況下CSI相位圖2 不同人數情況下CSI相位分布
由此可見,區域內活動人數不同對CSI的影響也會不同。若場景中僅有一人,環境相對穩定,CSI數據的波動和離散程度較小;當人數增多時,CSI數據會發生更加明顯的波動。CSI包含幅度和相位信息,本文旨在探究隨著區域內人數的變化,CSI幅度和相位的變化情況,并以此為依據進行分類,統計出人員數量。
如圖3所示,本文方法主要分為四個步驟:首先進行數據采集,通過Wi-Fi設備獲取監測環境內的CSI數據;其次對數據進行預處理,先對CSI相位信息進行矯正,再對CSI幅度和矯正后的相位進行Hampel濾波,去除異常值;然后進行特征提取,分別對去除異常值后的幅度和相位進行主成分分析,提取出屬性特征;最后,基于屬性特征構建人數統計模型。

圖3 本文方法架構
由于采集到的原始CSI數據存在采樣頻率偏移、包邊界檢測誤差等問題[16-17],導致CSI的相位發生極大誤差,其值隨機分布在(-π,π)之間,如圖4所示,雜亂的分布無法反映周圍環境的變化。本文采用相位解卷和線性變換的算法重構原始CSI數據,在盡可能保留有效信息的前提下獲取到規則的相位信息。第i個子載波的相位可表示為:
式中:∠hi表示原始相位信息;ki表示第i個子載波的索引;δ表示接收端的定時偏移;N為快速傅里葉變換采樣數;β為未知的恒定相位偏移;Zi為測量噪聲。Zi是設備固有的測量誤差,且值較小,可忽略不計。由于δ和β的值無法確切得知,需要通過線性變換的方法消除。定義a和b兩個線性相關項,a為接收響應的相位的斜率,b為偏移量。

經過線性處理后的相位比原始相位更加穩定,有序分布的數據能夠反映出周圍環境的信息。圖5為經過本方法重構后的CSI相位分布,與圖4相比,數據的分布不再雜亂無章,主要集中在(0,π)之間,并且有一定的規律性。

圖4 原始CSI相位分布

圖5 矯正后CSI相位分布
CSI具有很強的敏感性,易受環境影響產生大量噪聲。Hampel濾波器能有效檢測和去除數據中的異常值,其基本思想是加權滑動平均。對于一組數據X,首先計算出這組數據的中值Median,求出每一個數據與Median的差值,并取絕對值得到序列Y。然后計算出其中值M,這個值反映了數據分布的離散程度,被稱為絕對中位差,其計算公式如下:
M=median(Xi-Median)
(7)
可求出測量值的分數,其公式如下:
式中:常數0.674 5保證M的期望值等于正態分布數據的標準差。設定閾值t,當Zi>t時,則認定該測量值為異常值。
Hampel濾波器不直接求出方差,而是用絕對中位差作為方差的近似估計,其對極端的異常值不敏感,并且不要求數據正態分布,能起到良好的檢測和去除異常值的效果。圖6和圖7分別為CSI幅度經過Hampel濾波前后的對比。

圖6 原始CSI幅度

圖7 濾波后CSI幅度
由于本文實驗所用設備的每個天線對之間存在114個子載波,即3×3×114個子載波,再將CSI數據分解成相位和幅度后,數據維度較高,本文使用PCA算法對預處理后的數據進行降維,在保證信息損失最小化的同時降低了數據的維度。通過計算得到特征值在總數中所占比例,可知該維度的信息量,依此來選擇合適的維度作為分類時的屬性特征。
PCA的基本思想是從原有特征中計算出一組按照重要性從大到小順序排列的新特征,新特征是原有特征的線性組合,互不相關。原有特征在新特征上的映射值成為降維后的新樣本。PCA的實現流程如下:
輸入:X=(x1,x2,…,xn),n個p維的列向量。
輸出:降維后的樣本集X′。
1.對所有樣本進行中心化。
2.計算樣本的協方差矩陣XXT。
3.對協方差矩陣XXT進行特征分解,得到特征值。
4.選取按降序排列的前k個特征值所對應的特征向量w1,w2,…,wk。
5.將原樣本投影到新的特征空間,得到新的降維樣本,X′=X×W,W=[w1,w2,…,wk],其中:X為n×p維;W為p×k維。
在進行人數統計時,分為離線和在線兩個階段。離線階段將不同人數條件下所采集數據的屬性特征代入分類算法中進行訓練,因這些屬性特征之間具有較大的差異,能被有效地區分出來,最終可訓練出有效的分類器。在線階段對當前的數據進行同樣的預處理和特征提取,使用訓練好的分類器便可統計出當前區域內的人數。本文選取了SVM、KNN、ANN神經網絡和基于單層決策樹的AdaBoost算法進行對比實驗,選出準確率最高的一種作為最終的分類算法,具體如圖8所示。

圖8 分類架構
本文所使用的設備為圖9所示的3×3天線的TP-link 4900v2無線路由器,共使用兩臺,各作為發射端和接收端。為了獲取更詳細的信道狀態信息,我們升級了Atheros CSI工具,開發了一個新的基于OpenWrt的固件,可以直接從無線路由器上采集CSI數據,每個天線對包含114個子載波,信號頻率可設置為5 GHz,帶寬為40 MHz。實驗環境為7 m×10 m的實驗室。實驗如圖10所示,在實驗室一端部署兩臺路由器,分別采集1人至5人在靜止和隨機運動兩種情況下的CSI數據。

圖9 硬件設備
本次實驗采集1人至5人隨機運動情況下的CSI數據各5 000條,共25 000條數據作為原始數據集,其中每條數據包含3×3×114個數據值。經過數據預處理和降維后,每條數據包含20維相位數據和34維幅度數據,形成最終的數據集。數據訓練時分別在每種情況的數據中選取1 000、1 500、2 000、2 500和3 000條數據作為訓練樣本,其余作為測試樣本。
圖11為四種分類算法在不同訓練樣本量時的查準率,可以看出,基于單層決策樹的AdaBoost算法具有更好的分類效果,因此選用其作為最終的分類算法。AdaBoost算法的工作機制是先依照初始權重從訓練樣本中訓練出一個弱學習器,再根據其表現調整訓練樣本的分布,使得錯誤的樣本在之后獲得更大的權重,接下來依照新的權重訓練下一個弱學習器,重復以上操作,直到學習器數目達到指定值T,將這T個弱學習器通過加權結合,得到最終的強學習器。

(a) ANN神經網絡

(b) KNN

(c) SVM

(d) 基于單層決策樹的AdaBoost算法圖11 四種算法在不同訓練樣本量下的查準率
圖12和圖13分別展示了在人員靜止和隨機運動兩種情況下,本文方法對于人數識別的準確率。人員靜止時,環境相對簡單,CSI僅受人體呼吸和心跳等生理活動影響,所以識別率很高;人員隨機運動時會造成環境中存在一些不確定因素,導致識別率降低。盡管在人員隨機運動的情況下,環境比較復雜,但本文方法的準確率仍然達到96.4%,而在人員靜止時,準確率更是高達99.2%,說明本文方法切實可行,且具有很高的可靠性。

圖12 人員靜止時人數識別準確率

圖13 人員隨機運動時人數識別準確率
圖14列出了本文方法與文獻[13-14]中系統在不同人數情況下的識別結果。Trained-once Crowd Counting系統識別率較低,且在人數增多后,識別率下滑嚴重。FreeCount系統具有不錯的識別效果和穩定性,但與本文方法相比,總體識別率低了近3百分點。

圖14 不同人數情況下三種方法的識別率
本文提出的基于信道狀態信息的室內人數統計算法有望提供一種低成本、無接觸的人數統計方案。所用設備為商用無線路由器,統計人員無須佩戴其他設備。該算法重構了CSI相位,避免了相位雜亂分布的問題;采用Hampel濾波器去除數據中的異常值,保證了數據的準確性;采用PCA進行特征提取,降低了數據維度;在使用多種分類算法進行分類時,實驗結果表明基于單層決策樹的AdaBoost算法性能最優。