汪 振,鄭增威,劉爭艷,陳垣毅
(1.安徽理工大學(xué)計算機科學(xué)與工程學(xué)院,安徽淮南232001;2.浙江大學(xué)城市學(xué)院計算機與計算科學(xué)學(xué)院,浙江杭州310015;3.阜陽師范大學(xué)計算機與信息工程學(xué)院,安徽阜陽236037)
隨著普適技術(shù)的發(fā)展和移動終端設(shè)備性能的不斷提高,用戶位置信息被廣泛的使用,基于用戶位置信息服務(wù)(location based service,LBS)[1]的需求越來越高。中國的北斗、歐洲的伽利略、俄羅斯的格洛納斯、印度的IRNSS 等,這些衛(wèi)星導(dǎo)航定位服務(wù)在室外能夠提供較好的定位服務(wù),但在室內(nèi)建筑物內(nèi),衛(wèi)星信號很難穿過建筑物到達室內(nèi)而被檢測到,無法滿足用戶在室內(nèi)的位置信息服務(wù)需求。因此,室內(nèi)定位技術(shù)就成了當(dāng)前位置信息服務(wù)的研究熱點。室內(nèi)定位分為有基礎(chǔ)設(shè)施和無基礎(chǔ)設(shè)施的定位方法,現(xiàn)有的基于基礎(chǔ)設(shè)施的室內(nèi)定位技術(shù)主要有:藍牙定位技術(shù)[2]、超寬帶技術(shù)(Ultra wide band,UWB)[3]、RFID 技術(shù)[4]、圖像技術(shù)[5]、可見光技術(shù)[6]、Wi-Fi 技術(shù)[7],而無基礎(chǔ)設(shè)施的定位技術(shù)有、FM[8]、地磁技術(shù)[9]等,但上述的這些主流室內(nèi)定位技術(shù)都存在著諸多缺點。
目前,利用地磁的定位方法多是基于地磁指紋庫的室內(nèi)定位算法,基于地磁指紋庫的定位算法為兩個階段:離線階段和線上定位階段。離線階段在室內(nèi)通過手機采集室內(nèi)環(huán)境中的地磁強度以及地磁強度所對應(yīng)的位置信息,從而形成地磁指紋信息,構(gòu)建出地磁指紋數(shù)據(jù)庫。線上定位階段是將待測位置的地磁數(shù)據(jù)與指紋庫指紋庫中的指紋信息進行對比,得到定位的結(jié)果?;谥讣y庫的定位算法多為K 最近鄰法(K-nearest neighbor,KNN)[10],以及提出使用序列匹配[11]的方法進行室內(nèi)地磁定位。當(dāng)用戶在室內(nèi)行走時,用戶移動設(shè)備可以獲取地磁讀數(shù)序列,與步行軌跡相關(guān)的時間地磁序列,可以將其建模為字符串序列,進一步進行跟蹤匹配[12]。傳統(tǒng)的字符串匹配和動態(tài)規(guī)劃,可以很容易解決用戶運動和磁力計沿路徑讀數(shù)的序列匹配問題[13]。該方法多使用動態(tài)時間規(guī)整算法(dynamic time warping,DTW)[14]。這兩種定位方法在室內(nèi)采集地磁數(shù)據(jù)量大時以及地磁信號不唯一時,定位時間也會相對增加。且定位方法中定位誤差不理想,無法滿足用戶所需要的定位精度。Montoliu 等[15]提出利用文本中的特征提取方法-詞袋模型(bag of words,BoW)對地磁時間序列曲線提取特征值,將兩個地磁指紋轉(zhuǎn)為比較三對二維的曲線,提高地磁室內(nèi)定位精度,但其不能進行實時的定位。對于地磁數(shù)據(jù)模糊的情況下,基于BP 神經(jīng)網(wǎng)絡(luò)方法在預(yù)測方面具有較高的預(yù)測精度、較好的通用性、以及較強的非線性映射能力等優(yōu)點。但BP 神經(jīng)網(wǎng)絡(luò)也是存在一些缺陷,表現(xiàn)在容易陷入局部最小、收斂速度慢等問題。因此急需解決這些問題,從而提升室內(nèi)定位精度。
針對上述存在的一些問題,本文提出一種基于集成學(xué)習(xí)與BP 神經(jīng)網(wǎng)絡(luò)的室內(nèi)定位算法。
基于地磁定位系統(tǒng)主要分兩個階段:離線的地磁指紋庫的構(gòu)建和室內(nèi)地磁定位階段,基本框架圖如圖1 所示。
圖1 地磁定位系統(tǒng)框架圖
離線構(gòu)建地磁指紋庫階段,室內(nèi)載體在行走過程中,通過手機中的三軸地磁傳感器采集地磁數(shù)據(jù),以及載體所走路徑的初始位置和終點位置的經(jīng)緯度,并通過標(biāo)準(zhǔn)的高斯回歸過程方法對采集到的地磁數(shù)據(jù)所對應(yīng)的經(jīng)緯度位置進行線性插值,每個地磁數(shù)據(jù)都有其相應(yīng)的經(jīng)緯度位置,最終構(gòu)建出地磁指紋數(shù)據(jù)庫。圖2 中室內(nèi)的地磁分布情況,在電梯以及門框金屬物旁地磁強度大,圓的上半部分表示地磁大小,顏色深表示地磁強度大,否則相反。下半部分的兩個1/4 圓分別表示經(jīng)度和緯度。因此每個二維的經(jīng)緯度都有其相對應(yīng)的地磁強度。
地磁指紋數(shù)據(jù)庫如圖1 中構(gòu)建指紋數(shù)據(jù)庫階段表格中所示,其中地磁指紋信息可以表示為
(xi,yi,zi)(lati,loni)表示第i(i=1,2,…,m)個位置所對應(yīng)的經(jīng)緯度(lati,loni)采集的三軸的地磁強度。
圖3 為一段時間內(nèi)室內(nèi)地磁強度,實線(2019年1 月20 日)和虛線(2019 年1 月23 日)分別代表在同一段路徑,時間相隔3 天采集的三維地磁數(shù)據(jù)強度。表示在室內(nèi)只要物體結(jié)構(gòu)不改變,地磁具有穩(wěn)定性,可以應(yīng)用在室內(nèi)定位中。
圖2 室內(nèi)地磁分布圖
圖3 3 天內(nèi)同一路徑的三維地磁強度
定位階段中,利用集成學(xué)習(xí)與BP 神經(jīng)網(wǎng)絡(luò)的定位算法,預(yù)測待定位點的位置信息,并與測試集的實際位置通過計算經(jīng)緯度之間的半正矢距離,將半正矢距離為定位誤差。定位誤差Distance 計算公式:
其中:R為地球半徑,大約6 373 km;真實經(jīng)緯度坐標(biāo)(latj,lonj);預(yù)測經(jīng)緯度坐標(biāo)(lati,loni);Distance為最終計算出的定位誤差。
BP 神經(jīng)網(wǎng)絡(luò)是一種有監(jiān)督式的學(xué)習(xí)算法,通過樣本的訓(xùn)練,使用反向傳播算法對網(wǎng)絡(luò)的權(quán)值和偏差進行反復(fù)的調(diào)整,使得預(yù)測結(jié)果與實際結(jié)果盡可能的相近。在基于地磁的室內(nèi)定位過程中,構(gòu)建的地磁指紋庫中的每個地磁數(shù)據(jù)都對應(yīng)其相應(yīng)的經(jīng)緯度位置,當(dāng)三維的地磁數(shù)據(jù)作為輸入樣本數(shù)據(jù),通過反向傳播算法對網(wǎng)絡(luò)進行調(diào)整,使得到的預(yù)測出的經(jīng)緯度坐標(biāo)與實際地磁數(shù)據(jù)庫中對應(yīng)的經(jīng)緯度坐標(biāo)之間距離接近。圖4 為多層BP 神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)圖。
圖4 多層BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
BP 神經(jīng)網(wǎng)絡(luò)由L層神經(jīng)元組成,第一層為輸入層,最后一層(第L層)為輸出層,其他各層為隱含層(第二層~第L-1 層)。在本文中輸入層輸入為M=[Mx(i),My(i),Mz(i)]T。輸出層輸出為loc=[lati,loni]。第l 隱含層各神經(jīng)元的輸出為其中,s1為第l層神經(jīng)元的個數(shù)。若輸出層實際輸出的經(jīng)緯度坐標(biāo)與期望的輸出不符合,則將誤差以某種形式在各層表示,修正各層單元的權(quán)值,直到網(wǎng)絡(luò)輸出的誤差減少到接受的程度進行到預(yù)先設(shè)定的學(xué)習(xí)次數(shù)為止,輸出最終預(yù)測的經(jīng)緯度坐標(biāo)。
AdaBoost 算法的思想是各個地磁訓(xùn)練樣本的權(quán)重分布,最初的樣本的所有權(quán)重被賦予相同的數(shù)值,在訓(xùn)練過程中,樣本的權(quán)重不斷的被調(diào)整,設(shè)置閾值,預(yù)測精度與閾值進行比較,預(yù)測誤差大于閾值則需要加大其權(quán)重,預(yù)測誤差小的閾值則降低其權(quán)重。弱預(yù)測器加強了對難以預(yù)測的樣本的學(xué)習(xí),達到一定精度的弱預(yù)測器經(jīng)過組合形成具有較高預(yù)測精度的強預(yù)測器。
具體的步驟為:輸入地磁數(shù)據(jù)M=[Mx(i),My(i),Mz(i)]T。t=1,2,…,T;
1)初始化訓(xùn)練數(shù)據(jù)樣本的權(quán)重值D(i)=1/m。利用樣本權(quán)重Dr訓(xùn)練弱預(yù)測器。歸一化初始訓(xùn)練數(shù)據(jù)集,根據(jù)樣本的輸入輸出維數(shù)確定神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),初始化BP 神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值,并確定訓(xùn)練函數(shù)。
2)當(dāng)訓(xùn)練第t個弱預(yù)測器時,將訓(xùn)練數(shù)據(jù)訓(xùn)練BP 神經(jīng)網(wǎng)絡(luò)并預(yù)測訓(xùn)練數(shù)據(jù)輸出,計算預(yù)測經(jīng)緯度與實際的經(jīng)緯度之間的半正矢距離Distance,并將Distance 作為誤差e。
3)調(diào)整權(quán)值與計算預(yù)測序列的權(quán)重。如果誤差e超過閾值θ(閾值設(shè)為θ=0.3),則增加超過閾值樣本的權(quán)重值,說明下次迭代運算時需要更加關(guān)注這些樣本,而對于小于閾值的樣本相當(dāng)于減少其權(quán)重值。再計算預(yù)測序列的樣本權(quán)重值:
其中ω(t)表示第t個弱預(yù)測器的權(quán)重值,error(t)表示第t次的誤差。
4)形成強預(yù)測器并輸出測試集預(yù)測的結(jié)果。經(jīng)過T輪后得到強預(yù)測器權(quán)重值
測試集預(yù)測結(jié)果:
其中:test_simu 為每次弱預(yù)測器測試集預(yù)測結(jié)果;output 為最終強預(yù)測器的經(jīng)緯度結(jié)果。
5)最終計算測試集的定位誤差。通過集成學(xué)習(xí)得到的預(yù)測結(jié)果output 與地磁指紋庫中對應(yīng)的位置數(shù)據(jù)進行匹配,根據(jù)步驟2)中的半正矢距離計算公式Distance,得到最終的定位誤差。
為了評估本文提出的算法的性能,本文實驗選擇兩個真實數(shù)據(jù)集進行定位實驗。數(shù)據(jù)集一:地磁數(shù)據(jù)集是UJIIndoorLoc-Mag 數(shù)據(jù)庫[16],數(shù)據(jù)庫 http://archive.ics.uci.edu/ml/datasets/UJIIndoor-Loc-Mag。UJIIndoorLoc-Mag 數(shù)據(jù)庫包括270 個連續(xù)樣本(35 779 離散樣本)作為訓(xùn)練集和11 個復(fù)雜的連續(xù)樣本(4 380 離散樣本)作為測試集,其中采集樣本周期為0.1 s。本實驗從中選取8 943 個離散點作為訓(xùn)練集,11 條路徑(4 380 個離散點)作為測試集。將三軸地磁數(shù)據(jù)作為特征值,經(jīng)緯度坐標(biāo)(lat,lon)作為訓(xùn)練標(biāo)簽。同時離散數(shù)據(jù)劃分成連續(xù)數(shù)據(jù)進行對比實驗,連續(xù)數(shù)據(jù)集是將離散數(shù)據(jù)按5 s 的子樣本長度劃分,如10 s 長度的樣本總共是100 個離散點,按5 s 長度劃分成6 個子樣本,[1~50],[11~60],[21~70],…,[51~100],訓(xùn)練集是8 943 個離散點劃分成540 組連續(xù)子樣本,測試集是4 380 個離散點劃分成231 組子樣本。
4.2.1 實驗及對比實驗
在離散數(shù)據(jù)上進行對比實驗:
對比實驗一:定位實驗是直接利用KNN 算法在離散數(shù)據(jù)進行實驗,k值設(shè)置為1。
對比實驗二:是利用詞袋模型[16],在離散數(shù)據(jù)上提取特征向量。該方法將指紋庫之間的對比轉(zhuǎn)變成三個二位數(shù)據(jù)曲線之間進行對比,簡化定位實驗,并降低室內(nèi)地磁定位誤差。如圖5 為一條路徑(l7n02)的X 軸的地磁數(shù)據(jù)曲線圖,將窗口大小設(shè)置為20,子窗口大小為5。
提取的曲線使用以下規(guī)則進行分配曲線的單詞形狀:如果S1>γ+且S2>γ+時,單詞形狀W↗,表示曲線值增;如果S1<γ+且S2<γ-時,單詞形狀W↘,表示曲線值減少;如果S1>γ+且S2<γ-時,單詞形狀W?,表示曲線中間有最大值;如果S1<γ-且S2>γ+時,單詞形狀W?,表示曲線中間有最小值。否則單詞形狀W?,表示曲線保持不變。如計算路徑(l7n02)子窗口之間20~25前部分和后部分的斜率S1和S2的大?。?/p>
將閾值γ設(shè)置為+0.1 和-0.1,將S1與S2閾值進行比較,判斷該曲線段屬于哪種單詞形狀,并計算在窗口中每個單詞形狀出現(xiàn)的頻率。計算路徑(l7n02)每個單詞出現(xiàn)的頻率為:
將訓(xùn)練集數(shù)據(jù)與測試集數(shù)據(jù)進行特征提取,提取的特征頻率作為訓(xùn)練集和測試集,經(jīng)緯度作為訓(xùn)練標(biāo)簽,同樣利用KNN 的方法進行實驗,k值設(shè)為1。為驗證離散數(shù)據(jù)所具有的信息不足,將離散數(shù)據(jù)的定位誤差與連續(xù)數(shù)據(jù)的定位誤差進行對比,通過對比定位結(jié)果驗證離散數(shù)據(jù)的不足。
在連續(xù)數(shù)據(jù)集上,本文選取數(shù)據(jù)集中劃分的540 組訓(xùn)練集和231 組測試集的數(shù)據(jù)樣本。
對比實驗三:同樣是利用KNN 方法在連續(xù)數(shù)據(jù)集上進行實驗,k值設(shè)置為1。
對比實驗四:在連續(xù)數(shù)據(jù)集上使用DTW 方法進行實驗,最終得到定位誤差。
本文實驗:不需事先知道弱學(xué)習(xí)算法的正確率下限。在數(shù)據(jù)集中,對于弱預(yù)測器,即BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)置為3-6-2-2,將三維地磁數(shù)據(jù)作為輸入,使用雙層隱含結(jié)構(gòu),預(yù)測輸出二維的經(jīng)緯度,即輸出層節(jié)點數(shù)2。網(wǎng)絡(luò)函數(shù)即網(wǎng)絡(luò)隱含層神經(jīng)網(wǎng)絡(luò)傳遞函數(shù)采用雙曲正切S型傳輸函數(shù)(tansig),訓(xùn)練函數(shù)為動量反傳遞的梯度下降BP 算法訓(xùn)練函數(shù)(traingdm)。迭代終止次數(shù)設(shè)為1 000次,學(xué)習(xí)率設(shè)為0.001。訓(xùn)練生成10 個BP 神經(jīng)網(wǎng)絡(luò)的弱預(yù)測器,最終組成強預(yù)測器。閾值設(shè)置為0.3 是經(jīng)過多次實驗得到的結(jié)果,即如果預(yù)測經(jīng)緯度結(jié)果與實際的經(jīng)緯度結(jié)果之間距離大于0.3 m,說明預(yù)測出的結(jié)果與實際結(jié)果之間結(jié)果比較大,需增加其權(quán)重值,從而進入下一輪的弱預(yù)測器。
4.2.2 實驗結(jié)果分析
將上述的幾種方法與本文提出的方法定位結(jié)果進行對比,11 條路徑的定位結(jié)果以及每種方法的平均定位誤差如表1。從表1 的定位結(jié)果中可以看出本文的方法得到的定位結(jié)果較與其他方法性能有不錯的提升。
從結(jié)果可以看出離散數(shù)據(jù)經(jīng)過BoW 提取特征后可以降低其定位誤差。說明地磁數(shù)據(jù)經(jīng)過特征提取后,定位數(shù)據(jù)中包含的信息更多,更利于室內(nèi)地磁的定位。在KNN 的方法在連續(xù)和離散數(shù)據(jù)的定位結(jié)果可以連續(xù)數(shù)據(jù)中所包含的信息相較于離散數(shù)據(jù)更多。就整體的平均定位誤差可以看出,在連續(xù)數(shù)據(jù)上本文所提出方法的定位結(jié)果相較于其他幾種方法的定位誤差有較大的降低。證明本文提出的方法是可行的。同時第9 路徑是一條沒有轉(zhuǎn)彎的路徑,其采集數(shù)據(jù)較少,所以在KNN 和DTW 上的結(jié)果比較好,第2 路徑所走的路徑是最長的,采集的數(shù)據(jù)也是最多的,在其定位結(jié)果較精確,表明在較多地磁數(shù)據(jù)序列上定位結(jié)果較于其他方法更加精確。
表1 幾種方法在同一數(shù)據(jù)集上的定位誤差
圖6 為本文提出的方法與其他方法的定位誤差累積分布函數(shù)(cumulative distribution function,CDF)對比圖。
圖6 定位誤差累積分布函數(shù)
從實驗結(jié)果和CDF 圖,集成學(xué)習(xí)與BP 神經(jīng)網(wǎng)絡(luò)的定位誤差52%的在4.5 m,平均定位誤差在4.68 m。相較于另外幾種方法在基于地磁的定位實驗中,集成學(xué)習(xí)與BP 神經(jīng)網(wǎng)絡(luò)的集成方法能夠一定程度的提升室內(nèi)地磁定位的精度。因此,通過數(shù)據(jù)集的定位結(jié)果,可以看出集成學(xué)習(xí)與BP 神經(jīng)網(wǎng)絡(luò)進行室內(nèi)定位是可行的。
從仿真結(jié)果看出,集成學(xué)習(xí)與BP 神經(jīng)網(wǎng)絡(luò)在基于地磁的室內(nèi)定位結(jié)果優(yōu)于用單個BP 神經(jīng)網(wǎng)絡(luò),以及常用于室內(nèi)定位的一些方法,相較于其他方法雖有些路徑定位結(jié)果,由于數(shù)據(jù)本身的原因?qū)е露ㄎ徽`差較大,但是總體的定位誤差是理想的,因此驗證了AdaBoost-BP 方法的有效性。此外,在室內(nèi)定位技術(shù)中,基于地磁的室內(nèi)定位技術(shù)因不需要額外的基礎(chǔ)設(shè)備,在環(huán)境相對穩(wěn)定的情況下,基于地磁的室內(nèi)定位較與現(xiàn)行的室內(nèi)定位技術(shù)具有很大的優(yōu)勢。在后續(xù)的工作中可以嘗試在融合定位方面進行研究,如對地磁技術(shù)和慣性導(dǎo)航以及Wi-Fi 技術(shù)三者融合進一步提高室內(nèi)定位精度。