本申請涉及室內(nèi)定位技術(shù)領(lǐng)域,尤其涉及一種更新指紋庫的方法及裝置。
背景技術(shù):
指紋定位是目前比較常見的一種室內(nèi)定位技術(shù),利用指紋庫中保存的各指紋點(diǎn)的定位信息(如wifi信息、藍(lán)牙信息、地磁信息等)實(shí)現(xiàn)對移動(dòng)設(shè)備的室內(nèi)定位。該指紋定位依賴于指紋庫中穩(wěn)定的各指紋點(diǎn)的定位信息。而一般商場等室內(nèi)環(huán)境由于各種原因會(huì)導(dǎo)致定位信息變化,尤其是wifi信息變化較快wifi信息的變化,例如,商場中某一指紋點(diǎn)對應(yīng)的位置變換了商家從而導(dǎo)致該指紋點(diǎn)對應(yīng)的wifi信息發(fā)生變化,或者由于商家更換了路由器從而導(dǎo)致該指紋點(diǎn)對應(yīng)的wifi信息發(fā)生變化等。若不及時(shí)更新指紋庫中指紋點(diǎn)的定位信息將會(huì)導(dǎo)致根據(jù)該指紋庫對移動(dòng)設(shè)備進(jìn)行室內(nèi)定位失敗或錯(cuò)誤的問題。
目前,對于如何更新指紋庫,還沒有提出一種能夠?qū)崟r(shí)準(zhǔn)確的方式,因此如何實(shí)現(xiàn)實(shí)時(shí)準(zhǔn)確的更新指紋庫則成為行業(yè)亟待解決問題。
技術(shù)實(shí)現(xiàn)要素:
本申請解決的技術(shù)問題之一是提供一種更新指紋庫的方法及裝置,實(shí)現(xiàn)實(shí)時(shí)、準(zhǔn)確的更新指紋庫。
根據(jù)本申請一方面的一個(gè)實(shí)施例,提供了一種更新指紋庫的方法,包括:
獲取移動(dòng)設(shè)備在各個(gè)步點(diǎn)的掃描信息,所述掃描信息包括:步點(diǎn)掃描時(shí)間、方向及在步點(diǎn)掃描到的定位信息;
根據(jù)各步點(diǎn)的掃描時(shí)間及方向?qū)⑺霾近c(diǎn)連接成所述移動(dòng)設(shè)備的移動(dòng) 軌跡;
對所述移動(dòng)軌跡進(jìn)行分割及過濾,得到掃描軌跡;
從預(yù)置的指紋庫中獲取與所述掃描軌跡上的步點(diǎn)匹配的指紋點(diǎn),根據(jù)獲取的指紋點(diǎn)生成與所述掃描軌跡匹配的匹配軌跡;
利用所述掃描軌跡上的步點(diǎn)對應(yīng)的定位信息更新與該掃描軌跡匹配的所述匹配軌跡上相應(yīng)指紋點(diǎn)的定位信息。
根據(jù)本申請另一方面的一個(gè)實(shí)施例,提供了一種更新指紋庫的裝置,包括:
獲取單元,用于獲取移動(dòng)設(shè)備在各個(gè)步點(diǎn)的掃描信息,所述掃描信息包括:步點(diǎn)掃描時(shí)間、方向及在步點(diǎn)掃描到的定位信息;
移動(dòng)軌跡確定單元,用于根據(jù)各步點(diǎn)的掃描時(shí)間及方向?qū)⑺霾近c(diǎn)連接成所述移動(dòng)設(shè)備的移動(dòng)軌跡;
分割過濾單元,用于對所述移動(dòng)軌跡進(jìn)行分割及過濾,得到掃描軌跡;
匹配單元,用于從預(yù)置的指紋庫中獲取與所述掃描軌跡上的步點(diǎn)匹配的指紋點(diǎn),根據(jù)獲取的指紋點(diǎn)生成與所述掃描軌跡匹配的匹配軌跡;
更新單元,用于利用所述掃描軌跡上的步點(diǎn)對應(yīng)的定位信息更新與該掃描軌跡匹配的所述匹配軌跡上相應(yīng)指紋點(diǎn)的定位信息。
本申請實(shí)施例,在獲取到移動(dòng)設(shè)備在各個(gè)步點(diǎn)的掃描信息之后,并不是孤立的直接根據(jù)各個(gè)步點(diǎn)的定位信息分別來更新指紋庫中與各步點(diǎn)匹配的指紋點(diǎn)的定位信息,因?yàn)槟承┎近c(diǎn)可能由于一些環(huán)境影響使得該步點(diǎn)的定位信息準(zhǔn)確性較差,若直接根據(jù)這些步點(diǎn)的定位信息來更新指紋庫中相應(yīng)指紋點(diǎn)的定位信息是不準(zhǔn)確的;而是首先根據(jù)各步點(diǎn)的掃描時(shí)間及方向?qū)⒏鞑近c(diǎn)連接成移動(dòng)設(shè)備的移動(dòng)軌跡,并將該移動(dòng)軌跡分割過濾得到掃描軌跡,再根據(jù)掃描軌跡上的步點(diǎn)得到指紋庫中與步點(diǎn)匹配的指紋點(diǎn),并根據(jù)與各步點(diǎn)匹配的指紋點(diǎn)生成與掃描軌跡匹配的匹配軌跡,再利用掃描軌跡上的步點(diǎn)的定位信息更新指紋庫中與步點(diǎn)相匹配的指紋點(diǎn)的定位信息;即本申請技術(shù)方案考慮了相鄰步點(diǎn)之間的前后關(guān)聯(lián)關(guān)系,并且只有將掃描軌跡上所有步點(diǎn)作為整體來從指紋庫中找到各步點(diǎn)對應(yīng)的指紋點(diǎn)構(gòu)成的軌跡匹配時(shí),才會(huì)根據(jù)該掃描軌跡上的步點(diǎn)的定 位信息更新匹配軌跡上相應(yīng)指紋點(diǎn)的定位信息,因?yàn)閽呙柢壽E作為整體能夠從指紋庫中找到與其匹配的匹配軌跡說明掃描軌跡上的步點(diǎn)的定位信息是較為準(zhǔn)確的,從而使得根據(jù)掃描軌跡上的步點(diǎn)的定位信息更新指紋庫更準(zhǔn)確,解決了單步點(diǎn)確定對應(yīng)指紋點(diǎn)所存在的不準(zhǔn)確的問題,從而提高了根據(jù)步點(diǎn)的定位信息更新指紋點(diǎn)的定位信息的準(zhǔn)確性。
本領(lǐng)域普通技術(shù)人員將了解,雖然下面的詳細(xì)說明將參考圖示實(shí)施例、附圖進(jìn)行,但本申請并不僅限于這些實(shí)施例。而是,本申請的范圍是廣泛的,且意在僅通過后附的權(quán)利要求限定本申請的范圍。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實(shí)施例所作的詳細(xì)描述,本申請的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
圖1是根據(jù)本申請一個(gè)實(shí)施例的更新指紋庫的方法的流程圖。
圖2是根據(jù)本申請一個(gè)實(shí)施例的改變角度示意圖。
圖3是根據(jù)本申請一個(gè)實(shí)施例的進(jìn)一步分割折線的示意圖。
圖4是根據(jù)本申請又一個(gè)實(shí)施例的進(jìn)一步分割折線的示意圖。
圖5是根據(jù)本申請一個(gè)實(shí)施例的生成匹配軌跡的方法的流程圖。
圖6是根據(jù)本申請一個(gè)實(shí)施例的從預(yù)置指紋庫中獲取與掃描軌跡匹配的候選匹配軌跡的示意圖。
圖7是根據(jù)本申請一個(gè)實(shí)施例的更新指紋庫的裝置的結(jié)構(gòu)示意圖。
本領(lǐng)域普通技術(shù)人員將了解,雖然下面的詳細(xì)說明將參考圖示實(shí)施例、附圖進(jìn)行,但本申請并不僅限于這些實(shí)施例。而是,本申請的范圍是廣泛的,且意在僅通過后附的權(quán)利要求限定本申請的范圍。
具體實(shí)施方式
在更加詳細(xì)地討論示例性實(shí)施例之前應(yīng)當(dāng)提到的是,一些示例性實(shí)施例被描述成作為流程圖描繪的處理或方法。雖然流程圖將各項(xiàng)操作描述成順序的處理,但是其中的許多操作可以被并行地、并發(fā)地或者同時(shí)實(shí)施。此外,各項(xiàng)操作的順序可以被重新安排。當(dāng)其操作完成時(shí)所述處 理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對應(yīng)于方法、函數(shù)、規(guī)程、子例程、子程序等等。
所述計(jì)算機(jī)設(shè)備包括用戶設(shè)備與網(wǎng)絡(luò)設(shè)備。其中,所述用戶設(shè)備包括但不限于電腦、智能手機(jī)、pda等;所述網(wǎng)絡(luò)設(shè)備包括但不限于單個(gè)網(wǎng)絡(luò)服務(wù)器、多個(gè)網(wǎng)絡(luò)服務(wù)器組成的服務(wù)器組或基于云計(jì)算(cloudcomputing)的由大量計(jì)算機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成的云,其中,云計(jì)算是分布式計(jì)算的一種,由一群松散耦合的計(jì)算機(jī)集組成的一個(gè)超級虛擬計(jì)算機(jī)。其中,所述計(jì)算機(jī)設(shè)備可單獨(dú)運(yùn)行來實(shí)現(xiàn)本申請,也可接入網(wǎng)絡(luò)并通過與網(wǎng)絡(luò)中的其他計(jì)算機(jī)設(shè)備的交互操作來實(shí)現(xiàn)本申請。其中,所述計(jì)算機(jī)設(shè)備所處的網(wǎng)絡(luò)包括但不限于互聯(lián)網(wǎng)、廣域網(wǎng)、城域網(wǎng)、局域網(wǎng)、vpn網(wǎng)絡(luò)等。
需要說明的是,所述用戶設(shè)備、網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)等僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的計(jì)算機(jī)設(shè)備或網(wǎng)絡(luò)如可適用于本申請,也應(yīng)包含在本申請保護(hù)范圍以內(nèi),并以引用方式包含于此。
后面所討論的方法(其中一些通過流程圖示出)可以通過硬件、軟件、固件、中間件、微代碼、硬件描述語言或者其任意組合來實(shí)施。當(dāng)用軟件、固件、中間件或微代碼來實(shí)施時(shí),用以實(shí)施必要任務(wù)的程序代碼或代碼段可以被存儲(chǔ)在機(jī)器或計(jì)算機(jī)可讀介質(zhì)(比如存儲(chǔ)介質(zhì))中。(一個(gè)或多個(gè))處理器可以實(shí)施必要的任務(wù)。
這里所公開的具體結(jié)構(gòu)和功能細(xì)節(jié)僅僅是代表性的,并且是用于描述本申請的示例性實(shí)施例的目的。但是本申請可以通過許多替換形式來具體實(shí)現(xiàn),并且不應(yīng)當(dāng)被解釋成僅僅受限于這里所闡述的實(shí)施例。
應(yīng)當(dāng)理解的是,雖然在這里可能使用了術(shù)語“第一”、“第二”等等來描述各個(gè)單元,但是這些單元不應(yīng)當(dāng)受這些術(shù)語限制。使用這些術(shù)語僅僅是為了將一個(gè)單元與另一個(gè)單元進(jìn)行區(qū)分。舉例來說,在不背離示例性實(shí)施例的范圍的情況下,第一單元可以被稱為第二單元,并且類似地第二單元可以被稱為第一單元。這里所使用的術(shù)語“和/或”包括其中一個(gè)或更多所列出的相關(guān)聯(lián)項(xiàng)目的任意和所有組合。
應(yīng)當(dāng)理解的是,當(dāng)一個(gè)單元被稱為“連接”或“耦合”到另一單元 時(shí),其可以直接連接或耦合到所述另一單元,或者可以存在中間單元。與此相對,當(dāng)一個(gè)單元被稱為“直接連接”或“直接耦合”到另一單元時(shí),則不存在中間單元。應(yīng)當(dāng)按照類似的方式來解釋被用于描述單元之間的關(guān)系的其他詞語(例如“處于...之間”相比于“直接處于...之間”,“與...鄰近”相比于“與...直接鄰近”等等)。
這里所使用的術(shù)語僅僅是為了描述具體實(shí)施例而不意圖限制示例性實(shí)施例。除非上下文明確地另有所指,否則這里所使用的單數(shù)形式“一個(gè)”、“一項(xiàng)”還意圖包括復(fù)數(shù)。還應(yīng)當(dāng)理解的是,這里所使用的術(shù)語“包括”和/或“包含”規(guī)定所陳述的特征、整數(shù)、步驟、操作、單元和/或組件的存在,而不排除存在或添加一個(gè)或更多其他特征、整數(shù)、步驟、操作、單元、組件和/或其組合。
還應(yīng)當(dāng)提到的是,在一些替換實(shí)現(xiàn)方式中,所提到的功能/動(dòng)作可以按照不同于附圖中標(biāo)示的順序發(fā)生。舉例來說,取決于所涉及的功能/動(dòng)作,相繼示出的兩幅圖實(shí)際上可以基本上同時(shí)執(zhí)行或者有時(shí)可以按照相反的順序來執(zhí)行。
指紋庫中保存有指紋點(diǎn)位置以及指紋點(diǎn)位置對應(yīng)的定位信息的關(guān)聯(lián)關(guān)系。指紋庫可以包括wifi指紋庫、藍(lán)牙指紋庫、基站指紋庫、地磁指紋庫等,例如:wifi指紋庫中存儲(chǔ)有指紋點(diǎn)位置以及指紋點(diǎn)位置對應(yīng)的wifi信息的關(guān)聯(lián)關(guān)系;藍(lán)牙指紋庫中存儲(chǔ)有指紋點(diǎn)位置以及指紋點(diǎn)位置對應(yīng)的藍(lán)牙信息的關(guān)聯(lián)關(guān)系。指紋庫還可以是保存有指紋點(diǎn)位置以及指紋點(diǎn)位置對應(yīng)的以下至少一種定位信息:wifi信息、藍(lán)牙信息、基站信息、地磁信息等。
下面結(jié)合附圖對本申請的技術(shù)方案作進(jìn)一步詳細(xì)描述。
圖1是根據(jù)本申請一個(gè)實(shí)施例的更新指紋庫的方法的流程圖,該方法主要包括如下步驟:
s110、獲取移動(dòng)設(shè)備在各個(gè)步點(diǎn)的掃描信息,所述掃描信息包括:步點(diǎn)掃描時(shí)間、方向及在步點(diǎn)掃描到的定位信息;
s120、根據(jù)各步點(diǎn)的掃描時(shí)間及方向?qū)⑺霾近c(diǎn)連接成所述移動(dòng)設(shè)備的移動(dòng)軌跡;
s130、對所述移動(dòng)軌跡進(jìn)行分割及過濾,得到掃描軌跡;
s140、從預(yù)置的指紋庫中獲取與所述掃描軌跡上的步點(diǎn)匹配的指紋點(diǎn),根據(jù)獲取的指紋點(diǎn)生成與所述掃描軌跡匹配的匹配軌跡;
s150、利用所述掃描軌跡上的步點(diǎn)對應(yīng)的定位信息更新與該掃描軌跡匹配的所述匹配軌跡上相應(yīng)指紋點(diǎn)的定位信息。
下面對上述各步驟作進(jìn)一步詳細(xì)介紹。
步驟s110所述的步點(diǎn)可以是預(yù)置的執(zhí)行掃描定位信息的位置點(diǎn),也可以是移動(dòng)設(shè)備在預(yù)置時(shí)間范圍內(nèi)在移動(dòng)過程中每隔一個(gè)預(yù)置的時(shí)間間隔進(jìn)行一次定位信息掃描的位置點(diǎn)。移動(dòng)設(shè)備在各個(gè)步點(diǎn)進(jìn)行一次定位信息掃描,將掃描信息按照掃描時(shí)間的先后順序依次存儲(chǔ)。
移動(dòng)設(shè)備在各個(gè)步點(diǎn)的掃描信息包括:步點(diǎn)掃描時(shí)間、方向及在步點(diǎn)掃描到的定位信息,步點(diǎn)掃描時(shí)間是指移動(dòng)設(shè)備在步點(diǎn)進(jìn)行定位信息掃描時(shí)的系統(tǒng)時(shí)間,方向是指做定位信息掃描時(shí)移動(dòng)設(shè)備內(nèi)置傳感器指示的移動(dòng)方向。
優(yōu)選地,為進(jìn)一步提高移動(dòng)軌跡的準(zhǔn)確性,對于不同樓層,將同一樓層的步點(diǎn)構(gòu)成一條移動(dòng)設(shè)備在該樓層的移動(dòng)軌跡。因此,本申請實(shí)施例還可在前述s110和s120之間執(zhí)行以下步驟:根據(jù)各步點(diǎn)的定位信息確定各步點(diǎn)對應(yīng)的樓層信息;此時(shí)s120中具體為:將位于同一樓層的步點(diǎn)按照掃描時(shí)間及方向連接成所述移動(dòng)設(shè)備的移動(dòng)軌跡。即s120得到至少一條移動(dòng)軌跡,一條移動(dòng)軌跡對應(yīng)一個(gè)樓層。本申請實(shí)施例中預(yù)先存儲(chǔ)有各個(gè)樓層對應(yīng)的定位信息,例如:假設(shè)定位信息為wifi信息,則預(yù)先存儲(chǔ)有各樓層對應(yīng)的ap名稱或ap的mac信息;假設(shè)定位信息為藍(lán)牙信息,則原先存儲(chǔ)有各個(gè)樓層對應(yīng)的藍(lán)牙設(shè)備的mac信息。
所述wifi信息包括ap名稱,則根據(jù)定位信息確定各步點(diǎn)對應(yīng)的樓層信息可包括如下操作:
首先,將步點(diǎn)對應(yīng)的定位信息中的ap名稱分別與預(yù)置的每個(gè)樓層包含的ap名稱比對。
之后,將包含的ap名稱與所述步點(diǎn)對應(yīng)的ap名稱相同數(shù)量最多的樓層確定為所述步點(diǎn)所在的樓層。
例如,假設(shè)移動(dòng)設(shè)備進(jìn)行定位信息掃描的建筑物包括兩個(gè)樓層,其中某一個(gè)步點(diǎn)對應(yīng)的ap名稱包括:ap2和ap4,假設(shè)一層包含的ap名稱為ap1、ap2、ap3、ap4;二層包含的ap名稱包括:ap5、ap6、ap7。通過將該步點(diǎn)對應(yīng)的ap名稱分別與兩個(gè)樓層的ap比對,發(fā)現(xiàn)其與一層所包含的ap相同的數(shù)量為2個(gè),與二層所包含的ap相同的數(shù)量為0,則可確定該步點(diǎn)對應(yīng)的樓層為一層。按照此方法可確定所有步點(diǎn)所在的樓層,同時(shí)也就確定了每個(gè)樓層所包含的步點(diǎn)。
步驟s120中在將各步點(diǎn)連接成移動(dòng)軌跡時(shí),根據(jù)各步點(diǎn)的掃描時(shí)間可確定掃描各步點(diǎn)的前后順序,根據(jù)各步點(diǎn)的方向可確定各步點(diǎn)之間的相對位置關(guān)系,根據(jù)預(yù)置的步長將所述多個(gè)步點(diǎn)連接成所述移動(dòng)設(shè)備的移動(dòng)軌跡。其中所述相鄰步點(diǎn)之間的步長可以是預(yù)置的一個(gè)固定長度值,即所有相鄰步點(diǎn)之間的長度一致;相鄰步點(diǎn)之間的步長還可以是根據(jù)該相鄰步點(diǎn)的掃描時(shí)間的時(shí)間間隔和預(yù)置的移動(dòng)設(shè)備移動(dòng)速度的乘積,即各相鄰步點(diǎn)之間的長度可以一致也可以不一致。
若移動(dòng)軌跡過長,則很難獲得與該移動(dòng)軌跡匹配的匹配軌跡,因此,通過步驟s130可將移動(dòng)軌跡分割為多段分割軌跡,以便與指紋庫中的軌跡匹配。
本申請實(shí)施例提供的對所述移動(dòng)軌跡進(jìn)行分割及過濾,得到掃描軌跡的方法包括如下子步驟:
子步驟1301、確定所述移動(dòng)軌跡的初步分割點(diǎn);
其中,確定移動(dòng)軌跡的初步分割點(diǎn)的一種實(shí)施例包括:
步驟a1、依次計(jì)算移動(dòng)軌跡上相鄰兩個(gè)步點(diǎn)之間的時(shí)間間隔;
步驟a2、將時(shí)間間隔大于等于預(yù)置時(shí)長閾值的相鄰步點(diǎn)中的前一個(gè)步點(diǎn)作為初步分割點(diǎn);和/或
步驟a3、依次判斷移動(dòng)軌跡上的步點(diǎn)是否為往返點(diǎn),將是往返點(diǎn)的步點(diǎn)作為初步分割點(diǎn)。
其中步驟a2和步驟a3的先后執(zhí)行順序沒有嚴(yán)格要求。
其中步驟a2中,若時(shí)間間隔大于等于預(yù)置時(shí)長閾值的相鄰步點(diǎn)中的前一個(gè)步點(diǎn)是移動(dòng)軌跡上的首點(diǎn),則對該相鄰步點(diǎn)不做前述的將時(shí)間間隔大于 等于預(yù)置時(shí)長閾值的相鄰步點(diǎn)中的前一個(gè)步點(diǎn)作為初步分割點(diǎn)的步驟。
前述步驟a2可以是從移動(dòng)軌跡的首步點(diǎn)開始依次往后進(jìn)行初步分割點(diǎn)的判斷,也可以是從移動(dòng)軌跡的尾步點(diǎn)開始依次往前進(jìn)行初步分割點(diǎn)的判斷,本申請不做嚴(yán)格限定。
由于步驟s110中可以獲取各步點(diǎn)的掃描時(shí)間,從而可確定移動(dòng)軌跡上相鄰兩個(gè)步點(diǎn)之間的時(shí)間間隔,如果相鄰兩個(gè)步點(diǎn)之間的時(shí)間間隔大于等于預(yù)置時(shí)長閾值,例如,達(dá)到3秒,則有可能移動(dòng)設(shè)備在兩個(gè)步點(diǎn)間存在信號中斷情況,該相鄰的兩個(gè)步點(diǎn)為非連續(xù)的點(diǎn),因此將該兩相鄰步點(diǎn)中的前一步點(diǎn)作為初步分割點(diǎn)。
本申請實(shí)施例將移動(dòng)方向發(fā)生改變,且改變角度大于等于預(yù)設(shè)第一角度閾值的點(diǎn)稱為往返點(diǎn)。所述改變角度可如圖2中所示,當(dāng)前步點(diǎn)為c,與該步點(diǎn)c相鄰的前兩個(gè)步點(diǎn)為a和b,圖2中線段ab及bc之間的箭頭表示移動(dòng)方向,則該步點(diǎn)c的移動(dòng)方向?yàn)椴近c(diǎn)b指向與步點(diǎn)c的方向,改變角度為∠n。若∠n大于等于預(yù)設(shè)第一角度閾值,則確定該步點(diǎn)c為往返點(diǎn)。例如,第一角度閾值為120°,若∠n大于等于120°,則步點(diǎn)c即為一個(gè)往返點(diǎn),可將該步點(diǎn)c作為一個(gè)初步分割點(diǎn)。
另外,本申請實(shí)施例將改變角度大于等于預(yù)設(shè)第二角度閾值(其中第二角度閾值小于第一角度閾值),而小于所述預(yù)設(shè)第一角度閾值的步點(diǎn)視為折點(diǎn),例如,第二角度閾值為60°,第一角度閾值為120°,則若∠n大于等于60°而小于120°,則步點(diǎn)c為一個(gè)折點(diǎn)。若∠n小于60°,則認(rèn)為步點(diǎn)c與步點(diǎn)a和步點(diǎn)b在一條直線上。
子步驟1302、將所述移動(dòng)軌跡從所述初步分割點(diǎn)進(jìn)行初步分割,得到初步分割后的直線分割軌跡及折線分割軌跡。
初步分割后可能得到直線分割軌跡和/或包含至少一個(gè)折點(diǎn)的折線分割軌跡。移動(dòng)軌跡經(jīng)過初步分割得到的直線分割軌跡及折線分割軌跡的長度會(huì)更趨向于合理性,因此能夠在一定程度上提高了得到匹配軌跡的成功率。
本申請另一實(shí)施例為進(jìn)一步降低得到移動(dòng)軌跡的匹配軌跡的難度,優(yōu)選地,本申請實(shí)施例在前述子步驟對1302之后,針對初步分割后得到 的直線分割軌跡和/或折線分割軌跡做進(jìn)一步分割。
其中,針對初步分割后的折線分割軌跡進(jìn)行如下處理:
判斷折線分割軌跡包含的折點(diǎn)數(shù)量;
其中,若折線分割軌跡僅包含一個(gè)折點(diǎn),則:判斷所述折線分割軌跡在折點(diǎn)之前和之后所包含的步點(diǎn)數(shù)量是否均位于預(yù)置的數(shù)量范圍內(nèi),例如是否大于5個(gè)而小于15個(gè);若是則將該折線分割軌跡作為掃描軌跡,若否則刪除該折線分割軌跡;
若所述折線分割軌跡包含至少兩個(gè)折點(diǎn),則:將所述折線分割軌跡分割成如下掃描軌跡:包含的步點(diǎn)數(shù)量大于等于預(yù)置的第一數(shù)量閾值的直線分割軌跡,和/或僅包含一個(gè)折點(diǎn)且折點(diǎn)前后所包含的步點(diǎn)均位于預(yù)置的數(shù)量范圍內(nèi)的折線分割軌跡,其中,所述第一數(shù)量閾值例如可以為30個(gè)。
針對初步分割后的直線分割軌跡進(jìn)行如下處理:
判斷所述直線分割軌跡包含的步點(diǎn)數(shù)量是否小于預(yù)置的第一數(shù)量閾值,若是則刪除該直線分割軌跡,若否則將該直線分割軌跡作為掃描軌跡。
下面以圖3及圖4中所示的兩段折線分割軌跡的進(jìn)一步分割過程為例,介紹下針對初步分割后的、包含至少兩個(gè)折點(diǎn)的折線分割軌跡的進(jìn)一步分割過程。
圖3中所示為包含兩個(gè)折點(diǎn)的一段折線分割軌跡abcd,圖3中僅示出起點(diǎn)a,折點(diǎn)b,c,以及終點(diǎn)d,中間的步點(diǎn)未示出。對該段折線分割軌跡進(jìn)行分割的過程為:以步點(diǎn)a為起點(diǎn),該步點(diǎn)a距離相鄰的折點(diǎn)b之間包含的步點(diǎn)個(gè)數(shù)為20個(gè),由于小于第一數(shù)量閾值30個(gè),因此ab段不能作為直線分割軌跡;步點(diǎn)b距離相鄰的下一折點(diǎn)間包含的步點(diǎn)個(gè)數(shù)為10個(gè),大于第二數(shù)量閾值5個(gè),而小于第三數(shù)量閾值15個(gè),因此,此處可分割得到一折線,由于折點(diǎn)b前到起點(diǎn)a包含的步點(diǎn)個(gè)數(shù)大于第三個(gè)數(shù)閾值15,則從折點(diǎn)b向前保留15個(gè)步點(diǎn),從第15個(gè)步點(diǎn)a’處分割開。由于折線分割軌跡只能包含一個(gè)折點(diǎn),則將作為下一折點(diǎn)的步點(diǎn)c作為分割點(diǎn),從步點(diǎn)c處分割開,步點(diǎn)c與步點(diǎn)d間包含的步點(diǎn)個(gè)數(shù)為25個(gè)小于第一數(shù)量閾值30個(gè)。因此,該段移動(dòng)軌跡經(jīng)分割得到直線分割軌跡aa’,折線分割軌跡a’bc,直線分割軌跡cd。由于直線 分割軌跡aa’包含的步點(diǎn)數(shù)少于第一數(shù)量閾值,因此刪除直線分割軌跡aa’;折線a’bc僅包含一個(gè)折點(diǎn)b且折點(diǎn)b前后包含的步點(diǎn)數(shù)均位于預(yù)置的數(shù)量范圍內(nèi),因此保留折線分割軌跡a’bc;直線分割軌跡cd包含的步點(diǎn)數(shù)少于第一數(shù)量閾值,因此刪除直線分割軌跡cd。因此綜上所述將圖3所示的折現(xiàn)分割軌跡abcd進(jìn)行二次分割之后得到折線分割軌跡a’bc。
圖4中所示為一段包含3個(gè)折點(diǎn)的折線分割軌跡abcde,其中a為起點(diǎn),e為終點(diǎn),b、c、d為折點(diǎn),對該段折線分割軌跡作進(jìn)一步分割過程為:以步點(diǎn)a為起點(diǎn),步點(diǎn)a距離最近的折點(diǎn)b間包含的步點(diǎn)個(gè)數(shù)為35大于第一數(shù)量閾值30,因此將步點(diǎn)b作為分割點(diǎn),得到一條直線分割軌跡ab;步點(diǎn)b距離最近的折點(diǎn)c間包含的步點(diǎn)個(gè)數(shù)為4,小于第二數(shù)量閾值5個(gè),bc段不滿足折線條件,則將步點(diǎn)c作為一個(gè)分割點(diǎn)。步點(diǎn)c距離最近的折點(diǎn)d間包含的步點(diǎn)個(gè)數(shù)為14,大于第二個(gè)數(shù)閾值5個(gè),而小于第三個(gè)數(shù)閾值15個(gè),滿足折線條件。步點(diǎn)d距離步點(diǎn)e間包含的步點(diǎn)個(gè)數(shù)為32,大于第三數(shù)量閾值15,則從步點(diǎn)d向后保留15個(gè)步點(diǎn),從第15個(gè)步點(diǎn)e’開始分割,得到折線分割軌跡cde’;該段折線分割軌跡經(jīng)分割后得到:直線分割軌跡ab,直線分割軌跡bc,折線分割軌跡cde’及直線分割軌跡e’e。直線分割軌跡bc包含的步點(diǎn)個(gè)數(shù)為4個(gè),小于第一數(shù)量閾值30個(gè),因此將直線分割軌跡bc刪除;折線分割軌跡cde’僅包含一個(gè)折點(diǎn)d,且折點(diǎn)d前后包含的步點(diǎn)數(shù)量均在數(shù)量范圍內(nèi),因此保留折線分割軌跡cde’;直線分割軌跡e’e包含的步點(diǎn)數(shù)為17個(gè)小于第一數(shù)量閾值30,因此將直線分割軌跡e’e刪除。綜上所述,將折線分割軌跡進(jìn)行二次分割后得到直線分割軌跡ab和折線分割軌跡cde’。
另外,需要說明的是,實(shí)際軌跡分割過程中也可以不采用上述初步分割及進(jìn)一步分割的過程,而是從移動(dòng)軌跡的起點(diǎn)開始,按照移動(dòng)軌跡中各步點(diǎn)的掃描時(shí)間先后順序?qū)⒁苿?dòng)軌跡分割為:包含的步點(diǎn)數(shù)量大于等于預(yù)置的第一數(shù)量閾值的直線分割軌跡,和/或僅包含一個(gè)折點(diǎn)且折點(diǎn)前后所包含的步點(diǎn)均位于預(yù)置的數(shù)量范圍內(nèi)的折線分割軌跡。并在分割過程中,將滿足上述條件的初步分割點(diǎn)作為一個(gè)分割點(diǎn),同樣可將移動(dòng) 軌跡分割為直線分割軌跡及折線分割軌跡。
通過上述軌跡分割及過濾操作后可得到多條掃描軌跡,針對每條掃描軌跡,從預(yù)置的指紋庫中獲取與所述掃描軌跡上的步點(diǎn)匹配的指紋點(diǎn),根據(jù)該指紋點(diǎn)生成與該掃描軌跡匹配的匹配軌跡??梢岳斫獾氖牵臬@取匹配軌跡失敗,則說明指紋庫中不存在與該掃描軌跡匹配的匹配軌跡,則可丟棄該掃描軌跡;若能夠獲取與其匹配的匹配軌跡,則可執(zhí)行根據(jù)掃描軌跡上的步點(diǎn)的定位信息更新匹配軌跡上相應(yīng)指紋點(diǎn)的定位信息的操作。
步驟s140所述從預(yù)置的指紋庫中獲取與所述掃描軌跡上的步點(diǎn)匹配的指紋點(diǎn),根據(jù)獲取的指紋點(diǎn)生成與所述掃描軌跡匹配的匹配軌跡的方法如圖5中所示,包括如下子步驟:
子步驟1401、從所述掃描軌跡上選取一個(gè)步點(diǎn)作為參考點(diǎn),根據(jù)該參考點(diǎn)的定位信息以及指紋庫中的指紋點(diǎn)對應(yīng)的定位信息,從指紋庫中確定出與所述參考點(diǎn)匹配的至少一個(gè)指紋點(diǎn);
其中,從所述掃描軌跡上選取一個(gè)步點(diǎn)作為參考點(diǎn)時(shí),可以選擇該掃描軌跡上的任意點(diǎn),例如首點(diǎn)、尾點(diǎn)或中間的任意點(diǎn)。
所述根據(jù)該參考點(diǎn)的定位信息以及指紋庫中的指紋點(diǎn)對應(yīng)的定位信息,從指紋庫中確定出與所述參考點(diǎn)匹配的至少一個(gè)指紋點(diǎn),具體包括:
將參考點(diǎn)的定位信息分別與指紋庫中的各個(gè)指紋點(diǎn)對應(yīng)的定位信息進(jìn)行相似度計(jì)算,將相似度大于等于預(yù)置相似度閾值的指紋點(diǎn)確定為與所述參考點(diǎn)匹配的指紋點(diǎn)。以所述定位信息為wifi信息為例,所述相似度計(jì)算方法為:在該wifi信息中包含至少一個(gè)ap名稱,則針對指紋庫中的每個(gè)指紋點(diǎn),將所述參考點(diǎn)的ap名稱與該指紋點(diǎn)對應(yīng)的ap名稱進(jìn)行比對,確定出參考點(diǎn)與該指紋點(diǎn)具有相同ap名稱的個(gè)數(shù);將相同ap名稱的個(gè)數(shù)與參考點(diǎn)包含的ap名稱個(gè)數(shù)的比值確定為參考點(diǎn)的定位信息與該指紋點(diǎn)的定位信息的相似度,將該相似度大于等于預(yù)置相似度閾值的指紋點(diǎn)確定為與該參考點(diǎn)匹配的指紋點(diǎn)。所述預(yù)置相似度閾值例如可以為0.5。
例如,一條掃描軌跡s,包含i個(gè)步點(diǎn)分別為:s0、s1、s2、s3...si。以該掃描軌跡s上的第一步點(diǎn)s0作為參考點(diǎn),從指紋庫的指紋點(diǎn)中確定 出與該參考點(diǎn)s0匹配的所有指紋點(diǎn)。該參考點(diǎn)s0對應(yīng)的ap包括:ap1、ap2、ap3、ap4、ap5,匹配方法為:在指紋庫中確定出每個(gè)指紋點(diǎn)對應(yīng)的ap與s0對應(yīng)的ap相同的個(gè)數(shù),再確定出每個(gè)指紋點(diǎn)對應(yīng)的ap與s0對應(yīng)的ap相同的個(gè)數(shù)與s0對應(yīng)的ap個(gè)數(shù)的比值,如果該比值大于預(yù)設(shè)比值閾值0.5,則將該指紋點(diǎn)確定為與該參考點(diǎn)s0匹配的指紋點(diǎn)。例如,指紋庫中一個(gè)指紋點(diǎn)c0對應(yīng)的ap包括:ap1、ap2、ap3、ap6、ap7,其與s0對應(yīng)的ap相同的個(gè)數(shù)為3,s0對應(yīng)的ap個(gè)數(shù)為5,該比值3/5=0.6大于預(yù)設(shè)比值閾值0.5,則將c0作為與該參考點(diǎn)s0匹配的指紋點(diǎn),按照此方法可在指紋庫中找出與該參考點(diǎn)s0匹配的所有指紋點(diǎn),假設(shè)確定出的與該參考點(diǎn)s0匹配的所有指紋點(diǎn)為:c0、c1、c2、c3、c4、...cm,共m個(gè)指紋點(diǎn)。
子步驟1402、針對與所述參考點(diǎn)匹配的每一個(gè)指紋點(diǎn),根據(jù)該指紋點(diǎn)的位置、掃描軌跡上相鄰步點(diǎn)的掃描時(shí)間的時(shí)間間隔和方向、指紋庫中的指紋點(diǎn)的位置,從指紋庫中確定出與掃描軌跡上除參考點(diǎn)之外的其他步點(diǎn)匹配的指紋點(diǎn),并根據(jù)確定出的指紋點(diǎn)以及與所述參考點(diǎn)匹配的指紋點(diǎn)生成候選匹配軌跡;
實(shí)現(xiàn)子步驟1402的其中一個(gè)具體實(shí)施例,可以為:
以與所述參考點(diǎn)匹配的指紋點(diǎn)作為當(dāng)前指紋點(diǎn),對當(dāng)前指紋點(diǎn)執(zhí)行以下步驟;
以當(dāng)前指紋點(diǎn)為起點(diǎn)、以預(yù)置步長沿著與當(dāng)前指紋點(diǎn)匹配的步點(diǎn)指向前/后一步點(diǎn)的方向畫線段;將指紋庫中與該線段的終點(diǎn)最近的指紋點(diǎn)確定為與所述當(dāng)前指紋點(diǎn)對應(yīng)的步點(diǎn)相鄰的前/后一步點(diǎn)匹配的指紋點(diǎn);以與該前/后一步點(diǎn)匹配的指紋點(diǎn)作為當(dāng)前指紋點(diǎn)重復(fù)前述步驟,直到得到與掃描軌跡上所有步點(diǎn)匹配的指紋點(diǎn)。
例如,若當(dāng)前指紋點(diǎn)對應(yīng)的步點(diǎn)為掃描軌跡的首點(diǎn),則執(zhí)行以下步驟b1:
步驟b1:以該當(dāng)前指紋點(diǎn)為起點(diǎn)、以預(yù)置步長沿著與當(dāng)前指紋點(diǎn)匹配的步點(diǎn)指向下一步點(diǎn)的方向畫線段;將指紋庫中與該線段的終點(diǎn)最近的指紋點(diǎn)確定為與所述當(dāng)前指紋點(diǎn)匹配的步點(diǎn)相鄰的下一步點(diǎn)匹配的指 紋點(diǎn);且以與該下一步點(diǎn)匹配的指紋點(diǎn)作為當(dāng)前指紋點(diǎn)重復(fù)前述步驟直到得到與掃描軌跡上所有步點(diǎn)匹配的指紋點(diǎn)。
若當(dāng)前指紋點(diǎn)對應(yīng)的步點(diǎn)為掃描軌跡的尾點(diǎn),則執(zhí)行以下步驟b2:
步驟b2:以該當(dāng)前指紋點(diǎn)為起點(diǎn)、以預(yù)置步長沿著與當(dāng)前指紋點(diǎn)匹配的步點(diǎn)指向前一步點(diǎn)的方向畫線段;將指紋庫中與該線段的終點(diǎn)最近的指紋點(diǎn)確定為與所述當(dāng)前指紋點(diǎn)匹配的步點(diǎn)相鄰的前一步點(diǎn)匹配的指紋點(diǎn);且以與該前一步點(diǎn)匹配的指紋點(diǎn)作為當(dāng)前指紋點(diǎn)重復(fù)前述步驟直到得到與掃描軌跡上所有步點(diǎn)匹配的指紋點(diǎn)。
若當(dāng)前指紋點(diǎn)對應(yīng)的步點(diǎn)為掃描軌跡的非首尾點(diǎn),則執(zhí)行以下步驟b3-步驟b4:
步驟b3:以該當(dāng)前指紋點(diǎn)為起點(diǎn)、以預(yù)置步長沿著與當(dāng)前指紋點(diǎn)匹配的步點(diǎn)指向下一步點(diǎn)的方向畫線段,將指紋庫中與該線段的終點(diǎn)最近的指紋點(diǎn)確定為與所述當(dāng)前指紋點(diǎn)匹配的步點(diǎn)相鄰的前一步點(diǎn)匹配的指紋點(diǎn),且以該與前一步點(diǎn)匹配的指紋點(diǎn)作為當(dāng)前指紋點(diǎn)重復(fù)前述步驟,直到確定出與掃描軌跡上的尾點(diǎn)匹配的指紋點(diǎn);
步驟b4、以該當(dāng)前指紋點(diǎn)為起點(diǎn)、以預(yù)置步長沿著與當(dāng)前指紋點(diǎn)匹配的步點(diǎn)指向下一步點(diǎn)的方向畫線段,將指紋庫中與該線段的終點(diǎn)最近的指紋點(diǎn)確定為與所述當(dāng)前指紋點(diǎn)匹配的步點(diǎn)相鄰的下一步點(diǎn)匹配的指紋點(diǎn),且以該與下一步點(diǎn)匹配的指紋點(diǎn)作為當(dāng)前指紋點(diǎn)重復(fù)前述步驟,直到確定出與掃描軌跡上首點(diǎn)匹配的指紋點(diǎn)。
所述預(yù)置步長可以為0.6m。如圖6中所示,為指紋庫中的指紋點(diǎn),其中,掃描軌跡為s,包含的步點(diǎn)為:s0、s1、s2、s3...si,圖中僅示例性的顯示部分步點(diǎn),按照上述方法確定的與該s上的首點(diǎn)s0匹配的指紋點(diǎn)包括:c0、c1、c2、c3、c4、...cm,共m個(gè)指紋點(diǎn)。假如以指紋點(diǎn)c0作為當(dāng)前指紋點(diǎn),則按照s上s1相對s0的方向,以預(yù)置步長0.6m遞推,也就是以c0為起點(diǎn)畫一條長度為0.6m、與s0s1平行的線段,線段的另一端點(diǎn)c1’即為遞推后的點(diǎn),再從指紋庫中獲取與遞推后的點(diǎn)c1’距離最近的指紋點(diǎn)c1”作為確定出的與s0相鄰的步點(diǎn)s1匹配的指紋點(diǎn)。
按照上述逐步遞推過程可確定出以c0為當(dāng)前指紋點(diǎn)時(shí),與掃描軌跡 s上每個(gè)步點(diǎn)匹配的指紋點(diǎn),如圖6中的c2”、c3”...ci”,根據(jù)確定的所有指紋點(diǎn)生成候選匹配軌跡s1。同理,可確定出分別以c1、c2、c3、c4、...cm為當(dāng)前指紋點(diǎn)時(shí)與掃描軌跡s上每個(gè)步點(diǎn)匹配的指紋點(diǎn)。最終可得到m條與s匹配的候選匹配軌跡,包括:s1、s2、s3、...sm,圖6中僅示出其中一條。
子步驟1403、分別計(jì)算各候選匹配軌跡與所述掃描軌跡的相似度值;
所述定位信息包括信號強(qiáng)度值;所述分別計(jì)算各候選匹配軌跡與所述掃描軌跡的相似度值,具體包括步驟c1-步驟c3:
步驟c1、針對每一條候選匹配軌跡,根據(jù)候選匹配軌跡中的指紋點(diǎn)的信號強(qiáng)度值和位置信息,利用皮爾森相關(guān)系數(shù)計(jì)算算法,分別計(jì)算該候選匹配軌跡與所述掃描軌跡的位移相似度值和信號強(qiáng)度相似度值;
步驟c2、將候選匹配軌跡與所述掃描軌跡的位移相似度值和信號強(qiáng)度相似度值的和值,確定為所述候選匹配軌跡與所述掃描軌跡的相似度。
步驟c1中,可以利用皮爾森相關(guān)系數(shù)分別計(jì)算各候選匹配軌跡與掃描軌跡的位移相似度值,具體計(jì)算方法包括:
pearsoncorr=pearsoncorrx+pearsoncorry(1)
前述公式(1)中,pearsoncorr表示候選匹配軌跡與掃描軌跡的位移相似度,pearsoncorrx為候選匹配軌跡與掃描軌跡在x軸上的位移相似度,pearsoncorry為候選匹配軌跡與掃描軌跡在y軸上的位移相似度。
前述公式(2)中,i為掃描軌跡上包含的步點(diǎn)總數(shù)量,x1i表示掃描軌跡上第i個(gè)相鄰步點(diǎn)(即第i-1個(gè)步點(diǎn)與第i個(gè)步點(diǎn))之間的步長在x軸方向上的位移,x2i表示候選匹配軌跡上與第一個(gè)相鄰步點(diǎn)對應(yīng)的兩個(gè)相鄰指紋點(diǎn)(即第i-1個(gè)指紋點(diǎn)與第i個(gè)指紋點(diǎn))之間的步長在x軸方向上的位移;avex1為掃描軌跡包含的所有相鄰步點(diǎn)之間的步長在x軸方向上的位移的平均值,avex2為候選匹配軌跡包含的所有相鄰指紋點(diǎn)之間的步長在x軸方 向上的位移的平均值;stdx1為掃描軌跡上包含的所有相鄰步點(diǎn)之間的步長在x軸方向上的位移的標(biāo)準(zhǔn)差值,stdx2為候選匹配軌跡上包含的所有相鄰指紋點(diǎn)之間的步長在x軸方向上的位移的標(biāo)準(zhǔn)差值。
前述公式(3)中,i為掃描軌跡上包含的步點(diǎn)總數(shù)量,y1i表示掃描軌跡上第i個(gè)相鄰步點(diǎn)(即第i-1個(gè)步點(diǎn)與第i個(gè)步點(diǎn))之間的步長在y軸方向上的位移,y2i表示候選匹配軌跡上與第一個(gè)相鄰步點(diǎn)對應(yīng)的兩個(gè)相鄰指紋點(diǎn)(即第i-1個(gè)指紋點(diǎn)與第i個(gè)指紋點(diǎn))之間的步長在y軸方向上的位移;avey1為掃描軌跡包含的所有相鄰步點(diǎn)之間的步長在y軸方向上的位移的平均值,avey2為候選匹配軌跡包含的所有相鄰指紋點(diǎn)之間的步長在y軸方向上的位移的平均值;stdy1為掃描軌跡上包含的所有相鄰步點(diǎn)之間的步長在y軸方向上的位移的標(biāo)準(zhǔn)差值,stdy2為候選匹配軌跡上包含的所有相鄰指紋點(diǎn)之間的步長在y軸方向上的位移的標(biāo)準(zhǔn)差值。
步驟c1中,可以利用皮爾森相關(guān)系數(shù)分別計(jì)算各候選匹配軌跡與掃描軌跡的信號強(qiáng)度相似度值,具體計(jì)算方法包括:
前述公式(4)中,pearsoncorrk表示候選匹配軌跡與掃描軌跡的信號強(qiáng)度相似度值,i為掃描軌跡上包含的步點(diǎn)總數(shù)量,k1i表示掃描軌跡上第i個(gè)相鄰步點(diǎn)(即第i-1個(gè)步點(diǎn)與第i個(gè)步點(diǎn))之間信號強(qiáng)度的差值,k2i表示候選匹配軌跡上與所述相鄰步長對應(yīng)的兩個(gè)相鄰指紋點(diǎn)(即第i-1個(gè)指紋點(diǎn)與第i個(gè)指紋點(diǎn))之間的信號強(qiáng)度的差值;avek1為掃描軌跡包含的所有相鄰步點(diǎn)之間的信號強(qiáng)度差值的平均值,avek2為候選匹配軌跡包含的所有相鄰指紋點(diǎn)之間的信號強(qiáng)度差值的平均值;stdk1為掃描軌跡上包含的所有相鄰步點(diǎn)之間的信號強(qiáng)度差值的標(biāo)準(zhǔn)差值,stdk2為候選匹配軌跡上包含的所有相鄰指紋點(diǎn)之間的信號強(qiáng)度差值的標(biāo)準(zhǔn)差值。
子步驟1404、選擇相似度值最大,且滿足預(yù)設(shè)相似度閾值的候選匹 配軌跡作為與所述掃描軌跡匹配的匹配軌跡。
子步驟1404具體包括:從候選匹配軌跡中選取位移相似度值大于等于位移相似度閾值以及信號強(qiáng)度相似度值大于等于信號強(qiáng)度相似度閾值的候選匹配軌跡作為待定匹配軌跡;將與所述掃描軌跡的相似度最大的待定匹配軌跡作為與所述掃描軌跡匹配的匹配軌跡。
由于候選匹配軌跡可能存在多條,例如上面實(shí)例中存在m條,則需要從中選擇一條作為最終的匹配軌跡,具體選擇方法為:
首先,從所述候選匹配軌跡中提取出位移相似度值達(dá)到位移相似度閾值及信號強(qiáng)度相似度值達(dá)到信號強(qiáng)度相似度閾值的候選匹配軌跡作為待定匹配軌跡。
也就是,本申請實(shí)施例設(shè)置有位移相似度閾值及信號強(qiáng)度相似度閾值,針對一條候選匹配軌跡s1,可分別得到位移相似度值和在信號強(qiáng)度相似度值,若位移相似度值和信號強(qiáng)度相似度值中任一個(gè)不滿足對應(yīng)的閾值,則可丟棄該s1,從而可從上述得到的候選匹配軌跡中提取出待定匹配軌跡,假如從s1、s2、s3、...及sm中提取的待定匹配軌跡包括:s1、s2、s4、s5。
之后,從所述待定匹配軌跡中選擇位移相似度值與信號強(qiáng)度相似度值的和值最大的待定匹配軌跡作為與所述掃描軌跡匹配的匹配軌跡。
假設(shè)s1的位移相似度值與信號強(qiáng)度相似度值的和值最大,則將s1作為與s匹配的匹配軌跡。
按照上述操作方法可確定出每條掃描軌跡的匹配軌跡。在確定出與掃描軌跡匹配的匹配軌跡后,即可以該掃描軌跡對指紋庫中的匹配軌跡進(jìn)行更新。
步驟s150即為指紋庫的更新操作,即,利用所述掃描軌跡上的步點(diǎn)對應(yīng)的定位信息更新與該掃描軌跡匹配的匹配軌跡上相應(yīng)指紋點(diǎn)的定位信息,例如利用掃描軌跡上步點(diǎn)對應(yīng)的wifi信息更新與該掃描軌跡匹配的述匹配軌跡上對應(yīng)指紋點(diǎn)的wifi信息。由于所述wifi信息包括ap名稱及ap信號強(qiáng)度值,則利用所述掃描軌跡上的步點(diǎn)對應(yīng)的wifi信息更新所述匹配軌跡上對應(yīng)指紋點(diǎn)的wifi信息包括:利用掃描軌跡上的步點(diǎn)的ap 名稱及ap信號強(qiáng)度值更新所述匹配軌跡上對應(yīng)指紋點(diǎn)的ap名稱及ap信號強(qiáng)度值。其中ap信號強(qiáng)度值的更新具體為:以所述掃描軌跡上的步點(diǎn)對應(yīng)的ap信號強(qiáng)度值與所述匹配軌跡上對應(yīng)指紋點(diǎn)的ap信號強(qiáng)度值的平均值作為更新后的所述匹配軌跡上對應(yīng)指紋點(diǎn)的ap信號強(qiáng)度值。
以掃描軌跡s上的步點(diǎn)的wifi信息更新匹配軌跡s1上對應(yīng)指紋點(diǎn)的wifi信息為例。s上的s0點(diǎn)與s1上的c0點(diǎn)對應(yīng),s0對應(yīng)的ap包括:ap1、ap2、ap3、ap4、ap5,c0對應(yīng)的ap包括:ap1、ap2、ap3、ap6、ap7;則以s0點(diǎn)的ap名稱更新c0點(diǎn)的ap名稱,更新后的c0點(diǎn)的ap為:ap1、ap2、ap3、ap4、ap5。更新后的ap1的信號強(qiáng)度值為s0點(diǎn)掃描的ap1的信號強(qiáng)度值與更新前c0點(diǎn)的ap1信號強(qiáng)度值的平均值,針對ap4及ap5,由于更新前c0點(diǎn)并不包含該兩個(gè)ap,因此更新后的ap4及ap5的信號強(qiáng)度值即為s0掃描的ap4及ap5的信號強(qiáng)度值。
本申請實(shí)施例還提供一種與上述更新指紋庫的方法對應(yīng)的更新指紋庫的裝置,如圖7中所示為所述裝置結(jié)構(gòu)示意圖,該裝置主要包括如下單元:
獲取單元710,用于獲取移動(dòng)設(shè)備在各個(gè)步點(diǎn)的掃描信息,所述掃描信息包括:步點(diǎn)掃描時(shí)間、方向及在步點(diǎn)掃描到的定位信息;
移動(dòng)軌跡確定單元720,用于根據(jù)各步點(diǎn)的掃描時(shí)間及方向?qū)⑺霾近c(diǎn)連接成所述移動(dòng)設(shè)備的移動(dòng)軌跡;
分割過濾單元730,用于對所述移動(dòng)軌跡進(jìn)行分割及過濾,得到掃描軌跡;
匹配單元740,用于從預(yù)置的指紋庫中獲取與所述掃描軌跡上的步點(diǎn)匹配的指紋點(diǎn),根據(jù)獲取的指紋點(diǎn)生成與所述掃描軌跡匹配的匹配軌跡;
更新單元750,用于利用所述掃描軌跡上的步點(diǎn)對應(yīng)的定位信息更新與該掃描軌跡匹配的所述匹配軌跡上相應(yīng)指紋點(diǎn)的定位信息。
所述裝置還包括:
樓層信息確定單元760,用于根據(jù)各步點(diǎn)的定位信息確定各步點(diǎn)對應(yīng)的 樓層信息;
所述移動(dòng)軌跡確定單元720被配置為:將位于同一樓層的步點(diǎn)按照掃描時(shí)間及方向連接成所述移動(dòng)設(shè)備的移動(dòng)軌跡。
所述分割過濾單元730被配置為:
分割點(diǎn)確定子單元,用于確定所述移動(dòng)軌跡的初步分割點(diǎn);
第一分割子單元,用于將所述移動(dòng)軌跡從所述初步分割點(diǎn)進(jìn)行初步分割,得到初步分割后的直線分割軌跡及折線分割軌跡。
針對初步分割后的折線分割軌跡,所述分割過濾單元730還被配置為:
第二分割子單元,用于針對第一分割子單元分割得到的折線分割軌跡:若所述折線分割軌跡僅包含一個(gè)折點(diǎn),則:判斷所述折線分割軌跡在折點(diǎn)之前和之后所包含的步點(diǎn)數(shù)量是否均位于預(yù)置的數(shù)量范圍內(nèi),若是則將該折線分割軌跡作為掃描軌跡,若否則刪除該折線分割軌跡;以及若所述折線分割軌跡包含至少兩個(gè)折點(diǎn),則:將所述折線分割軌跡分割成如下掃描軌跡:包含的步點(diǎn)數(shù)量大于等于預(yù)置的第一數(shù)量閾值的直線分割軌跡,和/或僅包含一個(gè)折點(diǎn)且折點(diǎn)前后所包含的步點(diǎn)均位于預(yù)置數(shù)量范圍內(nèi)的折線分割軌跡。
針對直線分割軌跡,所述分割過濾單元730還被配置為:
過濾子單元,用于針對直線分割軌跡,判斷所述直線分割軌跡包含的步點(diǎn)數(shù)量是否小于預(yù)置的第一數(shù)量閾值,若是則刪除該直線分割軌跡,若否則將該直線分割軌跡作為掃描軌跡。
分割點(diǎn)確定子單元被配置為:
依次計(jì)算移動(dòng)軌跡上相鄰兩個(gè)步點(diǎn)之間的時(shí)間間隔;
將時(shí)間間隔大于等于預(yù)置時(shí)長閾值的相鄰步點(diǎn)中的前一個(gè)步點(diǎn)作為初步分割點(diǎn);和/或,
依次判斷移動(dòng)軌跡上的步點(diǎn)是否為往返點(diǎn),將是往返點(diǎn)的步點(diǎn)作為初步分割點(diǎn)。
所述匹配單元740被配置為:
從所述掃描軌跡上選取一個(gè)步點(diǎn)作為參考點(diǎn),根據(jù)該參考點(diǎn)的定位信息以及指紋庫中的指紋點(diǎn)對應(yīng)的定位信息,從指紋庫中確定出與所述參考點(diǎn)匹配的至少一個(gè)指紋點(diǎn);
針對與所述參考點(diǎn)匹配的每一個(gè)指紋點(diǎn),根據(jù)該指紋點(diǎn)的位置、掃描軌跡上相鄰步點(diǎn)的掃描時(shí)間的時(shí)間間隔和方向、指紋庫中的指紋點(diǎn)的位置,從指紋庫中確定出與掃描軌跡上除參考點(diǎn)之外的其他步點(diǎn)匹配的指紋點(diǎn),并根據(jù)確定出的指紋點(diǎn)以及與所述參考點(diǎn)匹配的指紋點(diǎn)生成候選匹配軌跡;
分別計(jì)算各候選匹配軌跡與所述掃描軌跡的相似度值;
選擇相似度值最大,且滿足預(yù)設(shè)相似度閾值的候選匹配軌跡作為與所述掃描軌跡匹配的匹配軌跡。
匹配單元740根據(jù)該參考點(diǎn)的定位信息以及指紋庫中的指紋點(diǎn)對應(yīng)的定位信息,從指紋庫中確定出與所述參考點(diǎn)匹配的至少一個(gè)指紋點(diǎn),具體包括:
將參考點(diǎn)的定位信息分別與指紋庫中的各個(gè)指紋點(diǎn)對應(yīng)的定位信息進(jìn)行相似度計(jì)算,將相似度大于等于預(yù)置相似度閾值的指紋點(diǎn)確定為與所述參考點(diǎn)匹配的指紋點(diǎn)。
所述定位信息為wifi信息,且wifi信息中包含至少一個(gè)ap名稱;
匹配單元740將參考點(diǎn)的定位信息分別與指紋庫中的各個(gè)指紋點(diǎn)對應(yīng)的定位信息進(jìn)行相似度計(jì)算,具體包括:
針對指紋庫中的每個(gè)指紋點(diǎn),將所述參考點(diǎn)的ap名稱與該指紋點(diǎn)對應(yīng)的ap名稱進(jìn)行比對,確定出參考點(diǎn)與該指紋點(diǎn)具有相同ap名稱的個(gè)數(shù);
將相同ap名稱的個(gè)數(shù)與參考點(diǎn)包含的ap名稱個(gè)數(shù)的比值確定為參考點(diǎn)的定位信息與該指紋點(diǎn)的定位信息的相似度。
匹配單元740針對與所述參考點(diǎn)匹配的每一個(gè)指紋點(diǎn),根據(jù)該指紋點(diǎn)的位置、掃描軌跡上相鄰步點(diǎn)的掃描時(shí)間的時(shí)間間隔和方向、指紋庫中的指紋點(diǎn)的位置,從指紋庫中確定出與掃描軌跡上除參考點(diǎn)之外的其他步點(diǎn)匹配的指紋點(diǎn),具體包括:
以與所述參考點(diǎn)匹配的指紋點(diǎn)作為當(dāng)前指紋點(diǎn),對當(dāng)前指紋點(diǎn)執(zhí)行以下步驟;
以當(dāng)前指紋點(diǎn)為起點(diǎn)、以預(yù)置步長沿著與當(dāng)前指紋點(diǎn)匹配的步點(diǎn)指向前/后一步點(diǎn)的方向畫線段,將指紋庫中與該線段的終點(diǎn)最近的指紋點(diǎn)確定為與所述當(dāng)前指紋點(diǎn)對應(yīng)的步點(diǎn)相鄰的前/后一步點(diǎn)匹配的指紋點(diǎn);以與該前/后一步點(diǎn)匹配的指紋點(diǎn)作為當(dāng)前指紋點(diǎn)重復(fù)前述步驟,直到得到與掃描軌跡上 所有步點(diǎn)匹配的指紋點(diǎn)。
所述定位信息包括信號強(qiáng)度值;匹配單元740分別計(jì)算各候選匹配軌跡與所述掃描軌跡的相似度值,具體包括:
針對每一條候選匹配軌跡,根據(jù)候選匹配軌跡中的指紋點(diǎn)的信號強(qiáng)度值和位置信息,利用皮爾森相關(guān)系數(shù)計(jì)算算法,分別計(jì)算該候選匹配軌跡與所述掃描軌跡的位移相似度值和信號強(qiáng)度相似度值;
將候選匹配軌跡與所述掃描軌跡的位移相似度值和信號強(qiáng)度相似度值的和值,確定為所述候選匹配軌跡與所述掃描軌跡的相似度。
匹配單元740選擇相似度值最大,且滿足預(yù)設(shè)相似度閾值的候選匹配軌跡作為與所述掃描軌跡匹配的匹配軌跡包括:
從候選匹配軌跡中選取位移相似度值大于等于位移相似度閾值以及信號強(qiáng)度相似度值大于等于信號強(qiáng)度相似度閾值的候選匹配軌跡作為待定匹配軌跡;
將與所述掃描軌跡的相似度最大的待定匹配軌跡作為與所述掃描軌跡匹配的匹配軌跡。
本申請實(shí)施例,在獲取到移動(dòng)設(shè)備在各個(gè)步點(diǎn)的掃描信息之后,并不是孤立的直接根據(jù)各個(gè)步點(diǎn)的定位信息分別來更新指紋庫中與各步點(diǎn)匹配的指紋點(diǎn)的定位信息,因?yàn)槟承┎近c(diǎn)可能由于一些環(huán)境影響使得該步點(diǎn)的定位信息準(zhǔn)確性較差,若直接根據(jù)這些步點(diǎn)的定位信息來更新指紋庫中相應(yīng)指紋點(diǎn)的定位信息是不準(zhǔn)確的;而是首先根據(jù)各步點(diǎn)的掃描時(shí)間及方向?qū)⒏鞑近c(diǎn)連接成移動(dòng)設(shè)備的移動(dòng)軌跡,并將該移動(dòng)軌跡分割過濾得到掃描軌跡,再根據(jù)掃描軌跡上的步點(diǎn)得到指紋庫中與步點(diǎn)匹配的指紋點(diǎn),并根據(jù)與各步點(diǎn)匹配的指紋點(diǎn)生成與掃描軌跡匹配的匹配軌跡,再利用掃描軌跡上的步點(diǎn)的定位信息更新指紋庫中與步點(diǎn)相匹配的指紋點(diǎn)的定位信息;即本申請技術(shù)方案考慮了相鄰步點(diǎn)之間的前后關(guān)聯(lián)關(guān)系,并且只有將掃描軌跡上所有步點(diǎn)作為整體來從指紋庫中找到各步點(diǎn)對應(yīng)的指紋點(diǎn)構(gòu)成的軌跡匹配時(shí),才會(huì)根據(jù)該掃描軌跡上的步點(diǎn)的定位信息更新匹配軌跡上相應(yīng)指紋點(diǎn)的定位信息,因?yàn)閽呙柢壽E作為整體能夠從指紋庫中找到與其匹配的匹配軌跡說明掃描軌跡上的步點(diǎn)的定位 信息是較為準(zhǔn)確的,從而使得根據(jù)掃描軌跡上的步點(diǎn)的定位信息更新指紋庫更準(zhǔn)確,解決了單步點(diǎn)確定對應(yīng)指紋點(diǎn)所存在的不準(zhǔn)確的問題,從而提高了根據(jù)步點(diǎn)的定位信息更新指紋點(diǎn)的定位信息的準(zhǔn)確性。
需要注意的是,本申請可在軟件和/或軟件與硬件的組合體中被實(shí)施,例如,可采用專用集成電路(asic)、通用目的計(jì)算機(jī)或任何其他類似硬件設(shè)備來實(shí)現(xiàn)。在一個(gè)實(shí)施例中,本申請的軟件程序可以通過處理器執(zhí)行以實(shí)現(xiàn)上文所述步驟或功能。同樣地,本申請的軟件程序(包括相關(guān)的數(shù)據(jù)結(jié)構(gòu))可以被存儲(chǔ)到計(jì)算機(jī)可讀記錄介質(zhì)中,例如,ram存儲(chǔ)器,磁或光驅(qū)動(dòng)器或軟磁盤及類似設(shè)備。另外,本申請的一些步驟或功能可采用硬件來實(shí)現(xiàn),例如,作為與處理器配合從而執(zhí)行各個(gè)步驟或功能的電路。
另外,本申請的一部分可被應(yīng)用為計(jì)算機(jī)程序產(chǎn)品,例如計(jì)算機(jī)程序指令,當(dāng)其被計(jì)算機(jī)執(zhí)行時(shí),通過該計(jì)算機(jī)的操作,可以調(diào)用或提供根據(jù)本申請的方法和/或技術(shù)方案。而調(diào)用本申請的方法的程序指令,可能被存儲(chǔ)在固定的或可移動(dòng)的記錄介質(zhì)中,和/或通過廣播或其他信號承載媒體中的數(shù)據(jù)流而被傳輸,和/或被存儲(chǔ)在根據(jù)所述程序指令運(yùn)行的計(jì)算機(jī)設(shè)備的工作存儲(chǔ)器中。在此,根據(jù)本申請的一個(gè)實(shí)施例包括一個(gè)裝置,該裝置包括用于存儲(chǔ)計(jì)算機(jī)程序指令的存儲(chǔ)器和用于執(zhí)行程序指令的處理器,其中,當(dāng)該計(jì)算機(jī)程序指令被該處理器執(zhí)行時(shí),觸發(fā)該裝置運(yùn)行基于前述根據(jù)本申請的多個(gè)實(shí)施例的方法和/或技術(shù)方案。
對于本領(lǐng)域技術(shù)人員而言,顯然本申請不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本申請的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本申請。因此,無論從哪一點(diǎn)來看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本申請的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本申請內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數(shù)不排除復(fù)數(shù)。系統(tǒng)權(quán)利要求中陳述的多個(gè)單元或裝置也可以由一個(gè)單元或裝置通過軟件或者硬件來實(shí)現(xiàn)。第一,第二等詞語用來表示名稱,而并 不表示任何特定的順序。