本發(fā)明屬于樓層定位技術(shù)領(lǐng)域,具體的說,是一種基于氣壓計(jì)和WiFi的混合樓層定位方法。
背景技術(shù):
現(xiàn)代生活中,定位可以分為兩個領(lǐng)域:室內(nèi)定位和室外定位?,F(xiàn)有的室外定位已經(jīng)非常成熟,已有室外定位系統(tǒng),比如全球定位系統(tǒng)(Global Position System)、伽利略衛(wèi)星導(dǎo)航系統(tǒng)(Galileo Navigation System)和中國自主研發(fā)的北斗一號雙星定位系統(tǒng)。作為目前技術(shù)最成熟,也是表現(xiàn)最穩(wěn)健的定位系統(tǒng),GPS系統(tǒng)利用衛(wèi)星的測時和測距進(jìn)行導(dǎo)航,能夠以低廉的成本便捷地在全球任何地方、任何時候提供高精度的連續(xù)位置、走向、速度、姿態(tài)和時間信息。該系統(tǒng)是由分布在互成120度的三個軌道平面上的24顆衛(wèi)星組成,其中21顆為工作衛(wèi)星,3顆為在軌備用衛(wèi)星。每個軌道平面平均分布8顆衛(wèi)星,對于地球任何位置,均能同時觀察到6~9顆衛(wèi)星,其中GPS的設(shè)計(jì)粗碼定位精度為100m左右,而精碼定位精度能達(dá)到10m。但由于樓宇的墻壁屏蔽了衛(wèi)星信號,導(dǎo)致衛(wèi)星導(dǎo)航系統(tǒng)無法在室內(nèi)工作,所以室內(nèi)定位應(yīng)運(yùn)而生。
室內(nèi)定位與室外定位息息相關(guān)但又相對獨(dú)立的。由于室內(nèi)環(huán)境與室外環(huán)境截然不同,室內(nèi)環(huán)境可以分為非視距環(huán)境和視距環(huán)境,大多數(shù)室內(nèi)環(huán)境都為視距環(huán)境,由室內(nèi)環(huán)境的復(fù)雜,如房間結(jié)構(gòu)布局與建筑材料都不盡相同,室內(nèi)障礙物多都會信號的傳播隨著環(huán)境的不同產(chǎn)生較大的不同。室內(nèi)的墻壁和物品等障礙物都會對信號進(jìn)行反射、散射、衍射,引起信號波動,從而導(dǎo)致多徑效應(yīng)。
目前為止,人們對于樓層定位關(guān)注甚少,室內(nèi)定位的研究都主要集中于平面二維定位,很少關(guān)注樓層這一信息。從目前兩類主流定位算法:1)基于額外硬件的樓層定位算法,2)基于手機(jī)傳感器的樓層定位算法。我們可以了解到這些算法存在的一些缺陷:
1)由于室內(nèi)環(huán)境的復(fù)雜性和阻隔性,GSM信號隨著用戶的移動在室內(nèi)變化顯著,從而會導(dǎo)致定位精度下降,也可以說是GSM并不是一細(xì)粒度的信號,其本身精度并不高。
2)在數(shù)據(jù)采集階段,需要用戶參與樓層的標(biāo)定,同時每一棟樓宇都需要標(biāo)定,這大大增加用戶的使用成本,影響用戶的交互體驗(yàn),從而導(dǎo)致其適用性差
3)不能適用于沒有內(nèi)置氣壓傳感器的手機(jī)。目前來說,市面上絕大數(shù)智能手
機(jī)并不具備氣壓傳感器,所以限制了其在真實(shí)環(huán)境中的應(yīng)用。
4)該算法得到的樓層的氣壓指紋數(shù)據(jù)庫不具備離線性質(zhì)。基于氣壓傳感器的
算法在下述場景并不適用。場景為氣壓指紋數(shù)據(jù)庫由三個用戶手機(jī)采集數(shù)據(jù)訓(xùn)練得到的,而此時三個用戶都已離開,新的用戶進(jìn)來就無法實(shí)現(xiàn)定位,由于無法將原有的指紋轉(zhuǎn)化為當(dāng)前樓層的氣壓指紋圖譜。
基于上述兩種樓層定位算法的缺陷,我們提出了基于氣壓計(jì)和WiFi的混合樓層定位系統(tǒng),利用氣壓輔助WiFi的RSS值建立樓層的RSS指紋圖譜以獲得高定位精度。
技術(shù)實(shí)現(xiàn)要素:
為了充分融合氣壓計(jì)與WiFi的優(yōu)點(diǎn),提高樓層定位的精度,本發(fā)明提出了一種基于氣壓計(jì)和WiFi的混合樓層定位方法。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案包括以下步驟:
步驟1、以眾包方式采集整棟大樓內(nèi)所有用戶的數(shù)據(jù),數(shù)據(jù)主要包括用戶所在位置的RSS向量和氣壓值;
步驟2、云服務(wù)平臺對所有用戶上傳數(shù)據(jù)進(jìn)行預(yù)處理;
步驟3、云服務(wù)平臺對預(yù)處理后的數(shù)據(jù)進(jìn)行校準(zhǔn),得到標(biāo)準(zhǔn)化的數(shù)據(jù);
步驟4、對校準(zhǔn)后的數(shù)據(jù)進(jìn)行數(shù)據(jù)分析聚類,獲得樓層的Baro-RSS指紋圖譜;
步驟5、用戶對自己所在位置進(jìn)行實(shí)時定位;
所述的步驟1具體實(shí)施過程如下:
1-1.用戶在室內(nèi)活動時,通過用戶手機(jī)中BarFi客戶端以一定頻率采集附近AP的RSS向量,如果用戶手機(jī)配備氣壓傳感器,則同時采集氣壓值;
1-2.步驟1-1采集的RSS向量是一種混合的RSS-Baro的指紋,BarFi客戶端會將采集時間和當(dāng)前手機(jī)唯一標(biāo)識碼IMEI也一并記錄到該指紋中;假設(shè)一個采樣點(diǎn)附近里有n個路由器,則每個采樣點(diǎn)的RSS-Baro指紋用以下向量表示:
FP={Time,IMEI,Baro,(RSS1,RSS2,RSS3,…,RSSn)}
其中,Time表示當(dāng)前指紋的采樣時間;IMEI表示當(dāng)前指紋是由哪部手機(jī)采樣的,用于后續(xù)氣壓聚類;Baro表示該采樣點(diǎn)采樣時的氣壓值;RSS1,RSS2,…,RSSn表示附近AP的信息,其中包括附近AP的SSID、BSSID和信號強(qiáng)度RSS值;SSID表示為AP名稱,BSSID表示為AP的MAC地址,即路由器的唯一標(biāo)識碼。
所述的步驟2預(yù)處理的具體實(shí)施過程如下:
2-1.數(shù)據(jù)合并
由于BarFi客戶端采樣的時間為200毫秒,因此將同一部手機(jī)連續(xù)的5條數(shù)據(jù),即1s內(nèi)的數(shù)據(jù)進(jìn)行數(shù)據(jù)合并為一條,合并的方法為氣壓和WiFi的RSS向量都取均值,從而達(dá)到降低數(shù)據(jù)量的需求,同時也降低傳感器偏移對BarFi造成影響;在合并完數(shù)據(jù)之后,得出一組Baro-RSS的指紋圖譜向量FPS={FPi,I=1,2,...,n};
2-2.數(shù)據(jù)標(biāo)準(zhǔn)化
由于每個采樣點(diǎn)附近的AP都各有不同,從而會導(dǎo)致BarFi客戶端在對RSS向量進(jìn)行聚類時沒有統(tǒng)一的維度;因此需要進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化,具體標(biāo)準(zhǔn)化實(shí)現(xiàn)過程如下的:
記第i組RSS向量為Vi,總共有n組向量:
在標(biāo)準(zhǔn)化的過程中需對所有向量中的分量求并集,即對Vi到Vn求并集Union,按照并集Union將Vi映射到Fi,如公式2所示;對于該采樣點(diǎn)檢測不到的AP的值設(shè)為經(jīng)驗(yàn)最小值-110,最終形成標(biāo)準(zhǔn)化RSS向量Fi;
所述的步驟3具體實(shí)施過程如下:
3-1.云服務(wù)平臺對步驟2-1標(biāo)準(zhǔn)化處理后的數(shù)據(jù)進(jìn)行校準(zhǔn);將數(shù)據(jù)校準(zhǔn)分為兩部分:不同設(shè)備之間的氣壓值的校準(zhǔn)和不同設(shè)備之間的WiFi的RSS向量校準(zhǔn);
所述的不同設(shè)備之間的氣壓值的校準(zhǔn),具體的:
3-1-1.上下樓活動的檢測
定義數(shù)據(jù)結(jié)構(gòu)Activity={ts:startBaro,te:endBaro},來記錄用戶上下樓活動,其中ts表示上下樓開始的時間,startBaro為開始時間用戶所在樓層的氣壓值,te表示上下樓結(jié)束的時間,endBaro為結(jié)束時間用戶所在樓層的氣壓;同時也定義U/DTrace(Up/Down Trace)來記錄用戶上下樓軌跡,假設(shè)用戶有m次上下樓活動,即Activity1、Activity2、…、Activitym,那么該用戶的上下樓軌跡U/DTrace={IMEI:Activity1,Activity2,…,Activitym},其中IMEI為用戶的唯一標(biāo)識碼;
3-1-2.基于時間維度的氣壓校準(zhǔn)
首先,在獲得不同用戶在不同時間的上下樓軌跡U/DTrace之后,U/DTrace包含的氣壓數(shù)據(jù)在大多數(shù)情況下并不能包含整個樓層,為獲得大樓所有樓層的氣壓數(shù)據(jù),將用戶的U/DTrace映射到同一時間戳,從U/DTrace中提取每個樓層的氣壓值,因此定義新的樓層軌跡FTrace,來獲取每個樓層的氣壓信息:
FTrace={(t,b),d1,d2,…,di,…,dk-1} 公式3
其中(t,b)為參考點(diǎn)的時間和氣壓,參考點(diǎn)為用戶最底層,即氣壓值最高的點(diǎn);di表示相鄰樓層的氣壓差值;
其次,對樓層軌跡進(jìn)行基于時間維度的校準(zhǔn),將兩條樓層軌跡FTrace的時間轉(zhuǎn)換到同一時間點(diǎn),假定i和j用戶的樓層軌跡FTrace分別為FTi和FTj,以用戶i,j的氣壓軌跡BTrace中相同時間區(qū)域中某一時刻作為FTi和FTj的參考時間點(diǎn)t0,然后將FTi的參考時間點(diǎn)從(t1,b1)轉(zhuǎn)換為(t0,bm-d2-d1),F(xiàn)Tj的參考時間點(diǎn)從(t1,b1)轉(zhuǎn)換為(t0,bn-d6-d5);其中(t1,b1)為FTi和FTj的樓層軌跡的參考時間點(diǎn);BTrace={IMEI,B1,B2,….,Bn},其中IMEI為P手機(jī)的唯一標(biāo)識碼,Bn表示n時刻的氣壓。
最后對氣壓軌跡進(jìn)行基于時間維度的校準(zhǔn),具體:
將所有的FTrace參照點(diǎn)的氣壓轉(zhuǎn)換為同一時刻下,校準(zhǔn)氣壓由時間波動引起的誤差,為后續(xù)的氣壓的層次聚類做準(zhǔn)備;假定FTrace的集合為C,存放結(jié)果的集合R,所有FTrace映射到同一時刻的步驟:
①基于時間的交集找出C中最大子集C1,然后將C1存入R中并從C中移除;
②然后選擇時間交集中的某一時刻,將C1中的FTrace都映射到該參考點(diǎn);通過T1時刻,將FTrace集合C中的元素轉(zhuǎn)換為T1時刻的FTrace;
③重復(fù)上述步驟①和②,直到C為空集;
④從R中選擇最大的兩個子集R1,R2,同樣的將R1,R2轉(zhuǎn)換為同一時刻的FTrace,合并R1和R2;
⑤重復(fù)步驟④,直到R只包含一個元素;
所述的不同設(shè)備之間的WiFi的RSS向量的校準(zhǔn),具體的:
由于室內(nèi)環(huán)境的復(fù)雜性以及WiFi的多徑效應(yīng),這里對WiFi的RSS向量的校準(zhǔn)很難采用前面氣壓校準(zhǔn)的方式來進(jìn)行;通過對一組RSS向量相似度的聚類分析而非單個AP的RSS值分析,在不校準(zhǔn)不同手機(jī)之間的RSS偏差的情況下達(dá)到令人滿意的定位精度。
所述的步驟4具體實(shí)施過程如下:
4-1.基于氣壓的層次聚類,具體是:
在氣壓基于時間維度校準(zhǔn)完畢后,對氣壓的數(shù)據(jù)采用合并模式的層次聚類算法,采用歐式距離作為相似度度量方法,以獲得總樓層數(shù)K和每一層的氣壓值;
4-2.基于WiFi的RSS向量的K-Means聚類,具體是:
將4-1中得到的總樓層數(shù)k和每一層的氣壓值作為K-Means聚類的類別數(shù)和初始聚類中心,對WiFi的RSS向量進(jìn)行K-Means聚類,直到聚類中心不在移動時,就能夠得到最終樓層的指紋圖譜數(shù)據(jù)庫。
所述的步驟5具體實(shí)施過程如下:
5-1.通過4-2得到最終樓層的指紋圖譜數(shù)據(jù)庫,每位用戶都可以獲知自己目前所處樓層數(shù),即使用戶的手機(jī)沒有內(nèi)置氣壓傳感器;用戶只需要將手機(jī)唯一標(biāo)識碼IMEI,采集的附近AP的RSS向量上傳到BarFi客戶端的云服務(wù)平臺;云服務(wù)平臺能夠在K-Means聚類方法后獲得的指紋圖譜數(shù)據(jù)庫中匹配該用戶的RSS向量,然后得到與其最近的中心點(diǎn),并將該中心點(diǎn)的樓層數(shù)返回給用戶;
所述的中心點(diǎn)是指K-Means聚類后的每一層的聚類中心。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果如下:
基于氣壓計(jì)和WiFi的混合樓層定位算法通過兩種聚類方法解決樓層定位問題。分別為氣壓的層次聚類分析和WiFi的RSS向量的K-Means聚類。
基于氣壓計(jì)和WiFi的混合樓層定位算法以眾包的方式采集數(shù)據(jù)避免費(fèi)時費(fèi)力的現(xiàn)場勘探,也無需預(yù)知樓層和WiFi的相關(guān)信息。
基于氣壓計(jì)和WiFi的混合樓層定位算法對于設(shè)備要求低,僅需部分手機(jī)內(nèi)置氣壓傳感器。而目前智能手機(jī)的現(xiàn)狀也如此,絕大部分配備WiFi芯片,部分手機(jī)內(nèi)置氣壓傳感器。
在真實(shí)環(huán)境中基于Android手機(jī)實(shí)現(xiàn)了BarFi系統(tǒng),該系統(tǒng)獲得了令人滿意的定位準(zhǔn)確度,僅以占總數(shù)12%的氣壓數(shù)據(jù),BarFi定位準(zhǔn)確度達(dá)到了96.3%。
附圖說明
圖1為U/DTrace轉(zhuǎn)換為FTrace的過程圖。
圖2為兩條FTrace轉(zhuǎn)換為同一參考點(diǎn)原理圖。
圖3為所有的FTrace映射到同一時刻的原理圖。
圖4為本發(fā)明流程圖;
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施方式僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
如圖4所示,一種利用氣壓計(jì)和WiFi混合的樓層定位方法,具體步驟如下:
步驟1、以眾包方式采集整棟大樓內(nèi)所有用戶的數(shù)據(jù),數(shù)據(jù)主要包括用戶所在位置的RSS向量和氣壓值(如果手機(jī)內(nèi)置氣壓傳感器)。
步驟2、云服務(wù)平臺對所有用戶上傳數(shù)據(jù)進(jìn)行預(yù)處理。
步驟3、云服務(wù)平臺對預(yù)處理后的數(shù)據(jù)進(jìn)行校準(zhǔn),得到標(biāo)準(zhǔn)化的數(shù)據(jù)。
步驟4、對校準(zhǔn)后的數(shù)據(jù)進(jìn)行數(shù)據(jù)分析聚類,獲得樓層的Baro-RSS指紋圖譜。
步驟5、用戶的定位。
所述的步驟1具體實(shí)施過程如下:
1-1.用戶在室內(nèi)活動時,通過用戶手機(jī)中BarFi客戶端以一定頻率采集附近AP的RSS向量,如果用戶手機(jī)配備氣壓傳感器,則同時采集氣壓值。數(shù)據(jù)的采集以后臺形式運(yùn)行,絲毫不會打擾到用戶。
所述的BarFi客戶端就是用于實(shí)現(xiàn)定位的app,需提前安裝在手機(jī)中。
1-2.步驟1-1采集的RSS向量是一種混合的RSS-氣壓(下文簡稱RSS-Baro)的指紋,BarFi客戶端會將采集時間和當(dāng)前手機(jī)唯一標(biāo)識碼IMEI也一并記錄到該指紋中。假設(shè)一個采樣點(diǎn)附近里有n個路由器,則每個采樣點(diǎn)的RSS-Baro指紋用以下向量表示:
FP={Time,IMEI,Baro,(RSS1,RSS2,RSS3,…,RSSn)}
其中,Time表示當(dāng)前指紋的采樣時間;IMEI表示當(dāng)前指紋是由哪部手機(jī)采樣的,用于后續(xù)氣壓聚類;Baro表示該采樣點(diǎn)采樣時的氣壓值;RSS1,RSS2,…,RSSn表示附近AP的信息,其中包括附近AP的SSID(AP名稱)BSSID(AP的MAC地址,即路由器的唯一標(biāo)識碼)和信號強(qiáng)度RSS值。
所述的步驟2具體實(shí)施過程如下:
2-1.通過眾包方式采集來的數(shù)據(jù)量較大,需要對該數(shù)據(jù)進(jìn)行預(yù)處理,降低數(shù)據(jù)的冗余度和復(fù)雜性,其中預(yù)處理具體如下:
2-1-1.數(shù)據(jù)合并
由于BarFi客戶端采樣的時間為200毫秒,因此將同一部手機(jī)連續(xù)的5條數(shù)據(jù),即1s內(nèi)的數(shù)據(jù)進(jìn)行數(shù)據(jù)合并為一條,合并的方法為氣壓和WiFi的RSS向量都取均值,從而達(dá)到降低數(shù)據(jù)量的需求,同時也降低傳感器偏移對BarFi造成影響。在合并完數(shù)據(jù)之后,得出一組Baro-RSS的指紋圖譜向量FPS={FPi,I=1,2,...,n}。
2-1-2.數(shù)據(jù)標(biāo)準(zhǔn)化
由于每個采樣點(diǎn)附近的AP都各有不同,會導(dǎo)致BarFi在對RSS向量進(jìn)行聚類時沒有統(tǒng)一的維度。如果RSS向量不進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化,會增加BarFi樓層定位算法的時間復(fù)雜度。具體的:
記第i組RSS向量為Vi,總共有n組向量:
在標(biāo)準(zhǔn)化的過程中需對所有向量中的分量求并集,即對Vi到Vn求并集Union,按照并集Union將Vi映射到Fi,如下面公式所示。對于該采樣點(diǎn)檢測不到的AP的值設(shè)為經(jīng)驗(yàn)最小值-110,最終形成標(biāo)準(zhǔn)化RSS向量Fi。
所述的步驟3具體實(shí)施過程如下:
3-1.云服務(wù)平臺對步驟2-1標(biāo)準(zhǔn)化處理后的數(shù)據(jù)進(jìn)行校準(zhǔn)。由于每部手機(jī)采用的無線芯片和氣壓傳感器各有不同,會導(dǎo)致采集的RSS向量和氣壓值出現(xiàn)偏差,所以需要校準(zhǔn)不同設(shè)備之間的偏差。將數(shù)據(jù)校準(zhǔn)分為兩部分,不同設(shè)備之間的氣壓值的校準(zhǔn)和不同設(shè)備之間的WiFi的RSS向量校準(zhǔn)。
3-2.不同設(shè)備之間的氣壓值的校準(zhǔn),具體的:
3-2-1.上下樓活動的檢測
定義數(shù)據(jù)結(jié)構(gòu)Activity={ts:startBaro,te:endBaro},來記錄用戶上下樓活動,其中ts表示上下樓開始的時間,startBaro為開始時間用戶所在樓層的氣壓值,te表示上下樓結(jié)束的時間,endBaro為結(jié)束時間用戶所在樓層的氣壓。同時也定義U/DTrace(Up/Down Trace)來記錄用戶上下樓軌跡,假設(shè)用戶有m次上下樓活動,即Activity1、Activity2、…、Activitym,那么該用戶的上下樓軌跡U/DTrace={IMEI:Activity1,Activity2,…,Activitym},其中IMEI為用戶的唯一標(biāo)識碼。
3-2-2.基于時間維度的氣壓校準(zhǔn)
在獲得不同用戶在不同時間的上下樓軌跡U/DTrace之后,U/DTrace包含的氣壓數(shù)據(jù)在大多數(shù)情況下并不能包含整個樓層,為獲得大樓所有樓層的氣壓數(shù)據(jù),將用戶的U/DTrace映射到同一時間戳,從U/DTrace中提取每個樓層的氣壓值,因此定義新的樓層軌跡FTrace:
FTrace={(t,b),d1,d2,…,di,…,dk-1}
其中(t,b)為參考點(diǎn)的時間和氣壓,參考點(diǎn)為用戶最底層,即氣壓值最高的點(diǎn);di表示相鄰樓層的氣壓差值。
因?yàn)橄噜弮蓪訕侵g的氣壓差值恒定,我們可以將U/DTrace轉(zhuǎn)換為FTrace,如圖1所示,圖中b3,b4是同一層樓不同時刻的氣壓值,可以得到b3-b2=b4-b5+d3,我們可以推測出b5是比b2高的樓層氣壓值,氣壓差為d3,即用戶在t5時刻所處樓層比t2時刻高,樓層氣壓差為d3,我們通過這種方式將U/DTrace轉(zhuǎn)換為FTrace。
在得到一組FTrace后,我們需要合并所有FTrace以獲取某個時刻整個樓層的氣壓值。由于氣壓在較長時間后會出現(xiàn)變化,首先我們將兩條FTrace中參照點(diǎn)的氣壓轉(zhuǎn)換為同一時刻下,如圖2所示,假定i和j用戶的FTrace分別為FTi和FTj,我們以用戶i,j的BTrace中相同時間區(qū)域中某一時刻作為FTi和FTj參考時間點(diǎn)t0,然后將FTi的參考點(diǎn)從(t1,b1)轉(zhuǎn)換為(t0,bm-d2-d1),F(xiàn)Ti的參考點(diǎn)從(t1,b1)轉(zhuǎn)換為(t0,bn-d6-d5)。
參照上述將兩條FTrace中參照點(diǎn)的氣壓轉(zhuǎn)換為同一時刻下的方法,將所有的FTrace參照點(diǎn)的氣壓轉(zhuǎn)換為同一時刻下,校準(zhǔn)氣壓由時間波動引起的誤差,為后續(xù)的氣壓的層次聚類做準(zhǔn)備。假定FTrace的集合為C,存放結(jié)果的集合R,然后結(jié)合圖3說明所有FTrace映射到同一時刻的步驟:
①基于時間的交集找出C中最大子集C1,然后將C1存入R中并從C中移除。如圖1中{C,D,E}為最大子集。
②然后選擇時間交集中的某一時刻,將C1中的FTrace都映射到該參考點(diǎn)。通過T1時刻,將C、D、E的FTrace轉(zhuǎn)換為T1時刻的FTrace。
③重復(fù)上述步驟,直到C為空集。
④從R中選擇最大的兩個子集R1,R2,同樣的將R1,R2轉(zhuǎn)換為同一時刻的FTrace,合并R1和R2。如圖3中{C,D,E}和{A,B}為最大的兩個子集,T3為兩個集合選中的參考點(diǎn),將兩集合內(nèi)所有FTrace都映射到T3時刻。
⑤重復(fù)步驟4,直到R只包含一個元素。
3-3.不同設(shè)備之間的WiFi的RSS向量的校準(zhǔn),具體的:
由于室內(nèi)環(huán)境的復(fù)雜性以及WiFi的多徑效應(yīng),這里對WiFi的RSS向量的校準(zhǔn)很難采用前面氣壓校準(zhǔn)的方式來進(jìn)行。但是,我們通過實(shí)驗(yàn)可以觀察到不同手機(jī)間的信號波動并不是很大,而且我們基于氣壓計(jì)和WiFi的混合樓層定位算法針對于一組RSS向量相似度的聚類分析而非單個AP的RSS值,所以我們的算法可以在不校準(zhǔn)不同手機(jī)之間的RSS偏差的情況下達(dá)到令人滿意的定位精度。
所述的步驟4具體實(shí)施過程如下:
4-1.基于氣壓的層次聚類,具體是:
在氣壓基于時間維度校準(zhǔn)完畢后,對氣壓的數(shù)據(jù)采用合并模式的層次聚類算法,采用歐式距離作為相似度度量方法,以獲得總樓層數(shù)K和每一層的氣壓值。
4-2.基于WiFi的RSS向量的K-Means聚類,具體是:
將4-1中得到的總樓層數(shù)k和每一層的氣壓值作為K-Means聚類的類別數(shù)和初始聚類中心,對WiFi的RSS向量進(jìn)行K-Means聚類,直到聚類中心不在移動時,就可以得到最終樓層的指紋圖譜數(shù)據(jù)庫。
所述的步驟5具體實(shí)施過程如下:
5-1.通過4-2得到最終樓層的指紋圖譜數(shù)據(jù)庫,每位用戶都可以獲知自己目前所處樓層數(shù),即使用戶的手機(jī)沒有內(nèi)置氣壓傳感器。用戶只需要將手機(jī)唯一標(biāo)識碼IMEI,采集的附近AP的RSS向量上傳到BarFi客戶端的云服務(wù)平臺。云服務(wù)平臺能夠在K-Means聚類方法后獲得的指紋圖譜數(shù)據(jù)庫中匹配該用戶的RSS向量,然后得到與其最近的中心點(diǎn),并將該中心點(diǎn)的樓層數(shù)返回給用戶。
所述的中心點(diǎn)是指K-Means聚類后的每一層的聚類中心。