張麗娜,彭 力
(1. 浙江安防職業(yè)技術(shù)學(xué)院信息工程學(xué)院,浙江 溫州 325000; 2. 江南大學(xué)信息學(xué)院,江蘇 無錫 214000)
利用單相機(jī)和神經(jīng)網(wǎng)絡(luò)估計的室內(nèi)定位導(dǎo)航
張麗娜1,彭 力2
(1. 浙江安防職業(yè)技術(shù)學(xué)院信息工程學(xué)院,浙江 溫州 325000; 2. 江南大學(xué)信息學(xué)院,江蘇 無錫 214000)
由于三維場景與二維圖像之間存在著非線性和高度復(fù)雜的關(guān)系,使用相機(jī)對用戶的位置進(jìn)行估計需要建立復(fù)雜的數(shù)學(xué)模型。針對該問題,本文提出了使用神經(jīng)網(wǎng)絡(luò)估計的單相機(jī)進(jìn)行室內(nèi)定位的方法。室內(nèi)定位系統(tǒng)的主要優(yōu)點(diǎn)是LED能夠使用可見光通信發(fā)送其位置信息。首先,該方法充分利用LED光線的投影不變性,借助圖像傳感器通信(ISC)完成虛擬直線的構(gòu)建;然后,運(yùn)用神經(jīng)網(wǎng)絡(luò)估計從該虛擬直線中提取出相機(jī)的方向信息;最后,使用一個簡單數(shù)學(xué)方程估計用戶位置。仿真試驗考慮了4種情形,結(jié)果表明,本文提出的方法性能優(yōu)于同類方法,對于一個房間內(nèi)的大部分地方,定位誤差在35 mm以內(nèi)。
室內(nèi)定位;單相機(jī);神經(jīng)網(wǎng)絡(luò)估計;投影不變性;定位誤差
得益于通過智能手機(jī)提供基于位置的服務(wù),以及按需服務(wù)所具備的市場價值,室內(nèi)定位技術(shù)[1]已經(jīng)成為未來智能服務(wù)的重要研究課題。其應(yīng)用十分廣泛,如商場中的商品定位[2]、停車場的車輛導(dǎo)航[3]等。盡管GPS是目前最流行的定位系統(tǒng),但GPS并不適用于室內(nèi)導(dǎo)航[4],因為室內(nèi)環(huán)境和高層建筑會遮蔽信號。與GPS不同,智能手機(jī)配備了很多傳感器(如加速計、陀螺儀、磁傳感器和相機(jī)),為開發(fā)室內(nèi)導(dǎo)航技術(shù)提供了可能性。
一般而言,使用相機(jī)估計用戶的位置具備可行性,這是因為相機(jī)提供了三維世界和二維圖像之間的映射[5]。在已知世界坐標(biāo)系和相機(jī)坐標(biāo)系之間的相對旋轉(zhuǎn)與平移情況下,可以對用戶位置進(jìn)行計算。該技術(shù)也被稱為相機(jī)外參標(biāo)定,即通過構(gòu)建一個投影矩陣以完成相機(jī)標(biāo)定[6]。但是,為估計出一個投影矩陣,必須要得到至少6個空間點(diǎn)坐標(biāo)及其對應(yīng)的圖像點(diǎn)。而執(zhí)行最小二乘法或奇異值分解法,從投影矩陣中提取旋轉(zhuǎn)矩陣,會使得計算復(fù)雜度變得非常高。此外,還必須獲悉相機(jī)之間的相關(guān)旋轉(zhuǎn)和平移。
用戶位置定位問題的求解一般在圖像傳感器通信[7](imaging sensor communication,ISC)中,通過對LED光強(qiáng)度進(jìn)行調(diào)制,以傳送數(shù)據(jù)并保持恒定的照明度,再使用一個相機(jī)對數(shù)據(jù)進(jìn)行接收和解碼,關(guān)于ISC的更多信息可以參閱文獻(xiàn)[7]。
為避免ISC求解復(fù)雜的數(shù)學(xué)模型,一般可以利用神經(jīng)網(wǎng)絡(luò)。由于神經(jīng)網(wǎng)絡(luò)能夠求解困難和多樣化的問題,因此被用于確定二維圖像和三維世界的坐標(biāo)關(guān)系。如文獻(xiàn)[8]使用了一個3層前饋神經(jīng)網(wǎng)絡(luò),從兩個相機(jī)拍攝的影像坐標(biāo)內(nèi)提取世界坐標(biāo)。然而,僅使用一個相機(jī)也可能完成這一目的。文獻(xiàn)[9]提出的方法采用了一個多層感知器神經(jīng)網(wǎng)絡(luò),將圖像坐標(biāo)轉(zhuǎn)化為世界坐標(biāo)。文獻(xiàn)[10]提出了基準(zhǔn)標(biāo)記的室內(nèi)定位技術(shù),在提取一個標(biāo)記特征后,對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,以估計用戶位置。然而,標(biāo)記方法需要明確的特征標(biāo)識,對標(biāo)記的坐標(biāo)信息要求較高。
與上述方法不同,本文依靠ISC接收LED的坐標(biāo)信息,然后構(gòu)建一條穿過LED虛擬投影不變的直線。使用一個簡單的幾何方程和一個神經(jīng)網(wǎng)絡(luò)估計相機(jī)指向。而且考慮了一個較廣范圍的旋轉(zhuǎn)矢量。
本文假設(shè)每個LED都安裝在一個平面(天花板)上,且均平行于世界坐標(biāo)系的XOY平面(笛卡爾坐標(biāo)系),一個LED和一個手機(jī)之間通信的發(fā)起需要LED和手機(jī)相機(jī)之間的視距,具體如圖1所示,圖中Pitch為俯仰角,Roll為翻滾角,Yaw為偏航角。一般可以考慮相機(jī)的xoy平面平行于世界坐標(biāo)系的XOY平面。在這種情況下,相機(jī)坐標(biāo)系和世界坐標(biāo)系之間的旋轉(zhuǎn)則變成了z軸(偏航)的一個旋轉(zhuǎn)矢量以及x軸(俯仰)和y軸(翻滾)的一個可忽略的旋轉(zhuǎn)矢量。如圖1(a)所示,相機(jī)的xoy平面平行于世界坐標(biāo)系的XOY平面。由于LED能夠通過自身的光線鏈路傳送其坐標(biāo)信息,可以計算出在世界坐標(biāo)系統(tǒng)中連接任意兩個LED的直線的斜率。由此可以建立一個關(guān)系,以計算相機(jī)坐標(biāo)的x軸與世界坐標(biāo)系X軸之間的角度,該角度即是z軸(偏航)的一個旋轉(zhuǎn)矢量。
這里X軸和Y軸的旋轉(zhuǎn)矢量是可忽略的。偏航角度的計算如圖2所示。如果(XW1,YW1,Z)和(XW2,YW2,Z)為兩個LED的坐標(biāo)信息,則有
(1)
式中,θWX為一個平面中連接兩個LED直線的傾斜角,該平面平行于世界坐標(biāo)系的XOY平面。
如圖2所示,(xc1,yc1)和(xc2,yc2)分別為一個相機(jī)的圖像平面上代表LED圖像的兩個點(diǎn),則通過相機(jī)的z軸旋轉(zhuǎn)矢量進(jìn)行考慮,利用在世界坐標(biāo)系中連接兩個LED的直線斜率(θWX),以及在相機(jī)坐標(biāo)系中連接兩個LED圖像的直線斜率,可以計算出相機(jī)坐標(biāo)系和世界坐標(biāo)系之間的相關(guān)旋轉(zhuǎn)。因此有
θxX=θcx-θWX+kπ
(2)
式中,θcx和k滿足如下關(guān)系
(3)
式中,θxX是相機(jī)坐標(biāo)系的x軸和世界坐標(biāo)系的X軸之間的角度,也是y軸和Y軸之間的角度,因為X軸和Y軸在任何一個坐標(biāo)系中均為正交。根據(jù)圖2,θxX是一個相機(jī)坐標(biāo)系到世界坐標(biāo)系的Z軸的旋轉(zhuǎn)矢量。因此,世界坐標(biāo)系到相機(jī)坐標(biāo)系統(tǒng)的偏航角(κ)為
κ=π-θxX
(4)
圖1 世界坐標(biāo)系統(tǒng)和相機(jī)坐標(biāo)系的示意圖
以上解釋僅當(dāng)偏航小于π時是正確的。在偏航大于π時也可以對偏航角度進(jìn)行度量。算法1給出了如何度量偏航大于π的偏航角。該算法是基于鏡頭的特有性質(zhì),即如圖2所示,鏡頭總是在成像平面上將圖像反轉(zhuǎn)。此處LED1和LED2在一個成像平面中互相交換位置。由此可以得出xc1>xc2以及XW1 圖2 偏航(Yaw,Z軸旋轉(zhuǎn)矢量)角度的計算 因此,總結(jié)如下:對于角度較小的俯仰和翻滾,算法1是可行的。在俯仰和翻滾的角度較大的情況下,LED將會失焦,將無法度量相機(jī)位置。 算法1: 偏航角>π的偏航角度糾正 輸入:偏航>π(xc1,yc1)、(xc2,yc2) 輸出: 偏航 如果 偏航角<π/2 如果xc1-xc2<0 偏航=偏航+π; 否則 偏航=偏航; end 如果 偏航≥π/2 如果yc1-yc2>0 偏航=偏航+π; 否則 偏航=偏航; end end 神經(jīng)網(wǎng)絡(luò)可以對輸入和輸出間的任何關(guān)系(線性或非線性)進(jìn)行學(xué)習(xí)。在本文的模型中使用了多層感知器(multiple-layer perceptron,MLP),MLP能夠通過監(jiān)督式訓(xùn)練及誤差反向傳播算法,求解困難和多樣化的問題。 2.1 利用神經(jīng)網(wǎng)絡(luò)估計旋轉(zhuǎn)矢量 訓(xùn)練神經(jīng)網(wǎng)絡(luò)[11-12]使用上一節(jié)描述的方法,從計算出的平行線偏航中對旋轉(zhuǎn)矢量(俯仰、翻滾和偏航)進(jìn)行估計。本文的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示,其中使用了4個LED,以構(gòu)建6條虛擬直線,從這些直線中計算出6個偏航角度。本文使用一個3層前饋網(wǎng)絡(luò),其中隱藏層由25個神經(jīng)元組成。隱藏層中的所有神經(jīng)元都有一個tan-sigmoid傳遞函數(shù)以適應(yīng)非線性。對于輸出層神經(jīng)元,使用了線性傳遞函數(shù)。 圖3 本文的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu) 算法2步驟: (1) 以不同相機(jī)位置和旋轉(zhuǎn)仿真儲相機(jī)模型; (2) 得到LED圖像坐標(biāo); (3) 使用算法1得到6個偏航,建立神經(jīng)網(wǎng)絡(luò)輸入數(shù)據(jù)庫; (4) 輸入數(shù)據(jù)庫進(jìn)行數(shù)據(jù)訓(xùn)練和測試工作; (5) 確定某個旋轉(zhuǎn)矢量(俯仰、翻轉(zhuǎn)和偏航); (6) 使用相機(jī)模型為該旋轉(zhuǎn)矢量和房間內(nèi)所有位置進(jìn)行模擬,得到每個相機(jī)位置LED圖像坐標(biāo); (7) 使用算法1計算出6個偏航角,將其反饋為神經(jīng)網(wǎng)絡(luò)的輸入; (8) 由步驟(4)和步驟(7)共同得出神經(jīng)網(wǎng)絡(luò)輸出。 2.2 世界坐標(biāo)系中的相機(jī)位置估計 共線條件被用于建立二維圖像與三維空間點(diǎn)之間的關(guān)系。根據(jù)這一條件,每個目標(biāo)點(diǎn)及其圖像和投影中心,都應(yīng)屬于同一直線??杀硎救缦耓13] (5) 式中,(xcl,ycl)表示相機(jī)坐標(biāo)系中的目標(biāo)圖像點(diǎn)(LED圖像);(xcp,ycp)表示相機(jī)坐標(biāo)系統(tǒng)中的投影中心坐標(biāo);(XWL,YWL,ZWL)表示世界坐標(biāo)系統(tǒng)中的目標(biāo)點(diǎn)坐標(biāo);(XW0,YW0,ZW0)表示世界坐標(biāo)系統(tǒng)中的相機(jī)位置;RT(ω,φ,κ)表示世界坐標(biāo)系和相機(jī)坐標(biāo)系之間的相對旋轉(zhuǎn);f表示相機(jī)鏡頭的焦距;λ表示比例因子。 旋轉(zhuǎn)矩陣R是旋轉(zhuǎn)矢量俯仰、翻滾和偏航的函數(shù),因此可以使用神經(jīng)網(wǎng)絡(luò)的輸出構(gòu)建該矩陣。此外,LED坐標(biāo)XWL可以通過鏈路接收到,LED圖像坐標(biāo)xcl可以通過對圖像的特征進(jìn)行提取獲取,因此如果獲得相機(jī)投影中心和焦距,則可以通過求解式(7)估計出未知的相機(jī)位置(用戶位置)。相機(jī)進(jìn)行標(biāo)定的方法比較成熟,也比較多,如七參數(shù)模型[14]。按照文獻(xiàn)[15]的方法,為了從式(5)中消除λ,可以作如下調(diào)整 (6) 式中,(xcl,ycl)表示相機(jī)坐標(biāo)系中的LED圖像點(diǎn),對于LED1和LED2,l=1或者2;(xcp,ycp)表示相機(jī)坐標(biāo)系中投影中心的坐標(biāo);(XWL,YWL,ZWL)表示世界坐標(biāo)系統(tǒng)中的LED位置,對于LED1和LED2,L=1或者2;(XW0,YW0,ZW0)表示世界坐標(biāo)系中的相機(jī)位置;rij表示旋轉(zhuǎn)矩陣RT(ω,φ,k);f為相機(jī)鏡頭的焦距。 表1 仿真參數(shù) 3.1 利用神經(jīng)網(wǎng)絡(luò)估計旋轉(zhuǎn)矢量 表2 對X軸旋轉(zhuǎn)(俯仰)向量進(jìn)行估計的誤差 mm 表3 對Y軸旋轉(zhuǎn)(翻滾)向量進(jìn)行估計的誤差 mm 表4 對Z軸旋轉(zhuǎn)(偏航)向量進(jìn)行估計的誤差 mm 3.2 相機(jī)位置的估計結(jié)果 首先使用神經(jīng)網(wǎng)絡(luò)輸出(俯仰、翻滾和偏航),利用式(6)計算相機(jī)位置;其次從估計出的相機(jī)位置計算出均方根(RMS)誤差;神經(jīng)網(wǎng)絡(luò)對于各旋轉(zhuǎn)矢量的輸出用于計算相機(jī)的位置,最后再計算RMS誤差。4種情形的誤差如圖4所示,圖中,LED1、LED2、LED3和LED4的位置分別表示為符號*、●、■和▲。由圖4可以看出,當(dāng)x軸和y軸旋轉(zhuǎn)矢量較小時,誤差較低。圖4(a)和圖4(b)的RMS誤差最高為100 mm。然而,對于房間中的大部分地方,RMS誤差在35 mm之內(nèi)。 圖4 本文提出方法的定位性能 3.3 與其他方法的比較 由于各定位方法的試驗環(huán)境有所差異,試驗方法也不盡相同。為了公平起見,本文不作具體詳細(xì)的數(shù)值比較,只作總結(jié)性比較和分析。 文獻(xiàn)[8—10]僅對偏航進(jìn)行估計,忽略了俯仰和翻滾。本文提出的方法使用了一個神經(jīng)網(wǎng)絡(luò),對其他兩個旋轉(zhuǎn)矢量(俯仰和翻滾)也進(jìn)行了估計,同時充分利用LED光線的投影不變性,借助ISC完成虛擬直線的構(gòu)建。其他具體比較信息見表5,可以看出本文方法綜合性能更優(yōu)。 表5 不同方法的總結(jié)性比較 由于三維場景和拍攝到的二維圖像之間存在著非線性和高度復(fù)雜的關(guān)系,使用一個相機(jī)對用戶的位置進(jìn)行估計需要研究復(fù)雜的數(shù)學(xué)模型。而神經(jīng)網(wǎng)絡(luò)可最大限度地減少該復(fù)雜關(guān)系。為此,本文提出了一種基于神經(jīng)網(wǎng)絡(luò)的定位方法,而且考慮了較廣范圍的旋轉(zhuǎn)矢量。仿真結(jié)果表明,該方法在x軸和y軸旋轉(zhuǎn)矢量較低時性能較優(yōu),但是當(dāng)x軸和y軸旋轉(zhuǎn)矢量較大時誤差會增加。未來將會研究如何降低x軸和y軸旋轉(zhuǎn)矢量帶來的誤差。 [1] 蘇松,胡引翠,盧光耀,等.低功耗藍(lán)牙手機(jī)終端室內(nèi)定位方法[J].測繪通報,2015(12):81-84. [2] 鮑向華.基于室內(nèi)定位技術(shù)的商場導(dǎo)購系統(tǒng)的設(shè)計與開發(fā)[D].長春:吉林大學(xué),2015. [3] 周亮,付永濤,李廣軍.無線定位與慣性導(dǎo)航結(jié)合的室內(nèi)定位系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2014,40(4):73-76. [4] 孔天恒.基于Radar-scanner/INS的微小型旋翼無人機(jī)室內(nèi)組合導(dǎo)航與控制的研究[D].杭州:浙江大學(xué),2014. [5] 郭濤,達(dá)飛鵬,方旭.小視場環(huán)境下的攝像機(jī)標(biāo)定[J].中國激光,2012,39(8):164-168. [6] LIU G H,WANG W B,YUAN J Y,et al. A Novel Camera Calibration Method of Variable Focal Length Based on Single-view[C]∥International Symposium on Electronic Commerce and Security.Nanchang:IEEE,2009:125-128. [7] SAHA N,IFTHEKHAR M S,LE N T,et al.Survey on Optical Camera Communications:Challenges and Opportunities[J].Iet Optoelectronics,2015,9(5):172-183. [8] IFTHEKHAR M S,MONDAL R K,LE N T,et al.Simple Method for Indoor Localization in OCC Using Smart Phone Image Sensor[C]∥Ubiquitous and Future Networks.Shanghai:IEEE,2014:55-58. [9] 柯煒,吳樂南,殷奎喜.基于神經(jīng)網(wǎng)絡(luò)的數(shù)字廣播信號無線定位算法[J].東南大學(xué)學(xué)報(英文版),2010,26(3):394-398. [10] MAZAN F,KOVAROVA A.Optimizing Artificial Neural Network for Beacon Based Indoor Localization[C]∥International Conference on Computer Systems and Technologies.New York:ACM,2016:261-268. [11] SIMON HAYKIN.神經(jīng)網(wǎng)絡(luò)與機(jī)器學(xué)習(xí)(英文版)[M].3版.北京:機(jī)械工業(yè)出版社,2009. [12] 許雄,鐘燕飛,張良培,等.基于空間自相關(guān)BP神經(jīng)網(wǎng)絡(luò)的遙感影像亞像元定位[J].測繪學(xué)報,2011,40(3):307-311. [13] 付強(qiáng),王春平.一種點(diǎn)目標(biāo)三維重構(gòu)的新算法[J].科學(xué)技術(shù)與工程,2008,8(3):643-647. [14] 李東,毛之琳,廖文兵,等.CGCS2000向獨(dú)立坐標(biāo)系轉(zhuǎn)換的精度分析與估計研究[J].測繪通報,2013(10):8-10. [15] QI Z,XIAO L,FU S,et al.Two-step Camera Calibration Method Based on the SPGD Algorithm[J].Applied optics,2012,51(26):6421-6428. IndoorPositioningNavigationBasedonSingleCameraandNeuralNetworkEstimation ZHANG Lina1,PENG Li2 Estimating the user’s location with a camera requires the establishment of a complex mathematical model because the relationship between 3D scene and a 2D image is non-linear and highly complex. In order to solve this problem,a single camera based on neural network is proposed.The main advantage of the indoor positioning system is that LED can use the visible light communication to send its location information.The proposed method makes full use of LED light projection invariance,and completes the construction of virtual line by means of imaging sensor communication(ISC).Then,neural network estimation is used to extract information from the virtual camera direction lines.Finally,a simple mathematical equation is adopted to estimate the position of the user indoor.Four situations have been considered in the simulation experiments and the results show that the proposed method outperformed state-of-art techniques and its location error is less than 35 mm for most of the space within a room. indoor positioning;single camera;neural network estimation;projection invariance;positioning error 張麗娜,彭力.利用單相機(jī)和神經(jīng)網(wǎng)絡(luò)估計的室內(nèi)定位導(dǎo)航[J].測繪通報,2017(10):100-105. 10.13474/j.cnki.11-2246.2017.0324. 2017-02-21 浙江省教育廳一般科研項目(Y201635414);溫州市科技局公益性科技計劃(S20160021);浙江安防職業(yè)技術(shù)學(xué)院重點(diǎn)科研項目(AF2016Z02) 張麗娜(1980—),女,碩士,副教授,主要研究方向為數(shù)據(jù)挖掘、大數(shù)據(jù)應(yīng)用及定位等。E-mail:linazhang1980@163.com P237 A 0494-0911(2017)10-0100-062 基于神經(jīng)網(wǎng)絡(luò)的定位方法
3 仿真試驗結(jié)果與分析
4 結(jié)論與展望
(1. Department of Information Engineering,Zhejiang Security Career Technical College,Wenzhou 325000,China; 2. Department of Information Science,Jiangnan University,Wuxi 214000,China)