本公開涉及全球定位系統(tǒng)(Global Positioning System,簡稱:GPS)技術,特別涉及一種GPS的漂移數據修正方法和裝置。
背景技術:
很多智能終端中裝載有GPS傳感器,通過該GPS傳感器接收衛(wèi)星信號,可以用于定位智能終端。隨著GPS定位技術的發(fā)展,智能終端的GPS定位也可以應用于對用戶運動軌跡的記錄,例如一些運動軟件使用智能手機中的GPS傳感器,在用戶運動過程中(比如,跑步、騎行)記錄運動軌跡并進行運動數據的統(tǒng)計,用戶可以通過軌跡記錄對自己的運動路徑直觀了解。
技術實現(xiàn)要素:
有鑒于此,本公開提供一種漂移數據修正方法和裝置,以實現(xiàn)對漂移數據的修正。
具體地,本公開是通過如下技術方案實現(xiàn)的:
第一方面,提供一種漂移數據修正方法,包括:
在多個全球定位系統(tǒng)GPS采樣點中確定第一采樣點和第二采樣點,所述第一采樣點和第二采樣點之間的采樣點集合作為存在漂移數據的不動區(qū)域;所述第一采樣點所述不動區(qū)域中首個相交點,所述相交點與之前M個采樣點之間連接的線段相交,所述第二采樣點是所述不動區(qū)域中最后一個非相交點,所述非相交點與之前M個采樣點之間連接的線段不相交;M為自然數;
以所述不動區(qū)域的重心點作為不動點,所述不動點用于作為所述不動區(qū) 域的代表點補入軌跡點集中。
第二方面,提供一種漂移數據修正裝置,包括:
不動區(qū)域確定模塊,用于在多個全球定位系統(tǒng)GPS采樣點中確定第一采樣點和第二采樣點,所述第一采樣點和第二采樣點之間的采樣點集合作為存在漂移數據的不動區(qū)域;所述第一采樣點是所述不動區(qū)域中首個相交點,所述相交點與之前M個采樣點之間連接的線段相交,所述第二采樣點是所述不動區(qū)域中最后一個非相交點,所述非相交點與之前M個采樣點之間連接的線段不相交;M為自然數;
不動點確定模塊,用于以所述不動區(qū)域的重心點作為不動點,所述不動點用于作為所述不動區(qū)域的代表點補入軌跡點集中。
本公開實施例的漂移數據修正方法和裝置,通過在軌跡中識別不動區(qū)域,并將不動區(qū)域的重心點作為代表該區(qū)域的不動點,實現(xiàn)了對軌跡中的漂移數據的檢測和修正。
附圖說明
圖1是本公開一示例性實施例示出的一種騎行軌跡示意圖;
圖2是圖1中區(qū)域C的放大圖;
圖3是本公開一示例性實施例示出的一種漂移數據修正方法的流程圖;
圖4是本公開一示例性實施例示出的漂移數據集合示意圖;
圖5是本公開一示例性實施例示出的不動區(qū)域確定方式示意圖;
圖6是本公開一示例性實施例示出的軌跡修正示意圖;
圖7是本公開一示例性實施例示出的一種漂移數據修正裝置的結構圖;
圖8是本公開一示例性實施例示出的另一種漂移數據修正裝置的結構圖;
圖9是本公開一示例性實施例示出的智能終端的框圖。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的 描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本公開相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本公開的一些方面相一致的裝置和方法的例子。
本公開實施例的漂移數據修正的方法,例如,可以應用于對用戶軌跡記錄的修正。參見圖1的示例,用戶在進行自行車騎行運動,并且在騎行過程中使用騎行軟件自動記錄自己的騎行行程,用戶從起點A騎行到終點B,圖1顯示了騎行軟件記錄的該騎行軌跡,騎行軟件可以是裝載在用戶的智能手機上,并通過GPS定位方式獲取到運動軌跡。
將圖1中的騎行軌跡中的區(qū)域C放大,如圖2所示,可以看到,該區(qū)域C的軌跡比較紊亂,實際上,用戶騎行到該區(qū)域時,可能正在靜止,或者低速度騎行接近靜止,或者正在等紅綠燈等情況,但是由于GPS信號的精度問題,可能產生同一位置不同時刻多次采樣得到的定位位置值不同(在小范圍內飄動)的情況,導致在一個位置出現(xiàn)多個小范圍內飄動的采樣點,這些采樣點就可以稱為“漂移數據”。漂移數據不僅會使得騎行軟件對運動情況的識別造成困擾,例如將信號的飄動識別成用戶的運動行為,影響運動數據的統(tǒng)計準確性,也使得顯示的軌跡看起來不美觀,因此,本公開實施例要在圖1的軌跡中識別出圖2中的漂移數據,并加以修正,以提高數據統(tǒng)計準確性。
圖3示例了本公開的漂移數據修正方法的流程圖,包括:
301、在多個全球定位系統(tǒng)GPS采樣點中確定第一采樣點和第二采樣點,所述第一采樣點和第二采樣點之間的采樣點集合作為存在漂移數據的不動區(qū)域;所述第一采樣點所述不動區(qū)域中首個相交點,所述相交點與之前M個采樣點之間連接的線段相交,所述第二采樣點是所述不動區(qū)域中最后一個非相交點,所述非相交點與之前M個采樣點之間連接的線段不相交;M為自然數;
302、以所述不動區(qū)域的重心點作為不動點,所述不動點用于作為所述不動區(qū)域的代表點補入軌跡點集中。
上述圖3的修正流程,例如是由上述的騎行軟件所做的數據處理,步驟 301主要是從圖1的整條軌跡中識別出圖2所示的漂移數據區(qū)域,步驟302主要是對識別的漂移數據進行修正。如下將詳細描述該處理過程:
在步驟301中,以用戶騎行運動為例,所述的多個GPS采樣點,是用戶在騎行過程中通過智能手機上的GPS傳感器按照一定的時間間隔(例如,5秒)定位的用戶當前經緯度值,GPS傳感器將采集的經緯度值可以傳輸至智能手機上的騎行軟件,并可以通過時間序列的方式進行存儲,比如,[(時間time1,緯度lat1,經度lng1),(time2,lat2,lng2)……(timen,latn,lngn)]。
結合圖1所示,在301中采樣的多個采樣點,即為圖1中的從起點A到終點B的騎行軌跡上按照時間間隔定期采集的GPS經緯度,并以上述時間序列的方式記錄了各個經緯度定位點對應的時間time。
再結合圖4所示,本公開實施例的方法要從圖1的軌跡中,識別出位于該軌跡上的多個采樣點集合,每個采樣點集合中包括的多個采樣點都屬于漂移數據,例如,圖1和圖2中僅僅是示例了從起點A到終點B的軌跡上的其中一個漂移數據采樣點集合,實際上有可能在該軌跡上存在多個這樣的采樣點集合,本公開實施例僅以其中一個集合的識別和修正為例進行說明。如圖3所示,可以將這樣的采樣點集合稱為“不動區(qū)域”,該不動區(qū)域包括第一采樣點和第二采樣點,第一采樣點是不動區(qū)域的起點,第二采樣點是不動區(qū)域的終點,而位于該第一采樣點和第二采樣點之間的采樣點集合就稱為“不動區(qū)域”。例如,該區(qū)域中包括:采樣點a、采樣點b、采樣點c和采樣點d。
因此,基于上述,要確定不動區(qū)域,關鍵是確定第一采樣點和第二采樣點,只要確定這兩點,那么該兩個采樣點之間的采樣點集合就是不動區(qū)域。本公開實施例的方法中,結合圖4的示例,在不動區(qū)域中的采樣點,如果將這些采樣點連成折線,折線中的各個線段通常會出現(xiàn)相交,例如,線段b-f,與線段c-e是相交的,根據該特點,尋找不動區(qū)域也就是尋找出現(xiàn)線段相交的區(qū)域。因此,可以對騎行軌跡中的每個采樣點均依次進行判斷,將確定的首個相交點作為第一采樣點,相交點即與之前M個采樣點之間連接的線段相交的采樣點(例如,圖4中從第一采樣點開始出現(xiàn)線段相交的情況,表明開 始進入包括漂移數據的不動區(qū)域,正是由于漂移數據的小范圍數據飄動的特點,才導致不動區(qū)域中的采樣點連接線段將出現(xiàn)相交);而將確定的最后一個非相交點作為第二采樣點,非相交點與之前M個采樣點之間連接的線段不相交(例如,圖4中從第二采樣點開始軌跡逐漸正常,符合正常騎行特征)。
圖5示例了在軌跡上的各個采樣點中確定第一采樣點和第二采樣點的方法,如圖5所示,沿時間軸方向示出了九個采樣點,假設采樣間隔是5秒鐘,那么從對應時刻t1的采樣點與對應時刻t2的采樣點間隔5秒,后續(xù)采樣點以此類推,在時間上t1至t9的采樣時刻逐漸靠后。對于每一個采樣點都使用相同的判斷方式,以采樣點t6(即對應時刻t6的采樣點)為例,獲取其之前五個采樣點即t1-t5,相當于時間上往前追溯了五個采樣點,將t1-t6的采樣點集合作為“檢測區(qū)域”。
采樣點t1與采樣點t2組成線段t1-t2,同理,得到線段t2-t3,t3-t4,t4-t5,t5-t6,總共有五條線段,判斷這五條線段是否出現(xiàn)相交,具體的,由于t6是當前檢測點,則可以判斷“線段t5-t6”分別與線段t1-t2,t2-t3,t3-t4,t4-t5,是否相交。如果至少有一條線段與線段t5-t6相交,則確定采樣點t6是“相交點”,即以該采樣點t6獲取的檢測區(qū)域中的各線段存在相交。或者也可以是,在時間上往前追溯了五個采樣點之后,每一個采樣點都與前一個采樣點之間組成線段,那么除了線段t5-t6,其他五個追溯點對應五條線段,例如,t0-t1,t1-t2等,同樣是判斷線段t5-t6與其他線段是否存在相交。
在用戶的騎行軌跡的采樣點中,依照時間順序對每個采樣點都進行上述判斷,將發(fā)現(xiàn)的第一個相交點(即在檢測區(qū)域內存在線段相交的點,如果設置相交概率q=p/m,其中,p為與線段t5-t6相交的線段數量,m為線段總數量五,則相交點的q>0)作為第一采樣點,為不動區(qū)域的起點,表明從該第一采樣點開始將進入包括漂移數據的不動區(qū)域。接著,進行第二采樣點的判斷,仍然是判斷線段t5-t6與其他線段是否相交,而假設線段t5-t6與其他五條線段(t0-t1、t1-t2……t4-t5)均不相交,即q=0,則確定當前檢測點t6為非相交點。
本公開實施例將不動區(qū)域中的最后一個非相交點稱為第二采樣點,該“最后一個非相交點”的意思是,考慮到在不動區(qū)域中,即使是漂移數據,也不一定每個漂移數據的采樣點都是相交點,可能會出現(xiàn)q=0的漂移數據點,為了保證不動區(qū)域的判斷更加可靠,盡可能將一個區(qū)域部分的全部的漂移數據都包括在不動區(qū)域中,可以設定“在出現(xiàn)第一采樣點之后,如果出現(xiàn)連續(xù)N個采樣點對應的q=0,即連續(xù)N個點都不與追溯的M點線段相交”,則確定不動區(qū)域已經結束了,該連續(xù)N個采樣點的最后一個點可以稱為第二采樣點。
上述的N例如是2M,所述的M和N的具體數值的確定,可以是經驗數值。以M值的確定為例,M值可以是一個經驗參數值,一般使用機器學習算法(如梯度下降法等)對歷史已標定的樣本數據進行統(tǒng)計學習而得出,比如統(tǒng)計歷史數據當M取值多少時在漂移數據集合中將出現(xiàn)線段相交。一個合適的M值,我們期待其可以盡可能的小,因為比較小的M值可以使得算法的計算量得以大幅度減少,同時可以減少周期性運動(如繞著某個區(qū)域繞圈的運動)的影響(如果周期性運動一個周期的采樣點數小于M將被誤判為漂移)。同時,由于漂移行為的隨機性,M值如果過小又會影響通過線段相交判斷的漂移點識別的準確性,使得漂移點識別的準確性下降。此外,還可以結合采樣時間間隔、用戶的運動模式(跑步、騎行)以及運動速度等確定M值,例如,當速度越快的運動,其方向慣性越明顯(如騎行速度及方向慣性比跑步強),此時M值選取越小。N值也可以是經驗值。
此外,還可以在開始對每個采樣點都進行上述檢測區(qū)域內的線段相交的判斷之前,確定智能終端的GPS采樣點的采樣時間間隔小于等于預設時間。例如,假設預設時間是5秒,即可以認為當采樣時間間隔大于5秒時,將使得漂移數據的檢測識別的準確率下降,那么在執(zhí)行上述的采樣點判斷之前,可以判斷采樣時間間隔,如果當前的GPS的采樣間隔在5秒以內時(小于或等于5秒),可以繼續(xù)進行線段相交判斷;而如果采樣間隔大于5秒,則可以不再進行后續(xù)的漂移數據的檢測識別過程。
在上述的線段相交的判斷中,可以采用一些常規(guī)的線段相交判斷算法, 例如,可以使用線段點積法、投影法或者三角形面積法等,不再詳述。需要說明的是,上述方法中確定的“不動區(qū)域”是一個包括“時間”和“空間”因素的區(qū)域,比如,假設第一采樣點是(time1,lat1,lng1),第二采樣點是(time2,lat2,lng2),也就是說,第一采樣點對應的時間是time1,物理位置是(lat1,lng1),第二采樣點對應的時間是time2,物理位置是(lat2,lng2),那么按照采樣點的采樣順序,位于時間范圍“time1至time2”,空間范圍“(lat1,lng1)至(lat2,lng2)”內的采樣點集合稱為不動區(qū)域,不動區(qū)域是在時間和空間上均位于第一采樣點和第二采樣點之間的采樣點集合。這種時空特性的確定,可以避免用戶進行周期性運動(例如繞圈跑步)帶來的軌跡重疊。
經過上述步驟301,根據漂移數據雜亂無章導致采樣點相連的線段相交的特性,確定了包括漂移數據的不動區(qū)域,在步驟302中,將對不動區(qū)域中的漂移數據進行修正。修正的目的是,通過一個不動點來代表該不動區(qū)域,該不動點可以是虛擬點,例如,以不動區(qū)域的重心點作為不動點。
參見圖6的示例,原不動區(qū)域中的雜亂無章的漂移數據點,被不動點51所代替,由該不動點51作為不動區(qū)域的代表點補入軌跡點集中,由圖6也可以看到,清理后的軌跡線更加直觀,也將使得運動統(tǒng)計數據更加準確。該不動點51的確定如下:求取不動區(qū)域的重心點,假設不動區(qū)域內采樣點集合為(time1,lat1,lng1),(time2,lat2,lng2)…(timen,latn,lngn),那不動點即重心點的時空兩方面的數值為:
time=(time1+time2+…+timen)/n
lat=(lat1+lat2+…+latn)/n
lng=(lng1+lng2+…+lngn)/n
在確定不動點之后,還可以進一步將不動區(qū)域中的其他點都清除,以使得軌跡線更加清楚。具體的,在清除算法上,可以設計:假設不動區(qū)域中的所有采樣點中與不動點之間的最大距離是r,則可以將與不動點相距r以內,且時間位于第一采樣點和第二采樣點對應時間之間的漂移點濾除。
本公開實施例的漂移數據修正方法,可以在軌跡記錄的過程中進行漂移 數據的實時檢測和修正,因為在該方法中,對每一個采樣點都要依序進行線段交叉的判斷,并在判斷過程中實時的確定不動區(qū)域的邊界點(第一采樣點和第二采樣點),在確定該不動區(qū)域后直接進行漂移數據修正補入軌跡集即可,能夠實現(xiàn)邊記錄軌跡采樣點,邊檢測和修正不動區(qū)域,使得最終形成的軌跡非常直觀和美觀,也使得軌跡統(tǒng)計數據更加準確。
圖7示例了一種漂移數據修正裝置,該裝置用于執(zhí)行上述的漂移數據修正方法,如圖7所示,該裝置可以包括:不動區(qū)域確定模塊71和不動點確定模塊72;其中,
不動區(qū)域確定模塊71,用于在多個全球定位系統(tǒng)GPS采樣點中確定第一采樣點和第二采樣點,所述第一采樣點和第二采樣點之間的采樣點集合作為存在漂移數據的不動區(qū)域;所述第一采樣點是所述不動區(qū)域中首個相交點,所述相交點與之前M個采樣點之間連接的線段相交,所述第二采樣點是所述不動區(qū)域中最后一個非相交點,所述非相交點與之前M個采樣點之間連接的線段不相交;M為自然數;
不動點確定模塊72,用于以所述不動區(qū)域的重心點作為不動點,所述不動點用于作為所述不動區(qū)域的代表點補入軌跡點集中。
圖8示例了另一種漂移數據修正裝置,在圖7結構的基礎上,該裝置中的不動區(qū)域確定模塊71可以包括:相交點確定子模塊711、非相交點確定子模塊712和區(qū)域確定子模塊713;其中,
相交點確定子模塊711,用于確定與之前M個采樣點之間連接的線段相交的相交點,包括:若所述第一采樣點與之前的第一個采樣點之間的線段作為第一線段,所述第一采樣點之前第一個采樣點、與所述第一采樣點之前的第二個采樣點之間的線段作為第二線段,以此類推,所述M個GPS采樣點組成M個線段,所述第一線段與其他線段之間至少一個相交,則確定所述第一采樣點為相交點;
非相交點確定子模塊712,用于確定與之前M個采樣點之間連接的線段不相交的非相交點,包括:若所述第一線段與其他線段均不相交,則確定所 述第一采樣點為相交點;
區(qū)域確定子模塊713,用于將所述第一采樣點和第二采樣點之間的采樣點集合作為存在漂移數據的不動區(qū)域。
進一步的,所述區(qū)域確定子模塊713,用于將在時間和空間上均位于所述第一采樣點和第二采樣點之間的采樣點集合,作為不動區(qū)域。
進一步的,所述非相交點確定子模塊712,用于將所述不動區(qū)域中連續(xù)N個非相交點中的最后一個作為第二采樣點,N為自然數。
圖9是根據一示例性實施例示出的一種智能終端900的框圖。例如,裝置900可以是移動電話,計算機,數字廣播終端,消息收發(fā)設備,游戲控制臺,平板設備,醫(yī)療設備,健身設備,個人數字助理等。
參照圖9,裝置900可以包括以下一個或多個組件:處理組件902,存儲器904,電源組件906,多媒體組件908,音頻組件910,輸入/輸出(I/O)的接口912,傳感器組件914,以及通信組件916。
處理組件902通??刂蒲b置900的整體操作,諸如與顯示,電話呼叫,數據通信,相機操作和記錄操作相關聯(lián)的操作。處理元件902可以包括一個或多個處理器920來執(zhí)行指令,以完成上述的方法的全部或部分步驟:在多個全球定位系統(tǒng)GPS采樣點中確定第一采樣點和第二采樣點,所述第一采樣點和第二采樣點之間的采樣點集合作為存在漂移數據的不動區(qū)域;所述第一采樣點是所述不動區(qū)域中首個相交點,所述相交點與之前M個采樣點之間連接的線段相交,所述第二采樣點是所述不動區(qū)域中最后一個非相交點,所述非相交點與之前M個采樣點之間連接的線段不相交;M為自然數;以所述不動區(qū)域的重心點作為不動點,所述不動點用于作為所述不動區(qū)域的代表點補入軌跡點集中。此外,處理組件902可以包括一個或多個模塊,便于處理組件902和其他組件之間的交互。例如,處理部件902可以包括多媒體模塊,以方便多媒體組件909和處理組件902之間的交互。
存儲器904被配置為存儲各種類型的數據以支持在設備900的操作。這些數據的示例包括用于在裝置900上操作的任何應用程序或方法的指令,聯(lián) 系人數據,電話簿數據,消息,圖片,視頻等。存儲器904可以由任何類型的易失性或非易失性存儲設備或者它們的組合實現(xiàn),如靜態(tài)隨機存取存儲器(SRAM),電可擦除可編程只讀存儲器(EEPROM),可擦除可編程只讀存儲器(EPROM),可編程只讀存儲器(PROM),只讀存儲器(ROM),磁存儲器,快閃存儲器,磁盤或光盤。
電力組件906為裝置900的各種組件提供電力。電力組件906可以包括電源管理系統(tǒng),一個或多個電源,及其他與為裝置900生成、管理和分配電力相關聯(lián)的組件。
多媒體組件908包括在所述裝置900和用戶之間的提供一個輸出接口的屏幕。在一些實施例中,屏幕可以包括液晶顯示器(LCD)和觸摸面板(TP)。如果屏幕包括觸摸面板,屏幕可以被實現(xiàn)為觸摸屏,以接收來自用戶的輸入信號。觸摸面板包括一個或多個觸摸傳感器以感測觸摸、滑動和觸摸面板上的手勢。所述觸摸傳感器可以不僅感測觸摸或滑動動作的邊界,而且還檢測與所述觸摸或滑動操作相關的持續(xù)時間和壓力。在一些實施例中,多媒體組件908包括一個前置攝像頭和/或后置攝像頭。當設備900處于操作模式,如拍攝模式或視頻模式時,前置攝像頭和/或后置攝像頭可以接收外部的多媒體數據。每個前置攝像頭和后置攝像頭可以是一個固定的光學透鏡系統(tǒng)或具有焦距和光學變焦能力。
音頻組件910被配置為輸出和/或輸入音頻信號。例如,音頻組件910包括一個麥克風(MIC),當裝置900處于操作模式,如呼叫模式、記錄模式和語音識別模式時,麥克風被配置為接收外部音頻信號。所接收的音頻信號可以被進一步存儲在存儲器904或經由通信組件916發(fā)送。在一些實施例中,音頻組件910還包括一個揚聲器,用于輸出音頻信號。
I/O接口912為處理組件902和外圍接口模塊之間提供接口,上述外圍接口模塊可以是鍵盤,點擊輪,按鈕等。這些按鈕可包括但不限于:主頁按鈕、音量按鈕、啟動按鈕和鎖定按鈕。
傳感器組件914包括一個或多個傳感器,用于為裝置900提供各個方面 的狀態(tài)評估。例如,傳感器組件914可以檢測到設備900的打開/關閉狀態(tài),組件的相對定位,例如所述組件為裝置900的顯示器和小鍵盤,傳感器組件914還可以檢測裝置900或裝置900一個組件的位置改變,用戶與裝置900接觸的存在或不存在,裝置900方位或加速/減速和裝置900的溫度變化。傳感器組件914可以包括接近傳感器,被配置用來在沒有任何的物理接觸時檢測附近物體的存在。傳感器組件914還可以包括光傳感器,如CMOS或CCD圖像傳感器,用于在成像應用中使用。在一些實施例中,該傳感器組件914還可以包括加速度傳感器,陀螺儀傳感器,磁傳感器,壓力傳感器或溫度傳感器。
通信組件916被配置為便于裝置900和其他設備之間有線或無線方式的通信。裝置900可以接入基于通信標準的無線網絡,如WiFi,2G或3G,或它們的組合。在一個示例性實施例中,通信部件916經由廣播信道接收來自外部廣播管理系統(tǒng)的廣播信號或廣播相關信息。在一個示例性實施例中,所述通信部件916還包括近場通信(NFC)模塊,以促進短程通信。例如,在NFC模塊可基于射頻識別(RFID)技術,紅外數據協(xié)會(IrDA)技術,超寬帶(UWB)技術,藍牙(BT)技術和其他技術來實現(xiàn)。
在示例性實施例中,裝置900可以被一個或多個應用專用集成電路(ASIC)、數字信號處理器(DSP)、數字信號處理設備(DSPD)、可編程邏輯器件(PLD)、現(xiàn)場可編程門陣列(FPGA)、控制器、微控制器、微處理器或其他電子元件實現(xiàn),用于執(zhí)行上述方法。
在示例性實施例中,還提供了一種包括指令的非臨時性計算機可讀存儲介質,例如包括指令的存儲器904,上述指令可由裝置900的處理器920執(zhí)行以完成上述方法。例如,所述非臨時性計算機可讀存儲介質可以是ROM、隨機存取存儲器(RAM)、CD-ROM、磁帶、軟盤和光數據存儲設備等。
以上所述僅為本公開的較佳實施例而已,并不用以限制本公開,凡在本公開的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本公開保護的范圍之內。