本發(fā)明屬于計(jì)算機(jī)視覺(jué)和無(wú)線網(wǎng)絡(luò)室內(nèi)定位技術(shù)領(lǐng)域,特別是涉及一種結(jié)合深度視頻分析的wifi目標(biāo)定位方法。
背景技術(shù):
隨著移動(dòng)設(shè)備(如手機(jī)、平板電腦、可穿戴設(shè)備等)種類和數(shù)量的激增以及無(wú)線網(wǎng)絡(luò)技術(shù)的快速發(fā)展,基于位置識(shí)別的服務(wù)(locationbasedservices,lbs)和應(yīng)用在日常生活工作及科學(xué)研究中起到了越來(lái)越重要的作用。艾瑞咨詢分析中國(guó)位置簽到服務(wù)市場(chǎng)發(fā)現(xiàn)2016年位置簽到服務(wù)用戶規(guī)模達(dá)到5.2億人,并且還在以每年11%的速度增長(zhǎng)?,F(xiàn)在的人員密集型場(chǎng)合如大學(xué)校園、機(jī)場(chǎng)、博物館、住宅區(qū)、大型商場(chǎng)等為方便人們無(wú)時(shí)無(wú)刻的上網(wǎng)需求都已經(jīng)覆蓋了wifi熱點(diǎn)。正由于wifi基礎(chǔ)設(shè)施的覆蓋較廣,使得基于wifi的定位成了自然的選擇和研究的熱點(diǎn)。
目前,wifi目標(biāo)定位的方法主要分為兩類:(1)三邊測(cè)量定位。該類方法很大程度上依賴于確知的ap位置信息及準(zhǔn)確的信號(hào)傳輸損耗模型,然而,現(xiàn)實(shí)生活中,由于環(huán)境復(fù)雜多變,影響信號(hào)傳輸?shù)囊蛩睾芏?,建立一個(gè)準(zhǔn)確的、符合實(shí)際情況的損耗模型存在著很大的困難。(2)位置指紋定位。目前實(shí)現(xiàn)算法可以分為兩類:基本位置指紋定位算法和最大似然估計(jì)算法。其中基本指紋定位算法又分為很多小類。由于采用的算法不同,該類方法的定位精度往往差別較大。
李楨,黃勁松[基于rssi抗差濾波的wifi定位[j].武漢大學(xué)學(xué)報(bào)信息科學(xué)版,2016,41(3):361-366.]通過(guò)對(duì)rssi信號(hào)進(jìn)行抗差卡爾曼濾波來(lái)估計(jì)信號(hào)強(qiáng)度,達(dá)到了信號(hào)平滑的目的,為wifi定位精度提供了保障,提高了定位精度。但缺點(diǎn)是只是靜態(tài)的在一定程度上提高了單點(diǎn)定位精度,仍無(wú)法滿足更高的定位需求。中國(guó)發(fā)明專利第2013100770115號(hào)中公開(kāi)了一種wifi定位方法,在該方法中,ap通過(guò)廣播的ssid里攜帶的oid、三維位置和標(biāo)準(zhǔn)信號(hào)強(qiáng)度信息來(lái)告訴終端ap的位置;終端通過(guò)對(duì)ssid解碼得到三維位置、標(biāo)準(zhǔn)信號(hào)強(qiáng)度,結(jié)合測(cè)量到的該ap的rssi來(lái)確定與該ap的距離;通過(guò)ssid和信號(hào)強(qiáng)度來(lái)確定wifi目標(biāo)終端位置。雖然該方法可以通過(guò)解碼得到ap的位置,但是確定ap和終端之間距離還是通過(guò)rssi值計(jì)算所得。而且由于同一設(shè)備同一短時(shí)間段獲取的rssi值具有較大的波動(dòng),因此在沒(méi)有對(duì)rssi值進(jìn)行預(yù)處理的前提下直接用于計(jì)算距離存在著較大的誤差。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述問(wèn)題,本發(fā)明的目的在于提供一種結(jié)合深度視頻分析的wifi目標(biāo)定位方法。
為了達(dá)到上述目的,本發(fā)明提供的結(jié)合深度視頻分析的wifi目標(biāo)定位方法包括按順序進(jìn)行的下列步驟:
1)構(gòu)建結(jié)合深度視頻分析的wifi目標(biāo)定位系統(tǒng),該系統(tǒng)包括kinect深度攝像頭、多個(gè)wifi探針和計(jì)算機(jī);其中kinect深度攝像頭和多個(gè)wifi探針均設(shè)置在待檢測(cè)場(chǎng)景的邊緣;計(jì)算機(jī)利用數(shù)據(jù)線與kinect深度攝像頭和wifi探針相連接;
2)利用kinect深度攝像頭獲取待檢測(cè)場(chǎng)景中作為視頻運(yùn)動(dòng)目標(biāo)的人體深度圖像,再把人體簡(jiǎn)化為一個(gè)質(zhì)點(diǎn),用一個(gè)骨骼點(diǎn)來(lái)代替,并記錄下骨骼點(diǎn)在待檢測(cè)場(chǎng)景中的運(yùn)動(dòng)軌跡,進(jìn)而獲得人體運(yùn)動(dòng)軌跡點(diǎn)集合;
3)利用wifi探針獲取待檢測(cè)場(chǎng)景中人體攜帶的移動(dòng)終端設(shè)備mac碼地址和相應(yīng)的rssi信號(hào)值,然后對(duì)上述rssi信號(hào)值進(jìn)行優(yōu)選,之后計(jì)算rssi信號(hào)值差值,然后建立rssi信號(hào)值差值位置對(duì)應(yīng)關(guān)系表,定位時(shí)利用獲得的rssi信號(hào)值差值通過(guò)查表方式即可找到移動(dòng)終端設(shè)備的位置,進(jìn)而獲得移動(dòng)終端設(shè)備運(yùn)動(dòng)軌跡點(diǎn)集合;
4)利用卡爾曼濾波算法平滑上述人體運(yùn)動(dòng)軌跡點(diǎn)集合和移動(dòng)終端設(shè)備運(yùn)動(dòng)軌跡點(diǎn)集合,再分別將集合中的點(diǎn)連接而形成軌跡曲線;
5)使用費(fèi)雷歇距離來(lái)度量人體運(yùn)動(dòng)軌跡曲線和移動(dòng)終端設(shè)備運(yùn)動(dòng)軌跡曲線的相似系數(shù),并計(jì)算出軌跡映射成軌跡圖像后兩個(gè)軌跡圖像之間的相關(guān)系數(shù);綜合二者的結(jié)果,輸出人體運(yùn)動(dòng)軌跡和移動(dòng)終端設(shè)備運(yùn)動(dòng)軌跡的匹配結(jié)果。
在步驟2)中,所述的利用kinect深度攝像頭獲取待檢測(cè)場(chǎng)景中作為視頻運(yùn)動(dòng)目標(biāo)的人體深度圖像,再把人體簡(jiǎn)化為一個(gè)質(zhì)點(diǎn),用一個(gè)骨骼點(diǎn)來(lái)代替,并記錄下骨骼點(diǎn)在待檢測(cè)場(chǎng)景中的運(yùn)動(dòng)軌跡,進(jìn)而獲得人體運(yùn)動(dòng)軌跡點(diǎn)集合的具體步驟如下:
采用kinect深度攝像頭采集待檢測(cè)場(chǎng)景中的人體深度圖像,該人體深度圖像中每個(gè)像素由2個(gè)字節(jié),共16位組成,其中高13位代表kinect深度攝像頭到人體之間的距離,低3位表示人體索引編號(hào),如果低3位全部為0,則表示不是人體,然后傳送給計(jì)算機(jī),計(jì)算機(jī)通過(guò)遍歷判斷每一個(gè)像素的人體索引編號(hào)就可以判斷出該像素是否屬于同一人體,最后所有具有相同人體索引編號(hào)的像素即是一個(gè)人體;
將人體當(dāng)作一個(gè)質(zhì)點(diǎn),描述質(zhì)點(diǎn)的運(yùn)動(dòng)軌跡即代表人體的運(yùn)動(dòng)軌跡,在這里選用人體脊椎中點(diǎn)表示人體的空間位置,從而得到kinect深度攝像頭下攝像機(jī)坐標(biāo)系中人體的三維坐標(biāo)位置
由于攝像機(jī)坐標(biāo)系并不是真實(shí)世界中的坐標(biāo),在這里還需要轉(zhuǎn)換到實(shí)際場(chǎng)景中的坐標(biāo)才有意義;世界坐標(biāo)用
其中:
在不考慮人體的身高因素時(shí),也無(wú)需考慮垂直方向上的坐標(biāo),僅僅使用三維坐標(biāo)系下的x和z坐標(biāo)即可實(shí)現(xiàn)定位,即將三維空間轉(zhuǎn)化到二維平面,用
最后將得到的二維平面坐標(biāo)按采樣時(shí)間記錄下來(lái),作為人體運(yùn)動(dòng)軌跡點(diǎn)集合,記作pi={pi(t0),pi(t1),…}。
在步驟3)中,所述的利用wifi探針獲取待檢測(cè)場(chǎng)景中人體攜帶的移動(dòng)終端設(shè)備mac碼地址和相應(yīng)的rssi信號(hào)值,然后對(duì)上述rssi信號(hào)值進(jìn)行優(yōu)選,之后計(jì)算rssi信號(hào)值差值,然后建立rssi信號(hào)值差值位置對(duì)應(yīng)關(guān)系表,定位時(shí)利用獲得的rssi信號(hào)值差值通過(guò)查表方式即可找到移動(dòng)終端設(shè)備的位置,進(jìn)而獲得移動(dòng)終端設(shè)備運(yùn)動(dòng)軌跡點(diǎn)集合的具體步驟如下:
將待檢測(cè)場(chǎng)景用網(wǎng)格法劃分成多個(gè)小方格,對(duì)每一小方格進(jìn)行標(biāo)號(hào),并將方格對(duì)應(yīng)的位置記作loca(xi,yi);
將移動(dòng)終端設(shè)備分別放置在每個(gè)位置loca(xi,yi)處,利用多個(gè)wifi探針探測(cè)該移動(dòng)終端設(shè)備mac碼及其對(duì)應(yīng)的rssi信號(hào)值和時(shí)間戳,然后傳送給計(jì)算機(jī),由計(jì)算機(jī)進(jìn)行后續(xù)的處理;
對(duì)同一短時(shí)間段內(nèi)得到的同一mac碼的多個(gè)rssi信號(hào)值進(jìn)行優(yōu)選,方法是:設(shè)每一wifi探針采集到的同一時(shí)間段內(nèi)同一移動(dòng)終端設(shè)備的所有rssi信號(hào)值為:rssi1,rssi2,…,rssin;
概率分布函數(shù)的公式如式(2)所示:
其中:
μ表示rssi信號(hào)值的均值;σ2表示rssi信號(hào)值的方差;n表示rssi信號(hào)值的個(gè)數(shù);x表示wifi探針采集到同一時(shí)間段內(nèi)同一移動(dòng)終端設(shè)備的多個(gè)rssi信號(hào)值;
將所有rssi信號(hào)值rssi1,rssi2,…,rssin帶入上述概率分布函數(shù)f(x)中,計(jì)算出f(x);當(dāng)0.5≤f(x)≤1時(shí),保留該rssi信號(hào)值,否則刪除,以對(duì)所有rssi信號(hào)值進(jìn)行篩選;將篩選后保留下的m個(gè)rssi信號(hào)值設(shè)為rssi1,rssi2,…,rssim;
計(jì)算上述篩選后的rssi信號(hào)值rssi1,rssi2,…,rssim的均值,用rssiaver表示:
將上述均值rssiaver作為該rssi信號(hào)值的優(yōu)選值;
多個(gè)wifi探針在該位置處獲得的rssi信號(hào)值的優(yōu)選值分別表示為:rssiaver1,rssiaver2,rssiaver3,……;
將上述rssi信號(hào)值的優(yōu)選值rssiaver1,rssiaver2,rssiaver3,……兩兩做差,并用drssi表示相減的結(jié)果:
最后共得到多個(gè)該位置處的rssi信號(hào)值差值drssi1,drssi2,…,drssim;
將上述rssi信號(hào)值差值drssi1,drssi2,…,drssim和位置loca(xi,yi)建立一個(gè)對(duì)應(yīng)關(guān)系表;
在定位時(shí),只需根據(jù)按上述方法獲得的rssi信號(hào)值差值通過(guò)查表即可反推出移動(dòng)終端設(shè)備所在的位置;
對(duì)獲得的rssi信號(hào)值差值和對(duì)應(yīng)關(guān)系表中的rssi信號(hào)值差值使用最近鄰算法進(jìn)行運(yùn)算而得到最相似的一組rssi信號(hào)值差值drssi1,drssi2,drssi3,.....,具體步驟是:
3.1、分別計(jì)算每一個(gè)wifi探針探測(cè)到的一組rssi信號(hào)值差值與對(duì)應(yīng)關(guān)系表中所有組的rssi信號(hào)值差值的曼哈頓距離,公式如下:
其中:x,y表示兩個(gè)n維向量,維數(shù)由rssi信號(hào)值差值的個(gè)數(shù)決定;
3.2、將每一個(gè)wifi探針探測(cè)到的一組rssi信號(hào)值差值定義為查詢點(diǎn),然后根據(jù)上述曼哈頓距離利用最近鄰算法查找出離查詢點(diǎn)最近的數(shù)據(jù)對(duì)象,即rssi信號(hào)值差值在對(duì)應(yīng)關(guān)系表中的位置,并記錄下該位置的坐標(biāo)loca(xi,yi);
3.3、重復(fù)步驟3.1到3.2,得到不同時(shí)刻同一移動(dòng)終端設(shè)備不同位置的多個(gè)坐標(biāo),這些坐標(biāo)的集合即為該移動(dòng)終端設(shè)備運(yùn)動(dòng)軌跡點(diǎn)集合;
在步驟4)中,所述的利用卡爾曼濾波算法平滑上述人體運(yùn)動(dòng)軌跡點(diǎn)集合和移動(dòng)終端設(shè)備運(yùn)動(dòng)軌跡點(diǎn)集合,再分別將集合中的點(diǎn)連接而形成軌跡曲線的具體步驟如下:
4.2、卡爾曼濾波:
由于集合中的每一個(gè)點(diǎn)都是由x軸坐標(biāo)和z軸坐標(biāo)構(gòu)成,因此分別對(duì)x軸坐標(biāo)和z軸坐標(biāo)進(jìn)行修正,設(shè)要進(jìn)行卡爾曼濾波的集合為x,對(duì)應(yīng)k時(shí)刻的點(diǎn)為x(k),具體的步驟為:
4.1.1、預(yù)估計(jì)
4.1.2、計(jì)算預(yù)估計(jì)協(xié)方差矩陣:
其中:q(k)=u(k)×u(k)t,u(k)為k時(shí)刻動(dòng)態(tài)噪聲;
4.1.3、計(jì)算卡爾曼增益矩陣:
其中:r(k)=n(k)×n(k)t,n(k)為k時(shí)刻觀測(cè)噪聲,h(k)為k時(shí)刻觀測(cè)矩陣;
4.1.4、用觀測(cè)值和預(yù)測(cè)值更新估計(jì)值:
4.1.5、計(jì)算更新后估計(jì)協(xié)方差矩陣:
4.1.6、令
通過(guò)以上處理即可完成對(duì)人體運(yùn)動(dòng)軌跡點(diǎn)集合或移動(dòng)終端設(shè)備運(yùn)動(dòng)軌跡點(diǎn)集合的x,z坐標(biāo)的平滑;
(4.2)將平滑后的同一人體和移動(dòng)終端設(shè)備不同時(shí)刻的運(yùn)動(dòng)軌跡點(diǎn)集合中的點(diǎn)連接成直線,由此形成人體運(yùn)動(dòng)軌跡曲線和移動(dòng)終端設(shè)備運(yùn)動(dòng)軌跡曲線。
在步驟5)中,所述的使用費(fèi)雷歇距離來(lái)度量人體運(yùn)動(dòng)軌跡曲線和移動(dòng)終端設(shè)備運(yùn)動(dòng)軌跡曲線的相似系數(shù),并計(jì)算出軌跡映射成軌跡圖像后兩個(gè)軌跡圖像之間的相關(guān)系數(shù);綜合二者的結(jié)果,輸出人體運(yùn)動(dòng)軌跡和移動(dòng)終端設(shè)備運(yùn)動(dòng)軌跡的匹配結(jié)果的具體步驟如下:
5.4、進(jìn)行距離度量
使用弗雷歇距離進(jìn)行距離度量,公式如下:
5.1.1、設(shè)定t為采樣間隔,該時(shí)刻人體運(yùn)動(dòng)軌跡曲線a上的采樣點(diǎn)為
5.1.2、計(jì)算上述兩采樣點(diǎn)間的歐式距離:
5.1.3、計(jì)算該采樣點(diǎn)下的最大距離
5.1.4、更換采樣間隔t的數(shù)值,重復(fù)步驟5.1.1至5.1.3,獲取多個(gè)最大距離,利用式(7)所示的弗雷歇距離公式計(jì)算并選擇一個(gè)最小的最大距離的值即為這兩條曲線的相似系數(shù),弗雷歇距離就是使該最大距離最小化的采樣方式下的值;
5.1.5、以人體為主鍵,對(duì)所有移動(dòng)終端設(shè)備移動(dòng)軌跡曲線與人體運(yùn)動(dòng)軌跡曲線進(jìn)行以上操作,得到多個(gè)相似系數(shù),并將度量結(jié)果從大到小排序;
5.5、進(jìn)行圖像度量
從圖像角度,使用全局圖像進(jìn)行相似性度量,通過(guò)比較兩個(gè)軌跡圖像之間的相關(guān)程度,完成軌跡的匹配;
5.2.1、將相同人體和相同移動(dòng)終端設(shè)備在不同時(shí)刻的多個(gè)坐標(biāo)點(diǎn)集合分別連成線段,線的顏色用黑色表示,背景使用白色表示,由此得到二值圖;
5.2.2、將上述二值圖使用相關(guān)系數(shù)法進(jìn)行相似性度量:
其中:h1表示wifi探針探測(cè)到的一組rssi信號(hào)值差值;
h2表示對(duì)應(yīng)關(guān)系表中每一位置對(duì)應(yīng)的rssi信號(hào)值差值;
n等于每組rssi信號(hào)值差值的個(gè)數(shù);
5.2.3、以人體為主鍵,對(duì)所有移動(dòng)終端設(shè)備移動(dòng)軌跡圖像與人體運(yùn)動(dòng)軌跡圖像進(jìn)行相關(guān)系數(shù)度量,并將度量的結(jié)果從大到小排序;
5.6、進(jìn)行綜合度量
綜合上述距離度量和圖像度量的結(jié)果,考慮到距離度量相比圖像度量的可靠性較高,因此分別將距離度量和圖像度量的結(jié)果乘以0.6和0.4的權(quán)重,再次排序,排名第一的軌跡圖像即認(rèn)為是相應(yīng)人體所攜帶的移動(dòng)終端設(shè)備的軌跡圖像,由此完成視頻運(yùn)動(dòng)目標(biāo)與其所攜帶移動(dòng)終端設(shè)備的mac碼匹配。
本發(fā)明提供的結(jié)合深度視頻分析的wifi目標(biāo)定位方法是將深度攝像頭應(yīng)用在wifi定位領(lǐng)域,通過(guò)對(duì)深度攝像頭和wifi探針?biāo)綔y(cè)到的多個(gè)目標(biāo)的移動(dòng)軌跡進(jìn)行動(dòng)態(tài)分析,確定待檢測(cè)場(chǎng)景中目標(biāo)與mac地址的對(duì)應(yīng)關(guān)系,進(jìn)而得到每個(gè)wifi目標(biāo)的實(shí)際位置坐標(biāo)。定位過(guò)程中并非直接使用rssi信號(hào)值計(jì)算靜態(tài)距離,而是利用了深度攝像頭的位置探測(cè)功能,因而可以減小定位誤差。
附圖說(shuō)明
圖1為本發(fā)明提供的結(jié)合深度視頻分析的wifi目標(biāo)定位方法流程圖。
圖2為本發(fā)明提供的結(jié)合深度視頻分析的wifi目標(biāo)定位系統(tǒng)構(gòu)成示意圖。
圖3為采用kinect深度攝像頭采集的待檢測(cè)場(chǎng)景中的人體深度圖像。
圖4為獲取人體骨骼點(diǎn)信息的人體深度圖像。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明提供的結(jié)合深度視頻分析的wifi目標(biāo)定位方法進(jìn)行詳細(xì)說(shuō)明。
如圖1所示,本發(fā)明提供的結(jié)合深度視頻分析的wifi目標(biāo)定位方法包括按順序進(jìn)行的下列步驟:
1)構(gòu)建如圖2所示的結(jié)合深度視頻分析的wifi目標(biāo)定位系統(tǒng),該系統(tǒng)包括kinect深度攝像頭1、多個(gè)wifi探針2和計(jì)算機(jī)3;其中kinect深度攝像頭1和多個(gè)wifi探針2均設(shè)置在待檢測(cè)場(chǎng)景的邊緣;計(jì)算機(jī)3利用數(shù)據(jù)線與kinect深度攝像頭1和wifi探針2相連接;
2)利用kinect深度攝像頭1獲取待檢測(cè)場(chǎng)景中作為視頻運(yùn)動(dòng)目標(biāo)的人體深度圖像,再把人體簡(jiǎn)化為一個(gè)質(zhì)點(diǎn),用一個(gè)骨骼點(diǎn)來(lái)代替,并記錄下骨骼點(diǎn)在待檢測(cè)場(chǎng)景中的運(yùn)動(dòng)軌跡,進(jìn)而獲得人體運(yùn)動(dòng)軌跡點(diǎn)集合;
具體步驟如下:采用kinect深度攝像頭1采集待檢測(cè)場(chǎng)景中的人體深度圖像,如圖3所示,該人體深度圖像中每個(gè)像素由2個(gè)字節(jié),共16位組成。其中高13位代表kinect深度攝像頭1到人體之間的距離,低3位表示人體索引編號(hào),如果低3位全部為0,則表示不是人體,然后傳送給計(jì)算機(jī)3,計(jì)算機(jī)3通過(guò)遍歷判斷每一個(gè)像素的人體索引編號(hào)就可以判斷出該像素是否屬于同一人體,最后所有具有相同人體索引編號(hào)的像素即是一個(gè)人體。由于當(dāng)描述人體運(yùn)動(dòng)軌跡的時(shí)候,人體的姿態(tài)和動(dòng)作就不再是研究重點(diǎn),那么可以將人體當(dāng)作一個(gè)質(zhì)點(diǎn),描述質(zhì)點(diǎn)的運(yùn)動(dòng)軌跡即代表人體的運(yùn)動(dòng)軌跡。而且在獲取人體目標(biāo)的同時(shí)也可以獲取到人體的骨骼點(diǎn)信息,如圖4所示。在這里選用人體脊椎中點(diǎn)表示人體的空間位置,從而得到kinect深度攝像頭1下攝像機(jī)坐標(biāo)系中人體的三維坐標(biāo)位置
由于攝像機(jī)坐標(biāo)系并不是真實(shí)世界中的坐標(biāo),在這里還需要轉(zhuǎn)換到實(shí)際場(chǎng)景中的坐標(biāo)才有意義。世界坐標(biāo)用
其中:
因?yàn)楣趋傈c(diǎn)在世界坐標(biāo)系下是用三維坐標(biāo)表示的。通常情況下可以認(rèn)為人體是在地面上活動(dòng)的,且移動(dòng)終端設(shè)備也由人所攜帶,那么移動(dòng)終端設(shè)備也是在地面這個(gè)二維平面上移動(dòng)。為了便于理解、計(jì)算簡(jiǎn)便和減少匹配誤差,在不考慮人體的身高因素時(shí),也無(wú)需考慮垂直方向上的坐標(biāo),僅僅使用三維坐標(biāo)系下的x和z坐標(biāo)即可實(shí)現(xiàn)定位。即將三維空間轉(zhuǎn)化到二維平面,用
最后將得到的二維平面坐標(biāo)按采樣時(shí)間記錄下來(lái),作為人體運(yùn)動(dòng)軌跡點(diǎn)集合,記作pi={pi(t0),pi(t1),...}。
3)利用wifi探針2獲取待檢測(cè)場(chǎng)景中人體攜帶的移動(dòng)終端設(shè)備mac碼地址和相應(yīng)的rssi信號(hào)值,然后對(duì)上述rssi信號(hào)值進(jìn)行優(yōu)選,之后計(jì)算rssi信號(hào)值差值,然后建立rssi信號(hào)值差值位置對(duì)應(yīng)關(guān)系表,定位時(shí)利用獲得的rssi信號(hào)值差值通過(guò)查表方式即可找到移動(dòng)終端設(shè)備的位置,進(jìn)而獲得移動(dòng)終端設(shè)備運(yùn)動(dòng)軌跡點(diǎn)集合;
具體步驟如下:
將待檢測(cè)場(chǎng)景用網(wǎng)格法劃分成多個(gè)小方格,對(duì)每一小方格進(jìn)行標(biāo)號(hào),并將方格對(duì)應(yīng)的位置記作loca(xi,yi);
將移動(dòng)終端設(shè)備分別放置在每個(gè)位置loca(xi,yi)處,利用多個(gè)wifi探針2探測(cè)該移動(dòng)終端設(shè)備mac碼及其對(duì)應(yīng)的rssi信號(hào)值和時(shí)間戳,獲取到的信息如表1所示,然后傳送給計(jì)算機(jī)3,由計(jì)算機(jī)3進(jìn)行后續(xù)的處理。
由于wifi探針2在采集移動(dòng)終端設(shè)備的rssi信號(hào)時(shí),一般會(huì)在一個(gè)較短的時(shí)間段內(nèi)獲得同一個(gè)移動(dòng)終端設(shè)備返回的多個(gè)rssi信號(hào)值。一般情況下在較短時(shí)間內(nèi)移動(dòng)終端設(shè)備的mac碼和位置不會(huì)改變。為了提高定位的準(zhǔn)確性,需對(duì)同一短時(shí)間段內(nèi)得到的同一mac碼的多個(gè)rssi信號(hào)值進(jìn)行優(yōu)選。
優(yōu)選方法是:設(shè)每一wifi探針2采集到的同一時(shí)間段內(nèi)同一移動(dòng)終端設(shè)備的所有rssi信號(hào)值為:rssi1,rssi2,…,rssin;
概率分布函數(shù)的公式如式(2)所示:
其中:
μ表示rssi信號(hào)值的均值;σ2表示rssi信號(hào)值的方差;n表示rssi信號(hào)值的個(gè)數(shù);x表示wifi探針2采集到同一時(shí)間段內(nèi)同一移動(dòng)終端設(shè)備的多個(gè)rssi信號(hào)值。
將所有rssi信號(hào)值rssi1,rssi2,…,rssin帶入上述概率分布函數(shù)f(x)中,計(jì)算出f(x)。當(dāng)0.5≤f(x)≤1時(shí),即該rssi信號(hào)值呈正相關(guān),保留該rssi信號(hào)值,否則刪除,以對(duì)所有rssi信號(hào)值進(jìn)行篩選。將篩選后保留下的m個(gè)rssi信號(hào)值設(shè)為rssi1,rssi2,…,rssim。
計(jì)算上述篩選后的rssi信號(hào)值rssi1,rssi2,…,rssim的均值,用rssiaver表示:
將上述均值rssiaver作為該rssi信號(hào)值的優(yōu)選值。
多個(gè)wifi探針2在該位置處獲得的rssi信號(hào)值的優(yōu)選值分別表示為:rssiaver1,rssiaver2,rssiaver3,……。
由于不同品牌、型號(hào)的移動(dòng)終端設(shè)備的網(wǎng)卡性能不盡相同,因此僅使用rssi信號(hào)值進(jìn)行定位將會(huì)引入因移動(dòng)終端設(shè)備功率不同而導(dǎo)致的誤差,由式(4)所示的rssi信號(hào)值差值可知:
其中γsf∈表示同層測(cè)試的路徑損耗指數(shù)值,faf表示附加衰減因子,di表示wifi探針2與移動(dòng)終端設(shè)備之間的距離,rssi信號(hào)值差值表示功率衰減,由此可見(jiàn),在同一時(shí)間內(nèi)該功率衰減主要是由距離不同而造成的。因此利用rssi信號(hào)值差值可以消除由于移動(dòng)終端設(shè)備不同而引入的誤差。
將上述rssi信號(hào)值的優(yōu)選值rssiaver1,rssiaver2,rssiaver3,……兩兩做差,并用drssi表示相減的結(jié)果:
最后共得到多個(gè)該位置處的rssi信號(hào)值差值drssi1,drssi2,…,drssim。
將上述rssi信號(hào)值差值drssi1,drssi2,…,drssim和位置loca(xi,yi)建立一個(gè)對(duì)應(yīng)關(guān)系表。
在定位時(shí),只需根據(jù)按上述方法獲得的rssi信號(hào)值差值通過(guò)查表即可反推出移動(dòng)終端設(shè)備所在的位置。
但查表時(shí),可能在對(duì)應(yīng)關(guān)系表中找不到完全一樣的rssi信號(hào)值差值,而且wifi探針2探測(cè)到的rssi信號(hào)值差值中的每一個(gè)rssi信號(hào)值差值drssi和對(duì)應(yīng)關(guān)系表中某一個(gè)位置處的rssi信號(hào)值差值中的每一個(gè)rssi信號(hào)值差值drssi的相似度也不盡相同,故需要對(duì)獲得的rssi信號(hào)值差值和對(duì)應(yīng)關(guān)系表中的rssi信號(hào)值差值使用最近鄰算法進(jìn)行運(yùn)算而得到最相似的一組rssi信號(hào)值差值drssi1,drssi2,drssi3,.....。具體步驟是:
3.1、分別計(jì)算每一個(gè)wifi探針2探測(cè)到的一組rssi信號(hào)值差值與對(duì)應(yīng)關(guān)系表中所有組的rssi信號(hào)值差值的曼哈頓距離,公式如下:
其中:x,y表示兩個(gè)n維向量,維數(shù)由rssi信號(hào)值差值的個(gè)數(shù)決定。
3.2、將每一個(gè)wifi探針2探測(cè)到的一組rssi信號(hào)值差值定義為查詢點(diǎn),然后根據(jù)上述曼哈頓距離利用最近鄰算法查找出離查詢點(diǎn)最近的數(shù)據(jù)對(duì)象,即rssi信號(hào)值差值在對(duì)應(yīng)關(guān)系表中的位置,并記錄下該位置的坐標(biāo)loca(xi,yi);
3.3、重復(fù)步驟3.1到3.2,得到不同時(shí)刻同一移動(dòng)終端設(shè)備不同位置的多個(gè)坐標(biāo),這些坐標(biāo)的集合即為該移動(dòng)終端設(shè)備運(yùn)動(dòng)軌跡點(diǎn)集合;
4)利用卡爾曼濾波算法平滑上述人體運(yùn)動(dòng)軌跡點(diǎn)集合和移動(dòng)終端設(shè)備運(yùn)動(dòng)軌跡點(diǎn)集合,再分別將集合中的點(diǎn)連接而形成軌跡曲線;
由步驟2)和3)可得人體運(yùn)動(dòng)軌跡點(diǎn)集合和移動(dòng)終端設(shè)備運(yùn)動(dòng)軌跡點(diǎn)集合。由于上述獲取的運(yùn)動(dòng)軌跡可能存在噪聲,因此需要對(duì)運(yùn)動(dòng)軌跡點(diǎn)集合進(jìn)行濾波,具體步驟如下:
4.3、卡爾曼濾波:
由于集合中的每一個(gè)點(diǎn)都是由x軸坐標(biāo)和z軸坐標(biāo)構(gòu)成,因此分別對(duì)x軸坐標(biāo)和z軸坐標(biāo)進(jìn)行修正,設(shè)要進(jìn)行卡爾曼濾波的集合為x,對(duì)應(yīng)k時(shí)刻的點(diǎn)為x(k),具體的步驟為:
4.1.1、預(yù)估計(jì)
4.1.2、計(jì)算預(yù)估計(jì)協(xié)方差矩陣:
其中:q(k)=u(k)×u(k)t,u(k)為k時(shí)刻動(dòng)態(tài)噪聲;
4.1.3、計(jì)算卡爾曼增益矩陣:
其中:r(k)=n(k)×n(k)t,n(k)為k時(shí)刻觀測(cè)噪聲,h(k)為k時(shí)刻觀測(cè)矩陣;
4.1.4、用觀測(cè)值和預(yù)測(cè)值更新估計(jì)值:
4.1.5、計(jì)算更新后估計(jì)協(xié)方差矩陣:
4.1.6、令
通過(guò)以上處理即可完成對(duì)人體運(yùn)動(dòng)軌跡點(diǎn)集合或移動(dòng)終端設(shè)備運(yùn)動(dòng)軌跡點(diǎn)集合的x,z坐標(biāo)的平滑。
(4.2)將平滑后的同一人體和移動(dòng)終端設(shè)備不同時(shí)刻的運(yùn)動(dòng)軌跡點(diǎn)集合中的點(diǎn)連接成直線,由此形成人體運(yùn)動(dòng)軌跡曲線和移動(dòng)終端設(shè)備運(yùn)動(dòng)軌跡曲線。
5)使用費(fèi)雷歇距離來(lái)度量人體運(yùn)動(dòng)軌跡曲線和移動(dòng)終端設(shè)備運(yùn)動(dòng)軌跡曲線的相似系數(shù),并計(jì)算出軌跡映射成軌跡圖像后兩個(gè)軌跡圖像之間的相關(guān)系數(shù);綜合二者的結(jié)果,輸出人體運(yùn)動(dòng)軌跡和移動(dòng)終端設(shè)備運(yùn)動(dòng)軌跡的匹配結(jié)果。
具體步驟如下:
5.7、進(jìn)行距離度量
本發(fā)明使用弗雷歇距離進(jìn)行距離度量,公式如下:
5.1.1、設(shè)定t為采樣間隔,該時(shí)刻人體運(yùn)動(dòng)軌跡曲線a上的采樣點(diǎn)為
5.1.2、計(jì)算上述兩采樣點(diǎn)間的歐式距離:
5.1.3、計(jì)算該采樣點(diǎn)下的最大距離
5.1.4、更換采樣間隔t的數(shù)值,重復(fù)步驟5.1.1至5.1.3,獲取多個(gè)最大距離,利用式(7)所示的弗雷歇距離公式計(jì)算并選擇一個(gè)最小的最大距離的值即為這兩條曲線的相似系數(shù),弗雷歇距離就是使該最大距離最小化的采樣方式下的值。
5.1.5、以人體為主鍵,對(duì)所有移動(dòng)終端設(shè)備移動(dòng)軌跡曲線與人體運(yùn)動(dòng)軌跡曲線進(jìn)行以上操作,得到多個(gè)相似系數(shù),并將度量結(jié)果從大到小排序。
5.8、進(jìn)行圖像度量
從圖像角度,使用全局圖像進(jìn)行相似性度量,通過(guò)比較兩個(gè)軌跡圖像之間的相關(guān)程度,完成軌跡的匹配。
5.2.1、將相同人體和相同移動(dòng)終端設(shè)備在不同時(shí)刻的多個(gè)坐標(biāo)點(diǎn)集合分別連成線段,線的顏色用黑色表示,背景使用白色表示,由此得到二值圖;
5.2.2、將上述二值圖使用相關(guān)系數(shù)法進(jìn)行相似性度量:
其中:h1表示wifi探針2探測(cè)到的一組rssi信號(hào)值差值;
h2表示對(duì)應(yīng)關(guān)系表中每一位置對(duì)應(yīng)的rssi信號(hào)值差值;
n等于每組rssi信號(hào)值差值的個(gè)數(shù);
5.2.3、以人體為主鍵,對(duì)所有移動(dòng)終端設(shè)備移動(dòng)軌跡圖像與人體運(yùn)動(dòng)軌跡圖像進(jìn)行相關(guān)系數(shù)度量,并將度量的結(jié)果從大到小排序;
5.9、進(jìn)行綜合度量
綜合上述距離度量和圖像度量的結(jié)果,考慮到距離度量相比圖像度量的可靠性較高,因此分別將距離度量和圖像度量的結(jié)果乘以0.6和0.4的權(quán)重,再次排序,排名第一的軌跡圖像即認(rèn)為是相應(yīng)人體所攜帶的移動(dòng)終端設(shè)備的軌跡圖像,由此完成視頻運(yùn)動(dòng)目標(biāo)與其所攜帶移動(dòng)終端設(shè)備的mac碼匹配。
通過(guò)上面的步驟,已經(jīng)實(shí)現(xiàn)了mac碼與視頻運(yùn)動(dòng)目標(biāo)的匹配。根據(jù)匹配的曲線可以得到短時(shí)間內(nèi)任意時(shí)刻人體的坐標(biāo)和移動(dòng)終端設(shè)備坐標(biāo)的對(duì)應(yīng)關(guān)系。盡管通過(guò)rssi信號(hào)值優(yōu)選、rssi信號(hào)值差值處理等方法能夠在一定程度上提高wifi目標(biāo)定位的準(zhǔn)確性,但wifi定位的精度還遠(yuǎn)遠(yuǎn)達(dá)不到kinect深度攝像頭下拍攝的人體的位置精度(可達(dá)毫米級(jí))。而因?yàn)橐苿?dòng)終端設(shè)備一段時(shí)間內(nèi)整體的動(dòng)態(tài)移動(dòng)軌跡是可信的,且已經(jīng)實(shí)現(xiàn)了人體運(yùn)動(dòng)軌跡和移動(dòng)終端設(shè)備運(yùn)動(dòng)軌跡的匹配,那么可使用同一時(shí)刻通過(guò)kinect深度攝像頭獲取到的人體坐標(biāo)代替移動(dòng)終端設(shè)備的坐標(biāo)來(lái)實(shí)現(xiàn)wifi目標(biāo)定位。實(shí)驗(yàn)證明,本發(fā)明方法切實(shí)有效,且精度高。
表1