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