李新春,王 歡
(1.遼寧工程技術(shù)大學(xué) 電子與信息工程學(xué)院,遼寧 葫蘆島 125105;2.遼寧工程技術(shù)大學(xué) 研究生院,遼寧 葫蘆島 125105)
隨著物聯(lián)網(wǎng)的發(fā)展和日益普及,基于位置服務(wù)的相關(guān)技術(shù)成為人們?nèi)粘9ぷ?、生活的基本需求。在室外環(huán)境中,GPS可實(shí)施高精度定位,但在室內(nèi)環(huán)境中,基于Wi-Fi位置指紋定位算法更具優(yōu)勢(shì)[1]。這種定位算法無(wú)需添加硬件、成本低、應(yīng)用廣泛,但仍面臨著指紋采集工作量大、定位精度低的問(wèn)題[2]。
位置指紋定位算法包括2個(gè)階段:離線階段和在線階段。離線階段,在參考點(diǎn)上逐一采集來(lái)自各接入點(diǎn)(access point,AP)的接收信號(hào)強(qiáng)度(received signal strength,RSS),組成有序RSS向量,同其位置坐標(biāo)構(gòu)成位置指紋,存入指紋庫(kù)中;在線階段,定位目標(biāo)實(shí)時(shí)采集RSS向量,并由匹配算法與指紋庫(kù)中的指紋進(jìn)行相似度匹配,最后計(jì)算定位位置。
在現(xiàn)有的研究中,對(duì)位置指紋定位算法的改進(jìn)主要集中在基于空間和時(shí)間的信號(hào)模式、協(xié)作定位和運(yùn)動(dòng)輔助定位,但構(gòu)建位置指紋庫(kù)是不可避免的過(guò)程,那么降低現(xiàn)場(chǎng)指紋勘測(cè)開銷成為亟待解決的問(wèn)題[3]。文獻(xiàn)[4-6]無(wú)需指紋現(xiàn)場(chǎng)勘測(cè),利用眾包方法將位置指紋與用戶移動(dòng)蹤跡相結(jié)合構(gòu)建邏輯平面圖,通過(guò)匹配邏輯平面圖和實(shí)際平面圖來(lái)實(shí)現(xiàn)定位,該方法需要志愿者用戶報(bào)告他們的數(shù)據(jù),但非專業(yè)的勘測(cè)數(shù)據(jù)通常受到質(zhì)疑,且會(huì)產(chǎn)生大量的冗余數(shù)據(jù);文獻(xiàn)[7-8]通過(guò)現(xiàn)場(chǎng)勘測(cè)獲得部分指紋信息,利用地質(zhì)學(xué)插值算法對(duì)其他指紋進(jìn)行預(yù)測(cè),由稀疏采集的指紋數(shù)據(jù)構(gòu)建密集的指紋庫(kù),但插值算法要求區(qū)域化變量(RSS變量)滿足二階平穩(wěn),要求嚴(yán)格。
通過(guò)上述分析,本文考慮到現(xiàn)場(chǎng)勘測(cè)指紋數(shù)據(jù)的可靠性及RSS向量的非線性特征,以減少指紋采集工作量、提高定位精度為目標(biāo),利用機(jī)器學(xué)習(xí)的自主學(xué)習(xí)能力,提出基于稀疏指紋采集和改進(jìn)WKNN的定位算法。離線階段,稀疏采集指紋數(shù)據(jù),訓(xùn)練優(yōu)化的高斯過(guò)程回歸模型,對(duì)未采集的指紋數(shù)據(jù)進(jìn)行預(yù)測(cè),構(gòu)建密集指紋庫(kù);在線階段,改進(jìn)WKNN算法,用卡方距離代替歐氏距離計(jì)算RSS相似度,并根據(jù)各AP穩(wěn)定性賦予不同的權(quán)值。實(shí)驗(yàn)結(jié)果表明,與其他算法相比,本文算法具有良好的指紋預(yù)測(cè)能力及定位性能,適用于室內(nèi)靜態(tài)定位。
基于稀疏指紋采集構(gòu)建指紋庫(kù),需要以下幾個(gè)步驟:指紋預(yù)處理、訓(xùn)練指紋預(yù)測(cè)模型、優(yōu)化模型參數(shù)、指紋預(yù)測(cè)、構(gòu)建指紋庫(kù)。
由于傳播過(guò)程中RSS易受影響,本系統(tǒng)采用容錯(cuò)四分位算法[9]檢測(cè)RSS異常值并濾除,對(duì)指紋數(shù)據(jù)進(jìn)行預(yù)處理;將定位區(qū)域內(nèi)的參考點(diǎn)分成兩部分:①稀疏分布于定位區(qū)域內(nèi),將其指紋數(shù)據(jù)作為高斯過(guò)程回歸模型的訓(xùn)練集;②作為測(cè)試集,此設(shè)置要求兩部分參考點(diǎn)不重疊;將訓(xùn)練集和測(cè)試集輸入至模型中,利用訓(xùn)練集訓(xùn)練模型,并對(duì)測(cè)試集進(jìn)行指紋預(yù)測(cè);模型參數(shù)直接影響模型的預(yù)測(cè)能力,本文利用共棲生物搜索算法優(yōu)化模型參數(shù),以下小節(jié)分別介紹算法的具體實(shí)現(xiàn)過(guò)程。
高斯過(guò)程回歸(Gaussian process regression,GPR)是機(jī)器學(xué)習(xí)的一種回歸方法,具有嚴(yán)格的統(tǒng)計(jì)學(xué)習(xí)理論基礎(chǔ),與神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)相比,易實(shí)現(xiàn)、超參數(shù)自適應(yīng)獲取以及輸出具有概率意義,對(duì)于處理非線性復(fù)雜問(wèn)題具有良好的適應(yīng)性[10]。
高斯過(guò)程為隨機(jī)過(guò)程,任何有限數(shù)量集合f(x)服從聯(lián)合高斯分布。D={(x,y)|x∈Rn×d,y∈Rn}為訓(xùn)練集,其中,x=[x1,x2,…,xn]T為訓(xùn)練輸入,y=[y1,y2,…,yn]T為輸出,訓(xùn)練輸入集合服從n維高斯分布,其概率函數(shù)用GP表示,性質(zhì)由均值函數(shù)m(x)和協(xié)方差函數(shù)k(xi,xj)確定。為不失一般性,令均值為零,有f(x)~GP(0,k(xi,xj))[11]。
GPR把系統(tǒng)噪聲ε考慮其中,回歸模型為
yi=f(xi)+ε
(1)
ε具有獨(dú)立性,則y也屬于高斯過(guò)程。在給定訓(xùn)練集D中,可以得到目標(biāo)輸出y的先驗(yàn)分布為
(2)
對(duì)于測(cè)試集D*={(x*,y*)|x*∈Rd,y*∈R},其中,x*為測(cè)試輸入;y*為測(cè)試輸出,則訓(xùn)練輸出y和測(cè)試輸出y*的聯(lián)合先驗(yàn)分布為
(3)
(3)式中,協(xié)方差矩陣為
K**=k(x*,x*)
協(xié)方差矩陣定義式中:K表示訓(xùn)練輸入x的n×n階協(xié)方差矩陣;k(xi,xj)為核函數(shù),描述xi與xj的相關(guān)性;K*表示訓(xùn)練輸入x與測(cè)試輸入x*的1×n階協(xié)方差矩陣;K**表示測(cè)試輸入x*自身的協(xié)方差矩陣。
本文采用最常用的平方指數(shù)核函數(shù)描述不同位置xi與xj間RSS的相關(guān)性[12]為
(4)
根據(jù)貝葉斯后驗(yàn)概率公式,在已知測(cè)試輸入x*與訓(xùn)練集D的條件下,對(duì)應(yīng)的輸出y*滿足
(5)
(6)
(7)
超參數(shù)的取值直接影響模型的預(yù)測(cè)能力,傳統(tǒng)超參數(shù)求解方法為共軛梯度法,但該方法在優(yōu)化過(guò)程中過(guò)于依賴初值,容易陷入局部最優(yōu)[13]。本文利用共棲生物搜索算法代替共軛梯度法優(yōu)化超參數(shù),將最優(yōu)超參數(shù)回代入(6)式即得到指紋預(yù)測(cè)模型。
1.2.1 共棲生物算法
2014年,Min Yuan Cheng等提出一種新穎的生物啟發(fā)式算法——共棲生物搜索(symbiotic organisms search,SOS)算法。與其他生物啟發(fā)式算法相比,SOS算法不需要任何特定參數(shù),正是由于這一特點(diǎn),陷入局部最優(yōu)而出現(xiàn)早熟的可能性很小,得到全局最優(yōu)的可能性很大[14-15],非常適合參數(shù)優(yōu)化。本文利用SOS算法優(yōu)化超參數(shù),模擬生態(tài)系統(tǒng)中物種的3種共棲關(guān)系,通過(guò)物種間交互規(guī)則產(chǎn)生新物種,搜索并保留具有最強(qiáng)生存能力的物種。
設(shè)生態(tài)系統(tǒng)的物種數(shù)量為N。第1種共棲關(guān)系為互利關(guān)系,指2個(gè)隨機(jī)物種Xi,Xj均能通過(guò)交互規(guī)則產(chǎn)生新生物種,可以由(8)—(10)式表示為
Xinew=Xi+rand(0,1)×(Xbest-M×BF1)
(8)
Xjnew=Xj+rand(0,1)×(Xbest-M×BF2)
(9)
(10)
(8)—(10)式中:Xi,Xj為原始物種;Xinew,Xjnew為新生物種;Xbest為最優(yōu)物種;rand(0,1)表示在(0,1)的隨機(jī)數(shù);BF1,BF2為受益因子,通常為1或2;M為物種Xi,Xj間關(guān)系特征。
第2種共棲關(guān)系為共生關(guān)系,指2個(gè)隨機(jī)物種Xi,Xj中只有一個(gè)物種Xi能通過(guò)交互產(chǎn)生新生物種。該交互規(guī)則為
Xinew=Xi+rand(-1,1)×(Xbest-Xj)
(11)
第3種共棲關(guān)系為寄生關(guān)系,指生態(tài)系統(tǒng)中隨機(jī)一個(gè)物種Xi充當(dāng)寄生物,利用隨機(jī)數(shù)更改維度產(chǎn)生新生寄生物,新生寄生物與物種Xj競(jìng)爭(zhēng)生存。
1.2.2 適應(yīng)度函數(shù)
SOS算法優(yōu)化GPR超參數(shù)的適應(yīng)度函數(shù)為訓(xùn)練集和待優(yōu)化參數(shù)構(gòu)成的對(duì)數(shù)似然函數(shù)對(duì)超參數(shù)的偏導(dǎo)數(shù),其表達(dá)式為
(12)
適應(yīng)度函數(shù)值最小的物種為最優(yōu)物種,其對(duì)應(yīng)的超參數(shù)即為最優(yōu)超參數(shù),比較新生物種與原始物種的適應(yīng)度函數(shù)值可以表示為
(13)
1.2.3SOS算法優(yōu)化GPR超參數(shù)
SOS算法優(yōu)化GPR超參數(shù)的過(guò)程如下。
1)SOS算法初始化:隨機(jī)生成N個(gè)d維數(shù)組作為物種的初始值X={X1,X2,…,XN};迭代次數(shù)記t=0,設(shè)置最大迭代次數(shù)tmax;
2)計(jì)算各物種初始值的適應(yīng)度函數(shù),選擇函數(shù)值最小的物種作為生態(tài)系統(tǒng)的最優(yōu)物種Xbest;
3)令Xi=Xbest,增加迭代次數(shù)t=t+1;
4)互利階段:隨機(jī)物種Xj與Xi交互產(chǎn)生新生物種,計(jì)算新生物種的適應(yīng)度函數(shù)值,與原始物種比較,保留最小函數(shù)值的物種;
5)共生階段:隨機(jī)物種Xj按交互規(guī)則使Xi產(chǎn)生新生物種,對(duì)比新生物種與原始物種的適應(yīng)度函數(shù)值,保留最小函數(shù)值的物種;
6)寄生階段:隨機(jī)物種Xj作為寄生物,通過(guò)隨機(jī)數(shù)更改維度產(chǎn)生新生寄生物并計(jì)算其適應(yīng)度函數(shù)值,保留具有最小適應(yīng)度函數(shù)值的物種;
7)搜索當(dāng)前生態(tài)系統(tǒng)的最優(yōu)物種Xbest;
8)判斷是否達(dá)到tmax,若是,進(jìn)行步驟9,若否,回到步驟3)繼續(xù)迭代;
9)顯示最優(yōu)物種Xbest。
最優(yōu)物種對(duì)應(yīng)的超參數(shù)即為最優(yōu)超參數(shù),基于最優(yōu)超參數(shù)得到SOS-GPR的預(yù)測(cè)模型,輸入定位區(qū)域內(nèi)非參考點(diǎn)的位置,預(yù)測(cè)對(duì)應(yīng)位置上的RSS后,構(gòu)建指紋存入指紋庫(kù)中。
在WKNN算法中,定位目標(biāo)RSS向量與各參考點(diǎn)RSS向量之間的歐氏距離只能表示它們之間的絕對(duì)距離。因RSS易受環(huán)境變化的影響,絕對(duì)距離并不能反映定位目標(biāo)與參考點(diǎn)之間的實(shí)際位置,需用相對(duì)距離來(lái)表示它們位置上的相似性,而卡方距離能夠很好地體現(xiàn)特征量之間的相對(duì)距離。
用卡方距離(chi-square distance,CSD)描述定位目標(biāo)與第i個(gè)參考點(diǎn)上接收來(lái)自第j個(gè)AP的RSS的相似度[16]有
(14)
(14)式中:RSSj為定位目標(biāo)上接收第j個(gè)AP的RSS;rssij為第i個(gè)參考點(diǎn)上接收第j個(gè)AP的RSS。
用卡方距離代替歐氏距離,體現(xiàn)定位目標(biāo)與各參考點(diǎn)上接收來(lái)自各AP的RSS之間的相對(duì)關(guān)系,接下來(lái)考慮AP加權(quán)問(wèn)題。在位置指紋定位中,AP的穩(wěn)定性影響定位結(jié)果,本文基于卡方距離對(duì)不同AP賦予不同的權(quán)值。
方差可以判別每個(gè)AP的穩(wěn)定性,RSS方差較小表示該AP的穩(wěn)定性較好,應(yīng)賦予較大的權(quán)值。計(jì)算AP的RSS方差公式為
(15)
那么,第j個(gè)AP的RSS對(duì)應(yīng)的權(quán)值vj及定位目標(biāo)與各參考點(diǎn)的相對(duì)距離disti為
(16)
(17)
(17)式中,Dij為定位目標(biāo)與第i個(gè)參考點(diǎn)接收來(lái)自第j個(gè)AP的RSS的卡方距離。
將相對(duì)距離disti升序排列,取前K個(gè)參考點(diǎn)進(jìn)行位置估計(jì)的表達(dá)式為
(18)
(19)
于遼寧工程技術(shù)大學(xué)行政樓一樓進(jìn)行實(shí)驗(yàn),該區(qū)域包括辦公室、走廊、大廳,如圖1。實(shí)驗(yàn)環(huán)境內(nèi)有大廳裝飾物、立柱等障礙物。本文將實(shí)驗(yàn)區(qū)域分成實(shí)驗(yàn)區(qū)域1和實(shí)驗(yàn)區(qū)域2,分別進(jìn)行指紋預(yù)測(cè)實(shí)驗(yàn)和定位實(shí)驗(yàn)。實(shí)驗(yàn)過(guò)程均使用榮耀8手機(jī)作為數(shù)據(jù)采集移動(dòng)終端,運(yùn)行系統(tǒng)為Android 4.4,實(shí)驗(yàn)仿真在MATLAB R2013b上完成。
圖1 實(shí)驗(yàn)區(qū)域布局Fig.1 Layout of the experimental area
為驗(yàn)證本文基于稀疏指紋采集建庫(kù)方法的有效性,取大廳中面積為20 m×8 m的典型環(huán)境為實(shí)驗(yàn)區(qū)域1,將該區(qū)域劃分成邊長(zhǎng)為1 m的網(wǎng)格,參考點(diǎn)布設(shè)于網(wǎng)格中心位置,在其四角和中心位置布設(shè)5個(gè)藍(lán)牙beacon基站AP1—AP5,對(duì)該區(qū)域內(nèi)160個(gè)參考點(diǎn)逐一作AP1—AP5的RSS采集,每個(gè)參考點(diǎn)上采集100次,并對(duì)采集到的數(shù)據(jù)進(jìn)行預(yù)處理。
3.2.1 指紋預(yù)測(cè)實(shí)驗(yàn)與結(jié)果分析
對(duì)于SOS-GPR指紋預(yù)測(cè)模型來(lái)說(shuō),若定位區(qū)域內(nèi)所選參考點(diǎn)數(shù)量過(guò)少,訓(xùn)練數(shù)據(jù)無(wú)法對(duì)整體數(shù)據(jù)分布進(jìn)行估計(jì),常常會(huì)導(dǎo)致過(guò)擬合,模型泛化能力差;若參考點(diǎn)數(shù)量過(guò)多,又違背了本文減小指紋采集工作量的初衷。所以,為找到最優(yōu)訓(xùn)練數(shù)據(jù)數(shù)量,在實(shí)驗(yàn)區(qū)域1中均勻選擇40,60,80,100,120個(gè)參考點(diǎn)作為模型訓(xùn)練點(diǎn),其余120,100,80,60,40個(gè)參考點(diǎn)作為模型測(cè)試點(diǎn),共同輸入SOS-GPR模型預(yù)測(cè)RSS,計(jì)算估計(jì)誤差[8]可以表示為
(20)
圖2為SOS-GPR模型在不同訓(xùn)練點(diǎn)數(shù)量下的RSS估計(jì)誤差,為了驗(yàn)證本文指紋預(yù)測(cè)模型的性能,將其與克里金(Kriging)算法、文獻(xiàn)[8]的改進(jìn)克里金(SA-Kriging)算法進(jìn)行實(shí)驗(yàn)對(duì)比。
圖2 不同訓(xùn)練點(diǎn)數(shù)的指紋估計(jì)誤差Fig.2 Fingerprint estimation errors of different training node numbers
由圖2可看出,隨著訓(xùn)練點(diǎn)數(shù)量增加,3種指紋預(yù)測(cè)方法的估計(jì)誤差都在減小。當(dāng)訓(xùn)練點(diǎn)數(shù)量為80時(shí),SOS-GPR,SA-Kriging,Kriging算法預(yù)測(cè)指紋的估計(jì)誤差分別為3.8%,4.9%,5.8%,此時(shí)指紋采集工作量為傳統(tǒng)全采集法的50%;當(dāng)訓(xùn)練點(diǎn)數(shù)量繼續(xù)增加,SOS-GPR的估計(jì)誤差幾乎不再減小,而SA-Kriging算法在訓(xùn)練點(diǎn)數(shù)為100時(shí)估計(jì)誤差達(dá)到3.9%,此時(shí)采集工作量為傳統(tǒng)全采集法的62.5%。
實(shí)驗(yàn)區(qū)域1內(nèi)選取25個(gè)定位目標(biāo)進(jìn)行定位實(shí)驗(yàn),定位匹配階段采用傳統(tǒng)WKNN算法,考慮到最近鄰點(diǎn)選擇太多,其中可能摻雜著實(shí)際距離較遠(yuǎn)的“假最近鄰點(diǎn)”,且K值一般選取3或4[17],故本文設(shè)置K=3。圖3為基于不同訓(xùn)練點(diǎn)數(shù)的定位誤差與全采集法定位誤差的對(duì)比。
圖3 不同訓(xùn)練點(diǎn)數(shù)的定位誤差Fig.3 Positioning errors of different training node numbers
由圖3可知,當(dāng)訓(xùn)練點(diǎn)數(shù)達(dá)到80時(shí),基于SOS-GPR建立指紋庫(kù)的定位精度最先趨于全采集法的定位精度,隨著訓(xùn)練點(diǎn)數(shù)的繼續(xù)增加,其定位誤差幾乎不變??紤]盡量減小指紋采集量,且估計(jì)誤差在可接受范圍內(nèi),本文選擇全采集法50%的參考點(diǎn)訓(xùn)練SOS-GPR模型并建立指紋庫(kù)。
為了驗(yàn)證更大區(qū)域內(nèi)基于SOS-GPR建庫(kù)方法的效果及改進(jìn)WKNN算法的定位性能,本文在實(shí)驗(yàn)區(qū)域2進(jìn)行定位實(shí)驗(yàn),包括大廳和走廊的實(shí)驗(yàn)環(huán)境。在實(shí)驗(yàn)區(qū)域均勻布設(shè)150個(gè)參考點(diǎn),參考點(diǎn)間距為2 m,通過(guò)稀疏指紋采集和SOS-GPR算法構(gòu)建指紋庫(kù)。但為了檢驗(yàn)算法的性能,通過(guò)全采集法采集300個(gè)參考點(diǎn)的指紋數(shù)據(jù)建立另一個(gè)指紋庫(kù),此時(shí)參考點(diǎn)間距為1 m,并在定位區(qū)域選取55個(gè)定位目標(biāo),驗(yàn)證定位算法的性能。利用樓內(nèi)WLAN基礎(chǔ)設(shè)施,移動(dòng)終端可檢測(cè)到22個(gè)AP,這些AP的類型和位置未知。當(dāng)在參考點(diǎn)上無(wú)法檢測(cè)到某AP的RSS時(shí),設(shè)置其RSS值為-95 dBm。
對(duì)于AP現(xiàn)存的問(wèn)題:受多徑效應(yīng)影響嚴(yán)重的AP穩(wěn)定性差,可能導(dǎo)致定位精度下降;參與定位的AP數(shù)越多計(jì)算量越大。為了提高定位精度同時(shí)減小計(jì)算開銷,通過(guò)RSS方差選擇n個(gè)穩(wěn)定性好的AP參與定位。分別統(tǒng)計(jì)定位區(qū)域內(nèi)參考點(diǎn)上來(lái)自各AP的RSS值并計(jì)算每個(gè)AP的RSS方差,RSS方差越小表示各參考點(diǎn)上檢測(cè)到來(lái)自AP的RSS值偏離其平均值越小,該AP的穩(wěn)定性越好,適合于定位匹配,否則表示該AP穩(wěn)定性差,不應(yīng)參與定位匹配。確定適合參與定位的AP后,在線階段對(duì)定位目標(biāo)進(jìn)行特定AP的RSS選擇,形成RSS向量與指紋庫(kù)中的指紋進(jìn)行定位匹配。
為確定參與定位的最佳AP數(shù),基于全采集法構(gòu)建的指紋庫(kù)計(jì)算各AP的RSS方差并按升序排列,取前n個(gè)AP進(jìn)行實(shí)驗(yàn),對(duì)比不同AP數(shù)(3~22)對(duì)定位精度的影響,實(shí)驗(yàn)結(jié)果如圖4,定位匹配階段本文依然選擇WKNN(K=3)算法。
圖4 不同AP數(shù)量的定位結(jié)果對(duì)比Fig.4 Positioning accuracy comparison of different APs
由圖4可看出,當(dāng)參與定位的AP數(shù)在3~12時(shí),隨著AP數(shù)增加,定位誤差減?。划?dāng)AP數(shù)為12時(shí),定位誤差最小2.021 m;但AP繼續(xù)增加,定位誤差不再減小,甚至出現(xiàn)增大,例如,AP數(shù)為14或16時(shí)對(duì)應(yīng)的定位誤差分別為2.078 m和2.113 m。雖然每個(gè)AP都能提供位置信息,但并不是參與定位的AP數(shù)越多定位效果越好,穩(wěn)定性好的AP對(duì)定位貢獻(xiàn)較大,而穩(wěn)定性弱的AP反而會(huì)影響定位精度,本文選取前12 個(gè)AP參與定位。
表1 不同超參數(shù)取值對(duì)指紋估計(jì)誤差的影響
3.2.2 定位實(shí)驗(yàn)
表2展示了3種指紋庫(kù),它們的區(qū)別在于參考點(diǎn)個(gè)數(shù):庫(kù)1以稀疏全采集法采集了150個(gè)參考點(diǎn);庫(kù)2在庫(kù)1的數(shù)據(jù)基礎(chǔ)上由SOS-GPR預(yù)測(cè)了150個(gè)參考點(diǎn),庫(kù)2共有300個(gè)參考點(diǎn);庫(kù)3以密集全采集法采集了300個(gè)參考點(diǎn)。
表2 3種位置指紋庫(kù)
為驗(yàn)證改進(jìn)算法的定位性能,選取參與定位的AP 數(shù)為12,WKNN算法中K值為3,將基于卡方距離和AP加權(quán)的WKNN算法(WKNN algorithm based on chi-square distance and AP weighting,CSW-WKNN)、傳統(tǒng)WKNN算法、基于卡方距離改進(jìn)的WKNN算法(WKNN algorithm based on chi-square distance,CS-WKNN)以及文獻(xiàn)[18]的M-WKNN(modified-WKNN matching algorithm)算法進(jìn)行基于表2中3種指紋庫(kù)的定位仿真,圖5為4種算法定位結(jié)果的比較。
經(jīng)過(guò)仿真實(shí)驗(yàn),CSW-WKNN算法的定位誤差均比其他3種算法低。在庫(kù)1、庫(kù)2、庫(kù)3中,CS-WKNN算法在1.5 m時(shí)定位精度累計(jì)概率分別為36.3%,47.2%和45.4%,分別高出傳統(tǒng)WKNN算法10.9%,12.7%和12.7%,表明卡方距離比歐氏距離對(duì)環(huán)境噪聲的敏感度低;在庫(kù)1、庫(kù)2、庫(kù)3中,CSW-WKNN算法在1.5 m定位精度累計(jì)概率分別為56.3%,72.7%,67.2%,分別高出CS-WKNN算法20%,25.5%,21.7%,高出M-WKNN算法9.1%,16.4%,14.6%,表明加權(quán)AP對(duì)定位結(jié)果具有影響。
圖6為庫(kù)1、庫(kù)2、庫(kù)3中4種定位算法在累積概率分別為30%,50%,80%時(shí)所對(duì)應(yīng)的定位誤差。
圖5 4種算法定位精度對(duì)比Fig.5 Comparison of four algorithms positioning accuracy
由圖6可看出,庫(kù)2、庫(kù)3的定位誤差均小于庫(kù)1,表明在定位區(qū)域內(nèi)參考點(diǎn)布設(shè)密集程度對(duì)定位結(jié)果具有影響;庫(kù)2與庫(kù)3定位精度相近,表明基于SOS-GPR建立指紋庫(kù)的方法具有可行性;庫(kù)2的定位精度略高于庫(kù)3的原因在于邊界位置指紋采集的RSS易受外界因素的影響,而本文的指紋預(yù)測(cè)模型考慮了噪聲影響因素,故邊界區(qū)域預(yù)測(cè)的指紋較采集到的指紋具有穩(wěn)定性。
圖6 定位誤差對(duì)比Fig.6 Comparison of positioning errors
在庫(kù)1、庫(kù)2、庫(kù)3中CSW-WKNN算法的平均定位誤差分別為1.514 m,1.091 m,1.181 m,相較于M-WKNN的1.745 m,1.482 m,1.469 m提高了13.23%,26.32%,19.61%。實(shí)驗(yàn)環(huán)境存在的多徑效應(yīng)影響定位精度,本文的CSW-WKNN算法利用卡方距離表示定位目標(biāo)與參考點(diǎn)位置的相似度,降低信號(hào)對(duì)環(huán)境的敏感性,對(duì)不同AP賦予不同權(quán)值提高定位精度。
針對(duì)位置指紋采集工作量大及定位精度低的問(wèn)題,本文提出了基于稀疏指紋采集和改進(jìn)WKNN的定位算法。離線階段,將定位區(qū)域內(nèi)稀疏參考點(diǎn)上采集的RSS進(jìn)行預(yù)處理,利用預(yù)處理后的指紋數(shù)據(jù)訓(xùn)練GPR模型,為提高模型的泛化能力,采用SOS算法優(yōu)化模型超參數(shù);最后SOS-GPR模型預(yù)測(cè)非參考點(diǎn)上的RSS,實(shí)現(xiàn)由稀疏指紋數(shù)據(jù)構(gòu)建密集指紋庫(kù)。在線階段,將WKNN算法中表示定位目標(biāo)RSS與參考點(diǎn)RSS相似度的歐氏距離換為卡方距離,并對(duì)各AP根據(jù)其RSS方差賦予不同的權(quán)值。實(shí)驗(yàn)結(jié)果表明,基于SOS-GPR算法在參考點(diǎn)個(gè)數(shù)為全采集法50%的情況下即能得到與之相近的定位精度,且改進(jìn)WKNN算法能進(jìn)一步減小定位誤差。
SOS-GPR指紋預(yù)測(cè)模型減少了指紋采集工作量,所付出的代價(jià)是構(gòu)建指紋庫(kù)階段計(jì)算量的增加,但指紋預(yù)測(cè)模型的訓(xùn)練數(shù)據(jù)是經(jīng)過(guò)預(yù)處理的,減少了原指紋采集過(guò)程中會(huì)因環(huán)境變化等外界因素產(chǎn)生RSS異常值的情況,提高了指紋庫(kù)的可靠性。