郝占軍,顏麗華,黨小超,2
(1.西北師范大學計算機科學與工程學院,蘭州 730070;2.甘肅省物聯(lián)網(wǎng)工程研究中心,蘭州 730070)
室內(nèi)不像在室外環(huán)境中一樣可借助衛(wèi)星信號進行定位導(dǎo)航,因此基于WiFi的室內(nèi)位置服務(wù)應(yīng)用越來越廣泛[1]。人的移動軌跡相比于物體的移動和單純的定位信息,是一個更加細粒度,更為深層次的精確測量,所以室內(nèi)的人員軌跡跟蹤檢測具有一定的難度,與人員位置信息[2]的獲取相比,人員軌跡跟蹤更加復(fù)雜,存在著很多壁壘。目前被廣泛使用的目標軌跡跟蹤方法,大部分需要給被測目標佩戴RFID標簽、UWB標簽、[3]GPS模塊等設(shè)備,才能完成目標軌跡跟蹤,如果在某些緊急情況下,所需觀測的對象不方便或不配合攜帶設(shè)備,就無法完成對目標人員的軌跡跟蹤,例如對病人行為軌跡的監(jiān)測,對入侵者的監(jiān)測。針對上述情況,有研究者提出了被動式人員軌跡跟蹤,被動式目標軌跡測繪因為其不需要被測者攜帶任何設(shè)備而逐漸成為研究熱點。
目前,主流的人員跟蹤系統(tǒng)主要有被動式目標軌跡跟蹤、專業(yè)化的特殊的傳感器軌跡跟蹤、基于位置信息的軌跡跟蹤、基于人體行為監(jiān)控的軌跡檢測。文獻[4]針對能耗和計算量問題,提出了基于壓縮感知的被動式目標跟蹤算法,該算法可以通過觀測少量數(shù)據(jù)測繪出目標人員的軌跡。文獻[5]提出了一種通過攝像機采集到運動目標圖像,再利用卡爾曼濾波對運動目標進行跟蹤對算法。文獻[6]針對不同的運動目標和運動速度,提出了自適應(yīng)濾波方法,即根據(jù)不同的速率自動匹配不同的濾波方法。文獻[7]和文獻[8]在無設(shè)備跟蹤方面,作者利用卡爾曼濾波基于RIT方差和基于子空間方差的無線電層析成像的定位結(jié)果來跟蹤單個人。文獻[9]將工作擴展到多個人的追蹤,把多個人的追蹤問題轉(zhuǎn)化為一個數(shù)據(jù)分配問題(DAP),用最小化DAP成本來實現(xiàn)多人追蹤。文獻[10]在室內(nèi)環(huán)境的軌跡跟蹤中,提出了基于信道狀態(tài)信息CSI(Channel State Information)的Doopler-Music軌跡跟蹤算法。目前的軌跡跟蹤方法仍然存在通信消耗大,算法復(fù)雜度高等問題,針對這些問題,本文提出了基于CSI的被動式目標軌跡跟蹤方法。
CSI與信號接收強度(Received Signal Strength,RSS)相比,是一個更加細粒度的描述無線物理信道狀態(tài)的量[12-13],對環(huán)境的變化更加敏感,常應(yīng)用于人體行為感知識別、人員行為狀態(tài)分析、行動軌跡跟蹤等。本文所講的CSI就是無線信道中信號在每條傳輸路徑上的衰弱因子,當有目標出現(xiàn)在觀測區(qū)域的不同位置時,CSI信號會發(fā)生不同程度的衰減,從而可以檢測到人員的位置信息[14]。
卡爾曼濾波器是一種很好的統(tǒng)計工具,它可以用最小化誤差平均值來估計過程狀態(tài)[15]。本文使用卡爾曼濾波器將當前估計與新測量混合,以最小化估計方差的方式產(chǎn)生新估計。根據(jù)概率的基本規(guī)律,卡爾曼濾波算法在解決目標人員跟蹤問題時是在得到觀測信息的基礎(chǔ)上,通過當前狀態(tài)向量的概率密度函數(shù)(PDF)從而估計計算出目標的狀態(tài)[16]??柭鼮V波的過程中,試圖估計的是目標人員的坐標和速度,而本文測量的只是坐標。利用預(yù)先定義好的基于卡爾曼濾波的跟蹤模型,將基于卡爾曼濾波的跟蹤模型應(yīng)用于基于位置指紋的跟蹤算法中。
K近鄰(KNN)算法在進行分類時,只與少量的相鄰樣本有關(guān),與分類規(guī)則,K的大小和距離度量息息相關(guān)[17]。因此KNN算法適用于交叉或重疊區(qū)域較多的樣本集。
輸入:訓(xùn)練數(shù)據(jù)集,
T={(x1,y1),(x2,y2),…,(xn,yn)}
其中xi∈Rn,yi∈{c1,c2,…,ck}和測試數(shù)據(jù)x。
輸出:實例x所屬的類別。
在本文應(yīng)用KNN算法進行位置跟蹤匹配時三要素分別如下描述:
距離度量:
(1)
其中p≥1;當p=2時是歐氏距離,當p=1時是曼哈頓距離。
在應(yīng)用中通常采用交叉驗證的方法來選取合適的K值,一般來說K值較小并且是奇數(shù)[15]。
分類規(guī)則:根據(jù)給定的距離度量,在訓(xùn)練集T中找到與x距離最近的k個樣本,涵蓋這k個點的x的鄰域記作Nk(x)。
在Nk(x)中根據(jù)分類規(guī)則(如多數(shù)表決)確定x的類別y:
(2)
給定測試樣本x,其中最鄰近的k個訓(xùn)練實例構(gòu)成集合Nk(x),分類損失函數(shù)為0-1損失[11]。0-1損失函數(shù)是指如果預(yù)測值與目標值不相等,則為1,否則為0。如果涵蓋Nk(x)區(qū)域的類別為cj,則分類誤差率是:
本文提出了一種基于信道狀態(tài)信息的目標人員軌跡跟蹤方法,首先通過布置好的實驗環(huán)境采集CSI數(shù)據(jù),建立離線指紋庫。在進行目標跟蹤時,首先通過K最鄰近(KNN)算法得到一個位置估計,然后利用融合了卡爾曼濾波算法的位置指紋跟蹤系統(tǒng)得到目標的位置,最后將目標人員的所有活動點連接起來得到目標人員的運動軌跡。其目標軌跡跟蹤方法基本流程圖如圖1所示。
圖1 目標人員軌跡跟蹤流程圖
針對人員軌跡跟蹤系統(tǒng),先驗知識包括被測者的位置、朝向、當前運動狀態(tài)、運動速度等[18],觀測信息包括被測者的加速度、位移等。
系統(tǒng)模型為:
Ok=g(Ok-1,Rk-1,Tk)
(4)
觀測模型為:
Qk=j(Ok,Sk)
(5)
Ok是第k次迭代時的狀態(tài)向量,Qk是第k次迭代時的觀測狀態(tài),g(·)表示系統(tǒng)函數(shù),Rk是系統(tǒng)輸入,j(·)表示觀測函數(shù),Tk是過程噪聲,Sk是測量噪聲。
根據(jù)概率的基本規(guī)律,卡爾曼濾波算法在解決目標人員跟蹤問題時是在得到觀測信息的基礎(chǔ)上,通過當前狀態(tài)向量的概率密度函數(shù)從而估計計算出目標的狀態(tài)。
預(yù)測狀態(tài):使用先前的測量值進行k-1次迭代來預(yù)測當前狀態(tài)Ok:
(6)
更新狀態(tài):使用第k次迭代得到的測量值更新預(yù)測Ok的值:
其中g(shù)(Qk|Ok)是可能性,p(Ok|Q1:k-1,R0:k-1)是先驗概率,p(Ok|Q1:k,R0:k-1)是后驗概率。
如果式(4)中的系統(tǒng)模型g(·)和測量模型j(·)都是狀態(tài)向量Ok的的線性函數(shù),輸入Rk,式(5)中的測量噪聲Sk是高斯噪聲,則式(6)和式(7)可以被寫成如下:
Ok=AOk-1+CRk-1+Tk
(8)
Qk=HOk+Sk
(9)
其中是A狀態(tài)轉(zhuǎn)移矩陣,C是輸入矩陣,H是度量矩陣。
在我們的跟蹤系統(tǒng)中,我們假設(shè)目標人員以勻速方式行走,設(shè)置不同的行走速度。
設(shè)狀態(tài)向量Ok=[pxk,pyk,vxk,vyk],其中(pxk,pyk)和(vxk,vyk)分別是主體的坐標和速度,nk是系統(tǒng)的隨機加速度。所以系統(tǒng)模型為:
Ok+1=AOk+Bnk
(10)
其中:
對于測量模型Qk=HOk+Sk直接在本地化系統(tǒng)中測量到目標人員的坐標Qk=(pxk,pyk),所以我們的跟蹤系統(tǒng)測量方程式為:Qk=(pxk,pyk),測量矩陣H為:
最終融合了卡爾曼濾波算法的目標人員跟蹤模型描述如下:
Step1使用先前的測量值進行次迭代來預(yù)測當前狀態(tài)。
Step2使用第k次迭代得到的測量值更新預(yù)測Ok的值。
Step3若系統(tǒng)模型g(·)和測量模型j(·)都是狀態(tài)向量Xk的的線性函數(shù),則將式(6)和式(7)改成式(8)和式(9)。
基于CSI的KNN位置指紋算法采用現(xiàn)有的WIFI網(wǎng)絡(luò)和CSI數(shù)據(jù)采集設(shè)備,將在線階段采集到的數(shù)據(jù)與先前建立好的離線數(shù)據(jù)庫進行匹配得到結(jié)果。
2.2.1 離線階段
由于實驗過程中會受到多種因素的影響,產(chǎn)生多種噪聲,利用卡爾曼濾波對數(shù)據(jù)進行預(yù)處理。如圖2(a)是在參考點采集出的CSI數(shù)據(jù)用MATLAB解析出的圖像,從圖2(a)中我們可以看出,數(shù)據(jù)中包含了很多噪聲,為了使指紋數(shù)據(jù)庫更加精確,我們對采集到的數(shù)據(jù)進行多次訓(xùn)練并利用卡爾曼濾波算法對CSI數(shù)據(jù)進行預(yù)處理,處理后的圖像如圖2(b)所示。
圖2 數(shù)據(jù)預(yù)處理
2.2.2 在線階段
在線位置估計階段,使用K-最近鄰(KNN)算法作為匹配算法,指紋的偏差表示為歐氏距離,方程式為:
(12)
其中CSIji是從APj處的CSI數(shù)據(jù),CSIj是在線估計階段測量到的CSI數(shù)據(jù),m是AP的數(shù)量。
(13)
最后選擇k個最近的樣本來估計目標人員的位置,其中ε是一個非常小的正常數(shù)。具體的方法描述如下:
Step1在線階段采集CSI數(shù)據(jù)進行卡爾曼濾波預(yù)處理。
Step2計算運動目標某時刻位置的指紋偏差,利用式(11)計算歐式距離。
Step3使用位置指紋算法將實際測量的位置與參考位置進行匹配,得到位置估計。
Step4將預(yù)先規(guī)定好的跟蹤模型與KNN位置指紋算法融合,得到目標人員的運動軌跡。
在離線階段,對指紋進行多次測量,并利用統(tǒng)計工具消除誤差。在線位置估計階段,考慮到目標跟蹤是實時性的,可以對指紋進行很少的測量。在復(fù)雜的室內(nèi)環(huán)境中,信號容易受到干擾,在相位中獲得的數(shù)據(jù)總是伴隨著噪聲,因此,跟蹤誤差是由在線位置估計中測量的指紋的不準確性導(dǎo)致的。所以,將卡爾曼濾波模型與KNN位置指紋算法結(jié)合可以大大降低在線階段的不確定性,提高系統(tǒng)的精度。
圖3 監(jiān)控區(qū)域網(wǎng)格圖
設(shè)置一個面積是X×Y的矩形區(qū)域為目標人員活動監(jiān)控區(qū)域,將監(jiān)控區(qū)域等分為c×c的正方形網(wǎng)格,如圖 3所示。接下來在圖 4所示的場景中進行目標人員的軌跡測繪。但是在實際場景中所監(jiān)控的區(qū)域長寬X或Y往往不能被網(wǎng)格邊長c整除,所以我們選擇在監(jiān)控區(qū)域中選擇一塊正方形區(qū)域劃分為c×c的網(wǎng)格,將網(wǎng)格按照從上到下,從左到右的順序編號為1,2,3,…,N;在監(jiān)控區(qū)域的一側(cè)布置信號發(fā)射器,另一側(cè)布置信號接收器,接收信號的天線與發(fā)射信號的天線布置在同一高度,發(fā)射天線為2根,接收天線為3根。
當開啟設(shè)備讓它們相互之間進行通信時,監(jiān)控區(qū)域整個被無線信號覆蓋,當監(jiān)控區(qū)域中出現(xiàn)目標時,目標會對無線通信鏈路的信號產(chǎn)生干擾,包括折射、吸收、反射等。由于目標的運動,無線鏈路受到不同的干擾,會收集到不同的CSI值。這種變化使得CSI可以對目標進行跟蹤。圖3為監(jiān)控區(qū)域網(wǎng)格圖。
實驗設(shè)備是兩臺內(nèi)核和無線網(wǎng)卡驅(qū)動均經(jīng)過定制的臺式電腦,CPU型號為Intel Core i3-4150,操作系統(tǒng)為Ubuntu10.04LTS,網(wǎng)卡為Atheros 9380,其中一臺為信號發(fā)射機,一臺為信號接收機。實驗場地是一個12 m×8 m的辦公區(qū)域,12 m×8 m的辦公區(qū)域被劃分成取出一個6 m×6 m正方形子區(qū)域,子區(qū)域被劃分為25個1.2 m×1.2 m的網(wǎng)格,信號接收機與信號發(fā)射機距離8 m,天線高度為1.2 m。實驗場景的平面圖以及詳細部署如圖4所示。
圖4 實驗室環(huán)境平面圖
在訓(xùn)練階段,我們把一名為身高170 cm的女性人員作為跟蹤目標,收集CSI數(shù)據(jù)。在辦公區(qū)域的跟蹤區(qū)域是6 m×6 m。讓目標人員沿著正方形網(wǎng)格走。在實驗中,讓目標人員沿著設(shè)定好相同的路線行走,收集100次數(shù)據(jù),分析跟蹤的目標軌跡的效果。圖4為本文的實驗室環(huán)境平面圖。
目標人員在監(jiān)測區(qū)域中沿著預(yù)先設(shè)定好的軌跡以勻速速度行走,獲取真實的數(shù)據(jù)信息,目標人員移動時錄制視頻。為了收集到數(shù)據(jù)的準確性,排除室內(nèi)環(huán)境變化的影響,每次實驗都選擇在每天的21:00到23:00。實驗中設(shè)置發(fā)包速率為100 Hz/S,行走速度為0.5 m/s,目標人物為170 cm的女性。目標人物的步距大約1 m~1.2 m。第一個實驗選擇直線軌跡。圖5是人員在沿直線行走時的跟蹤結(jié)果,圓形圖標為跟蹤軌跡,加號形圖標為真實軌跡,圖5(a)是跟蹤軌跡與實際軌跡的跟蹤路徑圖,圖5(b)是跟蹤軌跡與實際軌跡的針狀圖。
圖5 跟蹤結(jié)果(直線)
圖6 跟蹤結(jié)果(圓弧)
由圖5可知,當目標人員沿著直線行走時,跟蹤描繪出的跟蹤結(jié)果誤差較小,跟蹤結(jié)果較為準確?;贑SI的被動式目標軌跡跟蹤對于直線行走的目標可以較為精準的描繪出來,真實軌跡和跟蹤軌跡基本重合,跟蹤效果明顯,達到預(yù)期的精度。
第2個實驗選擇了圓弧軌跡,跟蹤結(jié)果如圖6所示,圓形圖標為真實軌跡,三角形圖標為跟蹤軌跡,圖6(a)為跟蹤軌跡結(jié)果圖,圖6(b)為跟蹤結(jié)果針狀圖。
由圖6可知,當跟蹤軌跡為圓弧時,跟蹤軌跡與實際軌跡基本一致,跟蹤結(jié)果較為精確。綜合圖5、圖6可知,在簡單軌跡追蹤時,實際坐標與跟蹤坐標差距不大,跟蹤結(jié)果精確度高,在面對復(fù)雜軌跡時,實際坐標與跟蹤坐標有了較大差距,跟蹤性能產(chǎn)生誤差,特別是在直角拐彎處跟蹤波動較大。為了消除噪聲、提高精度,本文引入卡爾曼濾波算法進行位置指紋跟蹤,跟蹤性能有了較大提高。
不同的運動軌跡會對跟蹤性能產(chǎn)生不同的影響,本文設(shè)計了直線、矩形、圓弧三種不同的運動軌跡,圖7顯示了不同的軌跡的誤差分布圖。
由圖7可知,當運動軌跡為直線和圓弧時,跟蹤精度較軌跡比跟蹤軌跡為矩形時高,跟蹤誤差在1.5 m能夠達到20%,跟蹤誤差在3 m以內(nèi)均達到60%以上,相比之下運動軌跡為矩形時誤差就相對較大,跟蹤誤差在4 m時僅有69%。運動軌跡越簡單,運動軌跡越長,跟蹤精度越高。
為了研究行走速度對跟蹤誤差的影響,讓目標人員在室內(nèi)按照直線軌跡以勻速行走,速度分別為0.5 m/s,1.0 m/s,1.5 m/s。速度對跟蹤誤差的影響如圖8所示。
圖7 不同速度跟蹤誤差CDF圖
圖8 不同速度跟蹤誤差CDF圖
由圖8可知,速度為0.5 m/s時跟蹤精度在2 m以內(nèi)的概率達到了50%,而速度為1.5 m/s時的跟蹤精度在2 m以內(nèi)的概率只有26%,說明了速度的快慢會對跟蹤精度產(chǎn)生影響,速度為0.5 m/s時跟蹤誤差最小,跟蹤精度最高。
圖9是不同目標的跟蹤性能比較,分別選擇185 cm,178 cm的男性和170 cm女性進行對比實驗,實驗結(jié)果如下。
圖9 不同目標人員跟蹤誤差CDF圖
由圖9可知不同的目標對跟蹤誤差的影響不大,在不同跟蹤目標可以達到相近的精度,說明本方法對不同目標具有普適性。
發(fā)包速率對采集的CSI數(shù)據(jù)會產(chǎn)生影響,不同的運動狀態(tài)對應(yīng)著不同的最佳發(fā)包速率,所以本文為了獲得最佳的跟蹤效果,實驗驗證了不同發(fā)包速率的影響,如圖10所示。
圖10 不同發(fā)包速率跟蹤誤差CDF圖
由圖10可知,當發(fā)包速率為100 Hz/S時,跟蹤性能達到最好,200 Hz/S的發(fā)包速率就較差,相比而言,100 Hz/S的發(fā)包速率比200 Hz/S的跟蹤誤差減小了越18%,實驗說明對于運動中的目標,50 Hz/S~100 Hz/S的發(fā)包速率是最優(yōu)的區(qū)間,不同的運動狀態(tài)要選擇適合的發(fā)包速率。
為了驗證本文提出的被動式目標軌跡跟蹤方法,體現(xiàn)本文算法在跟蹤性能方面的優(yōu)勢,將本文算法與表1中的其他目標人員軌跡跟蹤算法進行比較。
表1 跟蹤方法性能比較
表1顯示了本文提出的被動式軌跡跟蹤方法與其他目標跟蹤方法的性能參數(shù),從文中可以看出,本文提出的被動式軌跡跟蹤方法提高了跟蹤精度,減小了計算時間和通信開銷。本文的跟蹤方法比Doppler-music算法,傳統(tǒng)的KNN和K-means算法的精度分別提高了1.7%、3.7%和6.9%,總體來說,跟蹤性能有所提高,能更好的實現(xiàn)對目標人員的軌跡跟蹤。
針對目前的被動式目標人員軌跡跟蹤方法計算開銷大,算法復(fù)雜度高等問題,將實時數(shù)據(jù)與離線數(shù)據(jù)庫中的數(shù)據(jù)利用融合了卡爾曼濾波的KNN位置指紋算法進行匹配,實現(xiàn)目標人員軌跡跟蹤。反復(fù)實驗證明,本文提出的被動式目標軌跡跟蹤方法,在普適性,跟蹤精度等方面均有提高,跟蹤可靠性更高。