本發(fā)明屬于定位跟蹤技術(shù)領(lǐng)域,具體涉及一種基于多標識指紋定位的定位方法。
背景技術(shù):
目前,定位服務已經(jīng)成為日常生活不可少的服務,隨著商場車站等公共設(shè)施的大量建設(shè),人們對室內(nèi)定位的需求不斷的提高,室內(nèi)定位正在逐漸成為人們研究的熱點。然而室內(nèi)多徑條件復雜,傳統(tǒng)的藍牙定位方法誤差較大,而且難以分辨用戶,同時又需要專門的設(shè)備去測量用戶坐標,從而增加了系統(tǒng)的復雜度?;跓o線局域網(wǎng)rssi信號測量的定位方法由于其成本低、覆蓋范圍大同時系統(tǒng)布設(shè)簡單,正在逐漸成為室內(nèi)定位的熱點。
室內(nèi)定位技術(shù)的主要方法分為兩類:確定性方法和概率性方法。確定性方法中的經(jīng)典算法有最鄰近法(nearestneighbor,nn)、k近鄰法(knearestneighbor,knn)和加權(quán)k近鄰法(weightedknearestneighbor,wknn),這類算法在設(shè)計中只考慮了信號特征均值,對原有數(shù)據(jù)利用率較低,因而定位的誤差較大,與確定行算法相比,概率性算法基于數(shù)理統(tǒng)計的思想,能更好地解決由環(huán)境等帶來的影響,但同樣是對原有數(shù)據(jù)利用率較低。
現(xiàn)有的算法,沒有很好的處理預先測得的數(shù)據(jù),無論是求取平均值,還是進行加權(quán)求取平均值,中間會有一定的數(shù)據(jù)損失,間接的增加了算法誤差。
技術(shù)實現(xiàn)要素:
為了解決現(xiàn)有技術(shù)中的問題,本發(fā)明提出一種能夠減小算法誤差,增加算法精確度的基于多標識指紋定位的定位方法。
為了實現(xiàn)以上目的,本發(fā)明所采用的技術(shù)方案為:包括以下步驟:
1)繪制wifi部署地圖,并在地圖上標記出無線ap的位置;
2)離線采樣:將地圖坐標化,每一個坐標點記為一個訓練元組,利用移動終端在wifi網(wǎng)絡(luò)中每個坐標點處采集無線ap的信號強度rssi信息劃分訓練元組,并發(fā)送到定位服務器,定位服務器將訓練元組集排序后存儲在搜索樹中,同時存儲訓練元組對應的標號和坐標得到離線數(shù)據(jù)庫,并對離線數(shù)據(jù)庫進行過濾處理;
3)在線定位:待定位的移動終端在wifi網(wǎng)絡(luò)的隨機點采集無線ap的信號強度rssi信息作為測試元組,從離線數(shù)據(jù)庫的訓練元組中選擇最近鄰訓練元組構(gòu)建優(yōu)先級隊列,分別計算測試元組與最近鄰訓練元組的曼哈頓距離,遍歷離線數(shù)據(jù)庫中的訓練元組集計算訓練元組與測試元組的曼哈頓距離,并根據(jù)曼哈頓距離更新優(yōu)先級隊列,統(tǒng)計優(yōu)先級隊列中每個訓練元組出現(xiàn)的次數(shù),出現(xiàn)次數(shù)最多的訓練元組對應的坐標點即作為待定位的移動終端所處位置的坐標點。
所述步驟2)中對離線數(shù)據(jù)庫進行過濾處理包括以下步驟:
2.1)地圖中每一個坐標點(xi,yi)處的rssi值記為向量:
其中,i為第i個點,j為在該點處測得的第j組數(shù)據(jù),sn為訓練元組內(nèi)的向量,具體含義為第n個ap點在該坐標點出測得的rssi值;
2.2)求取每一個訓練元組的平均向量:
其中,m為每個訓練元組內(nèi)向量的個數(shù),
2.3)計算每一個訓練元組中向量與平均向量的歐幾里德距離:
2.4)刪除每一個訓練元組中與平均向量的歐幾里德距離大于30個單位的向量,完成對離線數(shù)據(jù)庫的過濾。
所述步驟3)具體包括以下步驟:
3.1)待定位的移動終端在wifi網(wǎng)絡(luò)的隨機點采集無線ap的信號強度rssi信息,并發(fā)送給定位服務器,定位服務器將緩存的rssi信息作為測試元組;
3.2)構(gòu)建用于存儲最近鄰訓練元組的優(yōu)先級隊列,并從訓練元組集中隨機選擇若干訓練元組作為最近鄰訓練元組,分別計算測試元組與最近鄰訓練元組的曼哈頓距離,并將最近鄰訓練元組的標號、坐標,以及測試元組與最近鄰訓練元組的曼哈頓距離存入優(yōu)先級隊列;
3.3)遍歷離線數(shù)據(jù)庫中的訓練元組集,計算當前訓練元組與測試元組的曼哈頓距離,將所得的曼哈頓距離d與優(yōu)先級隊列中的最大曼哈頓距離dmax進行比較,若d≥dmax,則舍棄當前訓練元組,遍歷下一個訓練元組;若d<dmax,則刪除優(yōu)先級隊列中的最大曼哈頓距離對應的訓練元組,將當前訓練元組存入優(yōu)先級隊列,重復以上過程直至遍歷完整個訓練元組集,得到更新的優(yōu)先級隊列;
3.4)統(tǒng)計優(yōu)先級隊列中每個訓練元組出現(xiàn)的次數(shù),出現(xiàn)次數(shù)最多的訓練元組對應的坐標點即作為待定位的移動終端所處位置的坐標點。
所述步驟3)中待定位的移動終端在隨機點的rssi值記為向量:s=(b1,b2,b3,…,bn),bn為測試元組內(nèi)的向量,測試元組與訓練元組的曼哈頓距離的計算公式為:
所述步驟3)中優(yōu)先級隊列中存儲有1000個訓練元組作為最近鄰訓練元組。
所述步驟3)中優(yōu)先級隊列中的最近鄰訓練元組根據(jù)與測試元組的曼哈頓距離由小到大進行排序。
所述移動終端采用api采集無線ap的信號強度rssi信息。
與現(xiàn)有技術(shù)相比,本發(fā)明首先繪制wifi部署地圖,并在地圖上標記出無線ap的位置;然后在離線采樣時將地圖坐標化,每一個坐標點記為一個訓練元組,利用移動終端在wifi網(wǎng)絡(luò)中每個坐標點處采集無線ap的信號強度rssi信息劃分訓練元組,進行過濾處理后建立離線數(shù)據(jù)庫,離線數(shù)據(jù)庫包括訓練元組以及訓練元組對應的標號和坐標;最后在線定位時通過遍歷離線數(shù)據(jù)庫中的訓練元組集計算訓練元組與測試元組的曼哈頓距離,根據(jù)曼哈頓距離更新優(yōu)先級隊列,統(tǒng)計優(yōu)先級隊列中每個訓練元組出現(xiàn)的次數(shù),出現(xiàn)次數(shù)最多的訓練元組對應的坐標點即作為待定位的移動終端所處位置的坐標點,完成定位。本發(fā)明通過劃分組元的方法,通過多標識的方法,利用多組數(shù)據(jù)來標識每一個坐標點,摒棄現(xiàn)有方法中求取平均值的方法。即現(xiàn)有方法采用標量去標識一個坐標點,本發(fā)明采用向量標識一個坐標點,減小了誤差,提高了定位的精準度。
進一步,根據(jù)訓練元組的向量與平均向量的歐幾里德距離對離線數(shù)據(jù)庫進行過濾處理,去除了離線數(shù)據(jù)庫中無用的向量,減少了計算量和計算誤差,進一步提高了本發(fā)明的精準度。通過歐幾里德距離對離線數(shù)據(jù)庫進行過濾處理,滿足誤差要求,同時降低了時間復雜度。
附圖說明
圖1為移動終端與無線ap的信息示意圖;
圖2為本發(fā)明的方法流程圖。
具體實施方式
下面結(jié)合具體的實施例和說明書附圖對本發(fā)明作進一步的解釋說明。
參見圖2,本發(fā)明包括初始配置階段、離線采樣階段和在線實時定位階段:
1)初始配置階段:繪制wifi部署地圖,并在地圖上標記出無線ap的位置;
2)離線采樣階段:將地圖坐標化,每一個坐標點記為一個訓練元組,利用移動終端在wifi網(wǎng)絡(luò)中每個坐標點處采集無線ap的信號強度rssi信息劃分訓練元組,并發(fā)送到定位服務器,定位服務器將訓練元組集排序后存儲在搜索樹中,同時存儲訓練元組對應的標號和坐標得到離線數(shù)據(jù)庫,并對離線數(shù)據(jù)庫進行過濾處理;
過濾處理包括以下步驟:
2.1)地圖中每一個坐標點(xi,yi)處的rssi值記為向量:
其中,i為第i個點,j為在該點處測得的第j組數(shù)據(jù),sn為訓練元組內(nèi)的向量;
2.2)求取每一個訓練元組的平均向量:
其中,m為每個訓練元組內(nèi)向量的個數(shù),
2.3)計算每一個訓練元組中向量與平均向量的歐幾里德距離:
2.4)刪除每一個訓練元組中與平均向量的歐幾里德距離大于30個單位的向量,完成對離線數(shù)據(jù)庫的過濾;
3)在線實時定位階段:待定位的移動終端在wifi網(wǎng)絡(luò)的隨機點采集無線ap的信號強度rssi信息作為測試元組,從離線數(shù)據(jù)庫的訓練元組中選擇最近鄰訓練元組構(gòu)建優(yōu)先級隊列,分別計算測試元組與最近鄰訓練元組的曼哈頓距離,遍歷離線數(shù)據(jù)庫中的訓練元組集計算訓練元組與測試元組的曼哈頓距離,并根據(jù)曼哈頓距離更新優(yōu)先級隊列,統(tǒng)計優(yōu)先級隊列中每個訓練元組出現(xiàn)的次數(shù),出現(xiàn)次數(shù)最多的訓練元組對應的坐標點即作為待定位的移動終端所處位置的坐標點;具體包括以下步驟:
3.1)待定位的移動終端在wifi網(wǎng)絡(luò)的隨機點采集無線ap的信號強度rssi信息,并發(fā)送給定位服務器,定位服務器將緩存的rssi信息作為測試元組,待定位的移動終端在隨機點的rssi值記為向量:s=(b1,b2,b3,…,bn),bn為測試元組內(nèi)的向量;
3.2)構(gòu)建用于存儲最近鄰訓練元組的優(yōu)先級隊列,并從訓練元組集中隨機選擇1000個訓練元組作為最近鄰訓練元組,分別計算測試元組與最近鄰訓練元組的曼哈頓距離,并將最近鄰訓練元組的標號、坐標,以及測試元組與最近鄰訓練元組的曼哈頓距離存入優(yōu)先級隊列,優(yōu)先級隊列中的最近鄰訓練元組根據(jù)與測試元組的曼哈頓距離由小到大進行排序,測試元組與訓練元組的曼哈頓距離的計算公式為:
3.3)遍歷離線數(shù)據(jù)庫中的訓練元組集,計算當前訓練元組與測試元組的曼哈頓距離,將所得的曼哈頓距離d與優(yōu)先級隊列中的最大曼哈頓距離dmax進行比較,若d≥dmax,則舍棄當前訓練元組,遍歷下一個訓練元組;若d<dmax,則刪除優(yōu)先級隊列中的最大曼哈頓距離對應的訓練元組,將當前訓練元組存入優(yōu)先級隊列,重復以上過程直至遍歷完整個訓練元組集,得到更新的優(yōu)先級隊列;
3.4)統(tǒng)計優(yōu)先級隊列中每個訓練元組出現(xiàn)的次數(shù),出現(xiàn)次數(shù)最多的訓練元組對應的坐標點即作為待定位的移動終端所處位置的坐標點。
方法中移動終端采用api采集無線ap的信號強度rssi信息。
本發(fā)明在初始配置階段,預先配置如下信息:繪制wifi部署地圖,在地圖上標記出無線ap的安裝位置;
在離線采樣階段步驟如下:
1.處理離線地圖,劃分離線地圖上面的點,每間隔一米劃分一個坐標點,總計有n個點,那么第i個點的訓練元組標記就為i;
2.在部署有wifi網(wǎng)絡(luò)的環(huán)境中,手持不同型號的移動終端到達特定位置,停止20-60s,以收集該位置的wifi指紋特征,收集的指紋為:移動終端通過安裝采樣app調(diào)用系統(tǒng)api來收集周邊部署的信號強度rssi信息并發(fā)送到定位服務器,定位服務器將以上數(shù)據(jù)存儲至離線數(shù)據(jù)庫,每一個坐標點(xi,yi)都記作為一個訓練元組,對每一個訓練元組賦一個標號,記為ai,之后每一個在(xi,yi)處所測得的rssi值
3.實際測量得到停車場路線,將路線圖繪制在坐標系中,將存儲的訓練元組預先排序并安排在搜索樹中;
過濾階段通過過濾算法,過濾掉離線數(shù)據(jù)庫中的無用信息:
1.求取每一個訓練元組的平均向量,計算公式如下:
2.在每一個訓練元組中刪除與平均向量相差30個單位的歐幾里得距離的向量,歐幾里得距離計算公式如下:
3.將其余向量存入離線數(shù)據(jù)庫中;
在線實時定位階段,對于任意待定位終端,進入該無線部署區(qū)域,并連接上wifi,安裝定位app,具體步驟如下:
1.移動終端進入該無線部署區(qū)域后,定位app采集周邊的無線ap的信號強度rssi值,將其發(fā)送到定位服務器;
2.定位服務器程序?qū)?-5s緩存的rssi,作為待匹配識別的特征,記為向量s=(b1,b2,b3,…,bn);
3.維護一個大小為1000訓練元組且按曼哈頓距離由小到大排序的優(yōu)先級隊列,用于存儲最近鄰訓練元組,曼哈頓距離公式為:
4.隨機從訓練元組集中選取1000個元組作為初始的最近鄰訓練元組,分別計算測試元組到這1000個訓練元組的曼哈頓距離,將訓練元組標號、坐標和曼哈頓距離存入優(yōu)先級隊列;
5.遍歷訓練元組集,計算當前訓練元組與測試元組的曼哈頓距離,將所得距離d與優(yōu)先級隊列中的最大距離dmax進行比較,若d≥dmax,則舍棄該元組,遍歷下一個元組;若d<dmax,刪除優(yōu)先級隊列中最大距離的元組,將當前訓練元組存入優(yōu)先級隊列;
6.遍歷完畢,統(tǒng)計優(yōu)先級隊列中每個訓練元組出現(xiàn)的次數(shù),并將出現(xiàn)次數(shù)最多的訓練元組作為測試元組的類別,該訓練元組對應的坐標點即作為待定位的移動終端所處位置的坐標點。
傳統(tǒng)的wknn定位算法為,離線階段,布置n個ap,將地圖坐標化(假定共有m個點),每一個坐標點處測得多組n個ap的信號值,然后求得n個ap分別在該點處的加權(quán)平均值,此n組數(shù)據(jù)作為一個n維向量,唯一標識該點(該坐標與n維向量一一對應),存入數(shù)據(jù)庫;在線階段,測得n個ap在該點在某坐標點處的信號值,與離線數(shù)據(jù)庫匹配,得出該點的坐標值。本發(fā)明與原先加權(quán)求取平均值的方法不同,在(xi,yi)點處測得的所有數(shù)據(jù)標識該點。求取每一個訓練元組的平均向量,在每一個訓練元組中取與平均向量的歐幾里得距離相差在30個單位以內(nèi)的向量,舍棄其余向量,存入離線數(shù)據(jù)庫內(nèi),過濾處理時也可以使用曼哈頓距離或其它距離度量;在線定位時移動終端在(x,y)處測得的數(shù)據(jù)為向量s=(b1,b2,b3,…,bn),計算s與
本發(fā)明通過劃分組元的方法,通過多標識的方法,利用多組數(shù)據(jù)來標識每一個坐標點,摒棄現(xiàn)有方法中求取平均值的方法,減小了誤差,提高了定位的精準度。另外根據(jù)訓練元組的向量與平均向量的歐幾里德距離對離線數(shù)據(jù)庫進行過濾處理,去除了離線數(shù)據(jù)庫中無用的向量,減少了計算量和計算誤差,進一步提高了本發(fā)明的精準度。通過歐幾里德距離對離線數(shù)據(jù)庫進行過濾處理,滿足誤差要求,同時降低了時間復雜度。