賈玉福,劉文平,胡勝紅
(1.湖北經濟學院信息管理與統計學院,湖北 武漢 430205;2.湖北經濟學院信息工程學院,湖北 武漢 430205)
機器人和移動手持終端的室內導航應用需求的增長,促使室內定位技術逐漸成為研究熱點。當前對室內定位技術的研究主要是利用紅外、藍牙、超寬帶UWB(Ultra Wide Band)、RFID和WiFi等短距離無線通信技術[1 - 4],采用三邊定位法[5,6]或位置指紋法[7]來實現。由于信號多徑效應的影響,測距誤差使三邊定位法很難保證定位精度與系統穩定性[8]。位置指紋法的定位精度主要依賴指紋數據庫中的樣本數據質量[9],但傳統的基于RSSI的指紋數據往往受到諸多因素的影響,采樣數據隨時間和環境變化而動態變化,導致實時采樣與指紋數據庫中的樣本數據出現明顯失配[10]。為此,Xu等人[11]提出了利用計算機視覺信息輔助進行室內定位的算法,實踐證明,利用計算機視覺技術進行圖像空間結構信息交叉比對,可在室內定位實踐中取得更好的結果[11 - 14]。受此啟發,本文利用圖像興趣點的尺度不變特征SIFT(Scale-Invariant Feature Transform)[15 - 21]和WiFi場景信息進行室內定位。定位過程分為前期準備階段和實時定位階段。在前期準備階段,首先利用坐標變換原理分析并建立圖像平面坐標與世界坐標系坐標之間的數學關系,然后選定室內場景中的信標(即根據SIFT算法通過多角度測試比對出的穩定的圖像興趣點),計算信標的SIFT特征,根據室內建筑設計圖獲取信標的定位坐標信息。在實時定位階段,首先通過SIFT算法進行信標識別,再利用上述數學關系求解觀察點的位置與信標的距離,最后利用三邊定位法實現物體定位。針對定位求解得到多個定位坐標的情況,本文利用堆棧自編碼器SAE(Stacked Auto Encoder)與DNN相結合的深度學習網絡結構,以多個自定義WiFi特征為輸入數據,11個距離分類類別為標簽,輔助判別觀察點的真實定位信息。
本文利用4個坐標系來分析三維場景中物體的坐標與其在圖像中對應的平面坐標之間的數學關系。坐標系分別為圖像像素坐標系OpUV、圖像物理坐標系OXY、攝像機坐標系OcXcYcZc和世界坐標系OwXwYwZw。假定坐標系之間的關系如下:圖像像素坐標系與圖像物理坐標系處于同一平面,但圖像像素坐標系的原點在圖像的左上角(單位為像素),圖像物理坐標系的坐標原點在圖像的中心(單位為mm),如圖1a所示。攝像機坐標系的XcYc平面與圖像物理坐標系XY平面平行,原點位于鏡頭位置。世界坐標系的XwYw平面位于地面,如圖1b中的ABCD平面。世界坐標系經過仿射變換可以轉化為攝像機坐標系,攝像機坐標系經過投影變換可以變換到圖像物理坐標系。

Figure 1 Camera projection model圖1 攝像機投影模型
設攝像機焦距為f,水平視角和垂直視角分別為2α和2β,圖像的寬與高分別為Wc和Hc,像素點坐標(u,v)與圖像物理坐標中對應的點(x,y)之間的關系為:
(1)
點(x,y)與攝像機坐標系中對應點的坐標(xc,yc,zc)(注意:zc<0)之間的關系為:
(2)

(3)
反過來,攝像機坐標系中點(xc,yc,zc)與世界坐標系中點(xw,yw,zw)之間的關系為:
(4)
合并式(1)、式(2)、式(4),可得式(5):
(5)

(6)


(7)
由圖1b可知,攝像機在地面的垂直投影為點H(0,-l),則攝像機與信標(xw,yw,zw)的地面水平距離為:
(8)
將式(6)和式(7)代入式(8)中可知,影響距離d求解精度的因素有2個:攝像機的高度h和俯仰角γ。為比較二者對距離求解精度的影響,使用HUAWEI Mate 9手機在如下條件下進行采樣:信標距離地面的高為1.4 m,手機距離地面1.5 m,手機與信標的水平距離為10 m。將采樣結果與上述參數代入式(6)~式(8)中,改變手機的俯仰角,其他參數不變,得到的距離變化數據如表 1所示。固定俯仰角γ(=83.5°)不變 ,改變手機與地面的距離,其他參數不變,得到的距離變化數據如表2所示。對比表1和表2的數據可知,手機與地面的距離對距離求解的影響較小,而俯仰角則對距離求解起關鍵作用,而且在室內定位實踐中不具備實時準確測量俯仰角γ的條件,但可以對h值有較好的估計。因此,本文提出的算法基于如下過程:假定h已知,引入圖像中2個信標之間的平面距離作為約束條件求解未知參數俯仰角γ,再根據γ求出信標在世界坐標系中的坐標,最后根據手機到2個信標的平面距離實現定位。

Table 1 Distance data varying with angle of pitch表1 隨俯仰角變化的距離數據

Table 2 Distance data varying with altitude表2 隨高度變化的距離數據

對于在3.1節求得的2n個定位坐標,本文利用WiFi信息和深度神經網絡DNN來識別哪一個是觀察點的真實定位坐標。其基本思想是:利用DNN分別計算在觀察點處采集的WiFi信息與在2n個定位坐標處的WiFi信息的相似度,選取相似度最大時對應的定位坐標作為觀察點的真實坐標。其具體過程分為訓練階段和預測階段:在訓練階段,首先將定位場景劃分為網格,在網格的交叉點處預先采集WiFi信息,然后將距離在10 m內的任意2個交叉點組成1對,并將成對的交叉點的實際距離通過四舍五入取整離散化為整數,再將每對交叉點的WiFi信息轉化為1個特征矢量fv(特征矢量的產生方法見3.3節),把成對節點的特征矢量fv作為輸入,離散化的距離作為分類標簽ci,如圖2所示,在1個具有3層SAE和2層DNN的網絡上進行訓練,分類器采用Softmax。在預測階段,首先判斷各個定位坐標是否在網格內,如果是,則用與定位坐標最近的網格交叉點的WiFi信息作為定位坐標的WiFi信息,否則將該點拋棄,然后分別將觀察點處采集的WiFi信息與2n個定位坐標的WiFi信息轉化為2n個特征矢量,以2n個特征矢量為輸入,利用模型分別計算距離。最后選取距離最小時對應的定位坐標為觀察點的定位坐標。

Figure 2 Distance estimation network learning model圖2 距離估計的網絡學習模型

設APs為在網格內所有交叉點檢測到的 WiFi AP(Mac地址)集合,APs的維度為ns=|APs|。對于位置a,設Lsa為在APs內Wifi AP對應的WiFi RSS的絕對值集合,即當APs(i)∈APa且APs(i)=APa(j)時,Lsa(i)=La(j),APs(i)?APa時,Lsa(i)= 99(i≤ns,j≤|APa|)。求解Lsa中的每1個元素在Lsa中按升序排列產生的排名,記為Csa。同理,對于位置b,產生Csb。對于i≤ns,求解|Csa(i)-Csb(i)|共產生ns個特征。將此ns個特征與上述78個特征按同一順序排列共同組成成對位置點a,b的特征矢量fv。
綜上所述,本文提出的定位算法計算過程如下:
(1)通過手機拍照得到前方圖像,利用信標識別算法識別出圖像中的2個信標m1、m2,獲取信標的圖像坐標(u,v);
(2)根據信標m1和m2的定位坐標計算2個信標間的距離Distm1,m2;
(3)根據fm1,m2(γ)=0求解γ,得到γ的n個解;
(4)將n個γ分別代入式(7),計算信標m1和m2的yw,然后將yw代入式(6),計算信標m1和m2的xw;
(5)將xw和yw代入式(8)中計算觀察點與信標m1和m2的平面距離;
(6)根據觀察點與信標m1和m2的平面距離、m1和m2的定位坐標計算得到2n個定位坐標;
(7)將觀察點分別與2n個定位坐標組成2n對位置點,利用WiFi信息轉換得到的特征矢量,在SAE+DNN模型上計算得到2n個距離類別;
(8)選取最小距離類別對應的定位坐標為觀察點的定位坐標。
為了測試算法的性能,我們在武漢大型購物商場凱德1818進行了大量的實驗。如圖3所示,根據室內地磚的邊界線將環境劃分為N×M的網格。收集1組位于不同網格交叉點的成對WiFi信息,并依據網格計算成對交叉點的距離組成數據集。在SAE和DNN模型的訓練階段,實驗在CPU為Intel酷睿i7-4790,顯卡為GTX1060的環境上運行,模型采用Tensorflow框架實現,以54K個節點對的WiFi特征矢量作為模型的輸入,節點對的離散距離作為標簽,在整個數據集上訓練30代,訓練時間約為25 h。在定位階段,實驗設備采用HUAWEI Mate 20X手機,系統為Android 9.0,圖像分辨率為 2736×3648,攝像機水平視角為52.47,垂直視角為 66.37。為了充分分析攝像機高度、觀察點與信標的距離、信標的高度等因素對定位精度的影響,本文設計了11套方案(如表3所示)進行實驗。在不同的高度豎直固定手機,繞Xc軸旋轉手機逐漸縮小俯仰角,每旋轉1次便對前方含有信標的場景拍照采樣。每套方案采樣10次。每次定位計算的耗時為毫秒級。

Figure 3 Experimental environment圖3 實驗環境
方案1~5是在信標高度和攝像機高度等參數相同的條件下,觀察攝像機與信標地面距離d的變化對定位誤差的影響;方案6~8、方案9~11分

Table 3 Design of experimental scheme表3 實驗方案設計 m
別是在攝像機高度、攝像機與信標地面距離d等參數相同的條件下,觀察信標高度的變化對定位誤差的影響;方案6~11是在信標高度、攝像機與信標地面距離d等參數相同的條件下,觀察攝像機高度變化對定位誤差的影響。表4是11套方案的測試結果統計分析。由表4可知,所有方案的定位誤差都在1 m以內,且均值在0.5 m以下,在d為12、10 m時出現過誤差較大的情況。從方案1~5的結果來看,距離d對誤差有較為明顯的影響,即平均誤差隨著距離d的增大有增大的趨勢,并且誤差波動較大;分別從方案6~8、方案9~11的結果來看,信標高度的變化對測試誤差沒有明顯的影響;從方案6~11的結果比較來看,攝像機高度變化對定位誤差沒有明顯的影響。
根據3.1節中fm1,m2(γ)=0可求得n個俯仰角γ,根據信標m1、m2可以求出2n個定位坐標,

Table 4 Error statistics results of 11testing schemes表4 11套實驗方案的測距結果誤差統計
利用DNN模型對最佳定位坐標作出判斷。本文以方案1的10次采樣結果為例評價DNN的有效性。由表5可知,根據信標m1、m2求得的4個定位坐標可以分為2類,坐標1和坐標2在信標m1和m2的同一側,坐標3和坐標4在信標m1和m2的另一側。通過DNN判斷可以將坐標1和坐標2作為真實選項挑選出來,但很多時候(編號1、2、3、4、5、6、7、8、10)由于坐標1和坐標2的預測結果相同,DNN也難以抉擇,此時本文選擇依據最大俯仰角計算的定位坐標(即坐標2)。

Table 5 Positioning coordinate analysis of 10 samples表5 10次采樣的定位坐標分析
本文選取Horus[22]、Argus[11]和CLIKLoC[23]3個典型的定位算法進行比較。Horus算法是單純依賴RSS的經典方法,Argus和CLIKLoC算法是近年來利用視覺線索增強定位比較成功的算法。從圖4來看,本文算法在定位精度方面明顯優于Argus和Horus,略優于CLICKLoC。

Figure 4 Positioning errors comparison of among 3 algorithms圖4 3種算法的定位誤差比較
本文利用單目視覺測距和三邊定位法獲得觀察點的多個虛擬定位坐標,然后通過對WiFi場景信息進行計算判別獲得真實的定位坐標值。在大型商場的大量實驗驗證了算法的可靠性和穩定性。從實驗結果可知,觀察點與信標的較遠距離(>10 m)是影響定位精度和穩定性的主要因素。在室內合理布局信標可以有效緩解這個問題,因此本文下一步的工作是研究如何布局信標。