本發(fā)明屬于室內(nèi)定位技術(shù)領(lǐng)域,具體涉及一種基于DBSCAN算法的室內(nèi)定位方法。
背景技術(shù):
隨著物聯(lián)網(wǎng)的發(fā)展,對(duì)室內(nèi)定位的需求也與日俱增,諸如在商場(chǎng)、學(xué)校、寫字樓、醫(yī)院、酒店、飛機(jī)場(chǎng)、倉庫等室內(nèi)環(huán)境中都需要室內(nèi)定位技術(shù)來對(duì)資源、人員進(jìn)行高效的管理,VR領(lǐng)域也存在著大量的需求來定位玩家的室內(nèi)位置信息等,因此,如何更好的滿足日益增加室內(nèi)定位需求,已經(jīng)成為當(dāng)前定位技術(shù)中的熱點(diǎn)問題。
現(xiàn)有的室內(nèi)定位技術(shù)中,基于無線信號(hào)強(qiáng)度(RSSI)的指紋定位方法已被廣泛應(yīng)用于各種室內(nèi)定位系統(tǒng)中,在室內(nèi)環(huán)境中,由于無線信號(hào)的傳播容易受溫度、濕度和人員走動(dòng)的影響,因此無線信號(hào)強(qiáng)度(RSSI)的測(cè)量值波動(dòng)較大;為了提高測(cè)量的穩(wěn)定性和精度,常用匹配指紋庫的方式實(shí)現(xiàn)室內(nèi)定位,利用匹配指紋數(shù)據(jù)庫實(shí)現(xiàn)室內(nèi)定位的常用方法有樸素貝葉斯法,K近鄰法(KNN),貝葉斯估計(jì),神經(jīng)網(wǎng)絡(luò)法等,這些皆為監(jiān)督學(xué)習(xí)的方法,通常需要人為劃分網(wǎng)格,這些網(wǎng)絡(luò)一般通過平分面積來劃分,由于實(shí)際中無線信號(hào)強(qiáng)度(RSSI)分布不平均,會(huì)導(dǎo)致無線信號(hào)強(qiáng)度(RSSI)序列相似的地點(diǎn)被分入不同網(wǎng)格中,出現(xiàn)多個(gè)鄰近網(wǎng)格信號(hào)強(qiáng)度(RSSI)序列很相近,但最終被隨機(jī)定位到其中一個(gè)網(wǎng)格的情況發(fā)生,導(dǎo)致定位結(jié)果不準(zhǔn)確。
技術(shù)實(shí)現(xiàn)要素:
為解決現(xiàn)有技術(shù)的不足,本發(fā)明提出一種基于DBSCAN算法的室內(nèi)定位方法,包括以下步驟:
步驟1、在所需定位的建筑內(nèi),安裝若干個(gè)信號(hào)發(fā)射器和若干個(gè)信號(hào)采集器;
步驟2、設(shè)定樣本點(diǎn)的個(gè)數(shù),確定每個(gè)樣本點(diǎn)的坐標(biāo),并獲得每個(gè)樣本點(diǎn)的信號(hào)強(qiáng)度序列,即每個(gè)樣本點(diǎn)到各個(gè)信號(hào)發(fā)射器的信號(hào)強(qiáng)度;
步驟3、將每個(gè)樣本點(diǎn)的坐標(biāo)和信號(hào)強(qiáng)度序列進(jìn)行紀(jì)錄編號(hào);
步驟4、根據(jù)編號(hào)后的每個(gè)樣本點(diǎn)的坐標(biāo)和信號(hào)強(qiáng)度序列,利用DBSCAN算法建立室內(nèi)定位模型,包括以下步驟:
步驟4.1、設(shè)定密度選擇參數(shù),即設(shè)定鄰域的長(zhǎng)度和每個(gè)核心對(duì)象至少包含的樣本點(diǎn)的個(gè)數(shù);
步驟4.2、根據(jù)編號(hào)后的每個(gè)樣本點(diǎn)的信號(hào)強(qiáng)度序列和所設(shè)定的密度選擇參數(shù)設(shè)定核心對(duì)象的約束條件,根據(jù)約束條件確定樣本點(diǎn)的核心對(duì)象,通過核心對(duì)象進(jìn)一步確定聚類簇;所述的核心對(duì)象的約束條件為:每個(gè)樣本點(diǎn)的鄰域內(nèi)所包含的其他樣本點(diǎn)的個(gè)數(shù)是否大于等于所設(shè)定的每個(gè)核心對(duì)象至少包含的樣本點(diǎn)的個(gè)數(shù);
步驟4.3、獲得每個(gè)聚類簇的平均信號(hào)強(qiáng)度,并根據(jù)編號(hào)后的每個(gè)樣本點(diǎn)的坐標(biāo),獲得每個(gè)聚類簇的平均位置坐標(biāo),即室內(nèi)定位模型建立完成;
步驟5、獲得待定位點(diǎn)的信號(hào)強(qiáng)度序列,并根據(jù)建立完成的室內(nèi)定位模型獲得該待定位點(diǎn)的定位坐標(biāo),具體為:獲得該待定位點(diǎn)與每個(gè)聚類簇的平均信號(hào)強(qiáng)度的歐氏距離,并選擇與其歐氏距離最小的聚類簇的平均位置坐標(biāo)作為該待定位點(diǎn)的定位坐標(biāo)。
步驟4.2所述的核心對(duì)象的約束條件,公式如下:
|Nθ(xj)|≥Minpts (1)
其中,Nθ表示某個(gè)樣本點(diǎn)的θ鄰域內(nèi)的樣本個(gè)數(shù);θ表示鄰域的長(zhǎng)度;xj表示第j個(gè)樣本點(diǎn),j表示自然數(shù);Minpts表示每個(gè)核心對(duì)象至少包含的樣本點(diǎn)的個(gè)數(shù);
其中,
Nθ(xj)={xi∈D|d(xi,xj)≤θ} (2)
其中,xi表示第i個(gè)樣本點(diǎn);i表示自然數(shù);D表示編號(hào)后的每個(gè)樣本點(diǎn)的坐標(biāo)和信號(hào)強(qiáng)度序列的數(shù)據(jù)集;d(xi,xj)表示xi與xj兩個(gè)樣本點(diǎn)之間的歐氏距離;
其中,
其中,n表示每個(gè)樣本點(diǎn)記錄的無線信號(hào)強(qiáng)度的個(gè)數(shù);k表示自然數(shù);rik表示第i個(gè)樣本點(diǎn)的第k個(gè)無線信號(hào)強(qiáng)度值;rjk表示第j個(gè)樣本點(diǎn)的第k個(gè)無線信號(hào)強(qiáng)度值。
本發(fā)明的優(yōu)點(diǎn):
本發(fā)明提出一種基于DBSCAN算法的室內(nèi)定位方法,利用非監(jiān)督學(xué)習(xí)算法進(jìn)行建模,根據(jù)無線信號(hào)強(qiáng)度值(RSSI)進(jìn)行分類聚簇,而非人為進(jìn)行網(wǎng)格劃分,使網(wǎng)格劃分更符合實(shí)際,提高了室內(nèi)定位的穩(wěn)定性和精確度。
附圖說明
圖1為本發(fā)明一種實(shí)施例的基于DBSCAN算法的室內(nèi)定位方法流程圖;
圖2為本發(fā)明一種實(shí)施例的室內(nèi)定位的示意圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明一種實(shí)施例做進(jìn)一步說明。
本發(fā)明實(shí)施例中,一種基于DBSCAN算法的室內(nèi)定位方法,方法流程圖如圖1所示,包括以下步驟:
步驟1、在所需定位的建筑內(nèi),安裝若干個(gè)信號(hào)發(fā)射器和若干個(gè)信號(hào)采集器;
步驟2、設(shè)定樣本點(diǎn)的個(gè)數(shù),確定每個(gè)樣本點(diǎn)的坐標(biāo)(Z1,Z2),并獲得每個(gè)樣本點(diǎn)的信號(hào)強(qiáng)度序列{r1,r2,···,rn},即每個(gè)樣本點(diǎn)到各個(gè)信號(hào)發(fā)射器的信號(hào)強(qiáng)度;
步驟3、將每個(gè)樣本點(diǎn)的坐標(biāo)和信號(hào)強(qiáng)度序列作為一個(gè)樣本數(shù)據(jù)進(jìn)行記錄編號(hào),獲得數(shù)據(jù)集D={x1,x2,···,xm};其中m表示自然數(shù),即樣本數(shù)據(jù)的序號(hào);
步驟4、根據(jù)編號(hào)后的每個(gè)樣本點(diǎn)的坐標(biāo)和信號(hào)強(qiáng)度序列,利用DBSCAN算法建立室內(nèi)定位模型,包括以下步驟:
步驟4.1、設(shè)定密度選擇參數(shù),即設(shè)定鄰域的長(zhǎng)度θ和每個(gè)核心對(duì)象至少包含的樣本點(diǎn)的個(gè)數(shù)Minpts;
步驟4.2、根據(jù)編號(hào)后的每個(gè)樣本點(diǎn)的信號(hào)強(qiáng)度序列和所設(shè)定的密度選擇參數(shù)設(shè)定核心對(duì)象的約束條件,根據(jù)約束條件確定樣本點(diǎn)的全部的核心對(duì)象,通過核心對(duì)象進(jìn)一步確定聚類簇;所述的核心對(duì)象的約束條件為:每個(gè)樣本點(diǎn)的鄰域內(nèi)所包含的其他樣本點(diǎn)的個(gè)數(shù)是否大于等于所設(shè)定的每個(gè)核心對(duì)象至少包含的樣本點(diǎn)的個(gè)數(shù),具體步驟如下:
步驟4.2.1、根據(jù)編號(hào)后的每個(gè)樣本點(diǎn)的信號(hào)強(qiáng)度序列和所設(shè)定的鄰域的長(zhǎng)度設(shè)定核心對(duì)象的約束條件,并根據(jù)約束條件確定樣本點(diǎn)中全部的核心對(duì)象,約束條件公式如下:
|Nθ(xj)|≥Minpts (1)
其中,Nθ表示某個(gè)樣本點(diǎn)的θ鄰域內(nèi)的樣本個(gè)數(shù);θ表示鄰域的長(zhǎng)度;xj表示第j個(gè)樣本點(diǎn),j表示自然數(shù),即樣本點(diǎn)的序號(hào);Minpts表示每個(gè)核心對(duì)象至少包含的樣本點(diǎn)的個(gè)數(shù);
本發(fā)明實(shí)施例中,對(duì)于xj∈D,其θ鄰域包含樣本集D中與xj的距離小于等于θ的樣本,公式為:
Nθ(xj)={xi∈D|d(xi,xj)≤θ} (2)
其中,xi表示第i個(gè)樣本點(diǎn);i表示自然數(shù),即樣本點(diǎn)的序號(hào);D表示編號(hào)后的每個(gè)樣本點(diǎn)的坐標(biāo)和信號(hào)強(qiáng)度序列的數(shù)據(jù)集;
本發(fā)明實(shí)施例中,d(xi,xj)表示xi與xj兩個(gè)樣本點(diǎn)之間的歐氏距離,即信號(hào)強(qiáng)度序列{r1,r2,···,rn}構(gòu)成的n維歐氏空間中xi與xj兩點(diǎn)間的距離,公式如下:
其中,n表示每個(gè)樣本點(diǎn)記錄的無線信號(hào)強(qiáng)度的個(gè)數(shù);k表示自然數(shù),即無線信號(hào)強(qiáng)度值的序號(hào);rik表示第i個(gè)樣本點(diǎn)的第k個(gè)無線信號(hào)強(qiáng)度值;rjk表示第j個(gè)樣本點(diǎn)的第k個(gè)無線信號(hào)強(qiáng)度值;
步驟4.2.2、通過核心對(duì)象進(jìn)一步確定全部的聚類簇;
本發(fā)明實(shí)施例中,若xj位于xi的θ的領(lǐng)域中,且xi是核心對(duì)象,則稱xj由xi密度直達(dá);對(duì)于xi與xj,若存在樣本序列{p1,p2,···,pn},其中p1=xi,pn=xj,且樣本序列中每一個(gè)樣本都可由前一個(gè)樣本密度直達(dá),則稱xj由xi密度可達(dá);任意選擇樣本集D中的一個(gè)核心對(duì)象為“種子”,由此出發(fā)找出其所有密度可達(dá)的樣本點(diǎn),即確定了相應(yīng)的聚類簇;將全部的核心對(duì)象進(jìn)行訪問,獲得全部的聚類簇;
步驟4.3、獲得每個(gè)聚類簇的平均信號(hào)強(qiáng)度,并根據(jù)編號(hào)后的每個(gè)樣本點(diǎn)的坐標(biāo),計(jì)算獲得每個(gè)聚類簇的平均位置坐標(biāo),即室內(nèi)定位模型建立完成;
本發(fā)明實(shí)施例中,所述的獲得每個(gè)聚類簇的平均信號(hào)強(qiáng)度,采用以下公式:
其中,h表示每個(gè)聚類簇中樣本點(diǎn)的個(gè)數(shù);ri1表示每個(gè)聚類簇中第i個(gè)樣本點(diǎn)的第一個(gè)無線信號(hào)強(qiáng)度;ri2表示每個(gè)聚類簇中第i個(gè)樣本點(diǎn)的第二個(gè)無線信號(hào)強(qiáng)度;rin表示每個(gè)聚類簇中第i個(gè)樣本點(diǎn)的第n個(gè)無線信號(hào)強(qiáng)度;
本發(fā)明實(shí)施例中,所述的獲得每個(gè)聚類簇的平均位置坐標(biāo),采用以下公式:
其中,Zi1表示每個(gè)聚類簇中第i個(gè)樣本點(diǎn)的橫坐標(biāo)值;Zi2表示每個(gè)聚類簇中第i個(gè)樣本點(diǎn)縱坐標(biāo)值;
步驟5、通過在線測(cè)量等方式獲得待定位點(diǎn)的信號(hào)強(qiáng)度序列,并根據(jù)建立完成的室內(nèi)定位模型獲得該待定位點(diǎn)的定位坐標(biāo),具體為:獲得該待定位點(diǎn)與每個(gè)聚類簇的平均信號(hào)強(qiáng)度的歐氏距離,并選擇與其歐氏距離最小的聚類簇的平均位置坐標(biāo)作為該待定位點(diǎn)的定位坐標(biāo);
本發(fā)明實(shí)施例中,如圖2所示,在電腦上對(duì)本方法進(jìn)行模擬,設(shè)定14個(gè)樣本點(diǎn),并隨機(jī)設(shè)定一個(gè)待定位點(diǎn),每個(gè)樣本點(diǎn)接收到的無線信號(hào)強(qiáng)度序列為{r1,r2},利用DBSCAN算法把樣本點(diǎn)分成了C1和C2兩個(gè)聚類簇,分別獲得每個(gè)聚類簇的中心點(diǎn),即平均信號(hào)強(qiáng)度點(diǎn);獲得待定位點(diǎn)與每個(gè)聚類簇中心點(diǎn)的歐氏距離,這里與聚類簇C1的歐氏距離最小,則定位的坐標(biāo)即為聚類簇C1的平均位置坐標(biāo)。