劉 帥,王旭東,吳 楠
大連海事大學信息科學技術學院, 大連 116033
隨著智能移動設備的快速發(fā)展,人們對于定位服務的需求日益強烈[1?3],例如室內(nèi)導航和位置追蹤等[4?5]. 室外定位憑借全球衛(wèi)星導航系統(tǒng)(Global navigation satellite system,GNSS)已經(jīng)可以滿足日常生活的定位需求. 然而對于室內(nèi)定位,由于存在嚴重的陰影衰落和多徑傳播,致使衛(wèi)星信號在室內(nèi)環(huán)境中無法實現(xiàn)有效定位[6]. 目前存在的室內(nèi)定位技術主要有藍牙、Wi-Fi、超帶寬、射頻識別和可見光等[7?10],其中由于Wi-Fi成本低、部署方便、覆蓋范圍廣等特點,在室內(nèi)定位中得到了廣泛的應用[11?12].
許多Wi-Fi指紋室內(nèi)定位系統(tǒng)采用接收信號強度(Received signal strength,RSS)作為指紋,利用了RSS獲取簡單,對硬件復雜度要求較低的特點[13?14]. 文獻 [15]提出了 RADAR 系統(tǒng),是第一個采用RSS作為指紋的室內(nèi)定位系統(tǒng),通過將模擬測量與信號傳播模型相結(jié)合起來確定用戶位置,并取得了一定的定位精度. 為了進一步提高定位精度,文獻[16]提出了Horus系統(tǒng),該系統(tǒng)提供了一種聯(lián)合聚類技術來用于位置估計,定位時使用了概率方法,每個候選位置坐標被視為一個類別,較RADAR獲得了更好的定位效果. 上述文獻所采用的定位方法均為傳統(tǒng)的匹配算法. 與此同時,深度學習技術的發(fā)展,為利用神經(jīng)網(wǎng)絡提取指紋信息提供了有效途徑. 文獻[17]將運動軌跡與RSS結(jié)合,通過長短期記憶網(wǎng)絡(Long short-term memory,LSTM)提取運動軌跡中RSS的變化特征,取得了0.75 m的平均誤差,但需要利用6個接入點(Access Point,AP)進行數(shù)據(jù)接收. 采用 RSS作為指紋雖然有獲取簡單的優(yōu)點,但無法進一步提高定位的精準度. 一方面是由于RSS在復雜的室內(nèi)環(huán)境中波動起伏較為嚴重,通常對于連續(xù)的接收數(shù)據(jù)包,RSS是不穩(wěn)定的. 另一方面,RSS對于每個AP只能提供一個粗略的信號強度值[18].
近年來,得益于 Wi-Fi無線網(wǎng)卡 Intel 5300[19]和Atheros AR9580[20]的驅(qū)動開源,使得提取信道狀態(tài)信息(Channel state information,CSI)成為可能. 和RSS相比,CSI具備以下優(yōu)點:(1)對于一個接收數(shù)據(jù)包,CSI可以得到無線信道中30個子載波的信道頻率響應(Channel frequency response,CFR),即CSI是一種細粒度的信息;(2)CSI對于環(huán)境變動更加敏感,作為位置指紋來分辨位置特征更加有效;(3)對于固定位置,CSI的分組接收數(shù)據(jù)包比RSS更加穩(wěn)定[21]. 文獻[22]首次采用CSI進行室內(nèi)定位,通過對提取出的CSI進行預處理來消除一定的多徑效應,然后采用CSI幅度的平均值來實現(xiàn)定位,與RSS相比,取得了更好的定位精度.文獻[23]提出了DeepFi系統(tǒng),通過提取3個天線90個子載波的幅度信息作為指紋,然后利用受限玻爾茲曼機(Restricted Boltzmann machine,RBM)來為每個參考點訓練指紋特征,定位時采用基于徑向基函數(shù)(Radial basic function,RBF)的概率算法來估計位置坐標. DeepFi系統(tǒng)只采用了CSI的幅度信息作為指紋,且需要為每個參考位置單獨訓練一組權重,因此在定位精準度和計算復雜度上都有待改進. 文獻[24]通過將磁場強度和CSI幅度信息作為指紋,利用補零來構(gòu)建訓練數(shù)據(jù),通過 卷 積 神 經(jīng) 網(wǎng) 絡 (Convolutional neutral networks,CNN)進行指紋訓練,取得了平均誤差為1.2 m的定位效果,上述兩種方法僅考慮CSI的幅度信息,且文獻[24]雖然聯(lián)合了磁場強度和CSI幅度共同作為指紋,但磁場強度在室內(nèi)環(huán)境中依然不夠穩(wěn)定. 文獻[25]提出了 CiFi系統(tǒng),通過提取 5 GHz頻段3個天線的相位信息,計算相鄰天線的相位差并估計到達角度(Arrival of angle,AOA),將 AOA重構(gòu)為60×60的圖片來作為指紋數(shù)據(jù),利用CNN來進行訓練,取得了比DeepFi更好的定位效果,但是CiFi沒有充分利用CSI的幅度信息,60×60的指紋構(gòu)成方法在實時定位的時效性上有待提高. 文獻[26]在CiFi的基礎上聯(lián)合CSI的相位差和幅度信息作為指紋,將指紋構(gòu)建為三維度矩陣,前兩個維度用相位差填充,第三個維度采用114個數(shù)據(jù)包的幅度填充,同樣在定位的時效性上有待提高.
本文在上述文獻的研究基礎上,提出了聯(lián)合CSI幅度差信息和相位差信息共同作為指紋來進行室內(nèi)定位的思想,利用CNN強大的特征提取能力對所有參考位置的指紋數(shù)據(jù)進行訓練,并根據(jù)不同定位場景,選取最優(yōu)權重組合來進行定位指紋數(shù)據(jù)的分配,同時結(jié)合一種改進的基于概率的指紋匹配算法獲得了良好的定位效果. 在不同室內(nèi)場景下的定位實驗結(jié)果驗證了本文提出方法的有效性.
對于指紋系統(tǒng)來說,主要分為離線階段和在線階段,提出的基于CNN的CSI指紋定位系統(tǒng)的結(jié)構(gòu)如圖1所示,圖中,RP為定位參考點,N為定位參考點的總個數(shù),M為在線測試階段隨機選擇的定位參考點.
圖1 系統(tǒng)結(jié)構(gòu)Fig.1 System structure
離線訓練階段首先需要對定位區(qū)域進行參考點的選取,參考點盡量均勻分布且覆蓋整個待定位區(qū)域. 分別為每個參考點收集CSI數(shù)據(jù)并按照第2節(jié)的處理方法進行指紋構(gòu)建,同時為了加速CNN的訓練速度、提高訓練的準確度,將每個參考點的指紋數(shù)據(jù)進行歸一化處理.
由于CNN已被證明具有出色的圖像特征提取能力,因此本文采用CNN并將CSI的幅度差信息和相位差信息聯(lián)合應用構(gòu)建為類似于“RGB”三通道的圖片格式進行訓練,所采用的CNN網(wǎng)絡結(jié)構(gòu)如圖2所示.
圖2 CNN 網(wǎng)絡結(jié)構(gòu)Fig.2 CNN network structure
CNN網(wǎng)絡由輸入層、4個2維卷積層、2個全連接(Fully connected, FC)層和輸出層構(gòu)成,同時為每個卷積層和全連接層都進行BatchNormalization加速誤差收斂. 神經(jīng)網(wǎng)絡的輸入為30×30×3的指紋數(shù)據(jù),首先通過前兩個卷積核為16的卷積層,由于所構(gòu)建的指紋維度為30,同圖像處理領域相比,維度相對較小. 因此前兩層為了充分提取指紋特征,padding選擇“same”,即保證卷積層輸入輸出數(shù)據(jù)維度相同;然后數(shù)據(jù)通過第三個卷積核為32的卷積層時,為了壓縮輸出數(shù)據(jù)的維度,padding選擇“valid”,此時數(shù)據(jù)流的維度變?yōu)?5;接著數(shù)據(jù)通過最后一個卷積核為32的卷積層,padding同樣選擇“same”;最后將數(shù)據(jù)展開并通過兩個全連接層,以Softmax概率的形式輸出,輸出神經(jīng)元的個數(shù)等于參考點的個數(shù)Nrp. 每層網(wǎng)絡的具體參數(shù)如表1所示,表中參數(shù)Conv 2D表示所采用的卷積類型為2維卷積,fs表示卷積核的維度,s表示卷積運算的步長,K表示神經(jīng)元個數(shù),m表示訓練數(shù)據(jù)的個數(shù).
表1 CNN 網(wǎng)絡參數(shù)Table 1 CNN network parameters
通過離線訓練,當誤差下降到幾乎不變時,停止訓練并保存CNN的網(wǎng)絡模型,用于在線測試.
在線測試階段,將所有參考點都視為測試點,分別在每個測試點收集CSI數(shù)據(jù)并進行指紋構(gòu)建與歸一化,并沒有將幅度差信息與相位差信息按同等比例作為測試數(shù)據(jù),圖3給出幅度信息與相位差信息在兩種場景中每個參考點處的子載波方差之和. 由于幅度信息要大于相位差信息,因此為了公平比較,將兩種信息進行歸一化處理.
圖3 兩種實驗場景下幅度與相位差的方差. (a)廊廳;(b)實驗室Fig.3 Variance of the amplitude and phase difference in two experimental scenarios: (a) corridor; (b) laboratory
由圖可知,相位差的子載波方差要小于幅度信息,表明相位差信息更加穩(wěn)定. 因此本文在訓練時采用同等比例的幅度與相位差數(shù)據(jù),憑借CNN出色的特征提取能力,可以將一個參考位置的幅度和相位特征分別提取出來,但是由于CSI的幅度信息在復雜的室內(nèi)環(huán)境中波動較大,如果將幅度與相位差信息按同等比例進行測試,反而會帶來一定的誤差,而采用幅相加權,令幅度差測試數(shù)據(jù)占較小權重,相位差測試數(shù)據(jù)占較大權重,既可以保留一定幅度差信息的定位效果,又不會較多地引入由幅度差信息所帶來的誤差.
傳統(tǒng)基于Softmax函數(shù)定位算法采用所有測試數(shù)據(jù)包Softmax輸出的概率平均值同參考位置坐標加權求和,這樣做會引入一定的誤差,因為Softmax輸出的是預測點為某個參考點的概率,測試時,若部分測試數(shù)據(jù)包含較大誤差,傳統(tǒng)算法會將誤差帶入到坐標的預測計算中,從而增大定位誤差. 本文采用了一種改進的基于概率的自適應定位算法,令測試時Softmax函數(shù)的輸出表示如下式所示:
式中每一行都表示一個測試數(shù)據(jù)包的Softmax輸出概率,Nrp為參考點個數(shù). 假設有M個測試數(shù)據(jù)包,對于每個數(shù)據(jù)包中的Nrp個概率值進行搜索,獲取最大值對應的索引,在此基礎上搜索出現(xiàn)次數(shù)最多的索引值,定義為C值,表示如下:
其中,index(·)表示返回索引值運算,max(·)表示求取最大值,count(·)表示統(tǒng)計每個元素出現(xiàn)的次數(shù).idi即為第i個測試數(shù)據(jù)所得到的概率值中最大概率的索引值,然后選取出現(xiàn)次數(shù)最多的索引值C所對應的概率值,記為Xout,并對其取列均值,得到概率P,如下式所示:
其中,mean(·)為取列均值計算. 則估計的位置坐標如下式所示:
分別在兩個代表性的場景種進行實驗,兩個場景分別為空曠的廊廳和放置了若干計算機以及隔斷書桌的實驗室,分別可以視為視距(Line of sight, LOS)與非視距(Non line of sight, NLOS)區(qū)域,相鄰參考點之間的距離均為1.2 m,如圖4、圖5所示.
圖4 廊廳場景. (a)實景圖;(b)簡化圖Fig.4 Corridor: (a) real scenario; (b) simplified scenario
圖5 實驗室場景. (a)實景圖;(b)簡化圖Fig.5 Laboratory: (a) real scenario; (b) simplified scenario
采用monitor模式接收Wi-Fi AP無線信道數(shù)據(jù),用兩臺配備了Intel 5300網(wǎng)卡的筆記本電腦分別作為發(fā)射端和接收端,選擇165號信道,即5 GHz頻段,信道帶寬為20 MHz,接收包間隔時間為1 ms.對于每個參考位置,在該位置的附近分別接收10次數(shù)據(jù),每次數(shù)據(jù)收集9000個數(shù)據(jù)包,選擇其中的5次數(shù)據(jù)作為訓練數(shù)據(jù),另外5次作為測試數(shù)據(jù). 訓練數(shù)據(jù)采用所有數(shù)據(jù)包,測試時由于不同方法指紋構(gòu)成的不同,無法保證使用相同的數(shù)據(jù)包,但可以選擇采用相同個數(shù)的測試數(shù)據(jù),本文選擇40個測試數(shù)據(jù). 為了驗證所提出方法的性能,將文獻[15]和文獻[17]的指紋定位方法分別用相同的訓練數(shù)據(jù)和測試數(shù)據(jù)進行比較,從而保證實驗結(jié)果的公平性.
實驗1:幅度差定位性能比較.
為了比較采用幅度信息和幅度差信息的定位性能,在兩個實驗場景下分別采用幅度與幅度差作為指紋,其他參數(shù)均相同,利用神經(jīng)網(wǎng)絡進行訓練,得到的平均定位誤差如圖6所示,其中Am 表示幅度,Am Diff表示幅度差. 由圖可知,采用幅度差信息代替幅度信息作為指紋,可以降低定位誤差,這是因為利用相鄰子載波之間幅度的差值,可以降低幅度信息的浮動程度,從而加速神經(jīng)網(wǎng)絡的收斂速度,提高神經(jīng)網(wǎng)絡的學習能力.
圖6 幅度與幅度差的平均定位誤差Fig.6 Mean error of the amplitude and amplitude difference
實驗2:神經(jīng)網(wǎng)絡收斂性比較.
采用GPU為NVIDIA 960m的筆記本電腦以及Keras框架,分別利用在兩個實驗場景所采集構(gòu)建的指紋進行神經(jīng)網(wǎng)絡的訓練,兩個實驗場景的訓練誤差如圖7所示.
圖7 不同場景下的誤差收斂情況Fig.7 Error convergence in different scenarios
圖7中,epoch為神經(jīng)網(wǎng)絡迭代的次數(shù),loss為訓練集誤差,val loss為驗證集誤差. 兩種場景下,訓練集誤差曲線在前5代快速收斂,訓練過程中加入Dropout,防止網(wǎng)絡過擬合. 此外采用學習率逐漸下降的訓練方法,微調(diào)網(wǎng)絡權重,從而避免網(wǎng)絡陷入局部最優(yōu). 驗證集誤差在訓練前期波動較大,但總體呈現(xiàn)下降趨勢,表明神經(jīng)網(wǎng)絡正在學習指紋特征;當epoch為15時,訓練集和驗證集誤差均趨于穩(wěn)定,不再下降,驗證集誤差的收斂表明網(wǎng)絡已經(jīng)較好地學習到了每個位置的指紋特征.
實驗3:不同定位方法性能比較.
將本文提出的方法命名為CNNFi,CNNFi與DeepFi和CiFi系統(tǒng)的定位誤差累積分布函數(shù)(Cumulative distribution function, CDF)分別如圖8、圖9所示. 平均定位誤差、標準差和執(zhí)行時間如表2、表3所示.
圖8 廊廳誤差累計分布圖Fig.8 Cumulative distribution of corridor error
圖9 實驗室誤差累計分布圖Fig.9 Cumulative distribution of laboratory error
表2 廊廳定位誤差和執(zhí)行時間Table 2 Corridor positioning error and execution time
表3 實驗室定位誤差和執(zhí)行時間Table 3 Laboratory positioning error and execution time
圖8和圖9中對于DeepFi的定位方法,在神經(jīng)網(wǎng)絡方面,采用DNN代替受限玻爾茲曼機,從而避免為每個參考點單獨訓練一組權重,降低了計算復雜度. 和傳統(tǒng)的定位測試方法(CNNFi single、DeepFi、CiFi)不同,考慮在實際定位中,人體是運動的,且CSI monitor收數(shù)模式收集數(shù)據(jù)包的速度是可調(diào)的,因此可以在短時內(nèi)在參考點附近采樣兩次CSI,從而增加數(shù)據(jù)的多樣性,即CNNFi combine,AP=1、2 分別表示采用單 AP、雙AP進行室內(nèi)定位.
由表2和圖8可知,在廊廳區(qū)域,CNNFi在combine模式下可以達到 0.2473 m 和 0.5755 m 的平均誤差和標準差,均優(yōu)于其他定位方法,且定位執(zhí)行時間在相同的測試數(shù)據(jù)個數(shù)下要優(yōu)于CiFi,這是因為CNNFi兼顧了定位精度與測試時間,采用每30個接收數(shù)據(jù)包構(gòu)成一個訓練數(shù)據(jù),而CiFi采用了60個數(shù)據(jù)包構(gòu)成一個訓練數(shù)據(jù). 本文采用的方法在single模式下,大約80%的測試點的平均誤差在1 m之內(nèi),定位性能要優(yōu)于DeepFi和CiFi. 當采用combine模式時,大約95%的測試點的平均誤差在1 m之內(nèi),定位性能相比于single模式要更加出色.
由表3和圖9可知,在實驗室區(qū)域,存在嚴重的多徑效應,為了進一步提升實驗室場景下的定位性能,考慮到如今室內(nèi)通常配置了多個Wi-Fi接入點,因此在上述定位方法的基礎上,采用雙AP聯(lián)合定位,即提取兩個AP的CSI幅度差與相位差共同作為每個參考點的指紋進行訓練. CNNFi在combine模式、雙AP下可以達到0.4806 m和0.8566 m的平均誤差和標準差,同樣優(yōu)于其他定位方法. 由于雙AP下測試數(shù)據(jù)相較于單AP要增加一倍,所以CNNFi在定位時間上稍有增加,但也僅約為0.5 s,即采用雙AP是能夠在保證定位實時性的前提下實現(xiàn)高精度的. CNNFi在single模式、單AP下,大約70%的測試點的平均誤差在2 m之內(nèi),在combine模式時,大約85%的測試點的平均誤差在2 m之內(nèi). 采用雙AP后,約85%的參考點平均誤差在1 m以內(nèi),定位性能顯著提升.
實驗4:不同權重a的定位性能.
為了驗證2.2節(jié)中的思想,令a作為幅度差信息所占權重,1?a為相位差信息所占權重,將權重a分別設置為 [0, 0.1, 0.2, 0.3, 0.4, 0.5],進行定位性能的比較,其中實驗室采用的是單AP情況下的平均誤差. 不同權重所對應的平均誤差與標準差如圖10~11所示. 可以發(fā)現(xiàn),廊廳場景下,由于近似于LOS場景,因此隨著權重a的增加,定位誤差逐漸下降,當權重a=0.2時,平均誤差同其他權重相差較小,而標準差最小. 實驗室場景下,由于存在嚴重的多徑效應,當權重a=0.2時,誤差和標準差達到最小值,定位效果最優(yōu). 從而驗證了上文中的思想. 在此基礎上,后面的研究中,對于幅度與相位的混合指紋,可以將權重a設為0.2~0.3,能夠達到較好的定位效果.
圖10 不同權重的平均誤差Fig.10 Mean error at different weights
圖11 不同權重的標準差Fig.11 Standard deviation at different weights
實驗5:不同R值的定位性能.
R值即為神經(jīng)網(wǎng)絡訓練數(shù)據(jù)的個數(shù),分別將R值設為300、200、100和50,對神經(jīng)網(wǎng)絡進行訓練,采用相同的測試數(shù)據(jù)進行定位測試,得到的定位誤差如圖12所示. 如圖可知,兩種場景下采用R=300的定位效果最優(yōu),雖然增加R值會增加在線訓練時間,但一方面本文所采用的神經(jīng)網(wǎng)絡結(jié)構(gòu)較為簡單,可以適當降低訓練時間;一方面,離線訓練時間并不影響實時定位效果,因此本文選擇R=300進行實驗.
圖12 不同 R 值的平均誤差Fig.12 Mean error at different values of R
實驗6:不同幅度相位差的定位性能.
為了比較幅度相位差個數(shù)對平均誤差的影響,分別給出了兩個實驗場景下不同幅度相位差個數(shù)的平均誤差,其中廊廳為單AP,實驗室為雙AP,如圖13所示,Am-Ph Diff表示幅度相位差. 由圖可知,在兩種實驗場景下,采用3個幅度相位差所達到的定位效果最優(yōu),增加訓練數(shù)據(jù)雖然增加了離線訓練的時間,但在線測試時由于僅采用了40個測試數(shù)據(jù),因此并不會顯著增加在線測試的時間,并且由于充分利用了3個天線之間的幅度差與相位差信息,可以增強定位結(jié)果的魯棒性.
圖13 不同幅度相位差的平均誤差Fig.13 Mean error of different amplitudes and phase differences
實驗7:不同定位算法的定位性能.
本文設計了一種高精度定位算法,與傳統(tǒng)定位算法對Softmax輸出取平均值不同,該算法可以將大部分預測點準確地估計為正確參考點,提出的定位算法與傳統(tǒng)定位算法的定位誤差如圖14所示. 由圖可知,與傳統(tǒng)的定位算法相比,應用本文所提出的定位算法,可以有效的提高定位精度.該算法是在犧牲定位標準偏差的基礎上換取高精度定位結(jié)果,考慮到實際場景,定位過程中可以不斷收集CSI信息進行定位響應,因此該定位算法可以滿足較高定位精度的需求.
圖14 不同定位算法的平均誤差Fig.14 Mean error of different position algorithms
實驗8:定位效果可視化.
為了直觀地觀察定位測試效果,將參考測試點與預測點以二維坐標的形式用散點圖表示.圖15所示為多次實驗的一次采樣結(jié)果,以實驗參考區(qū)域的左下角參考點為原點建立直角坐標系,x為橫坐標,y為縱坐標. 規(guī)定定位誤差低于各自定位場景的平均定位誤差,視為預測正確. 統(tǒng)計多次實驗結(jié)果可知:在空曠的廊廳,僅采用單AP就能夠?qū)崿F(xiàn)約平均90%的定位準確率. 實驗室場景采用雙AP后,也可以實現(xiàn)大約平均80%的定位準確率.
圖15 坐標預測. (a)廊廳;(b)實驗室Fig.15 Coordinate prediction: (a) corridor; (b) laboratory
本文提出了一種基于CNN的CSI指紋室內(nèi)定位方法. 在5 GHz頻段下,離線階段將CSI的幅度差和相位差信息聯(lián)合作為指紋并采用CNN來提取特征,將訓練結(jié)束后的CNN網(wǎng)絡模型保存作為指紋數(shù)據(jù)庫;在線階段在測試點附近進行兩次采樣增加測試數(shù)據(jù)多樣性,同時采用幅相加權與自適應概率算法進行位置坐標的估計. 針對特別復雜的室內(nèi)場景,采用雙AP來提高定位精度. 通過在兩種場景(LOS,NLOS)下的定位測試實驗,分別獲得了24.7 cm和48.1 cm的平均定位誤差,實驗結(jié)果表明本文所采用的方法可以實現(xiàn)較好的定位效果.