陳龍鵬 ,葉 寧,4,王汝傳,4
1(南京郵電大學(xué) 計(jì)算機(jī)學(xué)院,南京 210023)
2(南京郵電大學(xué) 軟件學(xué)院,南京 210023)
3(南京郵電大學(xué) 網(wǎng)絡(luò)空間安全學(xué)院,南京 210023)
4(南京郵電大學(xué) 江蘇省無(wú)線傳感網(wǎng)高技術(shù)重點(diǎn)實(shí)驗(yàn)室,南京 210023)
近年來(lái),隨著科技的進(jìn)步和人們生活水平的不斷提高,社會(huì)各行業(yè)對(duì)基于用戶的位置信息,尤其是室內(nèi)定位的需求日益增長(zhǎng).在室內(nèi)定位的需求的推動(dòng)下,室內(nèi)定位技術(shù)發(fā)展十分迅速,目前室內(nèi)定位技術(shù)被廣泛應(yīng)用于醫(yī)院,超市,工廠,博物館等場(chǎng)所[1].根據(jù)獲得環(huán)境參數(shù)與數(shù)據(jù)采集方式的不同,目前常用的室內(nèi)定位方法主要有基于WiFi、藍(lán)牙、ZigBee、超帶寬、超聲波、紅外線以及 RFID 技術(shù)等7 種[2].射頻識(shí)別(Radio Frequency Identification,RFID)是一種利用射頻信號(hào)自動(dòng)識(shí)別目標(biāo)信號(hào)對(duì)象并獲取相關(guān)信息的技術(shù).由于RFID 技術(shù)可以在非接觸,非測(cè)距的情況下自動(dòng)識(shí)別標(biāo)簽以及可以同時(shí)識(shí)別多個(gè)標(biāo)簽,同時(shí)具有低廉的設(shè)備成本,操作方便,定位精度相比其他方法要高等優(yōu)點(diǎn),使其成為最常用的室內(nèi)定位技術(shù)[3].
目前常用的室內(nèi)定位方法根據(jù)是否需要測(cè)量節(jié)點(diǎn)間距分為兩類,分別是基于測(cè)距的定位方法和非測(cè)距的定位方法[4].基于測(cè)距的定位方法主要有信號(hào)到達(dá)時(shí)間(TOA)、到達(dá)時(shí)間差(TDOA)、到達(dá)角(AOA)和接收信號(hào)強(qiáng)度(RSSI)四種方法,基于非測(cè)距的定位有兩種,分別是場(chǎng)景分析定位方法和近似度定位方法.由于基于RSSI 的室內(nèi)定位方法具有布置簡(jiǎn)單,復(fù)雜度低等特點(diǎn),已成為目前最常用的室內(nèi)定位方法,但存在定位精度不高,受環(huán)境影響較大等問(wèn)題[5].
為了解決以上問(wèn)題,本文提出一種結(jié)合BP 和DNN 模型的雙神經(jīng)網(wǎng)絡(luò)的RFID 室內(nèi)定位算法,通過(guò)引入雙神經(jīng)網(wǎng)絡(luò)模型解決現(xiàn)有的基于RFID 的室內(nèi)定位技術(shù)中復(fù)雜的室內(nèi)環(huán)境對(duì)路徑損耗系數(shù)n的影響,以及如何提高定位精度、克服傳統(tǒng)定位算法實(shí)時(shí)性差的問(wèn)題.
根據(jù)定位方法是否需要測(cè)距來(lái)分類可以將RFID室內(nèi)定位方法分為2 種,分別是測(cè)距方法和非測(cè)距方法.基于測(cè)距的RFID 室內(nèi)定位方法通過(guò)測(cè)量未知節(jié)點(diǎn)與錨點(diǎn)間的距離、角度等信息,結(jié)合三角測(cè)量、最大似然估計(jì)等算法來(lái)實(shí)現(xiàn)定位;基于非測(cè)距的RFID 室內(nèi)定位方法通過(guò)網(wǎng)絡(luò)連通性和場(chǎng)景分析等特征實(shí)現(xiàn)定位.與基于測(cè)距的定位方法相比,非測(cè)距方法的定位更容易受到外界因素的影響,很少應(yīng)用到實(shí)際場(chǎng)景中.RFID 室內(nèi)定位方法分類如圖1所示.
圖1 RFID 室內(nèi)定位方法分類
在考慮室內(nèi)環(huán)境的影響、成本、復(fù)雜度等因素后,由于基于RSSI 的定位方法測(cè)距簡(jiǎn)單,成本較小,易于實(shí)現(xiàn),已成為目前最常用的室內(nèi)定位方法,但有定位誤差大,實(shí)時(shí)性差,受室內(nèi)環(huán)境影響較大等缺陷.
接收信號(hào)強(qiáng)度的衰減和距離有一定的指數(shù)關(guān)系,隨著距離的增加,接收信號(hào)強(qiáng)度越來(lái)越弱,同時(shí)接收信號(hào)強(qiáng)度也受環(huán)境影響,室內(nèi)傳播環(huán)境不同,路徑損耗也不同.常用的基于RSSI 定位算法通常采用經(jīng)典信號(hào)傳播模型(路徑-損耗模型)[6],如式(1) 所示:
其中,n代表路徑損耗系數(shù)[7],d為待測(cè)標(biāo)簽與讀寫器的距離,d0表示與地面的參考距離,通常取1 m,RSSI(d)和RSSI(d0)分別表示讀寫器讀取到的與讀寫器距離為d和d0的目標(biāo)標(biāo)簽的接收信號(hào)強(qiáng)度,X為噪聲干擾,X服從正態(tài)分布N(0,σ2),通??珊雎栽肼暩蓴_,取d0=1 m,可將(1) 式簡(jiǎn)化為:
根據(jù)測(cè)量得到的RSSI(d),RSSI(d0)值,再結(jié)合路徑損耗系數(shù)n,由式(2)即可得到待測(cè)標(biāo)簽到讀寫器的距離d,再根據(jù)性能指標(biāo)式(3) 就可得到待測(cè)標(biāo)簽的坐標(biāo).
其中,(xi,yi)表示m個(gè)讀寫器的坐標(biāo).
由于神經(jīng)網(wǎng)絡(luò)可以擬合任意連續(xù)的函數(shù),由傳統(tǒng)的路徑-損耗模型可知,接收信號(hào)強(qiáng)度值RSSI與路徑損耗系數(shù)n之間存在函數(shù)關(guān)系,由性能指標(biāo)式(3)可知標(biāo)簽到讀寫器的距離d與實(shí)際的坐標(biāo)值之間也存在函數(shù)關(guān)系,所以可以將傳統(tǒng)的室內(nèi)定位技術(shù)與神經(jīng)網(wǎng)絡(luò)技術(shù)相結(jié)合,實(shí)現(xiàn)實(shí)時(shí)高精度定位.
由于室內(nèi)環(huán)境復(fù)雜多變[8],路徑損耗系數(shù)n隨著室內(nèi)傳播環(huán)境的變化而變化,而傳統(tǒng)的基于RSSI 的室內(nèi)定位算法通常取固定值,導(dǎo)致系統(tǒng)定位精度較差[9].本文將傳統(tǒng)基于RSSI 的室內(nèi)定位方法與神經(jīng)網(wǎng)絡(luò)結(jié)合起來(lái),利用神經(jīng)網(wǎng)絡(luò)可以擬合任意一個(gè)連續(xù)的函數(shù)關(guān)系的特點(diǎn),擬合接收信號(hào)強(qiáng)度RSSI與路徑損耗系數(shù)n以及待測(cè)標(biāo)簽坐標(biāo)之間的函數(shù)關(guān)系.本文設(shè)計(jì)基于BP 網(wǎng)絡(luò)和DNN 網(wǎng)絡(luò)的雙神經(jīng)網(wǎng)絡(luò)模型來(lái)輸出待測(cè)標(biāo)簽坐標(biāo).第一步用BP 網(wǎng)絡(luò)來(lái)預(yù)測(cè)路徑損耗系數(shù)n,所以BP 網(wǎng)絡(luò)的輸入為濾波后的RSSI值,輸出為路徑損耗系數(shù)n,第二步將BP 網(wǎng)絡(luò)的輸出路徑損耗系數(shù)n和濾波后的RSSI作為DNN 網(wǎng)絡(luò)模型的輸入,輸出待測(cè)標(biāo)簽的坐標(biāo).算法流程圖如圖2所示.
圖2 基于雙神經(jīng)網(wǎng)絡(luò)的RFID 室內(nèi)定位算法流程圖
對(duì)同一個(gè)閱讀器接收到的多個(gè)RSSI值中,由于存在各種因素的干擾,收集到的數(shù)據(jù)有部分由誤差引起的小概率無(wú)效數(shù)據(jù),為了減少誤差,剔除無(wú)效數(shù)據(jù)的干擾,本文采取高斯濾波對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,通過(guò)高斯模型[10]選取大概率發(fā)生區(qū)間的RSSI值作為有效值,再計(jì)算算術(shù)平均值作為濾波后的輸出,從而減少小概率、強(qiáng)干擾對(duì)整體測(cè)量數(shù)據(jù)的影響,提高定位的準(zhǔn)確性.
接收信號(hào)強(qiáng)度值服從(0,σ2)的高斯分布,其概率密度函數(shù)如式(4) 所示:
其中,
則區(qū)間( μ-σ <RS S Ik<μ+σ)的概率公式如式(7)所示:
計(jì)算這些RSSI值的算術(shù)平均值:
由萬(wàn)能近似(universal approximation theorem)定理可以證明,神經(jīng)網(wǎng)絡(luò)能夠擬合連續(xù)函數(shù),而根據(jù)傳統(tǒng)的路徑-損耗模型可知接收信號(hào)強(qiáng)度RSSI和路徑損耗系數(shù)n、待測(cè)標(biāo)簽坐標(biāo)(x,y)之間存在函數(shù)關(guān)系,所以本文設(shè)計(jì)BP 網(wǎng)絡(luò)模型來(lái)預(yù)測(cè)路徑損耗系數(shù)n,DNN網(wǎng)絡(luò)模型預(yù)測(cè)待測(cè)標(biāo)簽的實(shí)際坐標(biāo).
本文采用Adam 算法降低雙神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練時(shí)間和復(fù)雜度,Adam 算法即自適應(yīng)時(shí)刻估計(jì)方法(adaptive moment estimation),能計(jì)算每個(gè)參數(shù)的自適應(yīng)學(xué)習(xí)率.這個(gè)方法不僅存儲(chǔ)了AdaDelta 先前平方梯度的指數(shù)衰減平均值,而且保持了先前梯度M(t)的指數(shù)衰減平均值,從而加速神經(jīng)網(wǎng)絡(luò)訓(xùn)練,優(yōu)化網(wǎng)絡(luò)訓(xùn)練時(shí)間,同時(shí)降低模型的復(fù)雜度.
我們確定BP 網(wǎng)絡(luò)的輸入為濾波后的RSSI 值,輸出為路徑損耗系數(shù)n,由于在本文實(shí)驗(yàn)中設(shè)置的閱讀器個(gè)數(shù)為4,而相同環(huán)境下同一房間內(nèi)的路徑損耗系數(shù)n只需取一個(gè)值,所以設(shè)定BP 神經(jīng)網(wǎng)絡(luò)的輸入層為4,輸出層為1.BP 網(wǎng)絡(luò)模型中的隱含層層數(shù)和節(jié)點(diǎn)個(gè)數(shù)的設(shè)置,以及激活函數(shù)的選擇通常根據(jù)經(jīng)驗(yàn)確定.首先假設(shè)隱含層的節(jié)點(diǎn)數(shù),根據(jù)經(jīng)驗(yàn)本仿真固定隱含層節(jié)點(diǎn)個(gè)數(shù)為18 個(gè).通過(guò)調(diào)節(jié)隱含層層數(shù),觀察隱含層的擬合效果,發(fā)現(xiàn)當(dāng)隱含層為1 時(shí)就可以達(dá)到良好的擬合效果,而且一層網(wǎng)絡(luò)訓(xùn)練時(shí)間短,結(jié)構(gòu)簡(jiǎn)單,易于實(shí)現(xiàn),因此可以確定隱含層的層數(shù)為1 層.在確定隱含層節(jié)點(diǎn)數(shù)的時(shí)候,觀察隱含層節(jié)點(diǎn)數(shù)從8 逐漸增加時(shí)的擬合效果,發(fā)現(xiàn)當(dāng)節(jié)點(diǎn)數(shù)為26 時(shí)不會(huì)出現(xiàn)過(guò)擬合現(xiàn)象,同時(shí)BP 神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)間短,得到的結(jié)果最優(yōu),所以可以得到BP 網(wǎng)絡(luò)模型的結(jié)構(gòu)為4:26:1.
由于BP 網(wǎng)絡(luò)只有3 層,輸出延遲可以忽略,得到BP 模型的輸出路徑損耗系數(shù)n后,將n與濾波后的接收信號(hào)強(qiáng)度RSSI 一起作為DNN 網(wǎng)絡(luò)模型的輸入,同理可以確定DNN 網(wǎng)絡(luò)模型的隱含層層數(shù)為5,隱含層節(jié)點(diǎn)個(gè)數(shù)分別為60,50,60,50,50.DNN 網(wǎng)絡(luò)模型的結(jié)構(gòu)為5:60:50:60:50:50:2.
基于雙神經(jīng)網(wǎng)絡(luò)模型的RSSI 定位算法能夠根據(jù)室內(nèi)環(huán)境預(yù)測(cè)當(dāng)前環(huán)境下的路徑損耗系數(shù)n,避免了因環(huán)境變化造成的定位誤差,保證了系統(tǒng)的魯棒性,同時(shí)提高了系統(tǒng)的定位精度.
為了驗(yàn)證算法的性能,需要在實(shí)驗(yàn)室進(jìn)行定位實(shí)驗(yàn)來(lái)驗(yàn)證,實(shí)驗(yàn)室的房間面積為6 m×6 m.本文所設(shè)計(jì)的定位系統(tǒng)包括4 個(gè)讀寫器,1 個(gè)待定位的RFID 標(biāo)簽,1 個(gè)用于采集數(shù)據(jù)的參考標(biāo)簽和計(jì)算機(jī)終端.首先在房間內(nèi)4 個(gè)角分別放置4 個(gè)讀寫器,讀寫器高度為1.5 m,在房間內(nèi)間隔0.5 m 設(shè)置100 個(gè)標(biāo)記點(diǎn),在每個(gè)標(biāo)記點(diǎn)距離地面1.5 m 處采集接收信號(hào)強(qiáng)度RSSI,取房間俯視圖左下角為坐標(biāo)原點(diǎn),記錄參考點(diǎn)的坐標(biāo)并保存數(shù)據(jù).實(shí)驗(yàn)環(huán)境俯視圖如圖3所示.
圖3 實(shí)驗(yàn)環(huán)境俯視圖
本實(shí)驗(yàn)中,我們所用的閱讀器是圖4中的IMPINJ R420 閱讀器,它的工作頻率在920-925 MHz.實(shí)驗(yàn)所用標(biāo)簽如圖5所示.
圖4 IMPINJ 閱讀器
圖5 實(shí)驗(yàn)所用RFID 標(biāo)簽
① 在房間內(nèi)設(shè)置4 個(gè)讀寫器,分別對(duì)每個(gè)參考標(biāo)簽連續(xù)采樣30 次得到第i個(gè)標(biāo)簽的信號(hào)強(qiáng)度值RSS Iik,j,記為Ri,其中i=1,2,3,…,100,j=1,2,3,4,k=1,2,3,…,30,并記錄對(duì)應(yīng)第i個(gè)標(biāo)簽的坐標(biāo)Pi(xi,yi).將每個(gè)標(biāo)簽的信號(hào)強(qiáng)度值與坐標(biāo)聯(lián)合在一起,得到含噪聲的原始訓(xùn)練數(shù)據(jù)集D={(R1,,P1),(R2,P2),…(Ri,Pi)}.
② 同一個(gè)閱讀器接收到的連續(xù)多個(gè)RSSI值符合高斯分布,為了減少干擾,剔除噪聲數(shù)據(jù),需要對(duì)采集到的信號(hào)強(qiáng)度值RSSI進(jìn)行去噪預(yù)處理.通過(guò)高斯模型選取大概率區(qū)間內(nèi)的RSSI值作為有效數(shù)據(jù),RSSI與高斯函數(shù)的關(guān)系如下:
RSSIi,jk為第j個(gè)閱讀器讀取到的第i個(gè)標(biāo)簽的第k個(gè)信號(hào)強(qiáng)度值,其中i=1,2,3,…,100,j=1,2,3,4,k=1,2,3,…,30.
取大概率區(qū)間內(nèi)的接收信號(hào)強(qiáng)度值作為有效數(shù)據(jù)保留,再對(duì)k次測(cè)量中所有的有效數(shù)據(jù)求平均值,過(guò)程如下:
其中,m為連續(xù)測(cè)量k次中符合大概率區(qū)間內(nèi)的信號(hào)強(qiáng)度值的個(gè)數(shù),D′i,j表示第i個(gè)標(biāo)簽被第j個(gè)讀寫器所讀取到的濾波后的信號(hào)強(qiáng)度值RSSI的平均值,記為R′i={D′i,1,D′i,2,D′i,3,D′i,4}.
③ 濾波后選取10 個(gè)距離讀寫器d0=1 m 處的參考標(biāo)簽的信號(hào)強(qiáng)度值RSSI,即D′d,d=1,2,…,10,計(jì)算其平均值由式(2) 可求得路徑損耗系數(shù)ni,如下所示:
將其取平均值,得到最終的路徑損耗系數(shù)n.
④ 將濾波后得到的信號(hào)強(qiáng)度值RSSI和路徑損耗系數(shù)n放在一起,得到BP 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)集D′1,將濾波后的信號(hào)強(qiáng)度值Ri與路徑損耗系數(shù)n和標(biāo)簽坐標(biāo)Pi聯(lián)合在一起得到新的DNN 網(wǎng)絡(luò)的訓(xùn)練數(shù)據(jù)集D′2,建立離線訓(xùn)練數(shù)據(jù)集.
⑤ 得到新的訓(xùn)練數(shù)據(jù)集之后,采用k-折交叉驗(yàn)證法來(lái)訓(xùn)練BP 網(wǎng)絡(luò)模型.將數(shù)據(jù)集D′1分成10 份,其中一份當(dāng)做測(cè)試集,其他9 份作為訓(xùn)練集,重復(fù)劃分并訓(xùn)練模型10 次,即可得到泛化誤差最小的模型,從而得到不同的環(huán)境下的不同的路徑損耗系數(shù)n,避免了環(huán)境對(duì)定位精度的影響.
⑥ 得到DNN 的數(shù)據(jù)集D′2之后,采用k-折交叉驗(yàn)證法來(lái)訓(xùn)練DNN 網(wǎng)絡(luò)模型,優(yōu)化模型參數(shù),得到最優(yōu)的DNN 模型,該模型保證了定位的實(shí)時(shí)性,有效避免因復(fù)雜多變的室內(nèi)環(huán)境而產(chǎn)生的定位誤差.
⑦ 在線實(shí)時(shí)預(yù)測(cè)待測(cè)標(biāo)簽坐標(biāo).當(dāng)有RFID 標(biāo)簽進(jìn)入到閱讀器接收區(qū)域后,經(jīng)過(guò)步驟③的數(shù)據(jù)預(yù)處理得到濾波后的信號(hào)強(qiáng)度值RSSI,將其輸入到訓(xùn)練好的雙神經(jīng)網(wǎng)絡(luò)模型中,即可輸出待測(cè)標(biāo)簽的精確坐標(biāo).
在Python2.7 環(huán)境下,分別對(duì)基于雙神經(jīng)網(wǎng)絡(luò)的RFID 定位算法和傳統(tǒng)的基于RSSI的定位算法和基于ANN 網(wǎng)絡(luò)的RSSI定位算法進(jìn)行仿真,定位結(jié)果如下圖所示.其中,在圖6中,圓點(diǎn)“○”為待測(cè)標(biāo)簽的實(shí)際坐標(biāo),菱形“◇”為基于雙神經(jīng)網(wǎng)絡(luò)的定位算法得到的預(yù)測(cè)坐標(biāo),三角形“Δ”為基于雙神經(jīng)網(wǎng)絡(luò)的定位算法得到的預(yù)測(cè)坐標(biāo),十字“ + ”表示基于ANN 網(wǎng)絡(luò)的RSSI定位算法得到的坐標(biāo).由圖7可知,傳統(tǒng)的基于RSSI的定位算法平均誤差為0.9481 米,基于ANN 網(wǎng)絡(luò)的定位算法平均誤差為0.589 米,而本文提出的基于雙神經(jīng)網(wǎng)絡(luò)的RFID 定位算法平均誤差為0.4216 米,可以看出本文提出的算法定位精度有明顯提高.跟蹤定位效果如圖8所示.
圖6 實(shí)際坐標(biāo)與仿真結(jié)果
在相同的實(shí)驗(yàn)環(huán)境下,我們采用4 個(gè)方法做了4 組實(shí)驗(yàn),每組中記錄10 次定位所花費(fèi)的時(shí)間并取其平均值,平均每次定位所需時(shí)間如表1所示.由表1可知,基于雙神經(jīng)網(wǎng)絡(luò)的RSSI定位方法平均定位所需時(shí)間要少于1 s,能夠滿足實(shí)時(shí)定位的需求,本文算法的復(fù)雜度明顯優(yōu)于BP 模型和ANN 模型,平均每次定位所需時(shí)間更短,具有更好的實(shí)時(shí)性.
從實(shí)驗(yàn)結(jié)果可以看出本文提出的算法減少了定位誤差,定位所需時(shí)間更短,雙神經(jīng)網(wǎng)絡(luò)模型的計(jì)算復(fù)雜度低于BP 模型和ANN 模型,本算法能夠根據(jù)室內(nèi)環(huán)境的變化計(jì)算出當(dāng)前環(huán)境下的路徑損耗系數(shù)n,從而減少定位誤差,系統(tǒng)的魯棒性和定位精度有明顯提高,同時(shí)定位效率有了明顯改善,在靜態(tài)物體定位和運(yùn)動(dòng)物體跟蹤定位方面都有良好的效果,能夠滿足實(shí)時(shí)定位的要求.
圖7 定位誤差
圖8 運(yùn)動(dòng)情況下跟蹤效果
表1 平均每次定位時(shí)間(s)
針對(duì)傳統(tǒng)的基于RSSI 的定位方法存在受環(huán)境影響較大,定位精度不高等缺點(diǎn)[11],本文結(jié)合神經(jīng)網(wǎng)絡(luò)算法,提出一種基于雙神經(jīng)網(wǎng)絡(luò)的RFID 室內(nèi)定位算法,利用雙神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)當(dāng)前環(huán)境下的路徑損耗系數(shù)的預(yù)測(cè)并精確輸出待測(cè)標(biāo)簽的實(shí)際坐標(biāo),由實(shí)驗(yàn)結(jié)果可知,本文提出的基于雙神經(jīng)網(wǎng)絡(luò)的定位算法大幅減少了定位誤差,克服了室內(nèi)環(huán)境變化對(duì)路徑損耗系數(shù)n的影響,能夠提高定位系統(tǒng)的魯棒性,并且具有更好的實(shí)時(shí)性,能夠部署在圖書館,超市等環(huán)境,有著廣泛的應(yīng)用前景.