葉曉桐 張 裕 宋俊典
1(上海應(yīng)用技術(shù)大學(xué)計(jì)算機(jī)科學(xué)與信息工程學(xué)院 上海 201418)2(上海計(jì)算機(jī)軟件技術(shù)開(kāi)發(fā)中心 上海 201112)
基于位置的服務(wù)具有眾多應(yīng)用領(lǐng)域與重要的市場(chǎng)價(jià)值。當(dāng)今人們工作和生活大部分時(shí)間都在室內(nèi)進(jìn)行,而衛(wèi)星導(dǎo)航信號(hào)穿過(guò)建筑物后衰減嚴(yán)重不能用于室內(nèi)定位。因此,應(yīng)用Wi-Fi、藍(lán)牙、UWB等室內(nèi)定位技術(shù)成為研究的熱點(diǎn)[1]。由于UWB信號(hào)具有傳輸速率高、安全性好、定位精度高、穿透能力強(qiáng)的特點(diǎn),國(guó)內(nèi)外許多學(xué)者對(duì)UWB定位技術(shù)做了大量研究[2]。傳統(tǒng)的UWB定位算法,例如:Chan算法[3]、Taylor算法[4]及基于它們的改進(jìn)和融合算法[5-6],未能較好解決多徑效應(yīng)與非視距(NLOS)對(duì)UWB定位性能所產(chǎn)生的影響,難以在定位性能上有所提升。
近些年來(lái),一些文獻(xiàn)應(yīng)用神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)等方法進(jìn)行UWB定位,減少多徑效應(yīng)與非視距(NLOS)環(huán)境對(duì)定位精度的影響,或提高視距下的定位精度[7-10]。文獻(xiàn)[11]利用3層的BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練TDOA數(shù)據(jù),解決視距環(huán)境下精確定位問(wèn)題,但BP神經(jīng)網(wǎng)絡(luò)收斂速度慢且易陷入局部極小值的弊端沒(méi)有很好地被克服。文獻(xiàn)[12]為了減小非視距對(duì)UWB定位精度的影響,先利用非視距誤差特性建立卷積神經(jīng)網(wǎng)絡(luò)(CNN)來(lái)校正位置數(shù)據(jù),然后用擴(kuò)展卡爾曼濾波的方法估計(jì)位置,但是當(dāng)位置突變時(shí)擴(kuò)展卡爾曼濾波精度降低。文獻(xiàn)[13]為了降低多徑和非視距帶來(lái)的影響,利用免疫算法優(yōu)化的BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練TDOA值,取得較好的效果。但僅使用3個(gè)TDOA值作為輸入適用的空間范圍較小。此外,較多文獻(xiàn)的研究都基于仿真驗(yàn)證算法,不能評(píng)估算法在實(shí)際場(chǎng)景下的性能,而且有的定位模型是把相對(duì)固定室內(nèi)環(huán)境中的定位數(shù)據(jù)輸入訓(xùn)練網(wǎng)絡(luò)所產(chǎn)生的,在實(shí)際應(yīng)用中不能較好地解決移動(dòng)的人員或物體等動(dòng)態(tài)干擾因素帶來(lái)的定位誤差問(wèn)題。
本文利用通道注意力特性[14-15],結(jié)合卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建了一個(gè)深度學(xué)習(xí)網(wǎng)絡(luò)(SE-CNN),設(shè)計(jì)了一種基于注意力機(jī)制的室內(nèi)定位算法。以UWB的TDOA值作為研究對(duì)象,利用基站位置、TDOA值組成的定位數(shù)據(jù)與TDOA值對(duì)應(yīng)的真實(shí)位置對(duì)SE-CNN進(jìn)行訓(xùn)練。先使用基于通道注意力機(jī)制的SENet模塊,使得在無(wú)動(dòng)態(tài)干擾影響下的TDOA通道獲得較大權(quán)重值,受到動(dòng)態(tài)干擾的TDOA數(shù)據(jù)通道獲得較小權(quán)重值,以減少TDOA測(cè)量值中因干擾因素引起的多徑效應(yīng)與NLOS所產(chǎn)生的誤差,接著利用CNN網(wǎng)絡(luò)的映射能力建立定位數(shù)據(jù)與目標(biāo)位置之更準(zhǔn)確的非線性關(guān)系,得到較優(yōu)的定位模型,提高系統(tǒng)定位精度。
本文結(jié)合SENet和CNN網(wǎng)絡(luò),構(gòu)建了一種用于UWB定位的深度學(xué)習(xí)網(wǎng)絡(luò)模型——SE-CNN。如圖1所示。
圖1 SE-CNN網(wǎng)絡(luò)模型
網(wǎng)絡(luò)模型主要分為四個(gè)模塊:
1) 輸入模塊。輸入的是四個(gè)基站的坐標(biāo)以及四個(gè)TDOA值。數(shù)據(jù)組織形式表示如下:
2) 通道注意力模塊。利用基于通道注意力機(jī)制的SENet模塊。數(shù)據(jù)通過(guò)Global Average Pooling層,對(duì)每組特征數(shù)據(jù)做全局平均池化,可以得到一個(gè)平均的實(shí)數(shù)值。這個(gè)實(shí)數(shù)值在一定程度上具有全局感受野。然后進(jìn)入兩層全連接層。特征通道權(quán)重表征通道間的相關(guān)性也即特征選擇后每個(gè)通道的重要程度,得到的各通道權(quán)重通過(guò)乘法再作用于原數(shù)據(jù)的各個(gè)通道上。SENet的公式推導(dǎo)如下式所示:
(1)
s=Fex(z,W)=σ(g(z,W))=σ(W2δ(W1,z))
(2)
xc=Fscale(uc,s)=sc·uc
(3)
式中:uc為特征通道,W1、W2為全連接層權(quán)重值,δ()和σ()分別表示Relu和Sigmoid函數(shù)。
從SENet輸出的數(shù)據(jù)是在通道維度上對(duì)原數(shù)據(jù)重要程度進(jìn)行重新標(biāo)定過(guò)的數(shù)據(jù)。
3) 特征提取模塊。包含兩個(gè)卷積層和兩個(gè)線性連接層。從SENet模塊輸出的數(shù)據(jù)分別經(jīng)過(guò)兩次卷積操作和最大池化操作提取特征。最后數(shù)據(jù)進(jìn)入神經(jīng)元數(shù)量為32和2的線性連接層。
4) 輸出模塊。輸出為目標(biāo)估計(jì)位置。
在實(shí)驗(yàn)室環(huán)境下,四個(gè)基站位置已知,選取多個(gè)不同參考點(diǎn),由激光測(cè)距儀獲取參考點(diǎn)的真實(shí)位置。采集數(shù)據(jù)時(shí)將固定好標(biāo)簽的支架放置在參考點(diǎn)上,標(biāo)簽的發(fā)送頻率為32 Hz,每個(gè)參考點(diǎn)連續(xù)測(cè)量5 min,基站接收標(biāo)簽發(fā)送的信號(hào)得到約10 000組數(shù)據(jù)值,服務(wù)器計(jì)算并存儲(chǔ)TDOA值。將四個(gè)基站位置與多組TDOA組成訓(xùn)練集,訓(xùn)練網(wǎng)絡(luò)的輸入是4個(gè)基站的坐標(biāo)和多組TDOA值。定位模型的輸出為目標(biāo)位置,用X和Y兩維坐標(biāo)表示。
基于數(shù)據(jù)集的SE-CNN定位算法的訓(xùn)練過(guò)程如下。
1) 訓(xùn)練網(wǎng)絡(luò)生成定位模型階段。
Step1初始化SE-CNN網(wǎng)絡(luò)中的權(quán)值及閾值。
Step2從數(shù)據(jù)集中取一批訓(xùn)練樣本,每批訓(xùn)練樣本包含16條數(shù)據(jù),每條數(shù)據(jù)中包括4個(gè)基站各自的坐標(biāo)、4個(gè)TDOA值以及標(biāo)簽所在的參考點(diǎn)位置坐標(biāo),取每條數(shù)據(jù)的前16個(gè)元素作為網(wǎng)絡(luò)的輸入,逐層傳輸,并計(jì)算輸出與參考點(diǎn)位置坐標(biāo)之間的誤差。誤差的計(jì)算使用MSELoss函數(shù),最終使用平均MSELoss作為判斷定位結(jié)果優(yōu)劣的標(biāo)準(zhǔn)。
Step3誤差在網(wǎng)絡(luò)中反向傳播,調(diào)整網(wǎng)絡(luò)的權(quán)值和閾值。利用MSELoss函數(shù)得到誤差,再將誤差逐層返回,并計(jì)算出每一層的誤差,最后更新權(quán)值。這一過(guò)程的目的是通過(guò)訓(xùn)練樣本調(diào)整網(wǎng)絡(luò)參數(shù)值。
Step4重復(fù)Step 2-Step 3直到網(wǎng)絡(luò)輸出與參考點(diǎn)位置坐標(biāo)的誤差達(dá)到要求為止。
網(wǎng)絡(luò)訓(xùn)練結(jié)束后,保存訓(xùn)練完成的SE-CNN網(wǎng)絡(luò)模型及參數(shù),用于定位解算階段的目標(biāo)定位。
2) 定位解算階段。
Step1將標(biāo)簽放置到已知位置的測(cè)試點(diǎn),服務(wù)器已存儲(chǔ)各基站坐標(biāo),并實(shí)時(shí)計(jì)算TDOA值。
Step2將定位數(shù)據(jù)輸入定位模型,即可得到標(biāo)簽的估計(jì)位置。
訓(xùn)練網(wǎng)絡(luò)及定位解算過(guò)程的流程如圖2所示。
圖2 SE-CNN網(wǎng)絡(luò)訓(xùn)練與定位解算
本實(shí)驗(yàn)在學(xué)校實(shí)驗(yàn)樓4樓的一間7 m×6 m的實(shí)驗(yàn)室進(jìn)行,室內(nèi)人員的流動(dòng)具有隨機(jī)性。定位系統(tǒng)示意如圖3所示。
圖3 定位系統(tǒng)示意圖
實(shí)驗(yàn)設(shè)備包括一臺(tái)服務(wù)器、4個(gè)基站、2個(gè)標(biāo)簽、1個(gè)支架。服務(wù)器上安裝定位軟件,用于接收基站發(fā)送的數(shù)據(jù)。4個(gè)基站中有1個(gè)主基站、3個(gè)從基站,基站間時(shí)間同步。
圖1所示的模型是由一個(gè)SENet模塊、2個(gè)卷積層、2個(gè)池化層和2個(gè)全連接層組成。SE-CNN網(wǎng)絡(luò)參數(shù):(1) 激活函數(shù)為Relu;(2) 優(yōu)化器為Adam;(3) 學(xué)習(xí)率設(shè)置為0.001。各層的具體參數(shù)如表1所示。
表1 SE-CNN參數(shù)表
本文使用均方誤差作為評(píng)價(jià)指標(biāo)來(lái)比較各個(gè)算法的性能。由表2中各算法的誤差比較可以看出,本文提出的SE-CNN網(wǎng)絡(luò)得到的平均誤差為0.001 2,在實(shí)驗(yàn)的所有神經(jīng)網(wǎng)絡(luò)中誤差最小,且最大誤差與最小誤差相差相對(duì)較少。BP神經(jīng)網(wǎng)絡(luò)極易收斂于局部極小值,且收斂緩慢,平均誤差較大,誤差的波動(dòng)也相對(duì)較大。CNN網(wǎng)絡(luò)對(duì)受干擾的定位數(shù)據(jù)敏感,因此誤差會(huì)有跳變到很大的情況,定位誤差不穩(wěn)定。深度置信網(wǎng)絡(luò)(DBN)結(jié)構(gòu)復(fù)雜,計(jì)算復(fù)雜度較高,學(xué)習(xí)過(guò)程較慢,容易收斂于局部最優(yōu)解,所以最小誤差較大,平均誤差相對(duì)較大。綜上所述,本文提出的算法定位精度優(yōu)于其他算法,且穩(wěn)定性相對(duì)較好。
表2 不同定位算法誤差比較
本文提出了一種基于注意力機(jī)制的UWB定位算法,構(gòu)建了由注意力模塊與CNN網(wǎng)絡(luò)組成的SE-CNN網(wǎng)絡(luò)模型。將該網(wǎng)絡(luò)模型訓(xùn)練后生成的定位模型利用通道注意力機(jī)制削弱了移動(dòng)的人或物等動(dòng)態(tài)干擾因素對(duì)定位性能的影響,減少了多徑效應(yīng)與NLOS環(huán)境帶來(lái)的定位誤差,提高了定位精度和穩(wěn)定性,在真實(shí)的應(yīng)用場(chǎng)景中具有良好的適應(yīng)性。下一步將在物流倉(cāng)庫(kù)、工廠等動(dòng)態(tài)復(fù)雜的定位場(chǎng)景下驗(yàn)證并改進(jìn)本算法的性能。