蔣偉斌, 黃春暉,2
(1.福州大學(xué) 物理與信息工程學(xué)院,福建 福州 350116; 2.陽光學(xué)院 人工智能學(xué)院,福建 福州 350115)
無線傳感器網(wǎng)絡(luò)(wireless sensor networks,WSNs)定位技術(shù)是物聯(lián)網(wǎng)產(chǎn)業(yè)發(fā)展的基石[1]。室內(nèi)定位一直是物聯(lián)網(wǎng)產(chǎn)業(yè)當(dāng)中一大難點,在室外可采用先進的全球衛(wèi)星定位系統(tǒng)(global positioning system,GPS)、北斗衛(wèi)星等進行精準(zhǔn)定位,精度可達(dá)到1 m級別[2]。但由于衛(wèi)星信號對城市當(dāng)中的鋼筋混凝結(jié)構(gòu)的穿透力差,因此,在地下或者相對密閉空間中定位能力弱。在室內(nèi)定位常采用無線傳感網(wǎng)絡(luò)定位技術(shù)解決GPS對室內(nèi)定位應(yīng)用中的空白,為大型商超或大規(guī)模自動化工廠提供必要的位置指示和導(dǎo)航方案[3]。
WSNs當(dāng)中常用于室內(nèi)定位的有到達(dá)時間(time of arrival,ToA)、到達(dá)信號時間差(time difference of arrival,TDoA)、飛行時間(time of flight,ToF)及接收信號強度指示(received signal strength indication,RSSI)等信號進行測距定位。但由于這些方式對兩點之間的距離測量存在較大的誤差,所以需要更多的濾波算法提高測量的準(zhǔn)確度。文獻(xiàn)[4]中提到采用三種濾波預(yù)處理方式對RSSI數(shù)據(jù)處理,但實驗結(jié)果表明采用的濾波算法改善的效果有限。文獻(xiàn)[5]對Shadowing模型進行分析,采用貝葉斯處理,在一定程度上提升精度,但算法復(fù)雜程度高。除濾波算法外還需要更多的設(shè)備[6],增加了定位識別的時間也不易便攜化。除了采用雙目攝像頭極大提高了測量的準(zhǔn)確性同時也增加WSNs以外,文獻(xiàn)[7]使用了視覺處理的方法進行算的定位,復(fù)雜性,對硬件要求也更高。
本文針對目前室內(nèi)定位算法中WSNs算法精度不高以及視覺類型中算法復(fù)雜對硬件要求高的問題,提出RSSI與單目攝像相結(jié)合的方式,形成一種融合算法。
系統(tǒng)由藍(lán)牙與單目攝像頭結(jié)合而成的信標(biāo)節(jié)點和未知節(jié)點組成,系統(tǒng)的節(jié)點(已知和未知)藍(lán)牙部分都采用CSR的BC417芯片構(gòu)建,通過指令切換模式,信標(biāo)節(jié)點裝備單目攝像頭做實時圖像采集。未知信號節(jié)點配備有紅色LED輔助定位。兩個節(jié)點通過分時檢測雙方的RSSI信號并對數(shù)據(jù)傳輸。系統(tǒng)對Shadowing模型改進,經(jīng)過高斯和卡爾曼濾波處理并建立離線指紋庫等預(yù)處理后,信標(biāo)節(jié)點通過改進Shadowing模型得到兩點距離值,利用改進K最近鄰(K nearest neighbour,KNN)算法預(yù)定位空間位置,攝像頭采集圖像精確定位未知節(jié)點的坐標(biāo)。
采用帶誤差的Shadowing模型,對模型進行一定的優(yōu)化和驗證,得到改進后模型的正確性和優(yōu)越性,改進模型為
PL(d)=PL(d0)+10(n+f(n))lg(d/d0)
(1)
由于室內(nèi)空間的復(fù)雜性,導(dǎo)致原始數(shù)據(jù)不穩(wěn)定,因此系統(tǒng)采用高斯濾波進行有效值的篩選與卡爾曼的平滑濾波效果配合,使得RSSI數(shù)據(jù)穩(wěn)定并接近實際值[8]。原始數(shù)據(jù)通過高斯濾波選取發(fā)生概率高的數(shù)據(jù)并對選取的值進行加權(quán)平均處理,高斯分布函數(shù)為
(2)
選取合適的PRSSI概率臨界值,對RSSI數(shù)據(jù)進行有效的篩選,如式(3)~式(5)所示。PRSSI值為[0.72,1.0]時,效果最佳,通過如下公式計算組內(nèi)加權(quán)平均值
(3)
(4)
(5)
式中N為樣本容量,ωt為數(shù)據(jù)標(biāo)記。
由圖1(a)表明,經(jīng)高斯濾波后數(shù)據(jù)有明顯穩(wěn)定。為了進一步優(yōu)化數(shù)據(jù),引入卡爾曼濾波算法??柭惴ǖ螖?shù)少,輸出結(jié)果平滑穩(wěn)定??柭鼮V波算法分為兩部分:預(yù)測和更新。經(jīng)過卡爾曼濾波后的數(shù)據(jù)如圖1(b)所示。由文獻(xiàn)[9]可得卡爾曼濾波方程為
圖1 濾波預(yù)處理結(jié)果
P(t|t-1)=P(t-1|t-1)+Q
(6)
(7)
M(t|t)=M(t|t-1)+KG(t)[y(t)-M(t|t-1)]
(8)
P(t|t-1)=(1-KG(t)×P(t|t-1))
(9)
經(jīng)過濾波預(yù)處理后的數(shù)據(jù)收斂性和平滑度明顯提高。為了使數(shù)據(jù)更接近真實值,采用差分模型對節(jié)點之間的數(shù)據(jù)進行再次篩選。假設(shè)在同一時空中,節(jié)點之間的環(huán)境因素不變,各自數(shù)據(jù)相同,差分模型為
PL(Δd)=PL(da)-PL(db)=10nlg(da/db)
(10)
當(dāng)da與db相同時,認(rèn)為RSSI數(shù)據(jù)有效并進行加權(quán)平均處理后。經(jīng)過差分處理篩選結(jié)果如圖2(a)所示,數(shù)據(jù)穩(wěn)定且接近真實值。由圖2(b)可得,數(shù)據(jù)擬合曲線與真實值接近。
圖2 處理結(jié)果
系統(tǒng)只采用一個信標(biāo)節(jié)點對未知節(jié)點定位,所以,需要對所在空間建立有于RSSI信號的指紋庫輔助定位,單目攝像頭進行圖像采集與處理做準(zhǔn)備。指紋法分離線和在線兩個階段,前者為指紋庫建立,是將N組位置與特征相關(guān)聯(lián)系進行構(gòu)建成為一個庫,后者是在前者的階段上,進行查詢匹配進行空間定位[10]。系統(tǒng)的指紋庫采構(gòu)建一組位置與特征之間的關(guān)系,使用時尋找與指紋庫中特征相近的值,對未知節(jié)點初步定位。
以主設(shè)備端為原點,建立空間坐標(biāo)系xyz,且取y軸的正半軸。各坐標(biāo)軸的步長為0.5 m,在每個節(jié)點從設(shè)備接收此時的RSSI信號數(shù)值。將接收到的信號強度與各個坐標(biāo)節(jié)點對應(yīng),形成一組的離線指紋庫,如表1。
表1 RSSI離線指紋庫
其中,x∈[-5,5],y∈[0,10],z∈[-1.5,1.5]。信標(biāo)節(jié)點在距離地面1.5 m處,監(jiān)測范圍如圖3(a)所示,整個空間當(dāng)中共有1 617個點并對每個節(jié)點進行測量,得到數(shù)據(jù)錄入在指紋庫中,完善離線指紋庫。指紋庫的建立使得定位時間縮短并且提高精度。
指紋庫建立完成后,將RSSI信號經(jīng)過預(yù)處理的數(shù)據(jù)轉(zhuǎn)換為距離值,轉(zhuǎn)換公式為
(11)
KNN算法常用于二維類聚情況下,在三維空間的適用性差,因此,改進KNN算法使得適用三維甚至多維平面,快速定位未知節(jié)點的空間范圍。改進KNN算法需要先構(gòu)建一個三維構(gòu)架空間(K-D樹),系統(tǒng)以x軸為父節(jié)點,y和z軸作為空間的分隔點。得到RSSI的特征與指紋庫中的特征進行x軸的二叉查找,生成搜索的路線,再進行回溯查找。再對y和z軸空間的進行分割平面,最后確定出K個近鄰點。文獻(xiàn)[11]指出常用的歐幾里得距離進行查找,使得公式適用于三維空間,對距離公式進行擴展為
(12)
系統(tǒng)取K的取值為4(經(jīng)驗值),進行運算處理后,確定未知節(jié)點初步確定的空間范圍之中,這個范圍可以為非連續(xù)空間,但兩兩相互對稱。值用包含未知節(jié)點的空間節(jié)點用笛卡爾坐標(biāo)系表示,空間節(jié)點覆蓋大小為r=0.5 m的球體。表2為改進KNN實驗結(jié)果。
表2 數(shù)據(jù)處理結(jié)果
經(jīng)過改進KNN算法后,得到數(shù)據(jù)包含實際的點。與窮舉法相比,速度快、更精確且結(jié)果數(shù)量少。
文獻(xiàn)[12]簡介幾種攝像頭測距方式[13],系統(tǒng)以單目攝像頭三角測距法為基礎(chǔ),結(jié)合RSSI轉(zhuǎn)換的距離對未知節(jié)點進行精準(zhǔn)定位。攝像頭以水平方式放置,對未知節(jié)點進行拍攝。有文獻(xiàn)[14]通過像素法得到焦距,利用式(13)得到物平面與像平面的直線距離
(13)
式中F為相機焦距,W為物體的寬度,L為改變位置后的距離,K為改變位置后同一個物體在圖像中所占的像素點。
圖3(b)為空間當(dāng)中物體與攝像頭成像平面之間的關(guān)系。在焦距與像構(gòu)成的三角形與物與直線距離構(gòu)成的三角形呈現(xiàn)相似關(guān)系。則可由式 (13)和RSSI轉(zhuǎn)換的距離RSSId按照幾何特性得到兩個幾何圖形之間的關(guān)系為
圖3 空間定位示意
(14)
經(jīng)過公式推導(dǎo)得到物在實際空間中的X,Y,Z坐標(biāo)。再通過此時物在成像平面當(dāng)中的像素寬度K,按照直線三角法方式推導(dǎo)物在軸線的大致距離,再根據(jù)像在平面軸線的距離對其進行自適應(yīng)比例放大得到直線三角法估計的坐標(biāo)。將直線三角法坐標(biāo)與改進三角法坐標(biāo)進行加權(quán)融合,如式(15),其中a為經(jīng)驗值,得到最終的空間定位坐標(biāo)
(15)
系統(tǒng)采用CSR的BC417模組作為RSSI測量及節(jié)點之間的通信載體,發(fā)射功率4 dBm。未知節(jié)點采用STM8,紅色LED以及鋰電池搭建而成,信標(biāo)節(jié)點則采用STM32,OV5640高清攝像頭、屏幕和外部SRAM搭建。信標(biāo)節(jié)點采集的圖像為720 P大小空間,控制器在168 MHz驅(qū)動下,圖像以BMP數(shù)據(jù)格式保存至外部SRAM當(dāng)中,原圖像也可在屏幕顯示。圖4為系統(tǒng)實物及框架流程圖。
圖4 系統(tǒng)實物及框架流程圖
在5 m×10 m×3 m的室內(nèi)空間進行實驗,將信標(biāo)節(jié)點固定在高度為1.5 m,在軸線1 m處標(biāo)定A值,并在軸線上每個0.5 m處確定最后n值,空間中每隔0.5 m為一個間距節(jié)點,進行RSSI數(shù)據(jù)采集,并建立離線指紋庫,前期準(zhǔn)備工作完成。任意選取空間節(jié)點(1.5,4.5,0.5)m放置未知節(jié)點設(shè)備并通過專業(yè)儀器確定該點RSSI信號值為-48 dBm,圖5為在該點未處理的信號值與經(jīng)過預(yù)處理后的信號值對比,可以看出,經(jīng)過預(yù)處理后的RSSI信號值更加收斂波定性小,接近真實值。
圖5 預(yù)處理結(jié)果比對
在實驗空間中多次測量得到100組數(shù)據(jù),將預(yù)處理后的結(jié)果通過改進KNN算法的構(gòu)建K-D樹后,數(shù)據(jù)輸出后對準(zhǔn)確率進行識別,試驗點在改進KNN算法輸出結(jié)果的概率為98 %。結(jié)果表明,改進KNN算法的精度高、用時短。分別采用窮舉法和改進KNN算法,在MATLAB中,窮舉法篩選出來的數(shù)量和時間分別為4~58個和20 s以上,采用改進KNN算法篩選出結(jié)果為4個和10 ms。由此可見采用改進KNN算法得到的結(jié)果優(yōu)于窮舉法。
在測試空間中的節(jié)點(-1.5,8,0)m放置直徑為10 cm的紅色紙片作為對比物,將未知節(jié)點放置于空間中任意位置,測試空間如圖6(a)所示,采集圖像后,將圖像針對R閾值進行二值化操作得到如圖6(b)情況。在圖6(b)中,發(fā)射紅光的LED可以看到平面位置在對比物的左上角,對其放大后可得光斑的形狀為不規(guī)則圖形,采用四極限法進行中心點確定,如圖6(c)所示,確定的坐標(biāo)點與改進KNN算法中的匹配點進行比對篩選,得到距離最小最小值為初步定位點,將初步定位點作為新的原點,進行精準(zhǔn)定位。
圖6 采集圖像及光斑處理
如圖7(a),在像平面中,以初步定位點作為新的坐標(biāo)原點,根據(jù)新的原點出發(fā),根據(jù)像與實物之間的關(guān)系進行比例平移,經(jīng)過坐標(biāo)轉(zhuǎn)換得到精準(zhǔn)的定位坐標(biāo)值。如圖7(b)定位完成后在屏幕上顯示出定位的笛卡爾坐標(biāo),多次試驗結(jié)果如表3所示,在3 m范圍內(nèi)定位精度為2 %以內(nèi),3~10 m之間,定位精度5 %左右,需要的時間和設(shè)備比雙目攝像頭和無線傳感網(wǎng)絡(luò)定位的方式都低。
表3 實驗結(jié)果
圖7 精準(zhǔn)定位簡化圖
本文針對室內(nèi)空間定位精度低,設(shè)備多高精,算法復(fù)雜等問題,提出改進Shadowing模型和多種預(yù)處理方式對RSSI信號處理,經(jīng)圖像處理后得到定位點。通過對比實驗,所提方案與需要20個以上輔助信標(biāo)的傳統(tǒng)RSSI定位方法具有相同的效果,且減少了視覺空間定位的時間和算法的復(fù)雜度。最后達(dá)到高精度、定位時間短、設(shè)備要求低的算法,滿足近年來日常和工業(yè)當(dāng)中(如分揀等)精確定位場景。