唐智靈 楊愛文
(桂林電子科技大學信息與通信學院 廣西 桂林 541004)
針對人員的身份識別問題,如何以更便攜的方式獲取更準確的識別精度成為當前研究的熱點?,F(xiàn)有的研究利用可穿戴傳感器[1]、攝像頭[2]、人體鞏膜特征[3]等實現(xiàn)身份識別,這些方法存在設(shè)備昂貴、不易攜帶、靈活性差等問題。隨著無線產(chǎn)業(yè)的發(fā)展,利用無線信號以無設(shè)備的方式實現(xiàn)身份感知正發(fā)展為一種新興技術(shù)。當一個人在無線網(wǎng)絡(luò)附近時,將會對周圍的無線信號產(chǎn)生影響,對信號產(chǎn)生的影響進行深入分析可以獲取有用的信息,例如人的活動信息[4]、跌倒檢測[5],甚至生理特征。已有研究利用Wi-Fi信道狀態(tài)信息以無設(shè)備的方式實現(xiàn)用戶身份識別。文獻[6]利用帶低濾波器和峰谷檢測算法獲取CSI中人員每一步的波形特性,通過決策樹分類器實現(xiàn)身份分類識別。文獻[7]利用主成分分析法PCA(Principal Components Analysis)和離散小波變換DWT(Discrete Wavelet Transform)壓縮CSI波形特征,通過K近鄰算法實現(xiàn)身份分類識別。文獻[8]利用PCA和隱形馬爾可夫模型對CSI特征進行初步分類,通過支持向量機實現(xiàn)身份分類識別。文獻[9]利用PCA和低通濾波器獲取CSI特征,通過支持向量機實現(xiàn)身份分類識別。但上述使用機器學習分類器的身份識別方法在數(shù)據(jù)預處理階段需要手動提取CSI的波形特征,操作復雜并且無法細膩地提取射頻信號中隱含的生物特征代表性模式,這些方法只能在2~10人中實現(xiàn)最高93%的身份識別率。隨著深度神經(jīng)網(wǎng)絡(luò)的快速發(fā)展,深度神經(jīng)網(wǎng)絡(luò)不但可以處理更加龐大的樣本數(shù)量,其強大的特征提取能力在模式識別方面也表現(xiàn)良好。先進的研究利用PCA算法獲取CSI波形前354個特征向量作為人員身份特征,通過23層卷積神經(jīng)網(wǎng)絡(luò)CNN(Convolutional Neural Network)實現(xiàn)人員身份特征提取和識別[10],可在大樣本24個人中實現(xiàn)89.9%的身份識別精度。該方法使用卷積神經(jīng)網(wǎng)絡(luò)雖然可以自動提取樣本的空間特征,但卷積神經(jīng)網(wǎng)絡(luò)具有平移不變性,會將CSI時間序列中不同位置的相同特征視為同種步態(tài)特征,其并未考慮不同步態(tài)特征發(fā)生的先后順序。CSI數(shù)據(jù)記錄的是某段時間內(nèi)人體活動對無線信號的擾動,其樣本特征與時間有關(guān),所以單單使用卷積神經(jīng)網(wǎng)絡(luò)無法充分提取CSI中隱藏的生物表示特征。
為了有效解決現(xiàn)有研究存在的特征提取操作復雜和特征提取不足的問題,本文提出一種基于并行空時深度網(wǎng)絡(luò)的身份識別方法。首先使用鄰式均值插補對采集到CSI樣本進行校準,然后使用小波變換提取CSI樣本中由于人員步態(tài)誘發(fā)的射頻特征,最后設(shè)計了一個稱為WiD的并行深度學習模型。該模型將卷積神經(jīng)網(wǎng)絡(luò)與雙向長短期記憶網(wǎng)絡(luò)相結(jié)合,自動從預處理后的CSI樣本中提取人員步態(tài)特征大小及發(fā)生的先后順序,融合兩種步態(tài)特征細膩地表示人員身份特征。實驗結(jié)果表明,在未明顯增加時間代價和空間代價的前提下,該方法可以在30個人中達到最高98.7%的身份識別精度。
信道狀態(tài)信息(CSI)是在正交頻分復用(Orthogonal Frequency Division Multiplexing,OFDM)技術(shù)中作為對信道狀態(tài)的估計。隨著Wi-Fi采用OFDM技術(shù),幾乎在所有的Wi-Fi設(shè)備上都有獲取到CSI信息的潛力。對于每一條天線鏈路的每一個子載波具有相應的CSI值對應。假設(shè)發(fā)送端天線數(shù)目為Nt,接收端天線數(shù)目為Nr,子載波個數(shù)為m,那么每一次接收都能獲得一個大小為Nr×Nt×m的CSI矩陣。該CSI矩陣描述了無線信號如何從發(fā)送設(shè)備到達接收設(shè)備,CSI中的子載波包含了不同天線對在傳輸時的幅值和相位信息,其記錄了無線信號在空間傳輸?shù)纳⑸?、衰落、功率衰減與距離、陰影等信息,可由如下模型表示:
y=Hx+n
(1)
式中:y為接收端信號;x為發(fā)送端信號;H為信道矩陣;n為噪聲向量。噪聲可以表示為n∈N(0,S),所以可以估計出:
(2)
信道狀態(tài)信息就是對H的估計,對于第K個子載波,CSI可以表示為:
(3)
WiD模型包括空間特征提取分支和時間特征提取分支,它的結(jié)構(gòu)如圖1所示。WiD模型的空間特征提取分支先使用像素轉(zhuǎn)置卷積網(wǎng)絡(luò)Pconv1D(pixel transposed convolutional network)[11]對CSI時間序列樣本進行像素級特征學習,同時建立輸出映射與相鄰元素的依賴關(guān)系,最后使用卷積神經(jīng)網(wǎng)絡(luò)對像素轉(zhuǎn)置卷積的輸出進行空間特征提取。WiD模型的時間特征提取分支使用BiLSTM來對CSI時間序列進行雙向特征學習,這將充分挖掘CSI數(shù)據(jù)中人員動作的前后信息來描述身份特征。通過提取CSI數(shù)據(jù)中包含的空間特征表示和時間特征表示,將其結(jié)合到一起可以更細膩地描述人員的生物特征表示。
圖1 WiD模型構(gòu)架
數(shù)據(jù)預處理包括鄰式均值插補、小波去噪、數(shù)據(jù)標準化三部分。通過數(shù)據(jù)預處理對測量的CSI數(shù)據(jù)進行缺失值插補并去除環(huán)境噪聲,最后將CSI數(shù)據(jù)規(guī)范成深度學習網(wǎng)絡(luò)方便處理的類型。
2.1.1鄰式均值插補
2.1.2小波去噪
在復雜的室內(nèi)環(huán)境中,原始CSI數(shù)據(jù)中存在許多噪聲。其他射頻設(shè)備的干擾、多徑效應和傳輸功率的變化等會在CSI數(shù)據(jù)中引入高頻噪聲和突發(fā)噪聲??紤]到身體各部分運動速度不一樣,傳統(tǒng)的低通濾波器提取則會損失很多細節(jié)[12]。由于CSI信號是非平穩(wěn)信號,它是時間上的離散采樣信號,所以本文使用DWT來分解CSI中不同尺度的信號,提取人員活動的低頻信息。小波變換將數(shù)據(jù)信息集中在較大的小波系數(shù)中,將噪聲信息集中在較小的小波系數(shù)中。本文采用離散小波變換對在Donoho等[13]的通用閾值和級別為3的水平相關(guān)閾值下對每個CSI樣本進行去噪。沒有人員入侵時的CSI波形如圖2所示,有人員入侵時的CSI幅值和頻譜圖如圖3所示,小波變換后的CSI幅值和頻譜圖如圖4所示。
圖2 沒有人員入侵時的CSI子載波幅值
(a) 小波變換前的波形圖
(a) 小波變換后的波形圖
由圖3和圖4可知小波去噪前的波形頻率最高達到3 000~4 000 Hz,存在大量的環(huán)境噪聲,小波變換后的波形頻率在500 Hz以內(nèi),表示人員行走的正常頻率[12]。
2.1.3數(shù)據(jù)標準化
因為同一個特征在不同樣本中的取值可能相差大,所以一些異常小或異常大的數(shù)據(jù)會誤導模型的正確訓練,如果數(shù)據(jù)的分布很分散也會影響訓練結(jié)果。這都會造成較大的方差,本文使用機器學習的StandardScaler函數(shù)對樣本進行基于特征值的均值和標準差的數(shù)據(jù)標準化,即轉(zhuǎn)換為均值為0、標準差為1的正態(tài)分布。它的計算公式為:
(4)
式中:XST表示標準化后的數(shù)據(jù);Xi表示第i個樣本數(shù)據(jù);μ表示樣本的均值;σ表示樣本的標準差。將數(shù)據(jù)轉(zhuǎn)換為正態(tài)分布不僅可以消除CSI環(huán)境中的靜態(tài)信息,還可以減少培訓時間、提高模型性能。
空間特征提取分支包含像素轉(zhuǎn)置卷積網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)。像素轉(zhuǎn)置卷積層可以對數(shù)據(jù)進行像素級別的特征表示同時建立與相鄰元素的依賴關(guān)系[11],這將充分挖掘預處理后CSI數(shù)據(jù)間存在的隱藏時間關(guān)系。像素轉(zhuǎn)置卷積層順序生成中間特征圖,即后續(xù)生成的中間特征映射需要依賴于先前生成的映射,這使它能夠加強中間特征圖之間的依賴關(guān)系,從而在最終輸出特征圖中添加相鄰像素之間的依賴關(guān)系。最終輸出特征圖時中間特征圖的組合形式,其公式表達為:
F1=Fin*k1
F2=[Fin,F1]*k2
Fi=[Fin,F1,F2,…,Fi-1]*ki
Fn=[Fin,F1,F2,…,Fi,…,Fn-1]*kn
Fout=F1⊕F2…⊕Fi…⊕Fn
(5)
式中:Fin代表輸入數(shù)據(jù);Fout代表輸出特征映射,*表示卷積運算;[·,·]表示像素的并置;ki(i=1,2,…,n)表示一組卷積內(nèi)核;⊕表示對每個像素的特征映射進行周期性的打亂和組合運算;Fi(i=1,2,…,n)是由對應的卷積核ki生成的中間特征圖。
通過CNN對像素轉(zhuǎn)置卷積輸出的特征映射進行學習,每層CNN中間都使用最大池化層(Maxpool)和損失層(Dropout),并在ReLU非線性激活函數(shù)前使用批量正則化層BN(Batch Normalization)對樣本進行批量正則化操作,最后通過全局平均池化(Global_Average_Pooling)輸出一維數(shù)據(jù)。BN層讓深度學習模型在訓練過程中使得每一層神經(jīng)網(wǎng)絡(luò)的輸出保持相同分布,這樣可以避免梯度消失并且加快訓練速度。樣本經(jīng)過該分支學習后得到的CSI特征表示如下:
F=[F1,F2,…,Fi,…,F128]
(6)
式中:F代表卷積網(wǎng)絡(luò)層的輸出;Fi代表空間特征。
由于LSTM模型只能正向處理CSI數(shù)據(jù),而CSI數(shù)據(jù)中未來的信息對于確定步態(tài)的先后順序也至關(guān)重要。例如左腿和右腿邁出的步伐都會被識別為特征,但兩種特征的最終位置是不同的,因此本方法利用雙向長短期記憶網(wǎng)絡(luò)BiLSTM(Bidirectional Long-Short-Term Memory Network)從CSI中學習有效步態(tài)特征。BiLSTM由兩層LSTM組成,它包含前向傳播層和后向傳播層如圖5所示。
圖5 雙向LSTM網(wǎng)絡(luò)結(jié)構(gòu)
(7)
BiLSTM網(wǎng)絡(luò)可以在前向和后向上處理CSI序列,從而產(chǎn)生更豐富的動作特征,這將給更重要的特征和時間步長分配更大的權(quán)重,并為人類活動識別提供更優(yōu)異的性能。利用BiLSTM網(wǎng)絡(luò),CSI序列的過去和未來依賴的信息都被認為是用于識別人類活動序列的信息。樣本經(jīng)過該分支學習后得到的CSI特征表示如下:
B=[B1,B2,…,Bi,…,B256]
(8)
式中:B代表BiLSTM網(wǎng)絡(luò)的輸出;Bi代表時間特征信息。
空間特征提取分支對CSI數(shù)據(jù)提取的特征表示為F=[F1,F2,…,F128],時間特征提取分支對CSI數(shù)據(jù)學習后得到的特征表示為B=[B1,B2,…,B256]。Concat層將特征表示F和特征表示B聯(lián)合起來表示為:
E=[F1,F2,…,F128,B1,B2,…,B256]
(9)
具體網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示。
圖6 模型輸出網(wǎng)絡(luò)
(10)
式中:Z表示輸入向量的元素;D表示輸入向量元素的總數(shù)。
具有最大概率值的dmax就是第i個CSI樣本的預測類,其表示為:
(11)
上述分類器稱為Softmax分類器。WiD模型訓練數(shù)據(jù)后通過最小化交叉熵損失函數(shù)(categorical_crossentropy)來最大化其分類精度,表示為:
(12)
式中:當且僅當?shù)趇個樣本屬于d類時tid為1;N為每批次訓練的樣本個數(shù)。
本文采用Intel 5300無線網(wǎng)卡作為工控板的數(shù)據(jù)接收器,TP-Link路由器作為數(shù)據(jù)發(fā)送器,其中發(fā)射天線(Nt)和接收天線(Nr)的個數(shù)都為1。實驗所用的Intel 5300無線網(wǎng)卡有三個通道寬度,我們獲得30個子載波信息,所以實驗獲得CSI矩陣大小為1×1×30。實驗環(huán)境為典型的室內(nèi)實驗環(huán)境,Nt和Nr在視距條件下相距2 m,采樣頻率為1 000 Hz,采樣時間為3 s,每次獲得的子載波序列長度為3 000。實驗人員從A走到B,記錄下CSI數(shù)據(jù)后開始下一次實驗,實驗場景如圖7所示。
(a) CSI數(shù)據(jù)采集環(huán)境 (b) 數(shù)據(jù)采集環(huán)境細節(jié)圖7 實驗場景
數(shù)據(jù)集包括30個人,每個人采集45個實驗樣本,每個實驗樣本的CSI矩陣大小為(3 000,30)。本實驗將CSI矩陣的每列子載波作為一個樣本,所以每人45個樣本擴展成為1 350個樣本,30個人一共獲得40 500組樣本實例,每個樣本大小為(3 000,1)。
樣本數(shù)據(jù)中70%劃分為訓練數(shù)據(jù)集,30%為驗證數(shù)據(jù)集。由于數(shù)據(jù)樣本較多,Dropout層參數(shù)設(shè)置為0.6,即每個Dropout層要丟棄60%的神經(jīng)元。實驗在模型編譯時使用amsgrad優(yōu)化算法[14],因為amsgrad可以優(yōu)化Adam后期不收斂問題,而且可以快速接近SGD的收斂值。模型每個訓練批次樣本數(shù)為128,訓練了100個批次,采用5折交叉驗證。
為了展示本文方法在處理CSI樣本上的優(yōu)異性,實驗對比了文獻[10]中使用的CNN特征提取方法與本文方法在處理相同數(shù)據(jù)上的識別精度與模型復雜度。
3.3.1識別精度
訓練準確度和測試準確度是衡量模型優(yōu)異性的兩個基本評估指標,訓練準確度是訓練集中樣本的正確預測百分比。測試準確度來自樣本測試集的正確識別率,但測試集不能用于更新模型的權(quán)重,這使測試準確度能夠衡量模型在處理未知數(shù)據(jù)的性能。
(13)
(14)
由圖8可知,兩種模型在測試集上都達到了100%的識別精度,但CNN模型在訓練集上只達到了93.2%的識別精度,WiD模型在訓練集上達到了98.7%的識別精度。因為CNN模型只能提取CSI樣本中人員步態(tài)的空間特征信息,不同位置相同大小的步態(tài)特征會被CNN認為是同種特征。WiD模型可利用CNN分支提取人員的步態(tài)大小,利用BiLSTM分支提取不同大小的步態(tài)發(fā)生的先后順序,從而獲取更細膩的步態(tài)特征表示。
圖8 模型識別精度對比
3.3.2損失函數(shù)
損失函數(shù)是用來估量模型的預測值與真實值的不一致程度,是衡量模型魯棒性的指標,損失函數(shù)越小表明模型的魯棒性越好。
由圖9可知,CNN模型在訓練40批次左右時基本收斂,WiD模型在訓練30批次左右時基本收斂,說明WiD模型有更好的魯棒性。
圖9 模型損失函數(shù)對比
3.3.3時間和空間代價
實驗在Linux 18.04系統(tǒng)上使用Python框架下的memory_profiler方法對比了兩種方法在處理相同數(shù)據(jù)集上的時間代價和空間代價,其中系統(tǒng)顯卡配置為1060-6 GB,4 GB運行內(nèi)存,具體對比如圖10所示。
(a) CNN方法空間時間代價(b) WiD方法空間時間代價圖10 空間時間代價對比
可以看出,基于CNN的特征提取方法的最大時間復雜度約為1 426 s,最大空間復雜度約為2 061 MB;基于WiD的特征提取方法的最大時間復雜度約為1 646 s,最大空間復雜度約為2 210 MB。本文方法相比于CNN特征提取方法,空間復雜度增加7.2%,時間復雜度增加15.4%。因為WiD模型使用并行網(wǎng)絡(luò)進行特征提取,樣本需要同時在兩個分支進行訓練,再融合不同分支的特征表示人員步態(tài)特征,而CNN模型使用串行網(wǎng)絡(luò)訓練樣本,時間與空間代價相對較低。
3.3.4混淆矩陣
混淆矩陣用于更好地了解模型在對特定類別的數(shù)據(jù)進行分類時的優(yōu)異程度?;煜仃嚢膫€度量真陽性(TP)、真陰性(TN)、假陽性(FP)和假陰性(FN)。其中,TP是預測為正例的正樣本數(shù)量;TN是預測為反例的負樣本數(shù)量;FP是預測為正例的負樣本數(shù)量;FN是預測為反例的正樣本數(shù)量?;煜仃嚨膶蔷€表示正確識別率,上三角區(qū)域和下三角區(qū)域表示錯誤識別率。
圖11展示了WiD模型生成的混淆矩陣,右側(cè)條狀柱從下到上顏色逐漸加深,顏色越深表示預測標簽的準確度越大。在混淆矩陣中,30個人的步態(tài)樣本表示為Pi,其中i∈1,2,…,30。主對角線大部分趨向于1,上三角區(qū)域和下三角區(qū)域只出現(xiàn)少數(shù)識別誤差,表明模型具有良好的識別精度。
圖11 混淆矩陣
本文改進現(xiàn)有身份識別方法存在的不足,提出基于并行空時深度網(wǎng)絡(luò)的無設(shè)備身份識別方法。該方法采用一系列數(shù)據(jù)預處理方案,對嘈雜和錯誤的CSI數(shù)據(jù)樣本進行校準和去噪,提取人員步態(tài)誘發(fā)的射頻特征。然后利用空時深度神經(jīng)網(wǎng)絡(luò)WiD充分感知人員動作出現(xiàn)的時間和大小,并將兩者結(jié)合作為人員身份的細膩特征表示。與現(xiàn)有的身份識別方法相比,在未明顯提升模型時間和空間代價的條件下,本文方法獲取了更高的識別精度和模型魯棒性。但本實驗只考慮了單個實驗環(huán)境的身份識別,在后續(xù)的工作中將探究不同環(huán)境下的不同生物特征(如身高、體脂率、含骨率等)對Wi-Fi身份識別的影響,進一步提高該模型的魯棒性及實用性。