張斯尚,殷鋒,袁平
(1.四川大學計算機學院,成都610065;2.西南大學計算機科學與技術學院,成都610041;3.重慶大學數學與信息工程學院,重慶400044)
成熟的衛星定位系統給生活帶來了極大的便利,但是在室內環境下,由于GPS信號無法穿透導致衛星定位的方案無法應用在室內的環境中。先前研究中的一些基于無線電信號的方案(Wi-Fi、RFID、藍牙)會有部署節點和后期維護消耗較大的問題,不利于傳播,成本較大,因此本文采取基于地磁指紋的定位方案。這種類型的方案由于地磁的普遍存在性、不需要部署電子設備等優勢在眾多室內定位方案中脫穎而出[1]。地磁信號在時域上是穩定的,并且在空間上是可區分的,實際的地理位置能夠用不同的地磁信號加以區分,所以地磁RSSI(接收信號強度)很適合用在室內定位場景中。
一般來說,基于地磁的室內定位方案工作流程分為3個步驟[2]:
(1)地磁測量:勘測現場環境、測量采集地磁信號是第一步。不同傳感器測量精度不同,會一定的誤差。測量時的人力消耗等也是考慮的問題之一。
(2)地磁信號指紋庫的構建和維護:RSSI信號的之需要和實際的位置信息進行關聯。第二步就是將實際的語義標簽(坐標)關聯到地磁信號值上,形成一個可以映射的地圖即指紋庫。
(3)目標定位:當用戶請求定位的時候將會采集當前地磁信號,第三步就是將這個信號和指紋庫的信號進行匹配,最終找到它相應的語義標簽(坐標)顯示給用戶。
研究表明地磁值很容易受到建筑材料鋼筋混凝土或者H型鋼的影響而發生一些拉伸,產生一些不同于室外地磁場的干擾,形成一些特定的地磁場。而室內定位的場景一般發生在由鋼筋混凝土或者H型鋼這些材料組建而成的建筑里。所以本文利用了這個特性,提出了改良的構建地磁指紋庫的方法,減少了生成地磁指紋庫的時間和計算消耗,從而改良了算法的特性,使之更加普適。
定位算法步驟目標定位中必不可少的環節就是指紋匹配。當前主流的基于地磁的指紋定位匹配算法是粒子濾波型的,因為它能在非線性的系統中展示出高的有效性?;谥讣y的方案就是非線性的場景,需要快速地匹配指紋庫里的數據,然而借助粒子濾波算法(貝葉斯概率)匹配指紋需要很大的計算量。并且通常為了保障定位的精度,指紋庫里的指紋數量級會很大,這無疑加重了粒子濾波算法的計算消耗,同時時間也產生了延時導致了用戶不能及時獲取定位信息,體驗下降。
根據之前的研究表明[3],地磁的磁通量和RSSI值很容易受到建筑材料影響而拉伸,之前的方案中沒有利用這一特性來改造指紋庫的做法。利用這種建筑環境帶來的優勢,本文提出了一種利用樣條插值來簡化指紋庫構建的方法,使之在能夠達到相同的定位精度的同時精簡了指紋庫,從而減少了目標定位階段的計算消耗,提升了用戶體驗的同時也加快了算法的部署實施。
因為基于指紋庫的定位方法一般在設計數據庫的時候需要先將待定位區域進行劃分[4],選擇參考點進行地磁值的采樣。我們將實驗的場地選為四川大學計算機學院4樓,先將4樓的樓道區域劃分成一塊塊半徑60cm的區域,然后在這些區域里面選出參考點進行數據采集。采集數據的過程中會記錄當前參考點的坐標信息,同一個參考點的多次值將采用K-means算法找出合適值,最后將合適的RSSI值關聯上相關的地理坐標存在數據庫里面。在數據庫更新的時候也采用同樣的方式進行更新。
我們在四川大學計算機學院4樓進行了地磁值的采樣,整棟教學樓主要相關材料是鋼筋混凝土,實驗平面圖如圖1,彩色的點指代實驗環境下的采樣點。我們的采樣機器主要是由一個遠程操控的底座小車和智能手機組成,如圖2。小車由底層程序驅動用來控制前進的距離、速度和方向,用作底座,每個小車是由鋁合金、丙烯酸、銅版和塑料組成,通過小車來控制采樣點水平方向上的變化,盡量減少了采集的地磁信號的影響。通過在底座小車上墊上平滑的書本來控制采樣點垂直高度的變化。實驗中的智能手機采用華為Mate10作為硬件,內嵌了數據采集程序。

圖1 四川大學計算機學院4樓平面圖

圖2 采樣機器底座
在反復測量走廊區域的地磁值后,取得穩定的RSSI地磁值(三軸數據取模值),繪制出走廊區域的RSSI磁場分布圖如圖3,橫軸代表著水平的距離,數軸代表著垂直的距離,不同顏色表示了不同的RSSI值大小。圖中顯示越靠近混凝土墻壁的地磁值越大,有一種明顯的趨勢。這種特征值有明顯變化的曲線可以建立數學模型進行分析,接下來就引入插值的方式來補全地磁指紋庫。

圖3 走廊區域地磁分布值
通常的定位算法的定位精確度和地磁信號的穩定性和指紋庫的精確性成正比。地磁信號越穩定,定位的精度就越高。同樣的指紋數據庫越精確,定位的準確性就越高[5]??梢酝ㄟ^多次采樣,不斷迭代,用濾波器和聚類算法獲得最穩定的值,進而保證地磁信號的穩定性。而指紋數據庫的精確度受到采樣點的間距影響。間距太長,定位精度達不到要求;間距過短,增加采樣工作的消耗,使得數據庫過大影響定位速度,導致不良用戶體驗。
一般來說,參考點的采集間距是設置為20cm,衡量了前期的采集消耗和定位精度,這個間隔距離是能保證定位精度且不消耗多余資源的最佳距離。但是即使是這個最佳距離,不計算沿途行走的時間,在一個4m的區域內采集數據需要消耗10分鐘的時間。插值的方法是用來解決定位區域參考點過多問題的一個很好的方法。插值法可以用來預測參考點之間的一些地磁RSSI值,加入插值法就能增加采樣點之間的距離從而達到減少數據庫構建消耗的目的。
插值的方法是從已知點來預估未知點的近似計算方法,抽象成數學概念即需要構造一個多項式函數,使其通過所有已知點,然后用求得的函數預測位置點。一個典型的使用場景就是用在圖像處理上。圖片的被放大后因為分辨率的問題像素會有缺失,可以用插值的方式用周圍已知的像素來預測未知的像素值,通過諸如線性方程、回歸曲線分析、傅里葉級數、樣條曲線、克里克法、移動均值、三次樣條方法等等來實現。我們采用樣條插值的法案,根據實驗劃分的小區域可以建立三次多項式,結果能夠產生更加平滑的曲線來通過一些已知的值,受到的影響更加小,所以建立三次樣條插值的公式。樣條曲線S(x)是一個分段的定義的公式。假設我們在實驗環境下按照間距L采集N+1個采樣點(x,y):

給出的N+1個采樣點會形成N個區間,在每個分段區間[xi,xi+1],S(x)=Si(x)都是一個三次多項式。滿足S(xi)=yi,我們建立三次多項式為:

給出樣條曲線后帶入已知點(x,y)就可以求出系數ai,bi,ci,di。從而補足未知點的值。
使用插值產生的補足RSSI是用來更新指紋數據庫的,在初始數據庫建立后更新指紋數據庫。在指紋數 據 庫 中 的 值 是 一 個 二 維 的 值 {x,y,mag_x,mag_y,mag_z},(x,y)是空間上的坐標信息,mag_x、mag_y、mag_z分別是地磁信號的三軸數據。
實驗設計將采樣點的間距作為變量劃分出不同大小的采樣區域,以定位精度來評估最后的效果。初始標準數據庫的間距設置為20cm,采用傳統的方式獲得指紋數據庫DB_20。實驗時將間距分別拓展為40cm、60cm和80cm,如圖4,采樣數據后獲得數據庫DB_40、DB_60和DB_80。使用插值法補足DB_40、DB_60和DB_80中間缺失的采樣點值產生20cm間距的新的指紋數據庫DB_40_20、DB_60_20和DB_80_20。
最后比較標準數據庫DB_20和插值補足數據庫DB_40_20、DB_60_20和DB_80_20的相似度,數據表明在實驗環境下,本次方法的采樣間距可以到達60cm,這種補足的數據庫可以和原始的采樣間距為20cm的數據庫相媲美。如圖5和圖6,分別計算了標準數據庫DB_20和插值補足數據庫DB_40_20和DB_60_20,可以看到插值算法補足數據庫和原始的數據庫數據值基本接近。即是說給出的插值算法滿足可以至少將采樣間距擴展到60cm,極大減少了采集過程的工作。

圖4 對比標準采集點和插值補足點

圖5 標準采樣數據庫和插值數據庫DB40的相似度對比

圖6 標準采樣數據庫和插值數據庫DB60的相似度對比
本文的目標是減少指紋數據庫構建消耗,首先是證明建筑材料會對磁通量產生拉伸,較大程度影響了室內地磁指紋,進而指明建立數學模型的可行性。隨后驗證在構建指紋庫的時候使用插值方法可以增加采樣間距,在前期構建上減少了消耗。但是由于指紋庫中的指紋相似度很高,接下來的工作將從補足粒子濾波算法上入手,使數據庫更加的精簡。