葉曉桐 張 裕 宋俊典
1(上海應用技術大學計算機科學與信息工程學院 上海 201418)2(上海計算機軟件技術開發中心 上海 201112)
基于位置的服務具有眾多應用領域與重要的市場價值。當今人們工作和生活大部分時間都在室內進行,而衛星導航信號穿過建筑物后衰減嚴重不能用于室內定位。因此,應用Wi-Fi、藍牙、UWB等室內定位技術成為研究的熱點[1]。由于UWB信號具有傳輸速率高、安全性好、定位精度高、穿透能力強的特點,國內外許多學者對UWB定位技術做了大量研究[2]。傳統的UWB定位算法,例如:Chan算法[3]、Taylor算法[4]及基于它們的改進和融合算法[5-6],未能較好解決多徑效應與非視距(NLOS)對UWB定位性能所產生的影響,難以在定位性能上有所提升。
近些年來,一些文獻應用神經網絡、深度學習等方法進行UWB定位,減少多徑效應與非視距(NLOS)環境對定位精度的影響,或提高視距下的定位精度[7-10]。文獻[11]利用3層的BP神經網絡訓練TDOA數據,解決視距環境下精確定位問題,但BP神經網絡收斂速度慢且易陷入局部極小值的弊端沒有很好地被克服。文獻[12]為了減小非視距對UWB定位精度的影響,先利用非視距誤差特性建立卷積神經網絡(CNN)來校正位置數據,然后用擴展卡爾曼濾波的方法估計位置,但是當位置突變時擴展卡爾曼濾波精度降低。文獻[13]為了降低多徑和非視距帶來的影響,利用免疫算法優化的BP神經網絡訓練TDOA值,取得較好的效果。但僅使用3個TDOA值作為輸入適用的空間范圍較小。此外,較多文獻的研究都基于仿真驗證算法,不能評估算法在實際場景下的性能,而且有的定位模型是把相對固定室內環境中的定位數據輸入訓練網絡所產生的,在實際應用中不能較好地解決移動的人員或物體等動態干擾因素帶來的定位誤差問題。
本文利用通道注意力特性[14-15],結合卷積神經網絡構建了一個深度學習網絡(SE-CNN),設計了一種基于注意力機制的室內定位算法。以UWB的TDOA值作為研究對象,利用基站位置、TDOA值組成的定位數據與TDOA值對應的真實位置對SE-CNN進行訓練。先使用基于通道注意力機制的SENet模塊,使得在無動態干擾影響下的TDOA通道獲得較大權重值,受到動態干擾的TDOA數據通道獲得較小權重值,以減少TDOA測量值中因干擾因素引起的多徑效應與NLOS所產生的誤差,接著利用CNN網絡的映射能力建立定位數據與目標位置之更準確的非線性關系,得到較優的定位模型,提高系統定位精度。
本文結合SENet和CNN網絡,構建了一種用于UWB定位的深度學習網絡模型——SE-CNN。如圖1所示。

圖1 SE-CNN網絡模型
網絡模型主要分為四個模塊:
1) 輸入模塊。輸入的是四個基站的坐標以及四個TDOA值。數據組織形式表示如下:

2) 通道注意力模塊。利用基于通道注意力機制的SENet模塊。數據通過Global Average Pooling層,對每組特征數據做全局平均池化,可以得到一個平均的實數值。這個實數值在一定程度上具有全局感受野。然后進入兩層全連接層。特征通道權重表征通道間的相關性也即特征選擇后每個通道的重要程度,得到的各通道權重通過乘法再作用于原數據的各個通道上。SENet的公式推導如下式所示:
(1)
s=Fex(z,W)=σ(g(z,W))=σ(W2δ(W1,z))
(2)
xc=Fscale(uc,s)=sc·uc
(3)
式中:uc為特征通道,W1、W2為全連接層權重值,δ()和σ()分別表示Relu和Sigmoid函數。
從SENet輸出的數據是在通道維度上對原數據重要程度進行重新標定過的數據。
3) 特征提取模塊。包含兩個卷積層和兩個線性連接層。從SENet模塊輸出的數據分別經過兩次卷積操作和最大池化操作提取特征。最后數據進入神經元數量為32和2的線性連接層。
4) 輸出模塊。輸出為目標估計位置。
在實驗室環境下,四個基站位置已知,選取多個不同參考點,由激光測距儀獲取參考點的真實位置。采集數據時將固定好標簽的支架放置在參考點上,標簽的發送頻率為32 Hz,每個參考點連續測量5 min,基站接收標簽發送的信號得到約10 000組數據值,服務器計算并存儲TDOA值。將四個基站位置與多組TDOA組成訓練集,訓練網絡的輸入是4個基站的坐標和多組TDOA值。定位模型的輸出為目標位置,用X和Y兩維坐標表示。

基于數據集的SE-CNN定位算法的訓練過程如下。
1) 訓練網絡生成定位模型階段。
Step1初始化SE-CNN網絡中的權值及閾值。
Step2從數據集中取一批訓練樣本,每批訓練樣本包含16條數據,每條數據中包括4個基站各自的坐標、4個TDOA值以及標簽所在的參考點位置坐標,取每條數據的前16個元素作為網絡的輸入,逐層傳輸,并計算輸出與參考點位置坐標之間的誤差。誤差的計算使用MSELoss函數,最終使用平均MSELoss作為判斷定位結果優劣的標準。
Step3誤差在網絡中反向傳播,調整網絡的權值和閾值。利用MSELoss函數得到誤差,再將誤差逐層返回,并計算出每一層的誤差,最后更新權值。這一過程的目的是通過訓練樣本調整網絡參數值。
Step4重復Step 2-Step 3直到網絡輸出與參考點位置坐標的誤差達到要求為止。
網絡訓練結束后,保存訓練完成的SE-CNN網絡模型及參數,用于定位解算階段的目標定位。
2) 定位解算階段。
Step1將標簽放置到已知位置的測試點,服務器已存儲各基站坐標,并實時計算TDOA值。
Step2將定位數據輸入定位模型,即可得到標簽的估計位置。
訓練網絡及定位解算過程的流程如圖2所示。

圖2 SE-CNN網絡訓練與定位解算
本實驗在學校實驗樓4樓的一間7 m×6 m的實驗室進行,室內人員的流動具有隨機性。定位系統示意如圖3所示。

圖3 定位系統示意圖
實驗設備包括一臺服務器、4個基站、2個標簽、1個支架。服務器上安裝定位軟件,用于接收基站發送的數據。4個基站中有1個主基站、3個從基站,基站間時間同步。
圖1所示的模型是由一個SENet模塊、2個卷積層、2個池化層和2個全連接層組成。SE-CNN網絡參數:(1) 激活函數為Relu;(2) 優化器為Adam;(3) 學習率設置為0.001。各層的具體參數如表1所示。

表1 SE-CNN參數表
本文使用均方誤差作為評價指標來比較各個算法的性能。由表2中各算法的誤差比較可以看出,本文提出的SE-CNN網絡得到的平均誤差為0.001 2,在實驗的所有神經網絡中誤差最小,且最大誤差與最小誤差相差相對較少。BP神經網絡極易收斂于局部極小值,且收斂緩慢,平均誤差較大,誤差的波動也相對較大。CNN網絡對受干擾的定位數據敏感,因此誤差會有跳變到很大的情況,定位誤差不穩定。深度置信網絡(DBN)結構復雜,計算復雜度較高,學習過程較慢,容易收斂于局部最優解,所以最小誤差較大,平均誤差相對較大。綜上所述,本文提出的算法定位精度優于其他算法,且穩定性相對較好。

表2 不同定位算法誤差比較
本文提出了一種基于注意力機制的UWB定位算法,構建了由注意力模塊與CNN網絡組成的SE-CNN網絡模型。將該網絡模型訓練后生成的定位模型利用通道注意力機制削弱了移動的人或物等動態干擾因素對定位性能的影響,減少了多徑效應與NLOS環境帶來的定位誤差,提高了定位精度和穩定性,在真實的應用場景中具有良好的適應性。下一步將在物流倉庫、工廠等動態復雜的定位場景下驗證并改進本算法的性能。