王玲燕,秦 嶺,郭 瑛,徐艷紅,趙德勝
(內蒙古科技大學信息工程學院,內蒙古 包頭 014010)
隨著物聯網技術的發展,人們對于位置服務的需求也大大增加,GPS可滿足人們對室外定位導航的需求[1-2],但室內復雜的環境容易對衛星信號產生遮擋,導致GPS在室內定位方面誤差增大。不同建筑的室內布局存在較大差異,需要更高的精度分辨不同的特征[3]。目前常見的室內定位技術有無線局域網(WLAN)、射頻識別(RFID)、藍牙、ZigBee、地磁等,然而這些技術都存在一些不足[4-8]。可見光定位技術具有無電磁輻射、低成本、高定位精度、能耗較低優點,能彌補傳統定位技術的不足,非常適用于室內定位[9-13]。
隨著機器學習和深度學習算法的進一步發展,許多學者將新型學習算法與傳統室內定位技術相結合,獲得了較好的定位結果。文獻[14]提出了一種基于隱馬爾可夫模型的可見光與慣導融合定位算法,所提算法能在2500 m2室內停車場中預測用戶的運動軌跡,平均定位誤差約為3.35 m。文獻[15]提出了一種基于改進混合Bat算法的可見光三維定位方法,在1.5 m×1.2 m× 2 m空間內平均定位誤差為3.64 cm。文獻[16]提出了一種基于改進免疫粒子群算法的VLC室內三維定位系統,并采用卡爾曼濾波算法減小了環境干擾對接收功率的影響,仿真試驗平均誤差為3.12 cm。文獻[17]提出了一種基于四象限光電探測器和改進遺傳算法的可見光定位系統,該方案在平均定位時間較短的情況下,可以獲得較高的定位精度和穩健性。文獻[18]提出了一種基于深度學習和數據驅動的高速車輛穩健VLP系統,基于BN-CNN模型的UID解碼方式,支持的移動速度達38.5 km/h。由上述研究現狀可知,傳統的室內定位技術與新型學習算法相結合可以獲得更好的結果,然而目前關于可見光定位的研究大都僅考慮可見光直射鏈路,導致仿真建立的定位系統在實際應用時會出現較大的誤差[19]。
為了更好地應用于實際環境并進一步提高定位精度,本文綜合考慮直射鏈路和兩側不規則墻壁的反射建立定位模型,并提出一種禿鷹搜索算法優化徑向基神經網絡(BES-RBF)的單LED燈的定位算法,結合WKNN,得到高精度定位模型。在定位系統中,4個PD(Power Delivery)接收到的功率及位置構成指紋庫數據;通過禿鷹搜索算法優化RBF網絡初始權值和閾值;數據輸入優化后的RBF網絡,得到初步定位信息;結合WKNN對部分誤差較大的點進行修正,以期得到精確的位置信息。
將定位空間大小設置為3 m×3 m×3 m,考慮空間兩側墻壁的不規則反射鏈路,定位模型如圖1所示。LED作為信號發射源位于頂部中央,兩側陰影部分為反射面,接收器由一個水平PD和3個傾斜PD組成(具體結構如圖2所示),放置在距離地面一定高度的位置上。

圖1 定位模型

圖2 接收器模型
待測點為水平PD的中心,表示為(Xr,Yr,Zr),傾斜PDj與水平PD的關系可以表示為
(1)
式中,α為PDj(j=1,2,3)的傾斜角;ωj為PDj的方位角;r為傾斜PDj中心到水平PD中心的距離。
可見光傳輸鏈路如圖3所示。假定光源LED服從朗伯模型,直射鏈路信道增益HLOSj可以表示為

圖3 可見光傳輸鏈路
(2)
式中,A為接收機PD的有效接收面積;dj為接收PDj到LED光源之間的距離;θj為接收PDj的入射角;φ為光源發射角;Ts(θj)為光學濾波器增益;g(θj)為聚光器增益;ψc為接收器的視場角;m為光源的朗伯階數。g(θj)和m的公式[20]如下
(3)
式中,φ1/2為光源的半功率角,即在此角度上的LED光源輻射功率是中心功率的1/2;n為接收器透鏡折射率。在考慮不規則墻壁的反射鏈路中,信道增益HNLOSωj的公式[21-22]如下
(4)
式中,diω為LED到反射面元sω的距離;dωj為反射面元sω到接收器PDj的距離;(xω,yω)為反射面元sω的二維坐標;hiω為LED到反射面元sω的垂直距離;hωj為反射面元sω到接收器PDj的垂直距離;ρ為反射系數;ΔAω為反射面元sω的面積;LED燈的坐標為(xi,yi,zi);ni=[sinβicosαisinβisinαi-cosβi],為對應法向量;反射面元sω坐標為(xω,yω,zω),法向量為nω=[sinβωcosαωsinβωsinαωcosβω];nj=[sinβjcosαjsinβjsinαjcosβj],為第j個PD的法向量;法向量中的α和β分別表示各向量與x軸和z軸的夾角。
整個通信環境的信道增益最終可以表示為
(5)
在可見光信號傳輸鏈路中,接收PDj的接收功率Prj與LED的發射功率Pt的關系可表示為
Prj=PtHj
(6)
RBF神經網絡是一種前饋式網絡,其思想是用徑向基函數作為隱層各單元的基(本文采用的基函數為高斯函數),將輸入向量從低維度變換至高緯度,使得在低維度上的線性不可分問題在高維度上線性可分[23-24]。該方法有兩個階段:①用自組織聚類方法為基函數確定合適的數據中心,并根據中心間的距離確定隱節點的擴展常數,求解隱含層的基函數的中心和方差;②用有監督學習算法(一般采用梯度法)訓練輸出層權值。結構如圖4所示,實現過程如下。

圖4 RBF神經網絡結構
(1)采用K-means聚類方法求得基函數中心c。
a. 初始化:隨機選取訓練樣本作為初始聚類中心ci(i=1,2,…,h),ci={Pr0,Pr1,Pr2,Pr3},h為隱含層節點數,Prj(j=0,1,2,3),表示各PD接收功率。
b. 計算中心ci與輸入的訓練樣本xg={Pg0,Pg1,Pg2,Pg3}之間的歐式距離,將xg按最近鄰規則分配到各個聚類集合?i(i=1,2,…,h)中。
c. 聚類中心重整:計算?i中訓練樣本的平均值,求得新的聚類中心ci,直至新的聚類中心不再發生變化,此時的ci即為RBF神經網絡最終的基函數中心,否則返回步驟b,進行下一輪求解。
(2)計算方差σi。高斯函數的方差σi計算公式為
(7)
式中,cmax表示所選中心間的最大距離。
(3)計算隱含層和輸出層之間的權值。
通過最小二乘法可以計算得到權值,公式為
(8)
式中,xg=[Pg0Pg1Pg2Pg3]為第g個輸入樣本;ci為第i個隱含層節點在步驟(1)最終得到的基函數中心;G為輸入樣本總數。
網絡最終的輸出可以表示為

(9)
式中,J為輸出節點數,本文輸出為二維坐標,J取2。
禿鷹搜索算法(BES)是一種元啟發式優化算法[25],模擬了禿鷹尋找獵物時的狩獵策略及智能社交行為,具有較強的全局搜索能力。該算法分3步完成:首先,禿鷹根據獵物的濃度選擇一個特定的搜索區域(一般選擇濃度大的區域);然后,禿鷹在搜索區域內進行螺旋搜索;最后,禿鷹不斷改變飛行高度,直至成功獲取獵物。
(1)選擇空間,該階段選擇獵物最多的空間為搜索空間,即
Wnew,i=Wbest+αr(Wmean-Wi)
(10)
式中,α∈[1.5,2]為控制位置變化的參數;r為0~1之間的隨機數;Wbest為根據之前搜索空間確定的最佳位置選擇的搜索空間;Wmean為之前搜索點的信息,該過程隨機更改搜索點。
(2)搜索空間,禿鷹在搜索空間內螺旋飛行加速搜索,抓捕的最佳位置可表示為
Wi,new=Wi+y1(i)·(Wi-Wi+1)+x1(i)·(Wi-Wmean)
(11)
(12)
xr1(i)=r1i·sin(θ1i),yr1(i)=r1i·cos(θ1i)
(13)
θ1i=b·πrand,r1i=θ1i+Rrand
(14)
式中,b和R為控制螺旋軌跡的參數,b∈[5,10],用于確定中心點之間的角,R∈[0.5,2],用于確定搜索周期的數量。
(3)俯沖抓捕,從搜索空間的最佳位置俯沖至目標獵物,即
Wi,new=rand·Wbest+x2(i)·(Wi-c1Wmean)+
y2(i)·(Wi-c2·Wbest)
(15)
(16)
xr2(i)=r2i·sinh(θ2i),yr2(i)=r2i·cosh(θ2i)
(17)
θ2i=bπrand,r2i=θ2i
(18)
式中,c1,c2∈[1,2],增加了禿鷹朝向最佳和中心點的運動強度,因此最優解必須乘以一個隨機數。
1.4.1 BES-RBF算法
本文提出的定位系統首先利用禿鷹搜索算法對網絡的權重和閾值進行評估,使其找到最優的向量個體,然后將其賦給RBF神經網絡。流程如圖5所示。BES-RBF算法實現步驟如下。
(1)輸入樣本數據。
(2)將RBF神經網絡生成的權值和閾值作為BES算法的初始信息點。
(3)選擇獵物最多的空間作為搜索空間。
(4)在搜索空間內螺旋加速搜索,獲得最佳俯沖位置。
(5)從最佳俯沖位置抓捕獵物,得到最優的向量個體。
(6)將優化得到的權值和閾值賦給RBF網絡。
1.4.2 誤差修正
加權K近鄰算法首先需要計算當前待測點的數據與數據庫中的各個指紋數據之間的距離,并對距離進行升序排序,然后找到離待測點最近的K個參考點,為K個參考點的坐標分配權重,最后對K個參考點坐標的加權和求平均,得到待測點的位置。

(19)
將DI按升序排列,并按權重為1/(DI+ε)的加權規則為前K個參考點的坐標分配權重,ε為一個常量,待測點的最終坐標為
(20)
本文的定位空間設置為3 m×3 m×3 m,LED燈的發射功率為10 W,用15 cm×15 cm的間隔對接收面進行劃分,共441組數據構成訓練集,以28 cm×28 cm的間隔對接收面進行劃分,共121組數據構成測試集。具體參數見表1。

表1 仿真參數[19]
為了比較BES結合WKNN對RBF神經網絡的優化效果,對比RBF、BES-RBF、RBF-WKNN及BES-RBF-WKNN這4種模型的定位效果,其RMSE見表2。可以看出,BES對RBF有部分優化作用,但整體優化幅度不大;WKNN優化RBF后的平均定位誤差反而增大,同時結合BES和WKNN優化RBF后,平均誤差下降了2 cm,優化效果明顯。

表2 優化前后平均誤差對比
為了更好地比較這4種模型的定位效果,繪制其誤差累積頻率分布曲線,如圖6所示。由圖6可知,RBF模型有80%的定位誤差在10 cm內,BES-RBF模型有91%的定位誤差在10 cm內,RBF-WKNN模型有85%的定位誤差在10 cm內,BES-RBF-WKNN模型有93%的定位誤差在10 cm內,BES-RBF-WKNN模型的整體定位性能更好。
使用WKNN優化定位結果時,K值對定位結果具有較大影響,為了對比不同K值的影響作用,將K取值1~7,繪制RBF-WKNN和BES-RBF-WKNN模型不同K值的平均誤差曲線,如圖7所示。

圖7 不同K值平均定位誤差對比
由圖7可以看出,WKNN優化RBF時,隨著K的增加,平均定位誤差增大,K取1時平均定位誤差最小,最小的平均定位誤差仍比未優化時大,這是由于在選取拖累點時,將誤差大于平均誤差且接近平均誤差的點包含在內,在進行加權K近鄰計算時這部分點的誤差增大。WKNN優化BES-RBF時,K在整個取值范圍內的平均定位誤差均小于未優化時的定位誤差,整體優化效果明顯,K取2時,平均定位誤差最小,為5.54 cm。
為了更直觀地對比4種模型的定位效果,繪制真實值和預測值的坐標對比圖,如圖8所示。

圖8 4種模型坐標對比
由圖8可知,BES對RBF的優化效果集中體現在待測區域的中心部分,優化后中心區域的待測位置與預測坐標基本重合,但邊緣位置的誤差相對較大。單獨使用WKNN對RBF進行優化效果不理想,預測坐標偏離待測點位置較遠。同時使用BES和WKNN優化RBF,效果明顯,中心區域基本重合,邊緣部分預測坐標與真實位置間的距離減小,僅極個別點能看出明顯誤差,整體效果良好。
為了更直觀地比較優化算法對神經網絡的作用,繪制不同定位模型的誤差直方圖,如圖9所示。第1列為誤差在[0,0.05] m內的頻數,第2列為誤差在(0.05,0.1] m內的頻數,第3列為誤差在(0.1,0.2] m內的頻數,第4列為誤差在(0.2,0.4] m內的頻數,第5列為誤差在(0.4,0.8] m內的頻數。可以明顯看出,使用BES后,誤差在5 cm內的頻數增加,誤差較大的點數明顯減少。使用WKNN后,對誤差大的點的修正作用更加明顯。

圖9 誤差直方對比
為了說明本文算法的優越性,將優化模型與其他模型進行對比,結果見表3。

表3 不同模型性能對比
BP網絡的定位誤差較大,A-bayes的平均定位誤差雖然小于BES-RBF-WKNN,但5 cm內誤差占比小于本文算法。對比發現,本文算法優于其他算法,可以實現室內精確定位,能滿足大多場景的定位需求。
本文提出了一種禿鷹搜索算法優化徑向基神經網絡(BES-RBF)的單LED燈的定位算法。該定位模型考慮了直射鏈路和不規則墻壁的反射鏈路,根據PD接收到的光功率值構建指紋庫,將指紋數據輸入BES優化后的RBF網絡,實現初步定位,再結合WKNN對誤差較大的點進行修正,實現室內高精度定位。本文在3 m×3 m×3 m的定位空間進行仿真試驗,優化后的平均定位誤差為5.54 cm,80%的定位誤差在4.5 cm內。將本文算法與其他算法進行對比發現,本文算法的定位精度更高,穩定性更好,且使用單燈定位避免了其他光源的干擾,可適用于小型室內定位場景實現高精度定位。