范貴明,樂燕芬,厲天宸
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院,上海 200093)
隨著無線網(wǎng)絡(luò)技術(shù)和智能設(shè)備的普及,各類基于位置服務(wù)的應(yīng)用逐漸成為人們?nèi)粘I畈豢苫蛉钡牟糠郑?]。在室外區(qū)域,全球定位系統(tǒng)和北斗衛(wèi)星導(dǎo)航系統(tǒng)能滿足大多數(shù)應(yīng)用的定位需求。然而,由于無線信號(hào)的傳播受建筑構(gòu)造、物體阻隔和人員走動(dòng)等影響,無法利用衛(wèi)星導(dǎo)航系統(tǒng)在室內(nèi)區(qū)域?qū)崿F(xiàn)有效定位。因此,其他信號(hào),如Wi-Fi、RFID、ZigBee、紅外線、藍(lán)牙、慣性導(dǎo)航等被用于室內(nèi)定位。隨著無線局域網(wǎng)(WLAN)作為室內(nèi)接入系統(tǒng)的廣泛使用和無線通信設(shè)備的普及,基于Wi-Fi 信號(hào)的室內(nèi)目標(biāo)搜索、定位、導(dǎo)航和跟蹤等服務(wù)得到了極大發(fā)展。
其中,接收信號(hào)強(qiáng)度(Received Signal Strength,RSS)指紋的室內(nèi)定位方法由于其部署成本較低且應(yīng)用靈活的優(yōu)點(diǎn),成為國(guó)內(nèi)外學(xué)者研究的熱點(diǎn)[2-5]。這些方法利用各接入點(diǎn)(Access Point,AP)或錨節(jié)點(diǎn)在各參考位置的RSS 信號(hào)確定定位區(qū)域的無線信號(hào)分布特性,并由此利用目標(biāo)接收的RSS 信號(hào)完成位置估計(jì)。因此,基于無線信號(hào)的室內(nèi)定位系統(tǒng)越來越獲得人們的認(rèn)可。
無線定位基本分為兩類:一類基于測(cè)量方式,另一類基于指紋方式?;跍y(cè)量方式的無線定位系統(tǒng)主要通過測(cè)量到達(dá)時(shí)間(Time of Arrival,TOA)、到達(dá)角度(Angle of Arrival,AOA)或到達(dá)時(shí)間差(Time Difference of Arrival,TDOA)進(jìn)行位置估計(jì)[6]。然而,這些物理量不能直接被普通的無線信號(hào)接收器所測(cè)量,因此基于指紋方式的無線定位系統(tǒng)更具普適性[7-9]。基于指紋方式的定位系統(tǒng)一般采用機(jī)器學(xué)習(xí)的方法。文獻(xiàn)[7]采用K 近鄰(K Nearest Neighbors,KNN)方法,提出了基于指紋方式的無線定位系統(tǒng)。支持向量機(jī)(Support Vector Machine,SVM)也在文獻(xiàn)[10]中被用來確定設(shè)備的位置。文獻(xiàn)[11-12]分別提出利用壓縮感知(Compressive Sensing,CS)分析定位信號(hào)與指紋數(shù)據(jù)庫(kù)對(duì)應(yīng)關(guān)系的方法。然而這些分類方法因其結(jié)果的離散性,使得系統(tǒng)的定位精度受到一定程度的限制。
文獻(xiàn)[13-14]用徑向基函數(shù)(Radial Basis Function,RBF)和多層感知(Multilayer Perceptron,MLP)解決無線定位問題。通過將無線信號(hào)強(qiáng)度輸入到訓(xùn)練好的淺層神經(jīng)網(wǎng)絡(luò),直接得到連續(xù)的位置坐標(biāo)。此外,基于人工神經(jīng)網(wǎng)絡(luò)的定位系統(tǒng)可以得到比傳統(tǒng)方法更好的結(jié)果[15]。然而針對(duì)波動(dòng)的無線信號(hào),由于淺層網(wǎng)絡(luò)的擬合能力有限,上述文獻(xiàn)所提出的系統(tǒng)均難以實(shí)現(xiàn)精確定位。
在諸如視覺分類[16-17]和語(yǔ)音識(shí)別[18]等領(lǐng)域,深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)已獲得了成功應(yīng)用。為此,本文提出基于深度神經(jīng)網(wǎng)絡(luò)的無線定位方法:首先在離線階段利用少量的指紋數(shù)據(jù),通過神經(jīng)網(wǎng)絡(luò)對(duì)其他位置進(jìn)行RSS 估值,實(shí)現(xiàn)對(duì)指紋庫(kù)更高密度的重構(gòu),減小離線階段對(duì)原指紋數(shù)據(jù)的依賴;然后,采用四層深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),通過特征學(xué)習(xí)的方式,從大量波動(dòng)的無線信號(hào)數(shù)據(jù)中提取特征,解決定位問題。利用堆疊自編碼器(Stacked Autoencoder,SAE)對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行預(yù)訓(xùn)練[19],并通過反向傳播進(jìn)行全局微調(diào),從而使網(wǎng)絡(luò)能夠避免手工方式,自動(dòng)地從指紋數(shù)據(jù)中學(xué)習(xí)到高層特征,并通過這些特征進(jìn)行位置估計(jì),得到更魯棒的定位結(jié)果。
深度神經(jīng)網(wǎng)絡(luò)內(nèi)部分為輸入層、隱藏層和輸出層,層與層之間是全連接的,即前一層的任意一個(gè)神經(jīng)元與后一層的任意一個(gè)神經(jīng)元相連?;谏疃壬窠?jīng)網(wǎng)絡(luò)的插值結(jié)構(gòu)如圖1 所示。在本文指紋庫(kù)重構(gòu)過程中,利用離線采集的指紋數(shù)據(jù)對(duì)其他位置點(diǎn)的RSS 信號(hào)進(jìn)行估值,從而生成位置密度更高的指紋庫(kù)。設(shè)整個(gè)區(qū)域內(nèi)共有m個(gè)AP,布置 有n個(gè)參考 點(diǎn),其位置 表示為pi=(xi,yi),i∈{1,2,…,n};在參考點(diǎn)pi接收的RSS 信號(hào)向量表示為Ri=(ri1,ri2,…,rim),其中rij,j∈{1,2,…,m}是參考點(diǎn)pi接收的來自第j個(gè)AP 的RSS 信號(hào),其中RSS 類別數(shù)m已知。
Fig.1 Structure of deep neural network圖1 深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
在插值過程中,其位置坐標(biāo)p=(x,y)作為輸入,相對(duì)應(yīng)的信號(hào)強(qiáng)度值r=[r1,r2,…,rm]作為隱藏層的輸出。
模型訓(xùn)練好后,系統(tǒng)通過計(jì)算得到插值點(diǎn)的信號(hào)強(qiáng)度,即:
其中,r=[r1,r2,…,rm]為插值點(diǎn)的信號(hào)強(qiáng)度,w為深度神經(jīng)網(wǎng)絡(luò)的輸出層權(quán)重,b為輸出層偏置。
自編碼器是一種盡可能復(fù)現(xiàn)輸入信號(hào)的神經(jīng)網(wǎng)絡(luò)。對(duì)接收的輸入樣本,經(jīng)過編碼將其轉(zhuǎn)換成高效的抽象表示,而后經(jīng)解碼過程再輸出原始樣本的重構(gòu)。算法通過調(diào)整網(wǎng)絡(luò)參數(shù)使樣本的重構(gòu)誤差達(dá)到最小值,從而獲得輸入樣本的最優(yōu)抽象表示。從神經(jīng)網(wǎng)絡(luò)的角度而言,編碼提取的抽象表示也即網(wǎng)絡(luò)的中間層或稱隱藏層。
SAE 是將多個(gè)自編碼器堆疊在一起組成的深度學(xué)習(xí)架構(gòu)。輸入層的數(shù)據(jù)通過第一層的自編碼器后映射到第一個(gè)隱藏層;而后該隱藏層作為第二層自編碼器的輸入層繼續(xù)進(jìn)行訓(xùn)練獲得第二個(gè)隱藏層。訓(xùn)練逐層進(jìn)行,將前隱藏層的特征表達(dá)傳遞到后序的自動(dòng)編碼器中。調(diào)整網(wǎng)絡(luò)中每層的參數(shù),輸出每一個(gè)隱含層的權(quán)重和偏置,從而得到輸入和輸出數(shù)據(jù)的模型結(jié)構(gòu)[20]。隱藏層的層數(shù)在SAE中起著重要作用,它對(duì)提取特征的不變性和抽象性起著關(guān)鍵作用。根據(jù)文獻(xiàn)[21],SAE 設(shè)置為5層。
如圖2 所示,在本文所提算法中,輸入的RSS 信號(hào)向量,通過SAE 提取的特征建立與位置坐標(biāo)之間的映射模型。SAE 用梯度下降將輸入輸出的誤差最小化,然后將SAE 訓(xùn)練結(jié)束的網(wǎng)絡(luò)作為初始狀態(tài),為了有效地訓(xùn)練定位系統(tǒng)參數(shù),本文采用Dropout 方法,并設(shè)置隨機(jī)置零的概率為0.1。
Fig. 2 Structure of deep encoder圖2 深度編碼器結(jié)構(gòu)
輸入層是由m個(gè)單元組成的,中間一層是n個(gè)單元組成的隱藏層。其中,輸入層r數(shù)據(jù)集表示每個(gè)AP 的RSS 數(shù)據(jù),即:
其中,wi是權(quán)重矩陣,bi是偏置向量,fi是激活函數(shù),例如有Sigmoid 函數(shù),雙曲正切函數(shù)和修正線性單元函數(shù)等。該算法中采用的是Sigmoid 函數(shù)。
在線定位階段,定位系統(tǒng)用已訓(xùn)練的深度神經(jīng)網(wǎng)絡(luò)模型,從目標(biāo)的RSS 信號(hào)向量中提取特征,然后通過深度神經(jīng)網(wǎng)絡(luò)模型計(jì)算待測(cè)點(diǎn)的位置坐標(biāo),即p=(x,y)。
如圖3 所示,DNN-SAE 算法由指紋數(shù)據(jù)庫(kù)、深度學(xué)習(xí)網(wǎng)絡(luò)、在線采集信號(hào)和定位位置預(yù)測(cè)等部分組成。大致分為離線階段和在線階段兩個(gè)部分。具體算法步驟如下:
Step1:在室內(nèi)環(huán)境中采集的RSS 信號(hào)組成深度學(xué)習(xí)的原始訓(xùn)練集。
Step2:利用深度神經(jīng)網(wǎng)絡(luò)對(duì)其他位置的RSS 信號(hào)進(jìn)行估值,最終完成指紋數(shù)據(jù)庫(kù)重構(gòu)。
Step3:將重構(gòu)的指紋數(shù)據(jù)庫(kù)輸入到SAE 中進(jìn)行預(yù)訓(xùn)練,逐層對(duì)RSS樣本編碼,提取特征數(shù)據(jù)。
Step4:通過SAE 提取的特征建立與位置坐標(biāo)之間的映射模型。
Step5:逐層訓(xùn)練并調(diào)整網(wǎng)絡(luò)參數(shù),用梯度下降將輸入輸出的誤差最小化,訓(xùn)練結(jié)束后得到關(guān)于RSS 信號(hào)與位置坐標(biāo)的室內(nèi)定位模型。
Step6:在線階段,利用訓(xùn)練好的模型,從采集的RSS 信號(hào)提取有效特征,計(jì)算出所對(duì)應(yīng)的位置坐標(biāo)。
Fig.3 Block diagram of positioning algorithm of deep autoencoder圖3 深度自編碼器定位算法框圖結(jié)構(gòu)
為驗(yàn)證本文所提出的基于深度自編碼器的室內(nèi)指紋插值和定位方法性能,在兩個(gè)不同的場(chǎng)景進(jìn)行實(shí)驗(yàn),分別基于米什科爾茨大學(xué)提供的公共數(shù)據(jù)集[22]的房間區(qū)域類定位和基于自主采集的辦公環(huán)境數(shù)據(jù)集的精確定位類,以驗(yàn)證本文所提方法的可行性和有效性。
數(shù)據(jù)集1 是米什科爾茨大學(xué)提供的公共數(shù)據(jù)集。該數(shù)據(jù)集采用ILONA 系統(tǒng)對(duì)一個(gè)三層辦公大樓進(jìn)行了數(shù)據(jù)采集和記錄。測(cè)量位置遵循建筑上的網(wǎng)格布局,采樣點(diǎn)的間隔為1m。數(shù)據(jù)集1 采用了該公共數(shù)據(jù)集在1 樓采集的Wi-Fi 信號(hào),實(shí)驗(yàn)環(huán)境如圖4 所示,圖中的顏色和線條用于分隔區(qū)域。這個(gè)數(shù)據(jù)集共分為6 個(gè)房間,當(dāng)對(duì)目標(biāo)進(jìn)行區(qū)域類定位時(shí),則需正確判定目標(biāo)所在的房間號(hào)。
Fig.4 Experimental layout of dataset 1圖4 數(shù)據(jù)集1的實(shí)驗(yàn)布局
數(shù)據(jù)集2是在光電學(xué)院大樓面積約為70m×14m 的8樓環(huán)境中進(jìn)行采集。實(shí)驗(yàn)環(huán)境具體布局如圖5 所示,其中黑點(diǎn)為參考位置點(diǎn),紅塊表示在線測(cè)試點(diǎn)(彩圖掃OSID 碼可見)。實(shí)驗(yàn)中,利用移動(dòng)智能終端搭載自主開發(fā)的微信小程序在多個(gè)工作日掃描采集參考點(diǎn)和測(cè)試點(diǎn)的Wi-Fi 信號(hào)強(qiáng)度和在線RSS 信號(hào),將目標(biāo)未能接收到信號(hào)的AP 的RSS值設(shè)為0。兩個(gè)實(shí)驗(yàn)場(chǎng)景的參數(shù)如表1所示。
Fig.5 Indoor office map of dataset 2圖5 數(shù)據(jù)集2的室內(nèi)辦公地圖
Table 1 Experimental parameter settings表1 實(shí)驗(yàn)參數(shù)設(shè)置
首先,對(duì)深度神經(jīng)網(wǎng)絡(luò)定位空間內(nèi)的RSS 估值結(jié)果進(jìn)行實(shí)驗(yàn)分析。從數(shù)據(jù)集1 中隨機(jī)抽取1stFloorLobby 中的101 個(gè)采樣點(diǎn)作為原指紋數(shù)據(jù),分別采用深度神經(jīng)網(wǎng)絡(luò)(DNN),距離加權(quán)反比例插值法(Inverse Distance Weight,IDW)和普通克里金算法(Kriging)對(duì)其余50 個(gè)待測(cè)點(diǎn)作RSS 估值;同樣從數(shù)據(jù)集2 中隨機(jī)選取區(qū)域內(nèi)92 個(gè)采樣點(diǎn)的RSS 作為原指紋數(shù)據(jù),用上述3 種算法對(duì)其余42 個(gè)待測(cè)點(diǎn)作RSS 估值,并對(duì)算法獲得的估計(jì)值與實(shí)測(cè)值進(jìn)行對(duì)比。圖6(a)和(b)分別給出了在兩個(gè)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果。估值誤差是每個(gè)采樣點(diǎn)用算法估計(jì)的各AP 的RSS 值與實(shí)測(cè)值絕對(duì)誤差的平均值。
從圖6(a)和(b)可以看出,在數(shù)據(jù)集1 中DNN 的RSS估值誤差(估值點(diǎn)的估計(jì)值與實(shí)際值取絕對(duì)值作差,再取平均)整體低于IDW 和Kriging,其中有2 個(gè)位置點(diǎn)的誤差達(dá)到25dB 左右,最低在3dB 左右;而在數(shù)據(jù)集2 中,DNN 的誤差最高在16dB 左右,最低在3dB 左右,從兩個(gè)數(shù)據(jù)集中都能得出DNN 優(yōu)于IDW 和Kriging。
區(qū)域定位,也即實(shí)現(xiàn)目標(biāo)房間級(jí)精度的定位。實(shí)驗(yàn)中采用數(shù)據(jù)集1 進(jìn)行了多次實(shí)驗(yàn)以評(píng)估本文所提指紋重構(gòu)算法和定位算法的性能。
實(shí)驗(yàn)中,首先分析不同數(shù)量的指紋數(shù)據(jù)訓(xùn)練SAE 對(duì)定位精度的影響。在每個(gè)房間隨機(jī)選擇10%的指紋作為訓(xùn)練數(shù)據(jù),隨后逐步增加訓(xùn)練數(shù)據(jù)量,另從指紋庫(kù)中隨機(jī)選擇了44個(gè)測(cè)試點(diǎn)進(jìn)行位置估計(jì)。實(shí)驗(yàn)結(jié)果如圖7所示。
圖中定位成功率指對(duì)目標(biāo)估計(jì)的所在房間號(hào)與其實(shí)際房間號(hào)一致。從圖7 中可觀察到,隨著訓(xùn)練數(shù)據(jù)的增加,不管是SAE 還是WKNN 算法,定位成功率都逐步提高。SAE 從81%提高到92%,WKNN 從80.5%提高到86%。
Fig.6 Comparison of the estimation results圖6 估值結(jié)果比較
Fig.7 Positioning success rate for every additional 50 training data圖7 每增加50個(gè)訓(xùn)練數(shù)據(jù)的定位成功率
接著分析在少量指紋數(shù)據(jù)的情況下,如何通過插值提升定位性能。實(shí)驗(yàn)中,在每個(gè)房間中隨機(jī)選取10%的指紋數(shù)據(jù),并傳給深度神經(jīng)網(wǎng)絡(luò)對(duì)其他位置點(diǎn)進(jìn)行RSS 信號(hào)估值以重構(gòu)高密度的指紋庫(kù)。從圖8 可以看出,僅使用44 個(gè)指紋數(shù)據(jù)時(shí),本文所提算法的定位成功率約為83%,而WKNN 在80.5%左右。隨著新生成指紋數(shù)據(jù)的加入,算法的定位性能得到提高。在增加了200 個(gè)新生成得到的數(shù)據(jù)時(shí),SAE 定位性能約為89%,WKNN 在85%左右。
在數(shù)據(jù)集2 中,利用所提算法對(duì)42 個(gè)在線測(cè)試點(diǎn)進(jìn)行實(shí)時(shí)定位,并與其真實(shí)位置進(jìn)行比較,獲得定位誤差作為算法性能指標(biāo)??紤]到監(jiān)測(cè)區(qū)域內(nèi)AP 點(diǎn)的數(shù)量較大,且樓層內(nèi)狹長(zhǎng)走廊的布局,使得某些AP 的信號(hào)較微弱,或者覆蓋范圍較小,因此實(shí)驗(yàn)中根據(jù)每個(gè)AP 被檢測(cè)到的RSS信號(hào)強(qiáng)度之和以及每個(gè)AP 被檢測(cè)到的次數(shù)分別篩選AP,篩選結(jié)構(gòu)如表2所示。
Fig.8 Positioning success rate for every 50 additional newly generated data圖8 每增加50個(gè)新生成數(shù)據(jù)的定位成功率
Table 2 AP screening results in data set 2表2 數(shù)據(jù)集2中AP篩選結(jié)果
采用兩種準(zhǔn)則篩選AP 后的定位結(jié)果如圖9、圖10 所示。圖9 中篩選AP 強(qiáng)度之和大于300(108 個(gè)AP)的精度最好,SAE 算法的平均定位誤差為1.61m,WKNN 在2.26m,定位精度提高29%。而圖10 中篩選AP 被收到次數(shù)大于3個(gè)(144 個(gè)AP)的精度最好,SAE 的定位精度在1.6m,WKNN 在2.31m。從圖中也可觀察到,當(dāng)AP 數(shù)量足夠多時(shí),繼續(xù)增加AP,算法性能并不會(huì)有大的提升。
Fig.9 Positioning error obtained by filtering the number of APs based on the sum of AP intensity圖9 基于AP強(qiáng)度之和篩選AP得到的定位誤差
為了進(jìn)一步驗(yàn)證算法的定位性能,圖11 給出了數(shù)據(jù)集2 中本文所提算法、WKNN 算法的定位誤差累計(jì)分布函數(shù)。在本實(shí)驗(yàn)中,在原有的92 個(gè)離線指紋庫(kù)中,加入15 個(gè)由深度神經(jīng)網(wǎng)絡(luò)生成的新指紋。由誤差累計(jì)分布曲線可觀察到,整體曲線表明本算法在抑制大誤差和提高平均定位誤差的性能上均優(yōu)于其他3 種方法。具體而言,上述4種算法在數(shù)據(jù)集2 中的平均定位誤差分別是1.49m、2.18m、1.75m 和2.33m,與WKNN 算法相比,該算法定位精度提高約36.1%。
Fig.10 Error obtained by screening the number of APs based on the detection time of AP圖10 基于AP被檢測(cè)的次數(shù)篩選AP個(gè)數(shù)得到的誤差
Fig.11 Comparison of positioning performance of different methods圖11 不同算法的定位性能比較
本文提出了一種基于深度自動(dòng)編碼器的離線指紋重構(gòu)和室內(nèi)定位方法。通過公共數(shù)據(jù)集和實(shí)際辦公環(huán)境收集數(shù)據(jù)實(shí)驗(yàn),對(duì)所提算法在區(qū)域類定位和精度定位中的性能進(jìn)行了驗(yàn)證和分析。實(shí)驗(yàn)結(jié)果表明,更多的指紋訓(xùn)練數(shù)據(jù)可以提高算法定位精度。而使用更多新生成的指紋數(shù)據(jù),有利于節(jié)省構(gòu)建指紋庫(kù)的時(shí)間和成本。通過與現(xiàn)有一些定位算法比較,在采用同樣數(shù)量的指紋數(shù)據(jù)時(shí),通過深度神經(jīng)網(wǎng)絡(luò)重構(gòu)的高密度指紋庫(kù)和堆疊式自編碼器的定位模型,該算法在區(qū)域類定位中有利于定位成功率提升,在精確定位中則能有效降低定位誤差。