羅宏等 藍(lán) 耿 聶良剛* 粟光旺 伍一坤
1(廣西財經(jīng)學(xué)院 廣西 南寧 530003)2(廣西大學(xué) 廣西 南寧 530001)
目標(biāo)定位與跟蹤是無線傳感器網(wǎng)絡(luò)(WSN)的基礎(chǔ)研究領(lǐng)域之一[1]。要實現(xiàn)WSN中準(zhǔn)確的目標(biāo)定位和跟蹤,需要提高目標(biāo)初始位置的精度和動態(tài)實時目標(biāo)的測距精度。
國內(nèi)外學(xué)者圍繞WSN中實時目標(biāo)的準(zhǔn)確跟蹤進(jìn)行了大量的研究。文獻(xiàn)[2]將接收信號強度指示器(Received Signal Strength Indicator, RSSI)測量融合到遞歸貝葉斯框架濾波器中,研究了初始位置的濾波方法,但是該方法具有局部性,無法提高全局精確度;文獻(xiàn)[3]和文獻(xiàn)[4]采用全局濾波法對WSN中目標(biāo)的初始位置進(jìn)行了精確估計,但該方法沒有考慮目標(biāo)的實時動態(tài)性。文獻(xiàn)[5]基于卡爾曼濾波(Kalman Filter, KF)研究了動態(tài)目標(biāo)定位和跟蹤過程中噪聲的數(shù)量和分布以及測量對應(yīng)用的影響,但是所利用的噪聲與實際情況有較大的偏差,對實際應(yīng)用難以做出有效評估。文獻(xiàn)[6]提出了一種基于無跡卡爾曼濾波(Unscented Kalman Filter, UKF)的定位和跟蹤算法,該算法利用人體步行的動態(tài)模型來跟蹤目標(biāo)的位置和速度,需要大量的傳感器,增加了傳感器的復(fù)雜度和成本。文獻(xiàn)[7]采用單傳感器基于距離感知法對WSN中目標(biāo)的距離進(jìn)行了測量,但實驗結(jié)果表明其測量結(jié)果誤差較大。文獻(xiàn)[8]和文獻(xiàn)[9]避免了文獻(xiàn)[7]的缺點,采用多傳感器基于泛函距離對動態(tài)目標(biāo)的距離和位置進(jìn)行了測量,但其實驗結(jié)果依然與理論之間存在較大誤差。文獻(xiàn)[10]采用神經(jīng)網(wǎng)絡(luò)法對WSN中的二維動態(tài)目標(biāo)進(jìn)行了高精度定位和跟蹤,但其計算耗時較長,具有一定的時滯性。文獻(xiàn)[11]引入了一些移動傳感器節(jié)點(mns)與社交網(wǎng)絡(luò)服務(wù)(Social Networking Services, SNS)相結(jié)合,形成一種能力更強、能量約束更小的混合WSN。在此基礎(chǔ)上,提出了一種有效的混合無線傳感器網(wǎng)絡(luò)目標(biāo)跟蹤方案,實現(xiàn)了移動節(jié)點和移動節(jié)點的動態(tài)調(diào)度。然而,當(dāng)節(jié)點數(shù)量較多時,該方案的魯棒性會受到一定的影響。文獻(xiàn)[12]將機器學(xué)習(xí)與反向神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Networks, BPNN)相結(jié)合,用于跟蹤以某種加速度移動的目標(biāo),然而,BPNN需要大量迭代運算才能收斂到所需的解決方案。文獻(xiàn)[13]采用概率神經(jīng)網(wǎng)絡(luò)(Probabilistic Neural Network, PNN)克服了BPNN的局限性,只需要很少的訓(xùn)練樣本就可以工作,但是BPNN無法解決測量噪聲和目標(biāo)速度突變的不確定性。
可以看出,現(xiàn)有方法很難同時得到準(zhǔn)確的初始值以及定位和跟蹤的精確值。因此,提出了一種WSN中改進(jìn)(FOA-GRNN)法結(jié)合迭代Cubature卡爾曼濾波的實時目標(biāo)跟蹤方法,主要創(chuàng)新點包括:
(1) 在零平均值高斯測量噪聲的背景下,利用GRNN算法對初始位置進(jìn)行確定,可提高初始位置的定位精度,提高二維動態(tài)目標(biāo)位置的估計能力。
(2) 針對測量噪聲和目標(biāo)速度突變的不確定性,利用迭代Cubature卡爾曼濾波對WSN中單運動目標(biāo)進(jìn)行實時二維跟蹤,提高了動態(tài)跟蹤的實時性和跟蹤精度。
(3) 結(jié)合FOA-GRNN快速收斂的優(yōu)點和迭代Cunbature卡爾曼濾波精度較高的優(yōu)點,降低了大規(guī)模目標(biāo)跟蹤和定位的絕對誤差,一定程度上降低了定位所花費的計算開銷。
實驗結(jié)果表明,與其他現(xiàn)有算法相比,本文方法在大規(guī)模動態(tài)目標(biāo)定位和跟蹤的問題上,具有更好的目標(biāo)定位和跟蹤能力,獲得了更高的定位和跟蹤精度,同時,定位所花費的時間也在可接受范圍內(nèi)。
改進(jìn)的FOA-GRNN可以快速地收斂到基礎(chǔ)(線性或非線性)回歸表面,它能夠在稀疏數(shù)據(jù)集上快速訓(xùn)練,并且對連續(xù)函數(shù)逼近特別有用。圖1給出了改進(jìn)的FOA-GRNN的結(jié)構(gòu),它主要由輸入層、模式層、求和層和輸出層組成[14]。輸入層接收輸入信號,而模式層對輸入空間到模式空間的數(shù)據(jù)進(jìn)行非線性變換。隱藏層中的神經(jīng)元數(shù)量通常等于訓(xùn)練集中的模式數(shù)量。求和層執(zhí)行求和操作,其中將模式層節(jié)點的輸出與適當(dāng)?shù)幕ミB權(quán)值相乘以進(jìn)行求和,從而生成網(wǎng)絡(luò)的輸出。輸出層節(jié)點由一個單獨輸出表示。
圖1 FOA-GRNN跟蹤算法框圖
改進(jìn)FOA-GRNN架構(gòu)的輸入是在特定時間實例從錨節(jié)點接收信號的RSSI值,其輸出為在該時刻移動節(jié)點估計的x軸和y軸坐標(biāo)。在WSN節(jié)點定位中,錨點為已知自身位置的傳感器節(jié)點。而節(jié)點中,無線信號強度通常用接收信號強度指示(RSSI)衡量,RSSI為接收功率Pre與參考功率Pref的比值?,F(xiàn)實中,由于無線信號的傳播易受障礙物、多徑傳播等因素的干擾,理想的Pre分布是不存在的,影響RSSI與距離的一致性。因此,接收多組數(shù)據(jù)之后進(jìn)行卡爾曼濾波處理,一定程度上消除信號波動產(chǎn)生的誤差。
改進(jìn)的FOA-GRNN的離散時間目標(biāo)運動模型和觀測模型的形式如下:
(1)
dmax=max[di]
(2)
(3)
式中:N和M分別是當(dāng)前迭代次數(shù)和最大迭代次數(shù);xi和yi是第i個果蠅的橫坐標(biāo)和縱坐標(biāo)位置;di是第i個果蠅與坐標(biāo)原點的距離;dmin和dmax分別是最大距離和最小距離;Δi是待優(yōu)化選擇的寬度系數(shù)。
改進(jìn)FOA-GRNN算法中,每個錨點可視為一只果蠅,即對初始位置初始化和果蠅位置賦值后,計算果蠅與原點之間的距離和果蠅的味道濃度,并根據(jù)果蠅的味道濃度尋找出最優(yōu)個體,保存最優(yōu)個體的位置。最后,根據(jù)收斂條件設(shè)置迭代次數(shù),直到滿足迭代條件,該執(zhí)行過程結(jié)束。主要步驟為:
(1) 對果蠅的初始位置進(jìn)行初始化。
(2) 對第i個果蠅的位置進(jìn)行賦值。
(3) 計算所有果蠅與坐標(biāo)原點之間的距離di。
(4) 以均方根誤差作為判斷函數(shù)來計算第i個果蠅的味道濃度taste(x):
(4)
tastei=F3(Δi)
(5)
(5) 找到tastei最小的個體,即:
Ttaste=min(tastei)
(6)
式中:Ttaste為tastei最小的個體。
tastei最小的個體的位置為:
(7)
(6) 循環(huán)執(zhí)行步驟(2)-步驟(5),直到滿足收斂條件,結(jié)束循環(huán)。
當(dāng)?shù)讓酉到y(tǒng)是線性的,系統(tǒng)動力學(xué)中的噪聲是高斯的,具有零均值時,Cubature卡爾曼濾波(Cubature Kalman Filtering, CKF)采用spherical-radial cubature準(zhǔn)則積分,則可計算第n個目標(biāo)與坐標(biāo)原點之間的距離dn為:
(8)
根據(jù)最小二乘法估計方法可得到:
A=(BTB)-1BTC
(9)
(10)
(11)
式中:A、B和C分別是狀態(tài)轉(zhuǎn)換、控制輸入轉(zhuǎn)換和測量轉(zhuǎn)換矩陣。
矩陣A將可選控制輸入向量Uk與狀態(tài)相關(guān)聯(lián)。這里Wk-1和Vk+1分別是過程噪聲和觀測噪聲,并且假設(shè)是正態(tài)分布的零均值白高斯,分別具有協(xié)方差Rk(Wk~N(0,Rk))和Ωk(Vk~N(0,Ωk))。假設(shè)這兩個噪聲彼此獨立,即它們是不相關(guān)的[15],對于等速模型,式(9)-式(11)中的矩陣如下:
(12)
(13)
CKF的運行可以描述為兩個簡單的步驟:預(yù)測和更新。預(yù)測步驟利用前一個時間步驟k的估計值來生成當(dāng)前時間步驟k+1的估計值。而在更新步驟中,利用當(dāng)前時間步驟的測量來細(xì)化預(yù)測步驟的預(yù)測,從而改進(jìn)預(yù)測步驟。預(yù)測和更新中的計算式如式(14)-式(17)所示。
預(yù)測:
(14)
Ωk+1=BRkBT+Ωk
(15)
更新:
(16)
(17)
式中:矩陣K稱為卡爾曼增益矩陣;“^”表示狀態(tài)向量的估計值。
本文方法基于改進(jìn)FOA-GRNN法,利用從錨點接收的模擬(RSSI)值和實際目標(biāo)二維位置對GRNN進(jìn)行訓(xùn)練,從而獲得單個目標(biāo)在二維運動時的準(zhǔn)確初始位置。然后,利用迭代Cubature卡爾曼濾波法對實時目標(biāo)進(jìn)行精準(zhǔn)定位和測距,獲得實時目標(biāo)的準(zhǔn)確定位和跟蹤信息。最后,將改進(jìn)的FOA-GRNN法和迭代Cubature卡爾曼濾波法相結(jié)合實現(xiàn)在WSN中實時目標(biāo)跟蹤和定位。其流程如圖2所示。
圖2 本文方法執(zhí)行流程
本文方法利用 MATLAB搭建系統(tǒng)仿真模型,該系統(tǒng)由一組已知坐標(biāo)的靜態(tài)錨節(jié)點組成,部署在200 m×200 m的仿真區(qū)域內(nèi),移動目標(biāo)如圖3所示,外部為基站。假設(shè)移動目標(biāo)攜帶1個WSN節(jié)點,該節(jié)點接收由每個時間步長tstep的所有錨節(jié)點廣播的無線信號。在每個時間步驟從所有錨點收集的RSSI值被發(fā)送到外部基站[16]。這意味著假定目標(biāo)充當(dāng)收發(fā)器,而錨定節(jié)點充當(dāng)具有完全各向同性天線的發(fā)射器。
圖3 目標(biāo)的在橫軸上的實際速度
為了簡單起見,將跟蹤目標(biāo)限制在單個目標(biāo)的估計上。該系統(tǒng)的運行時間為Trun,分為幾個時間段。選擇恒速模型描述各種狀態(tài)遷移模型,如隨機行走、勻速、恒加速度、多項式模型、辛格加速度模型、平均自適應(yīng)加速度模型等。
(18)
(19)
式中:Δt是兩個連續(xù)時刻之間的離散化時間步長,使得Δt=tstep。目標(biāo)運動在Trun期間經(jīng)歷速度的變化,如式(20)-式(23)所示。
(20)
(21)
(22)
(23)
圖3和圖4分別給出了在橫軸和縱軸上的速度,負(fù)速度值表示目標(biāo)移動到一個坐標(biāo)值比前一次實例小的位置。
圖4 目標(biāo)的在縱軸上的實際速度
(24)
(25)
平均定位誤差:
(26)
均方根誤差(RMSE):
(27)
(28)
(29)
本文算法的完整執(zhí)行流程由三部分組成。第一部分是離線FOA-GRNN訓(xùn)練階段,涉及FOA-GRNN的訓(xùn)練。第二部分是使用FOA-GRNN的在線位置估計。第三部分是使用KF框架的在線位置估計。
表1給出了模擬參數(shù),初始目標(biāo)狀態(tài)為A=(20,15,10,5),離散時間步長為tstep=0.1 s,總模擬時長為Trun=50 s。
表1 本文算法的仿真參數(shù)
表2-表5給出了在不同tstep下Erroravg、ErrorU、ErrorV和ErrorRMSE,avg的模擬結(jié)果。圖5給出了平均定位誤差百分比Erroravg與均方根誤差百分比ErrorRMSE,avg的對比圖,可以看出,平均誤差百分比Erroravg與均方根誤差百分比ErrorRMSE,avg總體呈現(xiàn)一樣的變化趨勢,即隨著步長tstep的增加,平均誤差百分比Erroravg與均方根誤差百分比ErrorRMSE,avg都會逐漸增加,這意味著為了增加定位的精度,應(yīng)該選擇較小的離散步長tstep。同時,從圖5中還可以得到一個結(jié)論:平均誤差與均方差誤差之間的差異性較小。因此,既可以用平均定位誤差來衡量定位準(zhǔn)確度,又可以用均方差誤差來衡量定位準(zhǔn)確度。
表2 平均定為誤差的模擬結(jié)果
表3 定位結(jié)果在橫軸上的均方差
表4 定位結(jié)果在縱軸上的均方差
表5 平均均方差
圖5 平均定位誤差百分比與均方根誤差百分比的對比
圖6展示了定位誤差在橫向和縱向上的分布,可以看出,隨著離散步長tstep的增加,橫向誤差和縱向誤差都會增加,當(dāng)tstep小于0.5 s時,橫向誤差ErrorU小于縱向誤差ErrorV,當(dāng)tstep大于0.5 s后,縱向誤差ErrorV小于橫向誤差ErrorU,并且ErrorU和ErrorV的差異較小。
圖6 橫向誤差與縱向誤差的對比
2.4.1絕對誤差對比
圖7對比了文獻(xiàn)[4]、文獻(xiàn)[8]和文獻(xiàn)[11]與本文算法的絕對誤差??梢钥闯觯S著離散步長tstep的增加,橫向絕對誤差會逐漸增加,相比于文獻(xiàn)[4]、文獻(xiàn)[8]和文獻(xiàn)[11]的算法,本文算法在絕大部分范圍內(nèi)具有更低的橫向絕對誤差,這說明本文算法相比于傳統(tǒng)算法,具有更高的橫向定位和跟蹤精度。
圖7 算法橫向絕對誤差對比
圖8展示了本文算法所得到的縱向絕對誤差結(jié)果與文獻(xiàn)[4]、文獻(xiàn)[8]和文獻(xiàn)[11]中算法所得到的縱向絕對誤差的對比??梢钥闯觯S著離散步長tstep的增加,4種算法所得到的縱向絕對誤差會逐漸增加,相比于文獻(xiàn)[4]、文獻(xiàn)[8]和文獻(xiàn)[11]的算法,本文算法在絕大部分范圍內(nèi)具有更低的縱向絕對誤差,這說明本文算法相比于傳統(tǒng)算法,具有更高的縱向定位和跟蹤精度。
圖8 算法縱向絕對誤差對比
圖9展示了本文算法所得到的絕對誤差結(jié)果與文獻(xiàn)[4]、文獻(xiàn)[8]和文獻(xiàn)[11]中算法所得到的絕對誤差的對比。可以看出,隨著離散步長tstep的增加,4種算法所得到的絕對誤差會逐漸增加,相比于文獻(xiàn)[4]、文獻(xiàn)[8]和文獻(xiàn)[11]的算法,本文算法在絕大部分范圍內(nèi)具有更低的絕對誤差,這說明所提出的算法相比于傳統(tǒng)算法,具有更高的定位和跟蹤精度。
圖9 算法絕對誤差對比
2.4.2執(zhí)行時間對比
一方面隨著離散步長tstep的增加,4種算法所得到的絕對誤差結(jié)果都會增加,這說明減小離散步長tstep可提高定位精度和準(zhǔn)確度;另一方面,太小的離散步長tstep會增加定位算法的計算時間,導(dǎo)致定位和跟蹤的時間較長,不利于實際應(yīng)用。
為了說明本文算法在計算時間上的優(yōu)勢,圖10展示了本文算法與文獻(xiàn)[4]、文獻(xiàn)[8]和文獻(xiàn)[11]在離散步長tstep相等的前提下在200 m范圍內(nèi),對同等數(shù)量動態(tài)目標(biāo)定位所花費的時間對比。
圖10 算法計算時間對比
可以看出,在相同的定位和跟蹤范圍內(nèi),即定位半徑為200 m的前提下,定位和跟蹤的目標(biāo)數(shù)量由500個逐漸增加到5 000個。與文獻(xiàn)[4]、文獻(xiàn)[8]和文獻(xiàn)[11]相比,在執(zhí)行時間上,本文算法整體處于劣勢。需要指出的是,在實際應(yīng)用中,人們更加注重定位算法的準(zhǔn)確度,因為定位誤差才是真正影響算法應(yīng)用的瓶頸問題,換言之,算法的精確度才是首要考慮的因素。與文獻(xiàn)[8]和文獻(xiàn)[11]算法相比,本文算法雖然在執(zhí)行時間上不具有全面優(yōu)勢,但是一定范圍內(nèi)能夠得到最小的執(zhí)行時間,如當(dāng)目標(biāo)數(shù)量為2 500時,本文算法在定位精度和執(zhí)行時間上均具有明顯的優(yōu)勢。
綜合考慮定位算法的準(zhǔn)確度和執(zhí)行時間的對比結(jié)果,本文算法具有更好的綜合性能,在保證具有較短執(zhí)行時間的基礎(chǔ)上,利用本文算法能夠獲得更高的定位準(zhǔn)確度。
本文提出一種WSN中改進(jìn)FOA-GRNN結(jié)合迭代Cubature卡爾曼濾波的實時目標(biāo)跟蹤方法,研究了在大范圍定位和跟蹤區(qū)域下對大量定位和跟蹤目標(biāo)進(jìn)行準(zhǔn)確定位和跟蹤的問題。本文方法提高了定位和跟蹤的準(zhǔn)確度,降低了定位和跟蹤的誤差百分比和絕對誤差。
下一步研究重點包括:1) 將FOA-GRNN與其他更加智能的濾波算法相結(jié)合,進(jìn)一步提高WSN中目標(biāo)定位和跟蹤的精度;2) 繼續(xù)改進(jìn)FOA-GRNN算法的計算結(jié)構(gòu),進(jìn)一步降低本文算法在大規(guī)模目標(biāo)定位和跟蹤上的計算時間。