秦 嶺,劉 哲,王鳳英,郭 瑛,徐艷紅,胡曉莉
(內(nèi)蒙古科技大學(xué) 信息工程學(xué)院,內(nèi)蒙古 包頭 014010)
近年來(lái),隨著移動(dòng)通信網(wǎng)絡(luò)和電子信息技術(shù)的迅速發(fā)展,人們對(duì)位置服務(wù)的關(guān)注度不斷上升。全球定位系統(tǒng)(Global Positioning System, GPS)能為用戶提供米級(jí)的位置服務(wù),現(xiàn)已應(yīng)用于各種室外位置服務(wù)中[1]。然而,在室內(nèi)環(huán)境中,GPS的定位精度很低,無(wú)法滿足室內(nèi)位置服務(wù)的需求[2]。目前,室內(nèi)定位大多采用藍(lán)牙、紅外線、無(wú)線局域網(wǎng)、射頻信號(hào)和超寬帶等技術(shù)[3-6],但這些技術(shù)普遍需要復(fù)雜硬件設(shè)施的支持,增加了應(yīng)用成本,而且容易受到電磁干擾。可見(jiàn)光定位技術(shù)相對(duì)于上述定位技術(shù)具有安全性高、抗干擾能力強(qiáng)、設(shè)備成本低和定位精度高等優(yōu)點(diǎn)[7-10]。
傳統(tǒng)的室內(nèi)可見(jiàn)光定位算法有到達(dá)時(shí)間法、到達(dá)時(shí)間差法、到達(dá)角度法、接收信號(hào)強(qiáng)度指示法和位置指紋法等[11-14]。但這些算法要么需要很高的硬件設(shè)施支持,要么定位精度較低。針對(duì)位置指紋算法存在定位精度低和計(jì)算復(fù)雜度高等問(wèn)題,本文提出了一種基于反向傳播神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Network, BPNN)和多元線性回歸(Multiple Linear Regression, MLR)的室內(nèi)可見(jiàn)光定位算法。針對(duì)多發(fā)光二極管(Light Emitting Diode, LED)室內(nèi)定位系統(tǒng)存在的小區(qū)間干擾,本文提出了一種單LED室內(nèi)定位系統(tǒng),不僅避免了小區(qū)間干擾,還可以應(yīng)用于某些LED有限的特定場(chǎng)景。實(shí)驗(yàn)結(jié)果表明,本文提出的定位算法和定位系統(tǒng)能有效提高室內(nèi)可見(jiàn)光定位的性能。
室內(nèi)定位系統(tǒng)模型如圖1所示,一個(gè)LED作為發(fā)射器懸掛在天花板的中心,3個(gè)水平光電探測(cè)器(PhotoDetector, PD)作為接收器放置在地面上的任意位置。接收器模型如圖2所示,采用三角形拓?fù)?,待測(cè)點(diǎn)位于接收器的中心。
圖1 室內(nèi)定位系統(tǒng)模型
圖2 接收器模型
在視距(Line of Sight, LOS)鏈路中,引入朗伯輻射模型,接收器PDi(i=1, 2, 3)的接收光功率Pr, i可表示為
式中:Pt為L(zhǎng)ED的發(fā)射光功率;H(0)為L(zhǎng)OS鏈路的直流增益,可表示為
式中:m=-ln2/ln(cosφ1/2)為朗伯輻射階數(shù),φ1/2為L(zhǎng)ED的半功率角;A為PDi的物理面積;d為L(zhǎng)ED和PDi之間的傳輸距離;ψ為PDi的接收角;φ為L(zhǎng)ED的輻射角;Ts(ψ)為光學(xué)濾波器的增益;g(ψ)為光學(xué)聚光器的增益;ψc為PDi的視場(chǎng)角。
將室內(nèi)地面均勻劃分成N個(gè)小網(wǎng)格,并選取每個(gè)小網(wǎng)格的中心位置作為參考點(diǎn),那么將PDi在每一個(gè)參考點(diǎn)接收到的光功率向量作為一個(gè)指紋,遍歷所有的參考點(diǎn)便可得到N個(gè)指紋FP,保存入庫(kù),如式(3)所示。
式中,Pmi為在第m個(gè)參考點(diǎn)處第i個(gè)PD接收到的光功率,即
是指紋庫(kù)中的一個(gè)指紋。每一個(gè)指紋對(duì)應(yīng)唯一的位置,位置用二元坐標(biāo)(x,y)表示,那么每個(gè)指紋對(duì)應(yīng)的位置信息Loc表示為
那么,位置指紋庫(kù)LFDB=[LocFP]。
BPNN是一種多層前饋神經(jīng)網(wǎng)絡(luò),其主要特點(diǎn)是信號(hào)的前向傳播和誤差的后向傳播。對(duì)于每個(gè)訓(xùn)練輸入,BPNN算法執(zhí)行以下操作:首先將輸入提供給輸入層神經(jīng)元,并逐層將輸入前傳,直到產(chǎn)生輸出層的結(jié)果;然后計(jì)算輸出層的誤差,并將輸出誤差逆向傳播至隱藏層神經(jīng)元;最后根據(jù)隱藏層神經(jīng)元的誤差來(lái)對(duì)連接權(quán)和閾值進(jìn)行調(diào)整。該迭代過(guò)程循環(huán)進(jìn)行,直到訓(xùn)練誤差或訓(xùn)練次數(shù)達(dá)到預(yù)設(shè)時(shí)為止[15-16]。BPNN的拓?fù)浣Y(jié)構(gòu)如圖3所示。
圖3 BPNN拓?fù)浣Y(jié)構(gòu)
BPNN的輸入為PDi接收到的光功率向量,輸出為PDi對(duì)應(yīng)的位置坐標(biāo);輸入層到隱藏層的連接權(quán)和閾值分別為Wih和bh;隱藏層到輸出層的連接權(quán)和閾值分別為Whj和bj;隱藏層和輸出層的神經(jīng)元激活函數(shù)分別為f1(x)和f2(x),則隱藏層中第h個(gè)神經(jīng)元的輸出可表示為
設(shè)隱藏層的神經(jīng)元個(gè)數(shù)為q,則輸出層中第j個(gè)神經(jīng)元的輸出βj可表示為
將位置指紋庫(kù)中的數(shù)據(jù)隨機(jī)分成訓(xùn)練集和驗(yàn)證集,其中訓(xùn)練集用來(lái)訓(xùn)練BPNN模型,驗(yàn)證集用來(lái)評(píng)估BPNN模型的泛化能力。
將待測(cè)點(diǎn)測(cè)得的接收光功率向量輸入到離線準(zhǔn)備階段訓(xùn)練好的BPNN模型中,得到待測(cè)點(diǎn)的估計(jì)位置坐標(biāo),由于估計(jì)位置坐標(biāo)和實(shí)際位置坐標(biāo)之間會(huì)存在誤差,因此可以確定待測(cè)點(diǎn)可能的位置范圍是以該估計(jì)位置坐標(biāo)作為圓心,r作為半徑的圓,圖4所示為位置范圍示意圖。
圖4 位置范圍示意圖
MLR是一種表達(dá)一個(gè)因變量與多個(gè)自變量之間關(guān)聯(lián)的方法[17-18],公式如下:
式中:y為因變量;x1,x2,…,xn為自變量;b0,b1,b2,…,bn為回歸系數(shù)。
由于MLR模型的因變量只有一個(gè),因此需要使用兩個(gè)MLR模型分別負(fù)責(zé)x軸和y軸的位置預(yù)測(cè)。假設(shè)待測(cè)點(diǎn)的位置范圍中有k個(gè)參考點(diǎn),在這k個(gè)參考點(diǎn)的位置指紋數(shù)據(jù)下,關(guān)于x軸位置預(yù)測(cè)的MLR模型可以表示為
式中:b0,b1,b2,b3為回歸系數(shù);y1,y2,…,yk為k個(gè)參考點(diǎn)的x軸坐標(biāo);{(x11,x12,x13),(x21,x22,x23),…,(xk1,xk2,xk3)}為k個(gè)參考點(diǎn)的接收光功率向量。令
則MLR模型也可表示為
式中,Y和X均為已知矩陣,因此求解MLR模型就是求上式中的b,通常采用最小二乘法來(lái)求解MLR模型的回歸系數(shù)b,則b可表示為
同理,關(guān)于y軸位置預(yù)測(cè)的MLR模型也可由上述公式得出。最后將待測(cè)點(diǎn)測(cè)得的接收光功率向量分別代入到關(guān)于x軸和y軸位置預(yù)測(cè)的MLR模型中,得到待測(cè)點(diǎn)的精確位置坐標(biāo)。
為了評(píng)估本文算法在實(shí)際室內(nèi)環(huán)境下的定位性能,在2.0 m×2.0 m×2.5 m的室內(nèi)空間中進(jìn)行了實(shí)驗(yàn),LED固定在距離地面高度為2.5 m處,坐標(biāo)為(1.0,1.0,2.5),3個(gè)水平PD作為接收器放置在地面上的任意位置,如圖5所示。接收器首先將接收到的光強(qiáng)轉(zhuǎn)化為微弱的電流,然后通過(guò)跨阻抗放大器將微弱的電流轉(zhuǎn)化為較大的電壓,并由示波器進(jìn)行測(cè)量,最后再通過(guò)計(jì)算就可得到接收器在某一位置上的光功率向量。接收器實(shí)物如圖6所示,3個(gè)水平PD與中心待測(cè)點(diǎn)的距離均為10 cm。
圖5 實(shí)驗(yàn)場(chǎng)景圖
圖6 接收器實(shí)物圖
在離線準(zhǔn)備階段,首先將室內(nèi)地面均勻劃分成196個(gè)小網(wǎng)格,并選取每個(gè)小網(wǎng)格的中心位置作為參考點(diǎn);然后測(cè)量接收器在每個(gè)參考點(diǎn)處接收到的光功率向量,并將每個(gè)參考點(diǎn)的位置坐標(biāo)和對(duì)應(yīng)參考點(diǎn)處接收到的光功率向量形成的位置指紋數(shù)據(jù)存儲(chǔ)到位置指紋庫(kù)中;最后將位置指紋庫(kù)中的數(shù)據(jù)隨機(jī)分成訓(xùn)練集和驗(yàn)證集,其中訓(xùn)練集用來(lái)訓(xùn)練BPNN模型,驗(yàn)證集用來(lái)評(píng)估BPNN模型的泛化能力。BPNN的隱藏層和輸出層的神經(jīng)元激活函數(shù)分別選擇tansig和purelin,誤差逆?zhèn)鞑ニ惴ㄟx擇梯度下降法。由于隱藏層的神經(jīng)元個(gè)數(shù)q不同,得到的BPNN模型也不同,因此,實(shí)驗(yàn)比較了BPNN算法在不同q值下的平均定位誤差,如圖7所示。
圖7 不同q值下的平均定位誤差
由圖可知,隨著隱藏層的神經(jīng)元個(gè)數(shù)的增加,平均定位誤差會(huì)先減小后略有回升,最后逐漸穩(wěn)定下來(lái)。選取隱藏層的神經(jīng)元個(gè)數(shù)為9時(shí)得到的BPNN模型的泛化能力最好。
在在線定位階段,為了驗(yàn)證本文算法的有效性,在室內(nèi)地面上選取了100個(gè)與位置指紋庫(kù)中參考點(diǎn)位置坐標(biāo)不同的測(cè)試點(diǎn)作為測(cè)試集。首先將測(cè)試集中每個(gè)測(cè)試點(diǎn)的接收光功率向量輸入到離線準(zhǔn)備階段訓(xùn)練好的BPNN模型中,得到其對(duì)應(yīng)的估計(jì)位置坐標(biāo);然后以該估計(jì)位置坐標(biāo)作為圓心,r作為半徑來(lái)確定測(cè)試集中每個(gè)測(cè)試點(diǎn)粗略的位置范圍。由于對(duì)不同位置范圍中參考點(diǎn)的位置指紋數(shù)據(jù)應(yīng)用MLR,得到的MLR模型也不同,因此,實(shí)驗(yàn)比較了MLR算法在不同r值下的平均定位誤差,如圖8所示。
圖8 不同r值下的平均定位誤差
由圖可知,r值過(guò)大或過(guò)小都會(huì)使得到的MLR模型不準(zhǔn)確,進(jìn)而影響定位結(jié)果。選取r值為0.30 m時(shí)得到的MLR模型的定位效果最好。
最后,對(duì)測(cè)試集中每個(gè)測(cè)試點(diǎn)位置范圍中參考點(diǎn)的位置指紋數(shù)據(jù)應(yīng)用MLR,得到兩個(gè)關(guān)于x軸和y軸位置預(yù)測(cè)的MLR模型,并將測(cè)試集中每個(gè)測(cè)試點(diǎn)的接收光功率向量分別代入到關(guān)于x軸和y軸位置預(yù)測(cè)的MLR模型中,得到測(cè)試集中每個(gè)測(cè)試點(diǎn)的精確位置坐標(biāo)。本文算法的定位誤差分布如圖9所示。
圖9 本文算法的定位誤差分布
由圖可知,本文算法的最大定位誤差為16.58 cm,平均定位誤差為5.04 cm,與僅使用BPNN算法相比,本文算法的平均定位精度提高了47.61%,已經(jīng)能夠滿足大多數(shù)室內(nèi)位置服務(wù)對(duì)定位精度的要求。
為證明本文算法可有效地提高定位精度,實(shí)驗(yàn)比較了本文算法和傳統(tǒng)位置指紋算法的定位誤差累計(jì)分布,如圖10所示。
圖10 兩種算法的定位誤差累計(jì)分布
由圖可知,與傳統(tǒng)的位置指紋算法相比,本文算法具有更高的定位精度。經(jīng)過(guò)計(jì)算可知,這兩種算法的平均定位誤差分別為5.04和8.62 cm。相較于傳統(tǒng)的位置指紋算法,本文算法的平均定位精度提高了41.53%。
為證明本文算法可有效減少定位時(shí)間,在Intel(R) Core(TM) i5-10210 CPU @ 1.60GHz 2.11 GHz和RAM 12.0 GB的計(jì)算機(jī)上,通過(guò)Matlab軟件進(jìn)行實(shí)驗(yàn)比較了本文算法和傳統(tǒng)的位置指紋算法的平均定位時(shí)間,結(jié)果如表1所示。
表1 兩種算法的平均定位時(shí)間
相較于傳統(tǒng)的位置指紋算法,本文算法的平均定位時(shí)間減少了56.60%。因此,本文算法的定位精度和定位時(shí)間都比傳統(tǒng)的位置指紋算法更具優(yōu)勢(shì)。
本文提出了一種基于BPNN和MLR的單LED室內(nèi)定位算法,首先使用BPNN確定待測(cè)點(diǎn)粗略的位置范圍,然后對(duì)位置范圍中參考點(diǎn)的位置指紋數(shù)據(jù)應(yīng)用MLR,進(jìn)一步對(duì)待測(cè)點(diǎn)的位置進(jìn)行更精確地定位。實(shí)驗(yàn)結(jié)果表明,在2.0 m×2.0 m×2.5 m的室內(nèi)空間中,本文算法的平均定位誤差為5.04 cm,能夠滿足大多數(shù)室內(nèi)位置服務(wù)對(duì)定位精度的要求。與傳統(tǒng)的位置指紋算法相比,本文算法的平均定位精度提高了41.53%,平均定位時(shí)間減少了56.60%,在較低計(jì)算復(fù)雜度的前提下實(shí)現(xiàn)了更精確的定位。在未來(lái)的工作中,我們將繼續(xù)使用機(jī)器學(xué)習(xí)算法來(lái)優(yōu)化定位精度和定位時(shí)間。