基于手機傳感器的地鐵乘客位置推測方法
【專利摘要】本發(fā)明公開一種基于手機傳感器的地鐵乘客位置推測方法,包括如下步驟,訓(xùn)練階段,收集來自每一個站點的標(biāo)記好的各種手機加速度傳感器的數(shù)據(jù),從這些數(shù)據(jù)中抽取出相應(yīng)的特征,然后使用機器學(xué)習(xí)的方法學(xué)習(xí)出一組在各個站點之間的分類器,一個站間隔是分類器最基本的識別單元。采集用戶數(shù)據(jù)的階段,讀取用戶手機上的加速度傳感器數(shù)據(jù)并上傳到相應(yīng)的服務(wù)器;識別階段,從服務(wù)器上獲得乘客的手機上的傳感器的相關(guān)數(shù)據(jù),劃分出地鐵數(shù)據(jù)中的站點數(shù)據(jù),利用分類器把站點數(shù)據(jù)映射到每一個站點,基于投票算法來推測出用戶的完整的地鐵乘坐路徑。
【專利說明】
基于手機傳感器的地鐵乘客位置推測方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及一種基于手機傳感器的地鐵乘客位置推測方法,屬于傳感器數(shù)據(jù)處理 分析技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 隨著移動互聯(lián)網(wǎng)的發(fā)展,移動終端的普及,基于地理位置的廣告推送為商戶帶來 了更多的顧客,同時也為顧客帶來了更多的便利。但一般我們乘坐地鐵時,由于網(wǎng)絡(luò)信號不 好,GPS基站等傳統(tǒng)的定位方式通常無法準(zhǔn)確的定位我們當(dāng)前的位置,這樣的情況下,一些 手機應(yīng)用也就不能很好的根據(jù)地理位置來向我們推送合適的廣告。
[0003] 現(xiàn)在有很多的計算機制能夠計算出智能設(shè)備上的加速度傳感器的相關(guān)數(shù)據(jù),從而 進一步估計他們現(xiàn)在的方向和位置。但是這些方法并不能用來取重構(gòu)列車的軌跡。這是因 為和行人以及其他的交通工具相比,地鐵在十字路口的時候,轉(zhuǎn)向的時候更加平穩(wěn),這就意 味著這個時候的加速度傳感器獲得的信息就非常少了,并且對于一些很小的誤差非常敏感 的。所以上述的設(shè)計出來的用于行人的或者私家車的方法,也就是根據(jù)一些微小的信息變 化(轉(zhuǎn)向、消失等)檢測出位置的方法,對于地鐵來說是不現(xiàn)實的。當(dāng)然,我們根據(jù)具體的實 驗也發(fā)現(xiàn),他們的這些方法是不現(xiàn)實的。
[0004] 不過,通過我們的研究發(fā)現(xiàn),雖然一些較小的較細的信息無法反映很多的信息,也 不能從中得到很多的信息,但是,對于一個加速度傳感器和地鐵的特性而言,在兩個相鄰的 地鐵站之間的幾十秒的數(shù)據(jù)采集倒是可以反映很多的信息并且也很容易地找出這些數(shù)據(jù) 之間的各種特征之間的不同(峰值、峰谷在不同方向上的變化等)。我們的方法是在這些特 征比較明顯的傳感器數(shù)據(jù)中,通過機器學(xué)習(xí)的方法,找出具體的比較明顯的特征,然后根據(jù) 這些特征,構(gòu)造分類器,這樣的話,就可以使用分類器來區(qū)分特定的乘客是否經(jīng)過特定的站 點了。(特征:是指數(shù)據(jù)的一些特性,比如說,一組數(shù)據(jù)的特征可以是這組數(shù)據(jù)的大小,均值 或者方差等等,只要是能夠使用它來區(qū)分自己與別的數(shù)據(jù),都可以認(rèn)為是數(shù)據(jù)的特征)
[0005] 我們認(rèn)為這個方法是具有應(yīng)用前景的,至少有以下兩個理由支持我們的說法:首 先,在主要的大城市中,每天都有大量的人乘坐地鐵上班下班等。舉個例子,南京的各種交 通工具統(tǒng)計中顯示,每天大概124萬人次乘坐地鐵,對于上海而言,乘坐地鐵的人就更多了, 大概在900萬左右每天,在地鐵中的廣告推送具有很大的市場前景。所以,這樣的一個算法 是有很大的市場平臺的。其次,用傳感器來定位消耗的電量大大的小于使用GPS等定位方 式,沒有為本來電量就比較拮據(jù)移動設(shè)備增加負(fù)擔(dān)。
【發(fā)明內(nèi)容】
[0006] 發(fā)明目的:為了實現(xiàn)這個目標(biāo),本發(fā)明提供一種基于手機傳感器的地鐵乘客位置 推測方法,解決以下問題:
[0007] 第一:地鐵相對于靜止,行走,或者乘坐其他的交通工具而言,數(shù)據(jù)是隱藏起來的。 我們需要一個很好的方法從這些數(shù)據(jù)中準(zhǔn)確地抽取出地鐵的數(shù)據(jù)來。
[0008] 第二:由于內(nèi)部或者外部的原因,地鐵的數(shù)據(jù)很容易被這些噪音影響。這樣導(dǎo)致的 后果就是,很多的地鐵之間的站點是沒有辦法識別出來的。我們需要一個能夠抵抗這種噪 聲的方法,它能夠在存在這些噪聲的情況下,仍然識別出地鐵的各個的站點。
[0009] 如果一個個人用戶在地鐵上攜帶智能手機的話,通過本發(fā)明的方法,就可以根據(jù) 他的手機上的傳感器采集到的數(shù)據(jù),準(zhǔn)確定位到他的具體的位置信息。
[0010] 技術(shù)方案:一種基于手機傳感器的地鐵乘客位置推測方法,包括如下步驟:
[0011] 訓(xùn)練階段,收集來自每一個站點的標(biāo)記好的各種手機加速度傳感器的數(shù)據(jù),從這 些數(shù)據(jù)中抽取出相應(yīng)的特征,然后使用機器學(xué)習(xí)的方法學(xué)習(xí)出一組在各個站點之間的分類 器,一個站間隔是分類器最基本的識別單元。
[0012] 采集用戶數(shù)據(jù)的階段,讀取用戶手機上的加速度傳感器數(shù)據(jù)并上傳到相應(yīng)的服務(wù) 器;
[0013] 識別階段,從服務(wù)器上獲得乘客的手機上的傳感器的相關(guān)數(shù)據(jù),劃分出地鐵數(shù)據(jù) 中的站點數(shù)據(jù),利用分類器把站點數(shù)據(jù)映射到每一個站點,基于投票算法來推測出用戶的 完整的地鐵乘坐路徑。
[0014] 所述訓(xùn)練階段中,根據(jù)得到的用戶手機加速度傳感器的數(shù)據(jù)進行分類和訓(xùn)練,然 后得到分類器。首先對手機傳感器的數(shù)據(jù)進行坐標(biāo)轉(zhuǎn)換,轉(zhuǎn)換完坐標(biāo)之后,得到的數(shù)據(jù)就是 相對于同一個參照系ENU的數(shù)據(jù)。坐標(biāo)轉(zhuǎn)換之后,用構(gòu)建的分類器將不是地鐵部分的數(shù)據(jù)去 掉。見抽取地鐵相關(guān)的數(shù)據(jù)部分的描述。得到純凈的只含有地鐵相關(guān)的數(shù)據(jù),并且這個數(shù)據(jù) 的參照系是唯一不變的ENU坐標(biāo)系統(tǒng)。接下來的工作是對地鐵數(shù)據(jù)進行劃分操作,劃分結(jié)束 之后,使用樸素貝葉斯的方法進行訓(xùn)練,得到分類器。
[0015] 坐標(biāo)轉(zhuǎn)換:
[0016]從手機上得到的關(guān)于手機的坐標(biāo)[x,y,z],轉(zhuǎn)換成基于ENU的坐標(biāo)4',7',2'],通 過方向傳感器來實現(xiàn)轉(zhuǎn)換,手機中的方向傳感器的數(shù)據(jù)也是一個3維的數(shù)據(jù)[α,β,γ ],這里 的,α是在水平面之間和Y軸之間的夾角,β是X軸與水平線之間的夾角,γ是Y軸在水平線上 的投影和真實的北方向上的夾角,令:<^是¥軸與Z軸在水平方向上投影的夾角,仏是乂軸與Z 軸在水平方向上投影的夾角,γι是X軸與Z軸在水平方向上投影的夾角,Xl,Υ1,Ζ1為手機坐 標(biāo)系中x,y,z軸的加速度。有了這些夾角的數(shù)據(jù),就能夠很容易地確定東西南北,并且準(zhǔn)確 計算出各個向量的分量(位于ENU坐標(biāo)系下的)。我們利用立體幾何公式,向北方向加速度:y cosacos(y-JT)+x cos0cos(Y + yl-3T)+z cos9cos(y+01-jt)、向北方向的加速度:-y cosa cos( γ -π/2)-χ cosPcos( γ + γ 1-π/2)-ζ cos9cos( γ +βΙ-π/2)、垂直方向的加速度:xlsin i3+ylSina+zl sin0對角度進行變換,獲得手機中加速度傳感器在各個方向上的分量。
[0017]抽取地鐵相關(guān)的數(shù)據(jù)
[0018] 建立一個貝葉斯分類器,基于數(shù)據(jù)的HRA(水平方向加速度分量)特性來判斷這些 混合數(shù)據(jù)是不是地鐵的數(shù)據(jù)。
[0019] 將M個乘客手機傳感器數(shù)據(jù)的坐標(biāo)轉(zhuǎn)換后的數(shù)據(jù)作為M個樣本,對這M個樣本的數(shù) 據(jù)使用滑動窗口(WIN)進行分類。使用5個統(tǒng)計指標(biāo)來對這些數(shù)據(jù)進行分類:均值,方差,超 過預(yù)先定義的三個閾值的值的數(shù)目作為分類器的分類特征。首先我們對這M個樣本用滑動 窗口向后滑動取值。對于一個特定的地鐵線,窗口的值被設(shè)定在這個地鐵的最小的站點距 離的一半。我們先將已知的地鐵和非地鐵數(shù)據(jù)放入貝葉斯分類器中訓(xùn)練出一個概率模型, 然后將未知分類的窗口中的數(shù)據(jù)輸入進模型,這樣就可以判斷這個窗口中的數(shù)據(jù)是否是地 鐵相關(guān)的數(shù)據(jù)。
[0020] 如果Win1(窗口)被分成是非地鐵相關(guān)的數(shù)據(jù),但是Wim+dp被分成是地鐵相關(guān)的 數(shù)據(jù),則會繼續(xù)對Win 1+2進行進一步地劃分,如果這個數(shù)據(jù)被歸類為非地鐵的數(shù)據(jù)的話,則 認(rèn)為Win1+1是被錯誤劃分的;否則,一個新的地鐵的數(shù)據(jù),就會被認(rèn)為是在位置Win 1的地方 開始的,這種情況下的時候,進一步對開始的窗口,也就是第(i+l)w-l(w代表窗口的大?。?, (i+l)w-2, ...一個一個進行劃分直到出現(xiàn)第一個被劃分成不是地鐵的數(shù)據(jù)。接下來,如果 開始位置的窗口是在樣本(i+l)w-k(l〈k〈= w),那么地鐵的開始位置就將會被認(rèn)為是在樣 本(i+1 )w-k+w/2的位置。當(dāng)Win1被分成地鐵相關(guān)數(shù)據(jù)時,方法也類似。
[0021] 地鐵相關(guān)數(shù)據(jù)的劃分
[0022] 在獲得地鐵相關(guān)的傳感器數(shù)據(jù)之后,對這些數(shù)據(jù)進行劃分,將這些數(shù)據(jù)的每一段 都對應(yīng)于兩個地鐵站點之間的一段距離。
[0023] 假設(shè)(XllX2J3, ...,Xn}是應(yīng)用程序從用戶的智能設(shè)備中獲取的一系列的地鐵數(shù) 據(jù)的HRA(水平方向加速度分量)。定義了一個滑動的窗口W,窗口的長度Lw等于兩個地鐵站 點之間最少行駛時間的大小。假設(shè)它從X1開始,一個一個數(shù)據(jù)采樣到X1,那么X1的判定就是 在閾值T 1W下同時在窗口Wxi中的數(shù)值是否超過長度95%LW,I {keUd+ld+Lw-HXkCh} >95%1^,標(biāo)記尤.(〃£〇:+:1.........i + ^- 1),這里使用最小化的數(shù)據(jù)值Mean(Wxs)作為潛在的 劃分的點。這個的Mean(Wxs)被定義為在Wxs中的這些數(shù)據(jù)的均值,1^初始值為地鐵暫停時加 速度值的1.5倍。一旦發(fā)現(xiàn)Xs,那么算法就會直接跳過接下來的T2f數(shù)據(jù)值,搜尋下一個暫停 站點的數(shù)據(jù)值X s+T2。這里的!^等于在目標(biāo)地鐵線上的最短的站點間隔之間的距離,將一定 數(shù)量的數(shù)值點當(dāng)做現(xiàn)實中的距離。
[0024] 當(dāng)傳感器數(shù)據(jù)含有很多噪音的時候,選擇一個不恰當(dāng)?shù)腡1,可能會錯過一個或者 幾個劃分的點(注釋,如果1^的值足夠小的話,錯誤的劃分能夠被避免。)。為了處理這個問 題,進一步劃分前面找到的暫停站點的集合。如果在相鄰的兩個站點之間的距離大于這條 地鐵線上的最大的兩個站點之間的距離的話,那么在這段間隔之間,有一些站點劃分被我 們漏掉了。所以,在這個時候,算法就應(yīng)該稍微減少一下T 1的值,然后再重新搜索在這個間 隔里的停靠站點的劃分。為了提高精確度,不斷重復(fù)這個算法,直到所有的劃分的站點的間 隔都沒有超過最大的間隔的時候停止。
[0025] 在對地鐵相關(guān)的傳感器數(shù)據(jù)劃分之后,接著識別其具體對應(yīng)的站點,在站點識別 過程中,為提高站點識別的精確度,進行容忍錯誤的推測算法;具體方法如下:
[0026] 得到分類器數(shù)據(jù)
[0027] 對地鐵相關(guān)數(shù)據(jù)進行去噪處理使得這些數(shù)據(jù)變得光滑,這樣我們就可以很好地過 濾掉那些由于人的手在持手機期間晃動所引起的噪聲;
[0028] 對于一個在特定方向上的加速度樣本Xi來說,使用周圍k個樣本的均值或者它們 附近的值來對加速度樣本X1進行替換,< ,·~'+L1) J1'指平滑后 .2. .2. 2 的加速度值,k指Xi周圍的k個值。
[0029] (1)特征選擇:用來對數(shù)據(jù)進行劃分的特征選擇主要是來自以下的兩個集合:
[0030] 數(shù)據(jù)的統(tǒng)計特征:被抽取特征的地鐵相關(guān)數(shù)據(jù)包括3個數(shù)據(jù) 取的特征主要包括加速度均值、加速度的最大值、加速度的標(biāo)準(zhǔn)差、加速度絕對值的平均 值、分別超過三個預(yù)定義閾值的個數(shù)、分段的長度和六種傅里葉變換的值。
[0031]峰值特征:把地鐵相關(guān)數(shù)據(jù)的加速度曲線劃分在同樣大小的窗口中,然后對每個 窗口的最大值、最小值分別進行排序,找出所有窗口中的最大值和最小值,并且把最大的三 個峰值數(shù)據(jù)作為提取的峰值,最小的三個峰谷作為提取的峰谷。為了進一步提高準(zhǔn)確度,把 窗口的大小設(shè)置為不同的值,重復(fù)幾次以上的處理過程,并且選取三個峰值(峰谷)出現(xiàn)次 數(shù)最多的作為最后的結(jié)果。
[0032] (2)分類:在我們確定哪些特征作為抽取的特征之后,就可以從已經(jīng)收集到的標(biāo)記 好的數(shù)據(jù)中抽取出這些特征,并使用它們進行訓(xùn)練得到識別未知的數(shù)據(jù)是哪一段的分類 器。使用的不是僅僅只有一個分類器,主要使用兩種分類器:改進后的樸素貝葉斯方法和決 策樹。
[0033] 在AdaBoost中,每一個訓(xùn)練樣本集合都會有一個對應(yīng)的權(quán)重。一系列的K個分類器 是通過迭代的方式得到的。在每一輪的學(xué)習(xí)中,來自原來的總的樣本中的數(shù)據(jù)被重新采樣 得到新的訓(xùn)練結(jié)合,進行訓(xùn)練。那些權(quán)重比較高的樣本優(yōu)先被選中。在一個新的分類器1被 學(xué)習(xí)到之后,這些被分離器1分錯的樣本,在M 1+1訓(xùn)練隊的時候會獲得更大的關(guān)注度。對于 決策樹,我們使用也是它的集成的版本:隨機森林算法,它包含了多個決策樹,輸出結(jié)果由 包含決策樹的眾數(shù)決定。
[0034] 盡管我們使用了各種算法去改進分類器,但我們沒有辦法消除所有誤差,為了進 一步提高精度,我們提出了一種能容忍錯誤的推測方法。
[0035] (3)錯誤容忍的軌跡推測
[0036] 假設(shè)地鐵乘客的用戶數(shù)據(jù)由η的段組成,分別為(ShS2lS3lS4,......,S n},并且地 鐵網(wǎng)站有Π 1個站點間隔組成{1^12,13,14,......U。不過我們給出的結(jié)果并不是一個具體 的站點的結(jié)果,而是一個概率矩陣P= [Pu]n*m,這里的表示的是數(shù)據(jù)映射到站點間 隔Ij的概率。
[0037] 推測的結(jié)果必須是η站地鐵的連續(xù)序列,所以推測的集合矽是有限的。舉例來說,我 們假設(shè)這m個站屬于一段地鐵線,這里總共只有2X(m-n+l)種可能集合: ·Λ?Ι」ΚΙ
tW Kl ηε·|土,7Λ;口使用一個基于投票的方法來決定最終的輸出。 在這個方法中,投出一個可能的概率Pbti : Ii-> ....-Mi^1等于每一個分段被匹配到對應(yīng) 車站區(qū)間的概率和
我們選取獲得最高概率的區(qū)間作為我們最終 的推測區(qū)間。
[0039] 有益效果:與現(xiàn)有技術(shù)相比,本發(fā)明方法在用戶乘坐地鐵時,就算完全沒有GPS,網(wǎng) 絡(luò)等定位條件,且能有效的定位出用戶的位置;并且用手機傳感器來就行推測能夠大幅度 節(jié)約手機電量。
【附圖說明】
[0040] 圖1是將手機坐標(biāo)系轉(zhuǎn)化為慣性坐標(biāo)系的圖;
[0041 ]圖2是步行和乘坐地鐵時的水平傳感器數(shù)據(jù)圖;
[0042]圖3是水平傳感器分別在乘坐地鐵,出租車,公交車和靜止時的數(shù)據(jù)圖,(a)公交 車,(b)出租車,(C)地鐵,(d)靜止不動;
[0043] 圖4是停止位置時的數(shù)據(jù)說明圖;
[0044] 圖5是原數(shù)據(jù)和平滑后的數(shù)據(jù)比較圖,(a)采集的原生態(tài)數(shù)據(jù),(b)平滑的數(shù)據(jù);
[0045] 圖6是峰值選擇示意圖;
[0046] 圖7是精確抽取地鐵相關(guān)的數(shù)據(jù)圖,(a)優(yōu)化以前,(b)優(yōu)化之后;
[0047] 圖8是劃分精度測量,通過編輯在不同站點之間的結(jié)果;
[0048] 圖9是南京、蘇州、上海的推測的精確度。
【具體實施方式】
[0049] 下面結(jié)合具體實施例,進一步闡明本發(fā)明,應(yīng)理解這些實施例僅用于說明本發(fā)明 而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對本發(fā)明的各種等價 形式的修改均落于本申請所附權(quán)利要求所限定的范圍。
[0050] 基于手機傳感器的地鐵乘客位置推測方法,整體概述如下步驟:
[0051] 訓(xùn)練階段,收集來自每一個站點的標(biāo)記好的各種手機加速度傳感器的數(shù)據(jù),使用 一些列的預(yù)處理操作從這些數(shù)據(jù)中抽取出相應(yīng)的特征,然后使用機器學(xué)習(xí)的方法學(xué)習(xí)出一 組在各個站點之間的分類器,一個站間隔是分類器最基本的識別單元。
[0052] 采集用戶數(shù)據(jù)的階段,讀取用戶手機上的加速度傳感器數(shù)據(jù)并上傳到相應(yīng)的服務(wù) 器;
[0053]識別階段,我們從服務(wù)器上獲得乘客的手機上的傳感器的相關(guān)數(shù)據(jù),采用一些預(yù) 處理的方法從加速度傳感器數(shù)據(jù)中提取地鐵數(shù)據(jù),劃分出地鐵數(shù)據(jù)中的站點數(shù)據(jù),利用前 面得到的分類器把站點數(shù)據(jù)映射到每一個站點,最后使用給予投票的算法來推測出用戶的 完整的地鐵乘坐路徑。
[0054]方法的詳細介紹:
[0055] 訓(xùn)練階段中,根據(jù)得到的用戶手機加速度傳感器的數(shù)據(jù)進行分類和訓(xùn)練,然后得 到分類器。不過,我們直接從手機中獲得的加速度傳感器的數(shù)據(jù)是不能直接使用的,因為直 接得到的手機加速度傳感器的數(shù)據(jù)中的相關(guān)的參數(shù)是對應(yīng)于每一個手機的自己的特性的, 因此我們需要對手機加速度傳感器的數(shù)據(jù)進行坐標(biāo)轉(zhuǎn)換。轉(zhuǎn)換完坐標(biāo)之后,得到的數(shù)據(jù)就 是相對于同一個參照系ENU的數(shù)據(jù)。(詳細方法見下面的坐標(biāo)轉(zhuǎn)換部分描述)
[0056] 坐標(biāo)轉(zhuǎn)換之后,用構(gòu)建的分類器將不是地鐵部分的數(shù)據(jù)去掉,見抽取地鐵相關(guān)的 數(shù)據(jù)部分的描述。完成以上操作,我們就可以得到純凈的只含有地鐵相關(guān)的數(shù)據(jù),并且這個 數(shù)據(jù)的參照系是唯一不變的ENU坐標(biāo)系統(tǒng)。接下來的工作是對地鐵數(shù)據(jù)進行劃分操作,因為 得到的數(shù)據(jù)是一堆混亂的數(shù)據(jù),我們需要從這些數(shù)據(jù)中,分出每一個站點的數(shù)據(jù)相關(guān)特征, 由于這些數(shù)據(jù)是我們實現(xiàn)刻意采集的數(shù)據(jù),所以我們是知道每一個劃分之后的數(shù)據(jù)是哪一 個站點的。對數(shù)據(jù)進行的劃分操作,詳細內(nèi)容參照地鐵相關(guān)數(shù)據(jù)的劃分,劃分結(jié)束之后,我 們就可以使用樸素貝葉斯的方法進行訓(xùn)練,得到分類器。到這里,就已經(jīng)完成了前面起到的 數(shù)據(jù)分類器的構(gòu)造工作。
[0057] 坐標(biāo)轉(zhuǎn)換:
[0058]我們提出的方法是基于智能手機上的加速度傳感器的3-axis的結(jié)果進行地鐵用 戶軌跡追蹤的。就如同我們在圖1中所展示的一樣,每一個結(jié)果都是一個3維的向量[x,y, Z],這些向量都是基于手機屏幕的坐標(biāo)系統(tǒng)[X,Y,Z]的,不過這個的缺點是它會隨著手機的 晃動發(fā)生改變的。所以,這個系統(tǒng),對于不同的手機來說是不同的。這個就導(dǎo)致一個非常困 難的問題,就是很難從未處理過的數(shù)據(jù)中得到有用方向移動的數(shù)據(jù)。為了解決這個問題我 們引入了另外的一種靜態(tài)的East-Noth-Up(ENU)坐標(biāo)系統(tǒng),我們在圖2中詳細介紹這個系 統(tǒng)。這個系統(tǒng)的優(yōu)點是,它并不會隨著手機的轉(zhuǎn)換或者移動而發(fā)生任何的改變。因此我們在 對數(shù)據(jù)進行分析以前,會把從手機上得到的關(guān)于手機的坐標(biāo)[x,y,z],轉(zhuǎn)換成基于ENU的坐 標(biāo)[X',y',z' ]。
[0059] 由于缺少在兩個坐標(biāo)系統(tǒng)之間的聯(lián)系,所以直接進行轉(zhuǎn)換幾乎是不可能的事情。 所以我們需要使用方向傳感器來幫助我們進行這個工作,這個方向傳感器是基于磁力計的 一個工具。方向傳感器的數(shù)據(jù)也是一個3維德數(shù)據(jù)[α,β,γ ],這里的α是在水平面之間和Y軸 之間的夾角,β是X軸與水平線之間的夾角,γ是Y軸在水平線上的投影和真實的北方向上的 夾角,令:α^Υ軸與Z軸在水平方向上投影的夾角,扮是乂軸與Z軸在水平方向上投影的夾角, γι是X軸與Z軸在水平方向上投影的夾角,Xl,Υ1,Ζ1為手機坐標(biāo)系中x,y,Z軸的加速度。有 了這些夾角的數(shù)據(jù),就能夠很容易地確定東西南北,并且準(zhǔn)確計算出各個向量的分量(位于 ENU額坐標(biāo)系下的)。我們在表1中展示這個變換,角度變換的情形我們在圖1中標(biāo)記出來了。
[0060] 表 1
[0062] 抽取地鐵相關(guān)的數(shù)據(jù)
[0063] 要推測地鐵的路線,首先要獲取地鐵相關(guān)的手機傳感器數(shù)據(jù),即從一大堆加速度 傳感器數(shù)據(jù)中提取地鐵相關(guān)的數(shù)據(jù)。
[0064] 在進行坐標(biāo)系的轉(zhuǎn)換之后,我們所要作的下一步的工作就是在獲取到的乘客的繁 多的數(shù)據(jù)中抽取出哪些數(shù)據(jù)是和地鐵相關(guān)的數(shù)據(jù)。在這些獲得的數(shù)據(jù)中,只有很少的一部 分的數(shù)據(jù)是用戶在坐地鐵的時候產(chǎn)生的數(shù)據(jù)。
[0065] 為了能夠去抽取地鐵相關(guān)的數(shù)據(jù),我們首先需要弄明白地鐵相關(guān)的數(shù)據(jù)和其他的 交通工具中使用加速度傳感器產(chǎn)生的數(shù)據(jù)之間的區(qū)別。圖2展示了一系列的水平方向傳感 器的相關(guān)數(shù)據(jù),這一段數(shù)據(jù)描述的是一個人下地鐵之后開始行走的過程。我們將會發(fā)現(xiàn),行 走的時候的加速度傳感器的振幅與乘坐地鐵的時候相比是非常大。圖3進一步對乘客乘坐 地鐵和大巴,乃至私家車的數(shù)據(jù)進行了進一步的HRA(水平方向加速度分量)圖的比較。我們 仍然能夠發(fā)現(xiàn),地鐵的數(shù)據(jù)的振幅比非地鐵的數(shù)據(jù)的振幅小了很多很多。
[0066] 基于以上的觀察,我們可以直接建立一個簡單貝葉斯分類器(這個分類器的作用 僅僅只是用來區(qū)分哪些數(shù)據(jù)是地鐵相關(guān)的數(shù)據(jù),與后面的分類器作用是不一樣的),基于數(shù) 據(jù)的HRA(水平方向加速度分量)特性來判斷這些混合數(shù)據(jù)是不是地鐵的數(shù)據(jù)。
[0067]假設(shè)我們已經(jīng)拿到乘客手機傳感器數(shù)據(jù)的坐標(biāo)轉(zhuǎn)換后的數(shù)據(jù),并且一共有M個樣 本(一個乘客的數(shù)據(jù)代表一個樣本),我們就可以對這M個樣本的數(shù)據(jù)使用滑動窗口(WIN)進 行分類。我們使用5個統(tǒng)計指標(biāo)來對這些數(shù)據(jù)進行分類:均值,方差,超過預(yù)先定義的三個閾 值的值的數(shù)目作為分類器的分類特征。這個分類的結(jié)果是二值情況的,要么是地鐵的數(shù)據(jù), 要么不是地鐵的數(shù)據(jù)。首先我們對這M個樣本用滑動窗口向后滑動取值。對于一個特定的地 鐵線,窗口的值被設(shè)定在這個地鐵的最小的站點距離的一半。我們先將已知的地鐵和非地 鐵數(shù)據(jù)放入貝葉斯分類器中訓(xùn)練出一個概率模型,然后將未知分類的窗口中的數(shù)據(jù)輸入進 模型,這樣就可以判斷這個窗口中的數(shù)據(jù)是否是地鐵相關(guān)的數(shù)據(jù)。
[0068]如果Win1(窗口)被分成是非地鐵相關(guān)的數(shù)據(jù),但是Wim+dP被分成是地鐵相關(guān)的 數(shù)據(jù),我們則會繼續(xù)對Win1+2進行進一步地劃分,如果這個數(shù)據(jù)被歸類為非地鐵的數(shù)據(jù)的 話,則我們認(rèn)為啊11 1 + 1是被錯誤劃分的。否則,一個新的地鐵的數(shù)據(jù),就會被認(rèn)為是在位置 Win1的地方開始的,這種情況下的時候,我們進一步對開始的窗口,也就是第(i+l)w-l,(i+ I )w-2,... 一個一個進行劃分知道出現(xiàn)第一個被劃分成不是地鐵的數(shù)據(jù)(w代表窗口的大 ?。=酉聛?,如果開始位置的窗□是在樣本(i+l)w-k(l〈k〈=w),那么地鐵的開始位置就將 會被認(rèn)為是在樣本(i+1 )w_k+w/2的位置。當(dāng)Win1被分成地鐵相關(guān)數(shù)據(jù)時,方法也類似。
[0069] 地鐵相關(guān)數(shù)據(jù)的劃分
[0070] 在獲得地鐵相關(guān)的傳感器數(shù)據(jù)之后,我們的下一步的工作就是對這些數(shù)據(jù)進行劃 分,即把地鐵數(shù)據(jù)劃分為和實際對應(yīng)的一站一站的數(shù)據(jù),因為站點間隔是我們在訓(xùn)練階段 的基本的單位,無法再進行下一步的劃分,所以要將這些數(shù)據(jù)的每一段都對應(yīng)于兩個地鐵 站點之間的一段距離。
[0071]正如我們所知道的那樣,地鐵在每一個地鐵站點處僅僅只是暫停,然后乘客進入 地鐵,乘客離開地鐵的簡單的事情。所以,主要的相關(guān)的數(shù)據(jù)就隱藏在這些背后,因此我們 可以通過這些數(shù)據(jù)來推斷地鐵乘客的位置信息。圖4展示了從一條地鐵相關(guān)的數(shù)據(jù)中抽取 出來的HRA(水平方向加速度分量)圖。我們將會發(fā)現(xiàn),在圖中有很多的凹點,這些點的數(shù)據(jù) 值明顯顯得比其他部分的數(shù)據(jù)的值要小很多。根據(jù)我們的分析,這些凹點就是對應(yīng)于地鐵 站點暫停的地點的數(shù)據(jù)。這些地方的數(shù)據(jù)為什么會比其他地方的數(shù)據(jù)小很多?是因為在這 些地點,地鐵是靜止不動的,所以智能手機上的加速度傳感器不會出現(xiàn)在任何方向上的加 速度,因此顯示的數(shù)值要比其他地方小很多很多。所以我們設(shè)計了算法1來自動對這些數(shù)據(jù) 進行劃分,主要是依據(jù)它們的各個間斷點的數(shù)據(jù),從而找出哪些是停靠站點的數(shù)據(jù)。
[0072] 假設(shè)(XllX2J3, ...,Xn}是應(yīng)用程序從用戶的智能設(shè)備中獲取的一系列的地鐵數(shù) 據(jù)的HRA(水平方向加速度分量)。我們提出的方法定義了一個滑動的窗口 W,窗口的長度Lw 等于兩個地鐵站點之間最少行駛時間的大小。假設(shè)它從X1開始,一個一個數(shù)據(jù)采樣到X1,那 么Xi的判定就是在閾值T 1 (T1的初始值為地鐵暫停時加速度值的1.5倍)以下同時在窗口 Wxi 中的數(shù)值是否超過長度95%LW。I {ke {i,i + l,i+Lw-l} =XKTU |>95%LW然后我們標(biāo)記 Xs:(S ei,i+ 1,......J+ f-1)這里使用最小化的數(shù)據(jù)值Mean(Wxs)作為潛在的劃分的點。這個 的Mean(Wxs)被定義為在Wxs中的這些數(shù)據(jù)的均值。一旦我們發(fā)現(xiàn)Xs,那么算法就會直接跳過 接下來的T2(T2的初始值為最小的地鐵站與站之間的間隔)個數(shù)據(jù)值,搜尋下一個暫停站點 的數(shù)據(jù)值X s+T2。這里的T2等于在目標(biāo)地鐵線上的最短的站點間隔之間的距離。
[0073] 上述的處理過程,能夠幫助我們確定哪些點的集合是潛在的劃分點。不過,當(dāng)傳感 器數(shù)據(jù)含有很多噪音的時候,選擇一個不恰當(dāng)?shù)腡 1,可能會錯過一個或者幾個劃分的點(注 釋,如果!^的值足夠小的話,錯誤的劃分能夠被避免。)。為了處理這個問題,我們進一步劃 分我們前面找到的點的集合。如果在相鄰的兩個站點之間的距離大于這條地鐵線上的最大 的兩個站點之間的距離的話,那么我們就知道,在這段間隔之間,有一些站點劃分被我們漏 掉了。所以,在這個時候,算法就應(yīng)該稍微減少一下T1的值,然后再重新搜索在這個間隔里 的??空军c的劃分。為了提高精確度,我們不斷重復(fù)這個算法,直到所有的劃分的站點的間 隔都沒有超過最大的間隔的時候停止。
[0074] 算法1:找到最終的分段點
[0075] 輸入:地鐵相關(guān)的HRA(水平方向加速度分量)數(shù)據(jù),X。
[0076] -個用來識別??奎c的閥值,Tl。
[0077]車站區(qū)間的最大值,Lmax。
[0078] 車長區(qū)間的最小值,Lmin。
[0079] 輸出:最終分段點
[0080] 開始: ordcrdSet=FindScgPoints(X,0,I丄'ngU'i(X), Tl);//調(diào)川丄 2 isStop=ialse; 只栗_ isStop等于false _的話就執(zhí)行 isStop=lalse; OrdcfSct 集合 tmp.Set=:空:;
[0081 ] Τ1 = Τ1 + Δ; 讓i從0到sizeOf(set)依次執(zhí)行 如舉 Se.t[i + 1] - Set[.i] 就執(zhí)燈 isSlop = !also; ImpSci U = FindScgPoinis((X, sct[i]+ Lniin^ sci[i + I ] - Lmin, 11)); set = set.u tmpSet;.
[0082] 返回 set
[0083] 算法2:找到分段點FindSegPoints
[0084] 輸入:X,T1,Lmax,Lmin;//上面的算法說明了
[0085] X的開始和結(jié)束:sldx和eldx;
[0086] 輸出:潛在分段點的集合 [0087]開始: Η?; OrderSct rclScl=^1:; 只要i < el dx - Lmin就執(zhí)行 counl = !Jk e WXi:Xk<Tl||; 如果CQunt > 80%L冒就執(zhí)行
[0088] 找到s e P,i + I, ... , i + win/2 - I}他滿足WXs的均值最小。 rclScl = ? === {Xsi; i+ = Lmin; 否則 i + 十; 返回 retSet;
[0089] 我們的實驗發(fā)現(xiàn),即使采用上面的算法思想優(yōu)化了之后,這個方法仍然存在很多 的錯誤。所以,我們將會給出進一步推測的算法,它具有良好的容錯性,并且取得的效果很 好。
[0090] 得到分類器數(shù)據(jù)
[0091] 到現(xiàn)在為止,我們已經(jīng)討論了如何去劃分地鐵相關(guān)數(shù)據(jù)。在本小節(jié)中,我們會進一 步進行討論,如何去區(qū)分這些這些劃分好的數(shù)據(jù)站點對應(yīng)。也就是說,我們要把前面得到的 數(shù)據(jù),對應(yīng)到地鐵線路上的每一個站點。
[0092] 我們提出方案要我們?nèi)ゲ杉銐驍?shù)量的訓(xùn)練數(shù)據(jù),這樣也就是說對每一個站點間 隔都要采集。然后,我們利用這些已經(jīng)標(biāo)記好的數(shù)據(jù)去學(xué)習(xí)出一個分類器的模型,這個分類 器的模型能夠把返回的數(shù)據(jù)劃分的結(jié)果,轉(zhuǎn)換成各個站點的之間的間隔劃分,這個在最后 的一步推測中是非常重要的。我們現(xiàn)在首先介紹這些特征的選取,然后再介紹分類方法。
[0093] 表 2
LTO%」(1)特祉選擇:用來對數(shù)據(jù)進仃劃分的特祉選擇主要是來目以卜的網(wǎng)個集合:
[0096]數(shù)據(jù)的統(tǒng)計特征:正如我們在表2中看到的那樣,這個集合包含的內(nèi)容是加速度的 數(shù)據(jù),既有時間的范圍,又有頻率的范圍。(包含:1116311,11^1,8七(1,11^¥,11¥111:1,2,3,161^1:11, FFT DC卜6Hz,SE,SP)此外,我們抽取特征的數(shù)據(jù)包含表1中的所有的3個數(shù)據(jù)(ECA,NCA, VCA)。這些特征能夠有效地抓取在這一期間的地鐵的運行的整體的模式。舉個例子,對于去 刻畫地鐵的垂直震動模式,NCA的STD成分是非常有用的。另外在抽取這些特征以前,我們首 先需要對數(shù)據(jù)進行處理使得這些數(shù)據(jù)變得光滑,這樣我們就可以很好地過濾掉那些由于人 的手在持手機期間晃動所引起的噪聲。
[0097] 峰值特征:盡管數(shù)據(jù)的統(tǒng)計特征能夠抓住地鐵在運動過程中的整體的運行模式, 不過仍然會有很多的比較重大的事件,例如在一些特別的位置突然的拐彎等,會被統(tǒng)計特 征忽略。當(dāng)然,這些變化主要是因為地鐵軌跡的突然變化引起的,不過對于在這一段的路徑 分類器來說卻是一個非常理想的特征。這些事件通常會導(dǎo)致加速度傳感器的數(shù)據(jù)出現(xiàn)一個 突然的波峰或者出現(xiàn)波谷。所以,去抓取這種比較明顯的特征的時候,我們也抓取包含了加 速度的在某一個坐標(biāo)軸方向出現(xiàn)波峰或者波谷的情況在內(nèi)。不過,這些特征并不是很容易 去抽取到的。我們接下來闡述。
[0098] 去噪:,加速度傳感器的數(shù)據(jù)含有很多由于使用者的手的移動所造成的噪音,圖5(a) 展示了當(dāng)一個智能手機用戶在靜止的時候,晃動他的手機的時候加速度傳感器的數(shù)據(jù)。我們 能夠發(fā)現(xiàn),這樣的晃動也會產(chǎn)生很明顯的峰值或者峰谷,有的時候,會比地鐵的產(chǎn)生的波峰波 谷的更大。我們使用了一個簡單的技巧,使得這些數(shù)據(jù)變得比較光滑,同時也減少這些噪聲產(chǎn) 生的干擾。對于一個在特定方向上的加速度樣本X 1來說,處理他們的技巧就是使用這個K個樣 本的均值或者它們附近的值來對這些數(shù)據(jù)進行替換
我們展示了數(shù)據(jù)經(jīng)過平滑化處理之后的加速度傳感器的數(shù)據(jù),在圖5(b)中我們將會發(fā)現(xiàn), 很多比較明顯的,很大的峰值變得小了很多很多,并且他們的峰值和峰谷現(xiàn)在已經(jīng)沒有辦 法再影響我們想要的數(shù)據(jù)特征的抽取了。這個方法的依據(jù)是,因為人們的手在移動的時候, 很多的時候,都是突然地移動,很快地從一個方向移動到另外一個方向,并且持續(xù)的時間是 非常短的,因此,對它們進行相加,能夠相互抵消。相反,由于地鐵的加減速引起的加速度的 變化,一般都是在一個方向上的,并且會持續(xù)一段時間的,因此不會相互抵消。
[0099] 波峰波谷提?。海鐖D6中所展示的那樣,我們把一個特定的加速度曲線劃分在同 樣大小的窗口中,然后對它們進行排序,找出它們中的最大值和最小值,并且把最大的三個 峰值數(shù)據(jù)作為我們想要的峰值,最小的三個峰谷作為我們想要的峰谷。不過,即使這個窗口 的大小設(shè)置地非常好的時候,這種方法也是會產(chǎn)生錯誤的。舉個例子,在圖6中的窗口中不 僅僅錯過了想要的峰值,而且還找到了一個錯誤的峰值。為了進一步提高準(zhǔn)確度,我們把窗 口的大小設(shè)置為不同的值,重復(fù)幾次以上的處理過程,并且選取三個峰值(峰谷)出現(xiàn)次數(shù) 最多的作為最后的結(jié)果。
[0100] 分類:在我們確定哪些特征作為抽取的特征之后,我們就可以從已經(jīng)收集到的標(biāo) 記好的數(shù)據(jù)中抽取出這些特征,并使用它們進行訓(xùn)練得到識別未知的數(shù)據(jù)的分類器。我們 使用的不是僅僅只有一個分類器,我們使用的是基于多個基礎(chǔ)、多個類別的分類器,是一種 結(jié)合了分類結(jié)果的改進之后的分類方法(adaboost的算法思想),總體來說,這個分類方法 是非常好的。最后的結(jié)果是基于簡單分類器的投票結(jié)果的。我們主要使用兩類分類器:改進 后的樸素貝葉斯方法和決策樹。
[0101] 為了提高樸素貝葉斯的精度,我們使用的是基于AdaBoost改進的貝葉斯算法(參 考來源Y.Freund and R.E · Schapire,"A desicion-theoretic generalization of online learning and an application to boosting,''inComputational learning theory · Springer,1995,pp· 23-37 ·)。在AdaBoost中,每一個訓(xùn)練樣本集合都會有一個對應(yīng) 的權(quán)重。一系列的K個分類器是通過迭代的方式得到的。在每一輪的學(xué)習(xí)中,來自原來的總 的樣本中的數(shù)據(jù)被重新采樣得到新的訓(xùn)練結(jié)合,進行訓(xùn)練。那些權(quán)重比較高的樣本優(yōu)先被 選中。在一個新的分類器M 1被學(xué)習(xí)到之后,這些被分離器1分錯的樣本,在M1+1訓(xùn)練隊的時候 會獲得更大的關(guān)注度。對于決策樹,我們使用也是它的集成的版本:隨機森林算法,它包含 了多個決策樹,輸出結(jié)果由包含決策樹的眾數(shù)決定。
[0102]盡管我們使用了各種算法去改進分類器,但我們沒有辦法消除所有誤差,為了進 一步提高精度,我們提出了一種能容忍錯誤的推測方法。
[0103] 用戶數(shù)據(jù)采集階段:
[0104] 這一階段只要的工作就是在用戶的手機或者移動設(shè)備商安裝我們開發(fā)的程序,然 后,該程序會自動上傳它收集到的用戶手機上的相關(guān)的數(shù)據(jù)到遠方的服務(wù)器上去。
[0105] 乘客位置的推測:
[0106] 前面提到,我們的服務(wù)器收到我們的程序上傳的乘客手機上的數(shù)據(jù)。然后我們對 這些數(shù)據(jù)進行一下操作:第一步,進行坐標(biāo)轉(zhuǎn)換,當(dāng)然和前面的坐標(biāo)轉(zhuǎn)換工作是一樣的,為 的就是把數(shù)據(jù)變成在在同一個參照系ENU下的數(shù)據(jù)。第二步,是提取地鐵相關(guān)數(shù)據(jù)。第三步, 對前面兩步已經(jīng)處理好的數(shù)據(jù)進行劃分。第四步,對站點進行識別,第五步,對用戶的數(shù)據(jù) 進行推測,具體的推測方法如下:
[0107] 錯誤容忍的軌跡推測
[0108] 假設(shè)地鐵乘客的用戶數(shù)據(jù)由η的段組成,分別為(ShS2lS3lS4,......,S n},并且地 鐵網(wǎng)站有Π 1個站點間隔組成{1^12,13,14,......In}。不過我們給出的結(jié)果并不是一個具體 的站點的結(jié)果。而是一個概率矩陣P= [PU]-,這里的表示的是數(shù)據(jù)映射到站點間 隔Ij的概率,如表4所示。
[0109] 推測的結(jié)果必須是η站地鐵的連續(xù)序列,所以推測的集合狩是有限的。舉例來說, 我們假設(shè)這m個站屬于一段地鐵線,這里總共只有2X(m-n+l)種可能集合: In, /2 Vi ^π+1? > ^vi-n+t ^ ^πι} °
[0110] 我們可以考慮所有的可能性,然后使用一個基于投票的方法來決定最終的輸出。 在這個方法中,投出一個可能的概率Pbti: Ii->....-Mit1等于每一個分段被匹配到對應(yīng) 車站區(qū)間的概率和。舉個例子:VotetPMi = SJU /^+;·-:!)我們選取獲得最高概率的作為我 們最終的推測區(qū)間。這個方法能容忍單個分段的分類錯誤。原因如下:
[0111] (1)對于每一個數(shù)據(jù)劃分,我們不僅僅考慮的是優(yōu)化的映射,也考慮其他的可能性 的。當(dāng)然,我們這么做也是有的時候,會由于分類器的劃分的錯誤導(dǎo)致優(yōu)化的映射可能是不 正確的。
[0112] (2)我們的最后的結(jié)果的是深入考慮了很多因素的,細致到這條軌跡上的每一個 站點的可能的結(jié)果。這樣的話,出現(xiàn)一個或者較少幾個錯誤站點的情況的時候,并不會影響 整體的結(jié)果。
[0113] 實際測試結(jié)果展示
[0114] 為了能夠評價我們的方法,我們招募了 15個志愿者,收集了超過120小時的乘坐地 鐵的數(shù)據(jù)。我們的數(shù)據(jù)集主要是在3個主要的城市中的6條地鐵線上,這些地鐵線上的站點 采集的站點超過了50個站點,當(dāng)然,為了更加實際,我們使用的智能設(shè)備是12種不同的智能 手機。我們采集的數(shù)據(jù)的說明在表3中有更加詳細的說明。
[0115]表3
L〇117」每一個志愿者攜帶/ 一部安裝有我們目己升友的數(shù)據(jù)收集應(yīng)用程序的安皁手機。 這個應(yīng)用會每隔0.1s讀取一次方向傳感器和加速度傳感器的數(shù)據(jù)。在整個實驗過程中,參 與實驗的志愿者像平時一樣手持手機采集數(shù)據(jù)。我們最終收集到的數(shù)據(jù)超過270條地鐵數(shù) 據(jù),我們接下來會對我們提出的方法的高效性進行評估。
[0118]我們主要從以下三個方面來評估我們的工作:
[0119] 1,抽取地鐵相關(guān)數(shù)據(jù)的精確度
[0120]我們首先測試的是我們提出的抽取地鐵相關(guān)數(shù)據(jù)的精確度。為了達到這個目的, 我們除了收集了地鐵相關(guān)的數(shù)據(jù),我們還收集了一些其他的四種交通工具,步行,靜止,公 交車,私家車的數(shù)據(jù),每一種交通數(shù)據(jù)的時間是1.5小時。我們把這些數(shù)據(jù)序列劃分成100個 左右的數(shù)據(jù)段(包括40條地鐵相關(guān)的數(shù)據(jù)),然后使用我們在前面介紹的分類器對這些數(shù)據(jù) 進行分類。每一種數(shù)據(jù)被劃分成地鐵的數(shù)據(jù)的百分比見圖7(a)。我們發(fā)現(xiàn),在抽取過程中只 有很少的錯誤會發(fā)生。不過,當(dāng)我們使用我們在前面提出方法的進一步的優(yōu)化的時候,超過 99%的地鐵數(shù)據(jù)能夠被正確識別,并且不會產(chǎn)生一些其他的錯誤。
[0121 ] 2,地鐵數(shù)據(jù)劃分的精確度
[0122] 我們現(xiàn)在評價一下我們在前面提出的地鐵數(shù)據(jù)劃分的算法的精確度。我們使用編輯 距離(Edit Distance)來進行評價,這種方法對不同的字符串的量化區(qū)分是十分有效的。假設(shè) A = 4?是真實的數(shù)據(jù)序列劃分點,在算法1執(zhí)行之后,則會得到B = Xfc1Xfc2… 編輯距離ED(A,B)被定義為從A到B經(jīng)過的最少的轉(zhuǎn)換次數(shù)。這里,定義不同的字符串標(biāo)記形 式表示節(jié)點,力,和為^是相等的話,也就是說I js_kt I <10s,這里的10s,是地鐵的最短的暫停 時間的一半。我們對我們的數(shù)據(jù)集中的每一條數(shù)據(jù)進行劃分,得到的編輯距離分布的CDF圖 如圖8所示。我們能夠發(fā)現(xiàn),和真實的數(shù)據(jù)相比,90%以上的數(shù)據(jù)錯誤的站點不會超過2個。 所以我們使用在F地鐵相關(guān)數(shù)據(jù)劃分中提出的具有良好容錯性能的方法來解決這個問題。
[0123] 3,地鐵位置信息推測的精確度
[0124] 我們評價我們提出的使用監(jiān)督學(xué)習(xí)(得到分類器數(shù)據(jù)部分)的位置推測的精確度。 為了簡單起見,我們使用的主要是我們在A城市中采集的數(shù)據(jù)為例來評價我們的基本方法 (也就是我們前面提到的第一種方法)的準(zhǔn)確度。對于A城市,我們總共收集了 40組地鐵相關(guān) 的數(shù)據(jù),每一條數(shù)據(jù)對應(yīng)以一段10個站點的長度。對于每次評估,我們選出40條中的39條作 為訓(xùn)練,剩下的1條數(shù)據(jù)作為測試數(shù)據(jù)。
[0125] 我們首先先評估一下總體分類器的分類的精確度。這個評估的結(jié)果見表4。第i行, 第j列的元素對應(yīng)的是站點I1被分類器劃分為站點L的百分率。我們會發(fā)現(xiàn)在這個矩陣的對 角線上的數(shù)據(jù)要遠遠大于在其他地方的數(shù)據(jù),并且對角線上的數(shù)據(jù)就是我們想要的數(shù)據(jù), 因為它就是正確識別站點的精確度。另外,表4也顯示出站點間隔I1,16和I7的識別率要比其 他的站點間隔識別率高很多。通過分析這些站點的映射關(guān)系,我們發(fā)現(xiàn)結(jié)果是非常合理的, 因為所有的這些三個站點間隔數(shù)據(jù)都具有很好的識別特征。
[0126] 接下來我們評估一下我們在前面提出(乘客位置的推測部分的方法)的基于投票 算法的推測機制的結(jié)果情況。在每一輪的評測中,我們?nèi)匀贿x擇40條數(shù)據(jù)中的39條用來訓(xùn) 練,剩下的一條數(shù)據(jù)用來進行測試。由于上下的一段數(shù)據(jù)含有10個數(shù)據(jù)段,我們對它進行劃 分,產(chǎn)生三組子序列,每一個子序列的長度分別是3,5,7個數(shù)據(jù)段。每一個在這些集合中的 數(shù)據(jù)段,都被看作是一個特定的乘客的地鐵數(shù)據(jù)。然后我們應(yīng)用投票算法來推測他的乘坐 地鐵的軌跡。對于這個數(shù)據(jù)段的每一個長度情況下的推測的正確率如圖9所示。我們發(fā)現(xiàn), 隨著乘客地鐵數(shù)據(jù)段的增加,此時我們推測乘客乘坐路徑的準(zhǔn)確度在不斷上升。特別地,當(dāng) 乘客乘坐3站地鐵的時候,推測出用戶正確的乘坐路線的概率在80 %左右。當(dāng)乘客乘坐的地 鐵線的長度上升到7的時候,準(zhǔn)確度的值就會上升到94 %。
[0127] 對于另外的兩個城市的推測的準(zhǔn)確度稍微有點降低,不過,它們也是隨著乘客乘 坐的地鐵的長度的上升而準(zhǔn)確度不斷提高的。特別需要指出的是,當(dāng)乘客乘坐的地鐵的長 度等于5站的時候,6條地鐵線中有4條的識別率都超過80%,并且還有兩條的數(shù)據(jù)超過了 90% 〇
[0128] 衷4:各個間隔映射至Il各個姑點^間的概率分布
【主權(quán)項】
1. 一種基于手機傳感器的地鐵乘客位置推測方法,其特征在于,包括如下步驟: 訓(xùn)練階段,收集來自每一個站點的標(biāo)記好的各種手機加速度傳感器的數(shù)據(jù),從這些數(shù) 據(jù)中抽取出相應(yīng)的特征,然后使用機器學(xué)習(xí)的方法學(xué)習(xí)出一組在各個站點之間的分類器, 一個站間隔是分類器最基本的識別單元。 采集用戶數(shù)據(jù)的階段,讀取用戶手機上的加速度傳感器數(shù)據(jù)并上傳到相應(yīng)的服務(wù)器; 識別階段,從服務(wù)器上獲得乘客的手機上的傳感器的相關(guān)數(shù)據(jù),劃分出地鐵數(shù)據(jù)中的 站點數(shù)據(jù),利用分類器把站點數(shù)據(jù)映射到每一個站點,基于投票算法來推測出用戶的完整 的地鐵乘坐路徑。2. 如權(quán)利要求1所述的基于手機傳感器的地鐵乘客位置推測方法,其特征在于,所述訓(xùn) 練階段中,根據(jù)得到的用戶手機加速度傳感器的數(shù)據(jù)進行分類和訓(xùn)練,然后得到分類器; 首先對手機傳感器的數(shù)據(jù)進行坐標(biāo)轉(zhuǎn)換,轉(zhuǎn)換完坐標(biāo)之后,得到的數(shù)據(jù)就是相對于同 一個參照系ENU的數(shù)據(jù);坐標(biāo)轉(zhuǎn)換之后,用構(gòu)建的分類器將不是地鐵部分的數(shù)據(jù)去掉。得到 純凈的只含有地鐵相關(guān)的數(shù)據(jù),并且這個數(shù)據(jù)的參照系是唯一不變的ENU坐標(biāo)系統(tǒng)。接下來 的工作是對地鐵數(shù)據(jù)進行劃分操作,劃分結(jié)束之后,使用樸素貝葉斯的方法進行訓(xùn)練,得到 分類器。3. 如權(quán)利要求2所述的基于手機傳感器的地鐵乘客位置推測方法,其特征在于,從手機 上得到的關(guān)于手機的坐標(biāo)[x,y,z],轉(zhuǎn)換成基于ENU的坐標(biāo)[X',y',z' ],通過方向傳感器來 實現(xiàn)轉(zhuǎn)換,手機中的方向傳感器的數(shù)據(jù)也是一個3維的數(shù)據(jù)[α,β,γ ],這里的,α是在水平面 之間和Y軸之間的夾角,β是X軸與水平線之間的夾角,γ是Y軸在水平線上的投影和真實的 北方向上的夾角,令:<^是¥軸與Z軸在水平方向上投影的夾角,仏是乂軸與Z軸在水平方向上 投影的夾角,γι是X軸與Z軸在水平方向上投影的夾角,Xl,Υ1,Ζ1為手機坐標(biāo)系中x,y,ζ軸 的加速度;有了這些夾角的數(shù)據(jù),就能夠很容易地確定東西南北,并且準(zhǔn)確計算出各個向量 的分量(位于ENU坐標(biāo)系下的)。利用立體幾何公式:向北方向加速度:y cosacos( γ -π)+χ 〇〇80(3〇8(丫 + 丫1-31)+2(3〇89(3〇8(丫+01-31)、向北方向的加速度:-;7(3〇8叱〇8(丫-31/2)-叉 cos0cos(y + yl-Jr/2)-z cos9cos(y+01-Jr/2)、垂直方向的加速度:xl sinP+yl sina+zl sin0對角度進行變換,獲得手機中加速度傳感器在各個方向上的分量。4. 如權(quán)利要求1所述的基于手機傳感器的地鐵乘客位置推測方法,其特征在于,建立一 個貝葉斯分類器,基于數(shù)據(jù)的HRA特性來判斷這些混合數(shù)據(jù)是不是地鐵的數(shù)據(jù)。 將M個乘客手機傳感器數(shù)據(jù)的坐標(biāo)轉(zhuǎn)換后的數(shù)據(jù)作為M個樣本,對這M個樣本的數(shù)據(jù)使 用滑動窗口(WIN)進行分類;使用5個統(tǒng)計指標(biāo)來對這些數(shù)據(jù)進行分類:均值,方差,超過預(yù) 先定義的三個閾值的點的數(shù)目作為分類器的分類特征;首先對這M個樣本用滑動窗口向后 滑動取值;對于一個特定的地鐵線,窗口的值被設(shè)定在這個地鐵的最小的站點距離的一半, 先將已知的地鐵和非地鐵數(shù)據(jù)放入貝葉斯分類器中訓(xùn)練出一個概率模型,然后將未知分類 的窗口中的數(shù)據(jù)輸入進模型,這樣就可以判斷這個窗口中的數(shù)據(jù)是否是地鐵相關(guān)的數(shù)據(jù); 如果Win1(窗口)被分成是非地鐵相關(guān)的數(shù)據(jù),但是啊111+1卻被分成是地鐵相關(guān)的數(shù)據(jù), 則會繼續(xù)對Wirm2進行進一步地劃分,如果這個數(shù)據(jù)被歸類為非地鐵的數(shù)據(jù)的話,則認(rèn)為 Win1+1是被錯誤劃分的;否則,一個新的地鐵的數(shù)據(jù),就會被認(rèn)為是在位置Win1的地方開始 的,這種情況下的時候,進一步對開始的窗口,也就是第(i+l)w-l(w為窗口的大?。?,(i + 1) w-2,···一個一個進行劃分直到出現(xiàn)第一個被劃分成不是地鐵的數(shù)據(jù);接下來,如果開始位 置的窗口是在樣本(i+l)w-k(l〈k〈=w),那么地鐵的開始位置就將會被認(rèn)為是在樣本(i+1) w-k+w/2的位置;當(dāng)Win1被分成地鐵相關(guān)數(shù)據(jù)時,方法也類似。5. 如權(quán)利要求3所述的基于手機傳感器的地鐵乘客位置推測方法,其特征在于,在獲得 地鐵相關(guān)的傳感器數(shù)據(jù)之后,對這些數(shù)據(jù)進行劃分,將這些數(shù)據(jù)的每一段都對應(yīng)于兩個地 鐵站點之間的一段距離; 假設(shè)X3,…,Xn}是應(yīng)用程序從用戶的智能設(shè)備中獲取的一系列的地鐵數(shù)據(jù)的 HRA;定義了一個滑動的窗口W,窗口的長度Lw等于兩個地鐵站點之間最少行駛時間的大?。?假設(shè)滑動的窗口 W從X1開始,一個一個數(shù)據(jù)采樣到X1,那么X1的判定就是在閾值T 1W下同時 在窗口Wxi中的數(shù)值是否超過長度95%Lw,I {ke {i,i + l,i+Lw-l} =XiXTU |>95%Lw,標(biāo)記 石眾ei,i +I,+ f-I).,這里使用最小化的數(shù)據(jù)值Mean(Wxs)作為潛在的劃分的點;這 個的Mean(Wxs)被定義為在%8中的這些數(shù)據(jù)的均值;一旦發(fā)現(xiàn)Xs,那么算法就會直接跳過接 下來的T2f數(shù)據(jù)值,搜尋下一個暫停站點Xs+T2;這里的T2等于在目標(biāo)地鐵線上的最短的站 點間隔之間的距離; 當(dāng)傳感器數(shù)據(jù)含有很多噪音的時候,選擇一個不恰當(dāng)?shù)腡1,可能會錯過一個或者幾個劃 分的點;為了處理這個問題,進一步劃分前面找到的暫停站點的集合;如果在相鄰的兩個站 點之間的距離大于這條地鐵線上的最大的兩個站點之間的距離的話,那么在這段間隔之 間,有一些站點劃分被我們漏掉了;所以,在這個時候,算法就應(yīng)該稍微減小一下T 1的值,然 后再重新搜索在這個間隔里的停靠站點的劃分;為了提高精確度,不斷重復(fù)這個算法,直到 所有的劃分的站點的間隔都沒有超過最大的間隔的時候停止。6. 如權(quán)利要求3所述的基于手機傳感器的地鐵乘客位置推測方法,其特征在于,在對地 鐵相關(guān)的傳感器數(shù)據(jù)劃分之后,接著識別其具體對應(yīng)的站點,在站點識別過程中,為提高站 點識別的精確度,進行容忍錯誤的推測算法;具體方法如下: 得到分類器數(shù)據(jù) 對地鐵相關(guān)數(shù)據(jù)進行去噪處理使得這些數(shù)據(jù)變得光滑: 對于一個在特定方向上的加速度樣本X1來說,使用周圍k個樣本的均值或者它們附近的 值來對加速度樣本Xi進行替換,f i指平滑后的加速度值,用來替代X1,k指X1周圍的 (1) 特征選擇:用來對數(shù)據(jù)進行劃分的特征選擇主要是來自以下的兩個集合: 數(shù)據(jù)的統(tǒng)計特征:被抽取特征的地鐵相關(guān)數(shù)據(jù)包括3個數(shù)據(jù)化04,1^4,¥04),所提取的 特征主要包括加速度均值、加速度的最大值、加速度的標(biāo)準(zhǔn)差、加速度絕對值的平均值、分 別超過三個預(yù)定義閾值的個數(shù)、分段的長度和六種傅里葉變換的值; 峰值特征:把地鐵相關(guān)數(shù)據(jù)的加速度曲線劃分在同樣大小的窗口中,然后對每個窗口 的最大值、最小值分別進行排序,找出所有窗口中的最大值和最小值,并且把最大的三個峰 值數(shù)據(jù)作為提取的峰值,最小的三個峰谷作為提取的峰谷;為了進一步提高準(zhǔn)確度,把窗口 的大小設(shè)置為不同的值,重復(fù)幾次以上的處理過程,并且選取三個峰值和三個峰谷出現(xiàn)次 數(shù)最多的作為最后的結(jié)果; (2) 分類:在確定哪些特征作為抽取的特征之后,從已經(jīng)收集到的標(biāo)記好的數(shù)據(jù)中抽取 出這些特征,并使用它們進行訓(xùn)練得到識別未知的數(shù)據(jù)是哪一段的分類器;使用兩種分類 器:改進后的樸素貝葉斯方法和決策樹; (3)錯誤容忍的軌跡推測 假設(shè)地鐵乘客的用戶數(shù)據(jù)由η的段組成,分別為(ShS2lS3lS4,……,S n},并且地鐵網(wǎng)站 有m個站點間隔組成{ Il ,12,13,14,......In};給出概率矩陣P= [Pi, j]n*m,這里的Pi, j表示的是 數(shù)據(jù)S1被映射到站點間隔的概率;使用基于投票的方法來決定最終的輸出,在投票的方法 中,投m-個可能的概率Pbti: L·-〉··· 等于每一個分段被匹配到對應(yīng)車站區(qū)間的概 率和:選取獲得最高概率的區(qū)間作為最終的推測區(qū)間。
【文檔編號】G01C21/20GK105890600SQ201610231284
【公開日】2016年8月24日
【申請日】2016年4月14日
【發(fā)明人】華景煜, 沈振宇, 張保佳, 仲盛
【申請人】南京大學(xué)