江聰世,劉佳興
(1.武漢大學 遙感信息工程學院,湖北 武漢 430072;2.地理空間信息與數字技術國家測繪地理信息局工程技術研究中心,湖北 武漢 430079)
智能終端隨著科技的發展和人們生活水平的提高逐漸得到普及,基于位置的服務(LBS)也迅速發展并呈現出廣闊的前景.借助衛星和基站,利用智能手機進行定位和導航極大地方便了我們的日常生活,但在室內區域內,受限于建筑物對信號的遮擋、在室內區域內信號的多徑效應和信號的非視距傳播方式等原因,傳統的定位手段如基于CELL-ID和衛星的定位方式存在著信號差、定位不準確等缺陷,無法滿足室內定位在定位精度和響應時間等方面的需求.在室內定位技術的研究上,WIFI、藍牙和紅外線等技術的研究是當今的熱點之一,然而這些定位技術都需要事先布設足夠多的基礎設施,不利于技術在實際應用上的推廣,其中WIFI熱點(AP)盡管廣泛的布置于室內建筑中,但WIFI信號的精度受信號衰減、人體阻擋和多徑效應等的影響,精度受到了限制.地球表面空間分布有天然的地球磁場,而在室內區域內,受鋼筋混泥土墻體和建筑物本身結構對磁場的干擾,局部室內區域的地磁場呈現出獨特的分布,這使得在室內區域利用地磁場信息作為位置指紋進行定位成為了可能,借助智能手機上裝載的多種傳感器預先采集信號信息,能夠在無需另外架設設備的情況下即可實現室內定位.
在室內地磁定位的研究中,利用智能手機實現定位的研究較少,主要還是集中在地磁匹配算法及其仿真研究上,如謝仕民等人研究了以平均絕對差、平均平方差、歸一化積相關和Hausdorff距離等幾種原理的匹配方法,并在MATLAB上通過仿真實驗進行對比和比較,最終結果顯示平均絕對差和平均平方差的方法要優于其他方法[1];Subbu在地磁信號的分類特征的基礎上提出一種結合地磁和PDR方法的LocateMe系統,通過動態時間規劃的方法來解決用戶行走速度的變化[2];熊明亮等設計了基于地磁的室內定位系統,在粒子濾波的重采樣過程中通過復制重要粒子以及重新采樣低權值粒子提高了定位的性能[3].而近些年來,隨著移動互聯網的不斷發展,利用智能終端實現地磁定位的研究開始得到重視,芬蘭奧盧大學(Universityof Oulu)的一個研究團隊開發了基于地磁的室內地圖應用InDoorAtlas[4];姜浩等人提出基于Hausdorff距離的地磁匹配的算法[5].黃鶴等人以Arduino Mega 2560 板為基礎設計了一套采集地磁數據的移動平臺,采用了克里金地磁圖數據差值算法輸出2cm間隔大小的柵格地磁圖作為定位基準圖[5].另外,關于通過混合多種定位方法來實現更高精度定位的研究也逐漸得到關注,宋鏢等人使用慣導技術作為地磁定位的輔助手段,通過組合定位方式顯著提高了匹配效率,通過實驗驗證,其定位精度達到了1 m[6];Shu等提出Magicol室內定位和跟蹤系統,通過設計一種雙向的粒子濾波算法來提高精度,并使用動態WIFI掃描策略以節省開銷,實驗證實混合WIFI信號后能有效提升定位精度[7];Han-Sol Kim和Mei Zhang 都利用地磁場和粒子濾波實現室內導航和定位[8-9],其中Han-Sol Kim等通過機器人進行實驗證實了粒子濾波有效的提高了定位精度,Mei Zhang則借助WIFI信號縮小了初始定位范圍,并在Android手機上實現了應用進行實驗.
本文提出了實現室內定位的基本步驟和實現流程,設計的定位系統包括服務器端和部署在Android手機上的移動端兩個部分,以室內地磁場信息為基礎提出了兩種構建位置指紋的方式,并設計了相應的匹配算法,并將待定位區域以網格的形式劃分,以每個劃分的網格為基準采集地磁信息和確定位置.最后通過實驗驗證了系統的有效性,并分析比較了兩種位置指紋各自的特點.
地球表面不同區域的地磁場是不同的,這種不同在較小區域如室內也具有相同的特性.這種差異性代表著不同區域具有各自區別于其它區域的地磁場特征,利用該特征,通過智能手機采集每一個位置獨特的地磁數據,把這一特征作為指紋實現室內定位功能.室內地磁定位算法實質是數字地磁匹配,這種通過度量測量序列和基準圖中任意子圖相關性程度來實現的方法稱作相關分析方法[10].可以把實現室內定位的過程分為離線訓練和在線匹配兩個階段,具體過程如圖1所示.
離線訓練階段的主要內容為生成位置指紋圖.為此需要在指定區域內采集地磁信號,記錄下不同位置處獨特的地磁信號,不同位置處的地磁信息就像每個人獨特的指紋信息,離線訓練階段需要采集室內地磁數據并建立位置信息和地磁信號間的關聯,從而利用對地磁信號的匹配來確定在室內的位置.由于受采集時的設備形態、測量誤差等帶來的影響,通過多次的測量和濾波算法、坐標轉換等預處理來提高數據的精度.
在得到位置指紋圖的基礎上,在線定位階段實現定位功能.為此需要設計合適的匹配算法,對于移動設備實時采集的信息,通過匹配算法和位置指紋圖中的數據進行匹配計算,找出匹配度最高的點作為定位結果返回.
而室內地磁定位系統可以分為采集模塊、數據處理模塊、定位模塊和通信模塊幾個部分構成,其示意圖如圖2所示.
采集模塊在預采集和定位時通過智能手機采集當前位置下地磁傳感器讀數等信息;數據處理模塊則負責對采集到的數據進行預處理,并生成地磁指紋圖;定位運算模塊則在接收到智能手機傳輸的數據后進行匹配運算,得到的定位結果并返回;而通信模塊主要是前后端之間的數據的通信,包括智能手機傳輸采集到的地磁信息和服務器端返回定位的結果.
定位系統的流程如圖3所示,移動設備分兩步采集數據,一是收集室內的地磁分布信息,構建位置指紋圖,二是記錄實時的地磁信息用于定位匹配;借助濾波算法和匹配算法實現數據的處理和地磁匹配,并在智能手機上顯示定位結果.
室內地磁定位系統的涉及兩個方面,一是如何建立手機采集的信號信息和室內不同位置間的聯系,即確定利用哪些信息來構建區域的位置指紋圖;二是如何進行數據的匹配,即度量地磁數據間的相關度的算法.設計合適的位置指紋是實現定位的基礎,合適的定位算法則有助于提高定位精度和準確度并減少定位的時間.
室內的地磁信號雖然有著良好的區分度,磁通門磁力計也具有高分辨率和良好的魯棒性[11],但手機上的地磁信號讀數是以手機坐標系為基準的,Android智能手機的手機坐標系如圖4所示,其x軸指向手機屏幕的右方,y軸指向手機屏幕的正上方,而z軸垂直于手機屏幕,指向手機屏幕之外[12],手機坐標系與地面坐標系.手機坐標系不受設備的運動或轉動的影響,坐標系的改變跟隨著手機姿態的變化.
智能手機上的地磁傳感器利用的是霍爾效應,地磁傳感器產生的電壓受傳感器三個軸上的磁場強度和極性影響,將電壓轉換數字信號來表示三個方向上的磁場強度.智能手機中的地磁傳感器被封裝在一個小型電子芯片中,傳感器的數值是基于智能手機的三軸坐標系來表示的.隨著手機的翻轉、移動、傾斜等變化,手機坐標系相對于地面坐標系發生了改變,地磁傳感器的數值也隨著手機坐標系變化.這使得在同一位置上,智能手機不同的姿態對應著不同的地磁傳感器信息,這為地磁定位帶來了困擾.為此我們在進行定位和數據采集時盡量使手機保持水平的狀態以減少姿態所帶來的影響.在位置指紋的設計上,也需要考慮到如何減小這一因素對定位帶來的影響,為此設計了兩種不同的處理方法.
2.1.1 水平化位置指紋
在記錄下地磁數據的同時記錄下陀螺儀的信息,Android系統中陀螺儀的讀數正代表著手機相較水平面的偏轉[13],而地磁傳感器采集到的數據是以手機坐標系為基準的,借助陀螺儀得到的手機偏轉信息,將地磁數據投影到水平坐標系,即將地磁信息由圖4右所示的手機坐標系投影到圖4左的地球坐標系的x軸和y軸所在平面,而分解后x軸和y軸的數值是原始數據在其上投影的和,水平化的步驟如下:
設地磁傳感器采集的原始數據分別為Magx、Magy、Magz,陀螺儀采集的數據為Dirx、Diry、Dirz.

sinDirz×sinDirx×sinDiry),
(1)
(2)
sinDirz×sinDirx×cosDiry)
(3)
(4)
在y軸方向上的地磁分量My
cosDiry)-cosDirz×sinDirx×
sinDiry),
(5)
(6)
(cosDirz×sinDirx×cosDiry)),
(7)
(8)
通過以上處理后,每一個位置處得到形式為(Mx,My)的一條數據,所有位置數據的集合作為定位的地磁指紋圖供后續定位使用.
這種處理方法每個位置只需存儲一條數據,且位置指紋不依賴于手機在這個位置處的偏轉和朝向,當然,在將原本傳感器采集的三維數據轉換成二維數據,在加快了定位計算速度的同時也降低了數據的區分度.而且經試驗,陀螺儀采集的數據的準確度還不足以準確的反應出手機的實際形態,這使得上述計算中用到的各個方向角信息不夠準確,使經過綜合處理后的位置指紋有著較大的誤差.
2.1.2 方向和地磁的混合位置指紋
進行水平轉換的處理會降低原有地磁數據的辨識度,且這樣處理的位置指紋要求準確的得到手機的姿態信息,這為位置指紋的搭建帶來了困擾.我們在要求定位時智能手機保持相對地面水平的前提下,可以只考慮手機的朝向,即方向,這樣一來,在一個位置上,智能手機只存在著方向上的差異,通過預先收集手機在每一個方向上地磁傳感器的讀數,記錄下每一個位置上智能手機在各個方向上的地磁信息.智能手機方向的判定可以通過方向傳感器實現,這樣一種方向信息和地磁信息相結合的定位方法,包括了智能手機在一個位置上地磁數據的多種可能,能夠有效的減少手機姿態變化對地磁傳感器讀數的影響.
位置指紋以如下的形式構建,在每一個位置的數據,都以如下形式存儲:
(9)
其中,i代表在這一位置采集的數據的條數.

這種處理方法在完整保存原始地磁數據的同時又能夠結合手機的方向信息做判斷,在進行數據采集時,在每個位置,持智能手機繞原地旋轉一周,記錄下手機在不同方向時的地磁場信息,在進行定位計算時,通過調節方向信息和地磁信息的權重值達到最好效果.這種方法的缺點在于在每一個位置都需要繞原地一圈,采集不同方向的地磁數據,在室內區域較大,需要采集的點夠多的時候,需要更長的時間來收集室內的地磁場分布信息,也增加了匹配計算的數據量.此外,實際的采集過程中,如果是由人來操作,在旋轉的過程中比較難把握住手機方向的細微變化.
地磁匹配實質上就是利用已經建立的地磁矢量信息與實時采集的某點的地磁特征信息按照一定的、人為規定的方法與準則進行比較,計算出兩者之間的相似度或相關性,從而找出位置指紋中和待定位數據匹配度最高的點.本文中的匹配算法以歐式距離為基礎,針對兩種位置指紋的特點設計了兩種匹配方法.
2.2.1 最鄰近法
最鄰近法是一種簡單而又直接的匹配方法,適用于多種位置指紋.鄰近算法也可以看作是k最鄰近法(KNN)的一種特殊情況,假定待計算的數值能夠用歐式空間里的點來表示,根據最優解判斷準則,選擇歐式空間,即歐幾里德空間中和待匹配點之間距離最近的點作為結果.最鄰近法中計算主要以歐幾里德度量為標準,即歐式距離,是一種通用的定義距離的方法,能夠代表某一確定維度中所處的兩個點的實際的距離.最鄰近法通過歐式距離來進行衡量,是一種確定性的匹配.
針對進行坐標轉換后數據格式為(Mx,My)的位置指紋,位置指紋數據庫中的數據可以表示為
(10)
式中,n代表地磁矢量圖中點的總數
計算待定位數據和地磁矢量圖中每個矢量間的歐式距離Li:
(11)
找出Lmin=min{Li}.此時Lmin對應的點作為定位的結果.
2.2.2 范圍搜尋定位算法
對于結合了方向和地磁數據的位置指紋,地磁矢量圖存儲的數據可以表示為
(12)
式中:m代表地磁矢量圖中點的總數;n為整個位置指紋數據庫中數據的條數,一個位置信息Lock代表這m個點中的一個,它對應著方向信息Ori和地磁信息Mx,My,Mz不同的多條數據.
由于引入了手機的方向信息,而在同一個位置,手機的方向也會影響地磁傳感器的讀數,因而先由手機當前的方向信息從位置指紋庫中篩選出方向相近的數據,這些數據是每一個位置相同方向上的地磁傳感器數據,再以歐式距離為基礎計算待定位數據和這些數據間的相關性.
|Ori0-Orii|>λ(其中λ為預先設定的閾值,i為從1到n的整數)
則從這次定位計算的位置指紋數據集中剔除該條數據.
對于篩選后的數據集,計算待定位數據和數據集中的每一組數據的歐式距離:
Li=
(13)
找出Lmin=min{Li}.此時Lmin對應的點作為定位的結果.
為了驗證本文提出的地磁數據處理算法和地磁定位算法的性能,設計實驗進行全面的評估.實驗地點選擇武漢大學信息學部圖書館三樓的社會科學圖書借閱區,如圖5所示.因圖書館有精確的平面圖,能準確獲取每個館室的長寬信息,利于精確計算定位的精度,且圖書館整齊擺放的書架為選取定位參考點提供了便利.
圖5中,確定了定位區域后,將大小為約為100 m2的區域劃分成11×8的網格,網格間的間隔約為1 m,這也代表著定位結果能夠達到的最高區分度.在每個網格的中心處采集數據,采集時手機盡量保持水平.
由于定位方法的不同,在每個網格處需要用不同的兩種方式來采集信息.對于由水平化處理生成的指紋,智能手機在同一位置處多次采集信息;對于結合了方向和地磁的混合指紋,在采集數據時,在網格中心處握著智能手機旋轉一圈,在旋轉的過程中記錄下數據,得到了在每一個位置,手機指向不同的方向時地磁傳感器的數值.采集的過程和采集得到的數據如圖6所示.采集完所有位置的傳感器數據后,使用個人電腦架設服務器,將地磁指紋圖存儲在服務器端,由服務器端進行數據的處理.
由于外界環境的影響、傳感器自身的誤差和移動設備的影響,地磁數據中摻雜噪聲信號,濾波算法用以剔除或減少數據中的干擾量,如移動設備在實際采集數據的過程中由于狀態不穩定如突然的抖動和傾斜,地磁數據指紋中可能會出現波動過大的點,這會影響定位的準確度和精度.差值濾波算法用以剔除地磁數據中的異常點.此外,使用中值濾波對信號數據作平滑處理,中值濾波的理論是基于排序理論基礎的,它將一連串連續信號的信號值用鄰域內所有信號值的中值來替代.這樣混雜在信號量中的隨機脈沖噪聲所帶來的影響就會大大降低,所以采用中值濾波,能在很好的保護原始信號值的情況,又能很好的消除隨機脈沖噪聲的干擾.
在對原始數據進行濾波處理后,存儲的原始數據如圖7所示,針對不同的位置指紋采取不同的構建方法,從處理后的數據中提取出不同的信息.
對于前一種二維位置指紋,從數據中提取出方向傳感器和地磁傳感器的數值,通過式(1)到式(8)所示的處理方法進行水平化,對于每一個網格,都得到了一條形式為(Mx,My)的數據代表這一個網格的地磁信息,所有網格處數據的集合構成了由水平化處理方法生成的位置指紋.
對于混合方向和地磁信息的位置指紋,對每一條采集的數據,提取出采集的位置點信息、采集時手機的方向信息和地磁傳感器三個軸的數值,提出得到的數據以式(12)所示的形式,將這些存儲在服務器端.
在完成了上述步驟,也就是離線訓練階段后,得到了代表一個室內區域內地磁場分布的數據集,數據集中的每一條數據都代表著室內某一位置的地磁信息,例如對應方向和地磁混合的位置指紋的數據集,其中的每一條數據存儲的是室內某一位置上手機在某一個方向上的地磁場信息.利用這些信息,在室內定位階段,通過實時的地磁信息和預先存儲的地磁信息之間的匹配來實現定位.
智能手機通過網絡與服務器建立連接.在預先采集并制作了地磁指紋圖的室內區域,手持安裝地磁定位程序的智能手機,在任意位置點擊移動設備上的定位按鈕進行定位,移動設備通過網絡將采集的數據發送至服務器,服務器進行數據處理和計算后,將定位的結果返回給移動端,兩種位置指紋進行定位時智能手機的顯示如圖8所示.記錄下服務器端返回的定位結果和當前實際所處位置.
圖8定位頁面及定位結果的顯示在這一區域內進行足夠多次的定位實驗,定位結果的統計如表1所示.其中,定位的準確率是實驗過程中定位結果和實際所在的位置相一致的次數和定位總次數間的比率,定位的精度是定位所劃分的網格相鄰中心點間的距離,定位的計算時間指服務器接受到智能手機傳來的數據到計算出定位結果的時間,而網絡傳輸時間由智能手機端發送數據到接收到服務器返回的結果的時間間隔減去定位計算時間得到.

表1 地磁定位實驗的結果
從定位結果表中可以看出,兩種位置指紋都成功的借助地磁數據實現了室內定位,而在網絡良好的情況下定位的速度也能滿足實時性的要求.結果顯示,水平化處理方法的定位準確率并不高,只有64%,這一方面是這種水平化的處理方法抹去了原始數據中的很多差異化信息,降低了位置指紋的區分度,此外手機形態的變化是由陀螺儀得到的,雖然陀螺儀能夠很好的反映出手機變化的趨勢,但并不能非常準確的代表智能手機當前的形態,這使得計算時用到的陀螺儀的數據信息原本就有較大的誤差.
對于方向與地磁混合的位置指紋的定位結果,86%的定位準確率已經能夠滿足室內定位的實際需求了,進一步分析每次定位時實際進行定位的位置在劃分的網格中的相對位置,在這50次定位實驗中,有11條是在靠近網格中心處進行的,有12條是在靠近網格邊緣處進行的,有27條是在二者之間的區域.處于不同相對位置的定位準確率如表2所示.

表2 相對網格不同位置的定位結果表
可以看到定位時若處于網格中心區域,其定位的準確率高于處于網格間邊緣處的準確率,即越靠近預先采集數據的位置,定位的準確率越高.這說明將區域劃分成網格的位置指紋生成法,雖然減少了需要采集的數據,簡化了地磁指紋生成的流程,但網格中心處的數據無法準確的反映網格邊緣處的信息.
實驗結果證實了地磁定位系統的可行性,也驗證了本文提出的地磁定位算法和數據處理算法的效果,特別結合方向和地磁信息的定位方法.通過預先采集區域內的信息建立位置指紋圖,移動設備通過采集實時的信息進行匹配,能夠獲得當前所在的位置.在衛星定位或基站定位等方式受限的區域能作為一種很好的代替手段,同時也使得室內定位技術有了更多的實現手段.本文提出的是以地磁信號為基礎的定位方式,如果能進一步優化位置指紋的設計,例如結合室內定位的其他熱點技術如基于WIFI、RFID和藍牙等的定位方式進行混合定位,綜合各自的特點,能有效提高定位精度,推動實際應用的發展.