本發(fā)明涉及通信、信號與信息處理和基于位置的服務技術領域,具體涉及一種基于決策樹的快速KNN室內(nèi)WiFi定位方法。
背景技術:
隨著移動互聯(lián)移動網(wǎng)的快速發(fā)展,基于位置的服務擁有具有快速增長的市場,其中室內(nèi)定位在近些年發(fā)展迅速。定位的應用普遍是使用全球定位系統(tǒng),但由于室內(nèi)環(huán)境無法依賴GPS衛(wèi)星傳送來的信號,以及室內(nèi)環(huán)境通常比較復雜,使得室內(nèi)定位系統(tǒng)的定位精度受到較大影響,這阻礙了室內(nèi)定位系統(tǒng)的應用。當前各種室內(nèi)定位技術研究取得突破性進展,其中WiFi技術是應用于室內(nèi)定位研究領域最多的技術之一,它具有信號覆蓋率高、終端用戶數(shù)量大和傳輸距離遠等特點。
大多數(shù)基于WiFi的定位系統(tǒng)都是利用接收信號強度(RSSI)進行位置標記?;赗SSI的方法主要分成兩類:三角形定位和位置指紋識別算法。三角形定位是利用信號距離-損耗模型計算待測目標到多個已知參考點之間的距離信息估計最終目標位置,而位置指紋識別則通過比較待定位點的RSSI與參考點的信號特征指紋信息推導出目標位置。三角形定位因為室內(nèi)環(huán)境復雜從而使得定位結果不穩(wěn)定。
基于RSSI的位置指紋定位方法,一般包括離線和在線兩個階段。離線階段,首先將空間劃分為網(wǎng)格狀的區(qū)域分布,通過移動設備在各個參考點采集指紋信息建立指紋庫。在線階段則把終端在未知位置收集到的RSSI向量與指紋庫中的參考點RSSI向量匹配,通過匹配算法進行最終的位置估計。典型的模式匹配算法是KNN算法,該算法中采用的是歐氏距離用來度量目標向量與樣本向量的匹配程度。
然而,由于計算相似度時需要計算待測點RSSI向量與整個指紋庫的歐氏距離,在指紋數(shù)據(jù)庫比較龐大時,會需要花費較長的時間。
技術實現(xiàn)要素:
本發(fā)明的目的是為了解決現(xiàn)有技術中的上述缺陷,提供一種基于決策樹的快速KNN室內(nèi)WiFi定位方法,該方法利用無線網(wǎng)絡技術和室內(nèi)指紋定位技術,通過服務器中的定位算法對數(shù)據(jù)進行匹配,實現(xiàn)室內(nèi)局部區(qū)域的快速識別和精確定位。
本發(fā)明的目的可以通過采取如下技術方案達到:
一種基于決策樹的快速KNN室內(nèi)WiFi定位方法,所述方法包括下列步驟:
將定位區(qū)域劃分為多個子區(qū)域,在每一個子區(qū)域設置多個定位坐標點;
終端采集每個坐標點RSSI指紋信息和坐標信息,通過無線網(wǎng)絡傳輸至服務器,構建指紋數(shù)據(jù)庫Ψ;
服務器通過集成的決策樹算法對目標所處區(qū)域類別進行判別;
采用KNN算法對以目標所處類別進行匹配,計算精確位置。
進一步地,所述的將定位區(qū)域劃分為多個子區(qū)域,在每一個子區(qū)域設置多個定位坐標點具體包括:
按照等間隔劃分方式將定位區(qū)域進行劃分多個子區(qū)域,為每一個子區(qū)域設置類別標簽;
在每一個子區(qū)域上隨機布局多個定位坐標點,記錄每個點坐標信息。
進一步地,所述的終端采集每個坐標點RSSI指紋信息和坐標信息,經(jīng)過JSON封裝為網(wǎng)絡數(shù)據(jù)包后通過無線網(wǎng)絡傳輸至服務器。
進一步地,所述的服務器通過集成的決策樹算法對目標所處區(qū)域類別進行判別具體包括:
對指紋數(shù)據(jù)庫Ψ和標簽信息,采用決策樹訓練原則生成決策樹,生成多個葉子結點;
輸入目標樣本進入決策樹根結點,依次與內(nèi)部分支進行規(guī)則匹配,直到目標樣本進入葉子結點;
葉子結點類別由內(nèi)部包含樣本數(shù)最多的類別決定,目標樣本所屬區(qū)域類別為葉子結點類別。
進一步地,所述的采用KNN算法對目標所處類別進行匹配,計算精確位置具體包括:
計算待測點的RSSI向量與所處類別對應指紋庫中每條向量的余弦相似度,按進行升序排列,取前K個參考點構成鄰居樣本集,鄰居樣本集對應的二維坐標構成鄰居樣本坐標集;
將鄰居樣本集的余弦相似度作為權重,采用基于加權的方法得出待測點位置坐標(x,y)。
進一步地,所述的指紋數(shù)據(jù)庫Ψ表示為:
其中RSSIm,n(m=1,2...M,n=1,2,...N)表示第m個參考點接收到第n個AP的RSSI平均值,指紋數(shù)據(jù)庫Ψ的每一個行向量表示一個參考點接收到N個AP的RSSI。
進一步地,所述的決策樹訓練原則具體包括:
將RSSI向量每一維分量看做一個分類屬性,因此屬性集表示為:
R(D)={R1,...,Ri,...,RN}
其中,Ri表示RSSI向量第i維分量,針對RSSI第i維屬性Ri,對這些取值按從小到大排序,得到升序序列{Ri1,...,Rij,...Rin},設定[Rij,Rij+1)中間點為區(qū)間劃分點,針對屬性Ri構造候選劃分點集合:
構造屬性最佳劃分點判定規(guī)則,即屬性Ri最佳劃分點應滿足:
根據(jù)上述判定規(guī)則,最優(yōu)劃分點對應信息增益即為屬性本身的信息增益,在構造決策樹時,當前結點屬性應滿足:
R=arg max G(D,Ri)
從根結點出發(fā),依照上述規(guī)則選出最優(yōu)劃分屬性與最優(yōu)劃分點,將樣本集按照劃分點進行二分為兩個子集,接著在這兩個子集上進行進一步劃分,直到所有葉子結點都包含相同類別樣本,完成決策樹構建。
進一步地,所述的計算待測點的RSSI向量與所處類別對應指紋庫中每條向量的余弦相似度具體如下:
目標樣本r={r1,...rN},所處類別數(shù)據(jù)集每一個樣本記為{(rk1,...,rki,...,rkm},目標樣本與數(shù)據(jù)集每個樣本余弦相似度定義為:
進一步地,所述的采用基于加權的方法得出待測點位置坐標(x,y)如下:
選取相似度最大的K個樣本,為每個坐標向量定義權重:
待測點目標定位結果如下:
其中,xki表示第k類樣本的第i個坐標向量橫坐標,yki表示第k類樣本的第i個坐標向量縱坐標。
本發(fā)明相對于現(xiàn)有技術具有如下的優(yōu)點及效果:
(1)本發(fā)明提出的基于決策樹的快速KNN室內(nèi)WiFi定位方法有效減少因室內(nèi)環(huán)境比較復雜而造成的多徑效應和其他信號等干擾的影響。
(2)本發(fā)明提出的基于決策樹的快速KNN室內(nèi)WiFi定位方法充分利用了WiFi信號覆蓋率高、基礎設備部署比較完善和傳輸距離遠的優(yōu)勢。
(3)本發(fā)明提出的基于決策樹的快速KNN室內(nèi)WiFi定位方法結合決策樹算法,有效解決室內(nèi)感興趣區(qū)域定位的需求問題,與常用的K近鄰法,支持向量機等算法不同的是該算法有效地將區(qū)域識別和區(qū)域內(nèi)精確定位結合。
(4)本發(fā)明采用基于決策樹的快速KNN室內(nèi)WiFi定位方法與基于其他算法的WiFi定位方法相比,由于算法中用到了決策樹的分類判別算法,識別率達到90%;在定位運行時間上,由于精確定位時所需要匹配的指紋數(shù)量縮小到了已識別的區(qū)域內(nèi),所以本方法的定位效率相比于基于全局指紋匹配算法的定位方法要高;在定位精度上,相比于比較成熟的KNN算法,本發(fā)明定位精度更高,定位誤差可以保持在1~2m。
附圖說明
圖1是實驗場地區(qū)域劃分示意圖,其中節(jié)點就是選取的參考點位置;
圖2是本發(fā)明針對室內(nèi)區(qū)域定位需求而提出的基于決策樹的快速KNN室內(nèi)WiFi定位算法的流程圖。
具體實施方式
為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
實施例
本實施例針對室內(nèi)范圍較大且需要對其中多個局部區(qū)域進行定位的需求設計了一種基于決策樹的快速KNN的定位方法。利用決策樹判斷目標屬于哪一類區(qū)域,結合加權K近鄰算法計算目標的精確位置。
本示例公開了一種基于決策樹的快速KNN室內(nèi)WiFi室內(nèi)定位方法,流程步驟圖參照附圖2所示,由附圖2可知,該快速精確的室內(nèi)定位方法具體包括以下步驟:
S1、將定位區(qū)域劃分為多個子區(qū)域,在每一個子區(qū)域設置多個定位坐標點;
具體應用中,該步驟S1具體為:
S101、按照等間隔劃分方式將定位區(qū)域進行劃分多個子區(qū)域,為每一個子區(qū)域設置類別標簽。
S102、在每一個子區(qū)域上隨機布局多個定位坐標點,記錄每個點坐標信息。
S2、終端采集每個坐標點RSSI指紋信息和坐標信息,通過無線網(wǎng)絡傳輸至服務器,構建指紋數(shù)據(jù)庫Ψ;
具體應用中,該步驟S2具體為:
終端掃描每一個坐標點的RSSI信息和坐標信息,通過JSON封裝為網(wǎng)絡數(shù)據(jù)包,發(fā)送到服務器。
指紋數(shù)據(jù)庫Ψ表示為:
其中RSSIm,n(m=1,2...M,n=1,2,...N)表示第m個參考點接收到第n個AP的RSSI平均值,Ψ的每一個行向量表示一個參考點接收到N個AP的RSSI。
在定位時,終端掃描WiFi信號,獲得定位目標的一組RSSI指紋,將其輸入給定位算法處理。
S3、服務器通過集成的決策樹算法對目標所處區(qū)域類別進行判別;
具體應用中,該步驟S3具體為:
S301、對指紋數(shù)據(jù)庫Ψ和標簽信息,采用決策樹訓練原則生成決策樹,生成多個葉子結點。
具體應用中,所述步驟S301具體包括:
S3011、將RSSI向量每一維分量看做一個分類屬性,因此屬性集可以表示為:
R(D)={R1,...,Ri,...,RN}
其中,Ri表示RSSI向量第i維分量。針對RSSI第i維屬性Ri,對這些取值按從小到大排序,得到升序序列{Ri1,...,Rij,...Rin},設定[Rij,Rij+1)中間點為區(qū)間劃分點,針對屬性Ri,就可以構造候選劃分點集合
S3012、構造屬性最佳劃分點判定規(guī)則,即屬性Ri最佳劃分點應滿足:
S3013、根據(jù)上述判定規(guī)則,最優(yōu)劃分點對應信息增益就是屬性本身的信息增益。在構造決策樹時,當前結點屬性應滿足:
R=arg max G(D,Ri)
從根結點出發(fā),依照上述規(guī)則選出最優(yōu)劃分屬性與最優(yōu)劃分點,將樣本集按照劃分點進行二分為兩個子集,接著在這兩個子集上進行進一步劃分,直到所有葉子結點都包含相同類別樣本,完成決策樹構建。
S302、輸入目標樣本進入決策樹根結點,依次與內(nèi)部分支進行規(guī)則匹配,直到目標樣本進入葉子結點。
S303、葉子結點類別由內(nèi)部包含樣本數(shù)最多的類別決定,目標樣本所屬區(qū)域類別為葉子結點類別。
S4、采用KNN算法對目標所處類別進行匹配,計算精確位置;
具體應用中,所述步驟S4具體包括:
S401、計算待測點的RSSI向量與所處類別對應指紋庫中每條向量的余弦相似度,按進行升序排列,取前K個參考點構成鄰居樣本集,鄰居樣本集對應的二維坐標構成鄰居樣本坐標集。
目標樣本r={r1,...rN},所處類別數(shù)據(jù)集每一個樣本記為{(rk1,...,rki,...,rkm},目標樣本與數(shù)據(jù)集每個樣本余弦相似度定義為:
S402、將鄰居樣本集的余弦相似度作為權重,采用基于加權的方法得出待測點位置坐標。
選取相似度最大的K個樣本,為每個坐標向量定義權重:
待測點目標定位結果如下:
其中,xki表示第k類樣本的第i個坐標向量橫坐標,yki表示第k類樣本的第i個坐標向量縱坐標。
最后,通過后繼的信息傳遞,將定位結果返回至終端顯示。
實施例二
本實例將一種基于決策樹的快速KNN室內(nèi)WiFi定位方法應用與實驗場地區(qū)域,實驗場地區(qū)域布置如圖1所示,在10m*20m的區(qū)域,一共設置5個WiFi熱點,用Android設備采集RSSI指紋。
如圖2給出了定位方法進行定位的流程圖,說明整個定位過程步驟,為了具體介紹整個定位實施通過以下實現(xiàn)進行描述:
S1、將定位區(qū)域劃分為多個子區(qū)域,在每一個子區(qū)域設置多個定位坐標點。
按照1m*1m的二維正方形網(wǎng)格分布劃分出200個參照點,相鄰兩參照點在兩個坐標軸方向上的距離為1m。以該區(qū)域為一個二維坐標系,原點設定在區(qū)域最右下角的交點上。
按照2m*2m的方式將定位區(qū)域劃分為50個定位子區(qū)域,相鄰兩子區(qū)域在兩個坐標軸方向上的距離為2m。為每個子區(qū)域添加標簽信息1,2,3...,50。
S2、終端采集每個坐標點RSSI指紋信息和坐標信息,通過無線網(wǎng)絡傳輸至服務器,構建指紋數(shù)據(jù)庫。
采用Android設備在150個參考點上依次采集RSSI指紋和坐標信息,每一個參考點采集10次指紋信息,取平均值。
將每一參考點采集信息封裝為JSON網(wǎng)絡數(shù)據(jù)包,通過無線網(wǎng)絡方式發(fā)送到服務器,由服務器添加到Mysql數(shù)據(jù)庫中。
服務器基于決策樹原則訓練決策樹,確定最優(yōu)決策樹深度和葉子結點個數(shù)。本實例中根據(jù)指紋數(shù)據(jù)庫訓練最優(yōu)決策樹深度和葉子結點個數(shù)為6和29。
上述步驟S1和S2在離線階段完成,以下步驟為在線階段完成。
S3、終端設備采集待定位點的RSSI指紋,將該指紋輸入決策樹中,依次進行內(nèi)部結點屬性規(guī)則判斷,直到進入葉子結點。本實例中待定位點根據(jù)決策樹判斷定位到了區(qū)域18。
S4、采用KNN算法對以目標所處類別進行匹配,計算精確位置。取區(qū)域18所有指紋作為待測指紋,目標樣本r={r1,...rN},所處類別數(shù)據(jù)集每一個樣本記為{(rk1,...,rki,...,rkm},用如下公式計算目標樣本與數(shù)據(jù)集每個樣本余弦相似度:
升序排列,篩選出前K個參考點。本實例中K取值6。采用基于加權的方法得出待測點位置坐標。選取相似度最大的6個樣本,為每個坐標向量定義權重:
待測點目標定位結果如下:
其中,xki表示第k類樣本的第i個坐標向量橫坐標,yki表示第k類樣本的第i個坐標向量縱坐標。
最后,通過后繼的信息傳遞,將坐標結果返回給定位終端顯示。
至此實現(xiàn)了整個定位過程。
綜上所述,本實施例采用基于決策樹的快速KNN室內(nèi)WiFi定位算法執(zhí)行流程的方式全面地描述實施例中定位的過程。該算法與基于其他算法的WiFi定位方法相比,具有以下幾個優(yōu)點:區(qū)域識別率可達90%以上;在定位運行時間上,由于精確定位時所需要匹配的指紋數(shù)量縮小到了已識別的區(qū)域內(nèi),所以本方法的定位效率相比于基于全局指紋匹配算法的定位方法要高;在定位精度上,相比于比較成熟的KNN算法,定位精度更高,定位誤差可以保持在1到2m。
上述實施例為本發(fā)明較佳的實施方式,但本發(fā)明的實施方式并不受上述實施例的限制,其他的任何未背離本發(fā)明的精神實質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應為等效的置換方式,都包含在本發(fā)明的保護范圍之內(nèi)。