基于手机传感器的地铁乘客位置推测方法

文档序号:10532307阅读:508来源:国知局
基于手机传感器的地铁乘客位置推测方法
【专利摘要】本发明公开一种基于手机传感器的地铁乘客位置推测方法,包括如下步骤,训练阶段,收集来自每一个站点的标记好的各种手机加速度传感器的数据,从这些数据中抽取出相应的特征,然后使用机器学习的方法学习出一组在各个站点之间的分类器,一个站间隔是分类器最基本的识别单元。采集用户数据的阶段,读取用户手机上的加速度传感器数据并上传到相应的服务器;识别阶段,从服务器上获得乘客的手机上的传感器的相关数据,划分出地铁数据中的站点数据,利用分类器把站点数据映射到每一个站点,基于投票算法来推测出用户的完整的地铁乘坐路径。
【专利说明】
基于手机传感器的地铁乘客位置推测方法
技术领域
[0001] 本发明涉及一种基于手机传感器的地铁乘客位置推测方法,属于传感器数据处理 分析技术领域。
【背景技术】
[0002] 随着移动互联网的发展,移动终端的普及,基于地理位置的广告推送为商户带来 了更多的顾客,同时也为顾客带来了更多的便利。但一般我们乘坐地铁时,由于网络信号不 好,GPS基站等传统的定位方式通常无法准确的定位我们当前的位置,这样的情况下,一些 手机应用也就不能很好的根据地理位置来向我们推送合适的广告。
[0003] 现在有很多的计算机制能够计算出智能设备上的加速度传感器的相关数据,从而 进一步估计他们现在的方向和位置。但是这些方法并不能用来取重构列车的轨迹。这是因 为和行人以及其他的交通工具相比,地铁在十字路口的时候,转向的时候更加平稳,这就意 味着这个时候的加速度传感器获得的信息就非常少了,并且对于一些很小的误差非常敏感 的。所以上述的设计出来的用于行人的或者私家车的方法,也就是根据一些微小的信息变 化(转向、消失等)检测出位置的方法,对于地铁来说是不现实的。当然,我们根据具体的实 验也发现,他们的这些方法是不现实的。
[0004] 不过,通过我们的研究发现,虽然一些较小的较细的信息无法反映很多的信息,也 不能从中得到很多的信息,但是,对于一个加速度传感器和地铁的特性而言,在两个相邻的 地铁站之间的几十秒的数据采集倒是可以反映很多的信息并且也很容易地找出这些数据 之间的各种特征之间的不同(峰值、峰谷在不同方向上的变化等)。我们的方法是在这些特 征比较明显的传感器数据中,通过机器学习的方法,找出具体的比较明显的特征,然后根据 这些特征,构造分类器,这样的话,就可以使用分类器来区分特定的乘客是否经过特定的站 点了。(特征:是指数据的一些特性,比如说,一组数据的特征可以是这组数据的大小,均值 或者方差等等,只要是能够使用它来区分自己与别的数据,都可以认为是数据的特征)
[0005] 我们认为这个方法是具有应用前景的,至少有以下两个理由支持我们的说法:首 先,在主要的大城市中,每天都有大量的人乘坐地铁上班下班等。举个例子,南京的各种交 通工具统计中显示,每天大概124万人次乘坐地铁,对于上海而言,乘坐地铁的人就更多了, 大概在900万左右每天,在地铁中的广告推送具有很大的市场前景。所以,这样的一个算法 是有很大的市场平台的。其次,用传感器来定位消耗的电量大大的小于使用GPS等定位方 式,没有为本来电量就比较拮据移动设备增加负担。

【发明内容】

[0006] 发明目的:为了实现这个目标,本发明提供一种基于手机传感器的地铁乘客位置 推测方法,解决以下问题:
[0007] 第一:地铁相对于静止,行走,或者乘坐其他的交通工具而言,数据是隐藏起来的。 我们需要一个很好的方法从这些数据中准确地抽取出地铁的数据来。
[0008] 第二:由于内部或者外部的原因,地铁的数据很容易被这些噪音影响。这样导致的 后果就是,很多的地铁之间的站点是没有办法识别出来的。我们需要一个能够抵抗这种噪 声的方法,它能够在存在这些噪声的情况下,仍然识别出地铁的各个的站点。
[0009] 如果一个个人用户在地铁上携带智能手机的话,通过本发明的方法,就可以根据 他的手机上的传感器采集到的数据,准确定位到他的具体的位置信息。
[0010] 技术方案:一种基于手机传感器的地铁乘客位置推测方法,包括如下步骤:
[0011] 训练阶段,收集来自每一个站点的标记好的各种手机加速度传感器的数据,从这 些数据中抽取出相应的特征,然后使用机器学习的方法学习出一组在各个站点之间的分类 器,一个站间隔是分类器最基本的识别单元。
[0012] 采集用户数据的阶段,读取用户手机上的加速度传感器数据并上传到相应的服务 器;
[0013] 识别阶段,从服务器上获得乘客的手机上的传感器的相关数据,划分出地铁数据 中的站点数据,利用分类器把站点数据映射到每一个站点,基于投票算法来推测出用户的 完整的地铁乘坐路径。
[0014] 所述训练阶段中,根据得到的用户手机加速度传感器的数据进行分类和训练,然 后得到分类器。首先对手机传感器的数据进行坐标转换,转换完坐标之后,得到的数据就是 相对于同一个参照系ENU的数据。坐标转换之后,用构建的分类器将不是地铁部分的数据去 掉。见抽取地铁相关的数据部分的描述。得到纯净的只含有地铁相关的数据,并且这个数据 的参照系是唯一不变的ENU坐标系统。接下来的工作是对地铁数据进行划分操作,划分结束 之后,使用朴素贝叶斯的方法进行训练,得到分类器。
[0015] 坐标转换:
[0016]从手机上得到的关于手机的坐标[x,y,z],转换成基于ENU的坐标4',7',2'],通 过方向传感器来实现转换,手机中的方向传感器的数据也是一个3维的数据[α,β,γ ],这里 的,α是在水平面之间和Y轴之间的夹角,β是X轴与水平线之间的夹角,γ是Y轴在水平线上 的投影和真实的北方向上的夹角,令:<^是¥轴与Z轴在水平方向上投影的夹角,仏是乂轴与Z 轴在水平方向上投影的夹角,γι是X轴与Z轴在水平方向上投影的夹角,Xl,Υ1,Ζ1为手机坐 标系中x,y,z轴的加速度。有了这些夹角的数据,就能够很容易地确定东西南北,并且准确 计算出各个向量的分量(位于ENU坐标系下的)。我们利用立体几何公式,向北方向加速度: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]抽取地铁相关的数据
[0018] 建立一个贝叶斯分类器,基于数据的HRA(水平方向加速度分量)特性来判断这些 混合数据是不是地铁的数据。
[0019] 将M个乘客手机传感器数据的坐标转换后的数据作为M个样本,对这M个样本的数 据使用滑动窗口(WIN)进行分类。使用5个统计指标来对这些数据进行分类:均值,方差,超 过预先定义的三个阈值的值的数目作为分类器的分类特征。首先我们对这M个样本用滑动 窗口向后滑动取值。对于一个特定的地铁线,窗口的值被设定在这个地铁的最小的站点距 离的一半。我们先将已知的地铁和非地铁数据放入贝叶斯分类器中训练出一个概率模型, 然后将未知分类的窗口中的数据输入进模型,这样就可以判断这个窗口中的数据是否是地 铁相关的数据。
[0020] 如果Win1(窗口)被分成是非地铁相关的数据,但是Wim+dp被分成是地铁相关的 数据,则会继续对Win 1+2进行进一步地划分,如果这个数据被归类为非地铁的数据的话,则 认为Win1+1是被错误划分的;否则,一个新的地铁的数据,就会被认为是在位置Win 1的地方 开始的,这种情况下的时候,进一步对开始的窗口,也就是第(i+l)w-l(w代表窗口的大小), (i+l)w-2, ...一个一个进行划分直到出现第一个被划分成不是地铁的数据。接下来,如果 开始位置的窗口是在样本(i+l)w-k(l〈k〈= w),那么地铁的开始位置就将会被认为是在样 本(i+1 )w-k+w/2的位置。当Win1被分成地铁相关数据时,方法也类似。
[0021] 地铁相关数据的划分
[0022] 在获得地铁相关的传感器数据之后,对这些数据进行划分,将这些数据的每一段 都对应于两个地铁站点之间的一段距离。
[0023] 假设(XllX2J3, ...,Xn}是应用程序从用户的智能设备中获取的一系列的地铁数 据的HRA(水平方向加速度分量)。定义了一个滑动的窗口W,窗口的长度Lw等于两个地铁站 点之间最少行驶时间的大小。假设它从X1开始,一个一个数据采样到X1,那么X1的判定就是 在阈值T 1W下同时在窗口Wxi中的数值是否超过长度95%LW,I {keUd+ld+Lw-HXkCh} >95%1^,标记尤.(〃£〇:+:1.........i + ^- 1),这里使用最小化的数据值Mean(Wxs)作为潜在的 划分的点。这个的Mean(Wxs)被定义为在Wxs中的这些数据的均值,1^初始值为地铁暂停时加 速度值的1.5倍。一旦发现Xs,那么算法就会直接跳过接下来的T2f数据值,搜寻下一个暂停 站点的数据值X s+T2。这里的!^等于在目标地铁线上的最短的站点间隔之间的距离,将一定 数量的数值点当做现实中的距离。
[0024] 当传感器数据含有很多噪音的时候,选择一个不恰当的T1,可能会错过一个或者 几个划分的点(注释,如果1^的值足够小的话,错误的划分能够被避免。)。为了处理这个问 题,进一步划分前面找到的暂停站点的集合。如果在相邻的两个站点之间的距离大于这条 地铁线上的最大的两个站点之间的距离的话,那么在这段间隔之间,有一些站点划分被我 们漏掉了。所以,在这个时候,算法就应该稍微减少一下T 1的值,然后再重新搜索在这个间 隔里的停靠站点的划分。为了提高精确度,不断重复这个算法,直到所有的划分的站点的间 隔都没有超过最大的间隔的时候停止。
[0025] 在对地铁相关的传感器数据划分之后,接着识别其具体对应的站点,在站点识别 过程中,为提高站点识别的精确度,进行容忍错误的推测算法;具体方法如下:
[0026] 得到分类器数据
[0027] 对地铁相关数据进行去噪处理使得这些数据变得光滑,这样我们就可以很好地过 滤掉那些由于人的手在持手机期间晃动所引起的噪声;
[0028] 对于一个在特定方向上的加速度样本Xi来说,使用周围k个样本的均值或者它们 附近的值来对加速度样本X1进行替换,< ,·~'+L1) J1'指平滑后 .2. .2. 2 的加速度值,k指Xi周围的k个值。
[0029] (1)特征选择:用来对数据进行划分的特征选择主要是来自以下的两个集合:
[0030] 数据的统计特征:被抽取特征的地铁相关数据包括3个数据 取的特征主要包括加速度均值、加速度的最大值、加速度的标准差、加速度绝对值的平均 值、分别超过三个预定义阈值的个数、分段的长度和六种傅里叶变换的值。
[0031]峰值特征:把地铁相关数据的加速度曲线划分在同样大小的窗口中,然后对每个 窗口的最大值、最小值分别进行排序,找出所有窗口中的最大值和最小值,并且把最大的三 个峰值数据作为提取的峰值,最小的三个峰谷作为提取的峰谷。为了进一步提高准确度,把 窗口的大小设置为不同的值,重复几次以上的处理过程,并且选取三个峰值(峰谷)出现次 数最多的作为最后的结果。
[0032] (2)分类:在我们确定哪些特征作为抽取的特征之后,就可以从已经收集到的标记 好的数据中抽取出这些特征,并使用它们进行训练得到识别未知的数据是哪一段的分类 器。使用的不是仅仅只有一个分类器,主要使用两种分类器:改进后的朴素贝叶斯方法和决 策树。
[0033] 在AdaBoost中,每一个训练样本集合都会有一个对应的权重。一系列的K个分类器 是通过迭代的方式得到的。在每一轮的学习中,来自原来的总的样本中的数据被重新采样 得到新的训练结合,进行训练。那些权重比较高的样本优先被选中。在一个新的分类器1被 学习到之后,这些被分离器1分错的样本,在M 1+1训练队的时候会获得更大的关注度。对于 决策树,我们使用也是它的集成的版本:随机森林算法,它包含了多个决策树,输出结果由 包含决策树的众数决定。
[0034] 尽管我们使用了各种算法去改进分类器,但我们没有办法消除所有误差,为了进 一步提高精度,我们提出了一种能容忍错误的推测方法。
[0035] (3)错误容忍的轨迹推测
[0036] 假设地铁乘客的用户数据由η的段组成,分别为(ShS2lS3lS4,......,S n},并且地 铁网站有Π 1个站点间隔组成{1^12,13,14,......U。不过我们给出的结果并不是一个具体 的站点的结果,而是一个概率矩阵P= [Pu]n*m,这里的表示的是数据映射到站点间 隔Ij的概率。
[0037] 推测的结果必须是η站地铁的连续序列,所以推测的集合矽是有限的。举例来说,我 们假设这m个站属于一段地铁线,这里总共只有2X(m-n+l)种可能集合: ·Λ?Ι」ΚΙ
tW Kl ηε·|土,7Λ;口使用一个基于投票的方法来决定最终的输出。 在这个方法中,投出一个可能的概率Pbti : Ii-> ....-Mi^1等于每一个分段被匹配到对应 车站区间的概率和
我们选取获得最高概率的区间作为我们最终 的推测区间。
[0039] 有益效果:与现有技术相比,本发明方法在用户乘坐地铁时,就算完全没有GPS,网 络等定位条件,且能有效的定位出用户的位置;并且用手机传感器来就行推测能够大幅度 节约手机电量。
【附图说明】
[0040] 图1是将手机坐标系转化为惯性坐标系的图;
[0041 ]图2是步行和乘坐地铁时的水平传感器数据图;
[0042]图3是水平传感器分别在乘坐地铁,出租车,公交车和静止时的数据图,(a)公交 车,(b)出租车,(C)地铁,(d)静止不动;
[0043] 图4是停止位置时的数据说明图;
[0044] 图5是原数据和平滑后的数据比较图,(a)采集的原生态数据,(b)平滑的数据;
[0045] 图6是峰值选择示意图;
[0046] 图7是精确抽取地铁相关的数据图,(a)优化以前,(b)优化之后;
[0047] 图8是划分精度测量,通过编辑在不同站点之间的结果;
[0048] 图9是南京、苏州、上海的推测的精确度。
【具体实施方式】
[0049] 下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明 而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价 形式的修改均落于本申请所附权利要求所限定的范围。
[0050] 基于手机传感器的地铁乘客位置推测方法,整体概述如下步骤:
[0051] 训练阶段,收集来自每一个站点的标记好的各种手机加速度传感器的数据,使用 一些列的预处理操作从这些数据中抽取出相应的特征,然后使用机器学习的方法学习出一 组在各个站点之间的分类器,一个站间隔是分类器最基本的识别单元。
[0052] 采集用户数据的阶段,读取用户手机上的加速度传感器数据并上传到相应的服务 器;
[0053]识别阶段,我们从服务器上获得乘客的手机上的传感器的相关数据,采用一些预 处理的方法从加速度传感器数据中提取地铁数据,划分出地铁数据中的站点数据,利用前 面得到的分类器把站点数据映射到每一个站点,最后使用给予投票的算法来推测出用户的 完整的地铁乘坐路径。
[0054]方法的详细介绍:
[0055] 训练阶段中,根据得到的用户手机加速度传感器的数据进行分类和训练,然后得 到分类器。不过,我们直接从手机中获得的加速度传感器的数据是不能直接使用的,因为直 接得到的手机加速度传感器的数据中的相关的参数是对应于每一个手机的自己的特性的, 因此我们需要对手机加速度传感器的数据进行坐标转换。转换完坐标之后,得到的数据就 是相对于同一个参照系ENU的数据。(详细方法见下面的坐标转换部分描述)
[0056] 坐标转换之后,用构建的分类器将不是地铁部分的数据去掉,见抽取地铁相关的 数据部分的描述。完成以上操作,我们就可以得到纯净的只含有地铁相关的数据,并且这个 数据的参照系是唯一不变的ENU坐标系统。接下来的工作是对地铁数据进行划分操作,因为 得到的数据是一堆混乱的数据,我们需要从这些数据中,分出每一个站点的数据相关特征, 由于这些数据是我们实现刻意采集的数据,所以我们是知道每一个划分之后的数据是哪一 个站点的。对数据进行的划分操作,详细内容参照地铁相关数据的划分,划分结束之后,我 们就可以使用朴素贝叶斯的方法进行训练,得到分类器。到这里,就已经完成了前面起到的 数据分类器的构造工作。
[0057] 坐标转换:
[0058]我们提出的方法是基于智能手机上的加速度传感器的3-axis的结果进行地铁用 户轨迹追踪的。就如同我们在图1中所展示的一样,每一个结果都是一个3维的向量[x,y, Z],这些向量都是基于手机屏幕的坐标系统[X,Y,Z]的,不过这个的缺点是它会随着手机的 晃动发生改变的。所以,这个系统,对于不同的手机来说是不同的。这个就导致一个非常困 难的问题,就是很难从未处理过的数据中得到有用方向移动的数据。为了解决这个问题我 们引入了另外的一种静态的East-Noth-Up(ENU)坐标系统,我们在图2中详细介绍这个系 统。这个系统的优点是,它并不会随着手机的转换或者移动而发生任何的改变。因此我们在 对数据进行分析以前,会把从手机上得到的关于手机的坐标[x,y,z],转换成基于ENU的坐 标[X',y',z' ]。
[0059] 由于缺少在两个坐标系统之间的联系,所以直接进行转换几乎是不可能的事情。 所以我们需要使用方向传感器来帮助我们进行这个工作,这个方向传感器是基于磁力计的 一个工具。方向传感器的数据也是一个3维德数据[α,β,γ ],这里的α是在水平面之间和Y轴 之间的夹角,β是X轴与水平线之间的夹角,γ是Y轴在水平线上的投影和真实的北方向上的 夹角,令:α^Υ轴与Z轴在水平方向上投影的夹角,扮是乂轴与Z轴在水平方向上投影的夹角, γι是X轴与Z轴在水平方向上投影的夹角,Xl,Υ1,Ζ1为手机坐标系中x,y,Z轴的加速度。有 了这些夹角的数据,就能够很容易地确定东西南北,并且准确计算出各个向量的分量(位于 ENU额坐标系下的)。我们在表1中展示这个变换,角度变换的情形我们在图1中标记出来了。
[0060] 表 1
[0062] 抽取地铁相关的数据
[0063] 要推测地铁的路线,首先要获取地铁相关的手机传感器数据,即从一大堆加速度 传感器数据中提取地铁相关的数据。
[0064] 在进行坐标系的转换之后,我们所要作的下一步的工作就是在获取到的乘客的繁 多的数据中抽取出哪些数据是和地铁相关的数据。在这些获得的数据中,只有很少的一部 分的数据是用户在坐地铁的时候产生的数据。
[0065] 为了能够去抽取地铁相关的数据,我们首先需要弄明白地铁相关的数据和其他的 交通工具中使用加速度传感器产生的数据之间的区别。图2展示了一系列的水平方向传感 器的相关数据,这一段数据描述的是一个人下地铁之后开始行走的过程。我们将会发现,行 走的时候的加速度传感器的振幅与乘坐地铁的时候相比是非常大。图3进一步对乘客乘坐 地铁和大巴,乃至私家车的数据进行了进一步的HRA(水平方向加速度分量)图的比较。我们 仍然能够发现,地铁的数据的振幅比非地铁的数据的振幅小了很多很多。
[0066] 基于以上的观察,我们可以直接建立一个简单贝叶斯分类器(这个分类器的作用 仅仅只是用来区分哪些数据是地铁相关的数据,与后面的分类器作用是不一样的),基于数 据的HRA(水平方向加速度分量)特性来判断这些混合数据是不是地铁的数据。
[0067]假设我们已经拿到乘客手机传感器数据的坐标转换后的数据,并且一共有M个样 本(一个乘客的数据代表一个样本),我们就可以对这M个样本的数据使用滑动窗口(WIN)进 行分类。我们使用5个统计指标来对这些数据进行分类:均值,方差,超过预先定义的三个阈 值的值的数目作为分类器的分类特征。这个分类的结果是二值情况的,要么是地铁的数据, 要么不是地铁的数据。首先我们对这M个样本用滑动窗口向后滑动取值。对于一个特定的地 铁线,窗口的值被设定在这个地铁的最小的站点距离的一半。我们先将已知的地铁和非地 铁数据放入贝叶斯分类器中训练出一个概率模型,然后将未知分类的窗口中的数据输入进 模型,这样就可以判断这个窗口中的数据是否是地铁相关的数据。
[0068]如果Win1(窗口)被分成是非地铁相关的数据,但是Wim+dP被分成是地铁相关的 数据,我们则会继续对Win1+2进行进一步地划分,如果这个数据被归类为非地铁的数据的 话,则我们认为啊11 1 + 1是被错误划分的。否则,一个新的地铁的数据,就会被认为是在位置 Win1的地方开始的,这种情况下的时候,我们进一步对开始的窗口,也就是第(i+l)w-l,(i+ I )w-2,... 一个一个进行划分知道出现第一个被划分成不是地铁的数据(w代表窗口的大 小)。接下来,如果开始位置的窗□是在样本(i+l)w-k(l〈k〈=w),那么地铁的开始位置就将 会被认为是在样本(i+1 )w_k+w/2的位置。当Win1被分成地铁相关数据时,方法也类似。
[0069] 地铁相关数据的划分
[0070] 在获得地铁相关的传感器数据之后,我们的下一步的工作就是对这些数据进行划 分,即把地铁数据划分为和实际对应的一站一站的数据,因为站点间隔是我们在训练阶段 的基本的单位,无法再进行下一步的划分,所以要将这些数据的每一段都对应于两个地铁 站点之间的一段距离。
[0071]正如我们所知道的那样,地铁在每一个地铁站点处仅仅只是暂停,然后乘客进入 地铁,乘客离开地铁的简单的事情。所以,主要的相关的数据就隐藏在这些背后,因此我们 可以通过这些数据来推断地铁乘客的位置信息。图4展示了从一条地铁相关的数据中抽取 出来的HRA(水平方向加速度分量)图。我们将会发现,在图中有很多的凹点,这些点的数据 值明显显得比其他部分的数据的值要小很多。根据我们的分析,这些凹点就是对应于地铁 站点暂停的地点的数据。这些地方的数据为什么会比其他地方的数据小很多?是因为在这 些地点,地铁是静止不动的,所以智能手机上的加速度传感器不会出现在任何方向上的加 速度,因此显示的数值要比其他地方小很多很多。所以我们设计了算法1来自动对这些数据 进行划分,主要是依据它们的各个间断点的数据,从而找出哪些是停靠站点的数据。
[0072] 假设(XllX2J3, ...,Xn}是应用程序从用户的智能设备中获取的一系列的地铁数 据的HRA(水平方向加速度分量)。我们提出的方法定义了一个滑动的窗口 W,窗口的长度Lw 等于两个地铁站点之间最少行驶时间的大小。假设它从X1开始,一个一个数据采样到X1,那 么Xi的判定就是在阈值T 1 (T1的初始值为地铁暂停时加速度值的1.5倍)以下同时在窗口 Wxi 中的数值是否超过长度95%LW。I {ke {i,i + l,i+Lw-l} =XKTU |>95%LW然后我们标记 Xs:(S ei,i+ 1,......J+ f-1)这里使用最小化的数据值Mean(Wxs)作为潜在的划分的点。这个 的Mean(Wxs)被定义为在Wxs中的这些数据的均值。一旦我们发现Xs,那么算法就会直接跳过 接下来的T2(T2的初始值为最小的地铁站与站之间的间隔)个数据值,搜寻下一个暂停站点 的数据值X s+T2。这里的T2等于在目标地铁线上的最短的站点间隔之间的距离。
[0073] 上述的处理过程,能够帮助我们确定哪些点的集合是潜在的划分点。不过,当传感 器数据含有很多噪音的时候,选择一个不恰当的T 1,可能会错过一个或者几个划分的点(注 释,如果!^的值足够小的话,错误的划分能够被避免。)。为了处理这个问题,我们进一步划 分我们前面找到的点的集合。如果在相邻的两个站点之间的距离大于这条地铁线上的最大 的两个站点之间的距离的话,那么我们就知道,在这段间隔之间,有一些站点划分被我们漏 掉了。所以,在这个时候,算法就应该稍微减少一下T1的值,然后再重新搜索在这个间隔里 的停靠站点的划分。为了提高精确度,我们不断重复这个算法,直到所有的划分的站点的间 隔都没有超过最大的间隔的时候停止。
[0074] 算法1:找到最终的分段点
[0075] 输入:地铁相关的HRA(水平方向加速度分量)数据,X。
[0076] -个用来识别停靠点的阀值,Tl。
[0077]车站区间的最大值,Lmax。
[0078] 车长区间的最小值,Lmin。
[0079] 输出:最终分段点
[0080] 开始: ordcrdSet=FindScgPoints(X,0,I丄'ngU'i(X), Tl);//调川丄 2 isStop=ialse; 只栗_ isStop等于false _的话就执行 isStop=lalse; OrdcfSct 集合 tmp.Set=:空:;
[0081 ] Τ1 = Τ1 + Δ; 让i从0到sizeOf(set)依次执行 如舉 Se.t[i + 1] - Set[.i] 就执灯 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的开始和结束:sldx和eldx;
[0086] 输出:潜在分段点的集合 [0087]开始: Η?; OrderSct rclScl=^1:; 只要i < el dx - Lmin就执行 counl = !Jk e WXi:Xk<Tl||; 如果CQunt > 80%L冒就执行
[0088] 找到s e P,i + I, ... , i + win/2 - I}他满足WXs的均值最小。 rclScl = ? === {Xsi; i+ = Lmin; 否则 i + 十; 返回 retSet;
[0089] 我们的实验发现,即使采用上面的算法思想优化了之后,这个方法仍然存在很多 的错误。所以,我们将会给出进一步推测的算法,它具有良好的容错性,并且取得的效果很 好。
[0090] 得到分类器数据
[0091] 到现在为止,我们已经讨论了如何去划分地铁相关数据。在本小节中,我们会进一 步进行讨论,如何去区分这些这些划分好的数据站点对应。也就是说,我们要把前面得到的 数据,对应到地铁线路上的每一个站点。
[0092] 我们提出方案要我们去采集足够数量的训练数据,这样也就是说对每一个站点间 隔都要采集。然后,我们利用这些已经标记好的数据去学习出一个分类器的模型,这个分类 器的模型能够把返回的数据划分的结果,转换成各个站点的之间的间隔划分,这个在最后 的一步推测中是非常重要的。我们现在首先介绍这些特征的选取,然后再介绍分类方法。
[0093] 表 2
LTO%」(1)特祉选择:用来对数据进仃划分的特祉选择主要是来目以卜的网个集合:
[0096]数据的统计特征:正如我们在表2中看到的那样,这个集合包含的内容是加速度的 数据,既有时间的范围,又有频率的范围。(包含:1116311,11^1,8七(1,11^¥,11¥111:1,2,3,161^1:11, FFT DC卜6Hz,SE,SP)此外,我们抽取特征的数据包含表1中的所有的3个数据(ECA,NCA, VCA)。这些特征能够有效地抓取在这一期间的地铁的运行的整体的模式。举个例子,对于去 刻画地铁的垂直震动模式,NCA的STD成分是非常有用的。另外在抽取这些特征以前,我们首 先需要对数据进行处理使得这些数据变得光滑,这样我们就可以很好地过滤掉那些由于人 的手在持手机期间晃动所引起的噪声。
[0097] 峰值特征:尽管数据的统计特征能够抓住地铁在运动过程中的整体的运行模式, 不过仍然会有很多的比较重大的事件,例如在一些特别的位置突然的拐弯等,会被统计特 征忽略。当然,这些变化主要是因为地铁轨迹的突然变化引起的,不过对于在这一段的路径 分类器来说却是一个非常理想的特征。这些事件通常会导致加速度传感器的数据出现一个 突然的波峰或者出现波谷。所以,去抓取这种比较明显的特征的时候,我们也抓取包含了加 速度的在某一个坐标轴方向出现波峰或者波谷的情况在内。不过,这些特征并不是很容易 去抽取到的。我们接下来阐述。
[0098] 去噪:,加速度传感器的数据含有很多由于使用者的手的移动所造成的噪音,图5(a) 展示了当一个智能手机用户在静止的时候,晃动他的手机的时候加速度传感器的数据。我们 能够发现,这样的晃动也会产生很明显的峰值或者峰谷,有的时候,会比地铁的产生的波峰波 谷的更大。我们使用了一个简单的技巧,使得这些数据变得比较光滑,同时也减少这些噪声产 生的干扰。对于一个在特定方向上的加速度样本X 1来说,处理他们的技巧就是使用这个K个样 本的均值或者它们附近的值来对这些数据进行替换
我们展示了数据经过平滑化处理之后的加速度传感器的数据,在图5(b)中我们将会发现, 很多比较明显的,很大的峰值变得小了很多很多,并且他们的峰值和峰谷现在已经没有办 法再影响我们想要的数据特征的抽取了。这个方法的依据是,因为人们的手在移动的时候, 很多的时候,都是突然地移动,很快地从一个方向移动到另外一个方向,并且持续的时间是 非常短的,因此,对它们进行相加,能够相互抵消。相反,由于地铁的加减速引起的加速度的 变化,一般都是在一个方向上的,并且会持续一段时间的,因此不会相互抵消。
[0099] 波峰波谷提取:,如图6中所展示的那样,我们把一个特定的加速度曲线划分在同 样大小的窗口中,然后对它们进行排序,找出它们中的最大值和最小值,并且把最大的三个 峰值数据作为我们想要的峰值,最小的三个峰谷作为我们想要的峰谷。不过,即使这个窗口 的大小设置地非常好的时候,这种方法也是会产生错误的。举个例子,在图6中的窗口中不 仅仅错过了想要的峰值,而且还找到了一个错误的峰值。为了进一步提高准确度,我们把窗 口的大小设置为不同的值,重复几次以上的处理过程,并且选取三个峰值(峰谷)出现次数 最多的作为最后的结果。
[0100] 分类:在我们确定哪些特征作为抽取的特征之后,我们就可以从已经收集到的标 记好的数据中抽取出这些特征,并使用它们进行训练得到识别未知的数据的分类器。我们 使用的不是仅仅只有一个分类器,我们使用的是基于多个基础、多个类别的分类器,是一种 结合了分类结果的改进之后的分类方法(adaboost的算法思想),总体来说,这个分类方法 是非常好的。最后的结果是基于简单分类器的投票结果的。我们主要使用两类分类器:改进 后的朴素贝叶斯方法和决策树。
[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中,每一个训练样本集合都会有一个对应 的权重。一系列的K个分类器是通过迭代的方式得到的。在每一轮的学习中,来自原来的总 的样本中的数据被重新采样得到新的训练结合,进行训练。那些权重比较高的样本优先被 选中。在一个新的分类器M 1被学习到之后,这些被分离器1分错的样本,在M1+1训练队的时候 会获得更大的关注度。对于决策树,我们使用也是它的集成的版本:随机森林算法,它包含 了多个决策树,输出结果由包含决策树的众数决定。
[0102]尽管我们使用了各种算法去改进分类器,但我们没有办法消除所有误差,为了进 一步提高精度,我们提出了一种能容忍错误的推测方法。
[0103] 用户数据采集阶段:
[0104] 这一阶段只要的工作就是在用户的手机或者移动设备商安装我们开发的程序,然 后,该程序会自动上传它收集到的用户手机上的相关的数据到远方的服务器上去。
[0105] 乘客位置的推测:
[0106] 前面提到,我们的服务器收到我们的程序上传的乘客手机上的数据。然后我们对 这些数据进行一下操作:第一步,进行坐标转换,当然和前面的坐标转换工作是一样的,为 的就是把数据变成在在同一个参照系ENU下的数据。第二步,是提取地铁相关数据。第三步, 对前面两步已经处理好的数据进行划分。第四步,对站点进行识别,第五步,对用户的数据 进行推测,具体的推测方法如下:
[0107] 错误容忍的轨迹推测
[0108] 假设地铁乘客的用户数据由η的段组成,分别为(ShS2lS3lS4,......,S n},并且地 铁网站有Π 1个站点间隔组成{1^12,13,14,......In}。不过我们给出的结果并不是一个具体 的站点的结果。而是一个概率矩阵P= [PU]-,这里的表示的是数据映射到站点间 隔Ij的概率,如表4所示。
[0109] 推测的结果必须是η站地铁的连续序列,所以推测的集合狩是有限的。举例来说, 我们假设这m个站属于一段地铁线,这里总共只有2X(m-n+l)种可能集合: In, /2 Vi ^π+1? > ^vi-n+t ^ ^πι} °
[0110] 我们可以考虑所有的可能性,然后使用一个基于投票的方法来决定最终的输出。 在这个方法中,投出一个可能的概率Pbti: Ii->....-Mit1等于每一个分段被匹配到对应 车站区间的概率和。举个例子:VotetPMi = SJU /^+;·-:!)我们选取获得最高概率的作为我 们最终的推测区间。这个方法能容忍单个分段的分类错误。原因如下:
[0111] (1)对于每一个数据划分,我们不仅仅考虑的是优化的映射,也考虑其他的可能性 的。当然,我们这么做也是有的时候,会由于分类器的划分的错误导致优化的映射可能是不 正确的。
[0112] (2)我们的最后的结果的是深入考虑了很多因素的,细致到这条轨迹上的每一个 站点的可能的结果。这样的话,出现一个或者较少几个错误站点的情况的时候,并不会影响 整体的结果。
[0113] 实际测试结果展示
[0114] 为了能够评价我们的方法,我们招募了 15个志愿者,收集了超过120小时的乘坐地 铁的数据。我们的数据集主要是在3个主要的城市中的6条地铁线上,这些地铁线上的站点 采集的站点超过了50个站点,当然,为了更加实际,我们使用的智能设备是12种不同的智能 手机。我们采集的数据的说明在表3中有更加详细的说明。
[0115]表3
L〇117」每一个志愿者携带/ 一部安装有我们目己升友的数据收集应用程序的安皁手机。 这个应用会每隔0.1s读取一次方向传感器和加速度传感器的数据。在整个实验过程中,参 与实验的志愿者像平时一样手持手机采集数据。我们最终收集到的数据超过270条地铁数 据,我们接下来会对我们提出的方法的高效性进行评估。
[0118]我们主要从以下三个方面来评估我们的工作:
[0119] 1,抽取地铁相关数据的精确度
[0120]我们首先测试的是我们提出的抽取地铁相关数据的精确度。为了达到这个目的, 我们除了收集了地铁相关的数据,我们还收集了一些其他的四种交通工具,步行,静止,公 交车,私家车的数据,每一种交通数据的时间是1.5小时。我们把这些数据序列划分成100个 左右的数据段(包括40条地铁相关的数据),然后使用我们在前面介绍的分类器对这些数据 进行分类。每一种数据被划分成地铁的数据的百分比见图7(a)。我们发现,在抽取过程中只 有很少的错误会发生。不过,当我们使用我们在前面提出方法的进一步的优化的时候,超过 99%的地铁数据能够被正确识别,并且不会产生一些其他的错误。
[0121 ] 2,地铁数据划分的精确度
[0122] 我们现在评价一下我们在前面提出的地铁数据划分的算法的精确度。我们使用编辑 距离(Edit Distance)来进行评价,这种方法对不同的字符串的量化区分是十分有效的。假设 A = 4?是真实的数据序列划分点,在算法1执行之后,则会得到B = Xfc1Xfc2… 编辑距离ED(A,B)被定义为从A到B经过的最少的转换次数。这里,定义不同的字符串标记形 式表示节点,力,和為^是相等的话,也就是说I js_kt I <10s,这里的10s,是地铁的最短的暂停 时间的一半。我们对我们的数据集中的每一条数据进行划分,得到的编辑距离分布的CDF图 如图8所示。我们能够发现,和真实的数据相比,90%以上的数据错误的站点不会超过2个。 所以我们使用在F地铁相关数据划分中提出的具有良好容错性能的方法来解决这个问题。
[0123] 3,地铁位置信息推测的精确度
[0124] 我们评价我们提出的使用监督学习(得到分类器数据部分)的位置推测的精确度。 为了简单起见,我们使用的主要是我们在A城市中采集的数据为例来评价我们的基本方法 (也就是我们前面提到的第一种方法)的准确度。对于A城市,我们总共收集了 40组地铁相关 的数据,每一条数据对应以一段10个站点的长度。对于每次评估,我们选出40条中的39条作 为训练,剩下的1条数据作为测试数据。
[0125] 我们首先先评估一下总体分类器的分类的精确度。这个评估的结果见表4。第i行, 第j列的元素对应的是站点I1被分类器划分为站点L的百分率。我们会发现在这个矩阵的对 角线上的数据要远远大于在其他地方的数据,并且对角线上的数据就是我们想要的数据, 因为它就是正确识别站点的精确度。另外,表4也显示出站点间隔I1,16和I7的识别率要比其 他的站点间隔识别率高很多。通过分析这些站点的映射关系,我们发现结果是非常合理的, 因为所有的这些三个站点间隔数据都具有很好的识别特征。
[0126] 接下来我们评估一下我们在前面提出(乘客位置的推测部分的方法)的基于投票 算法的推测机制的结果情况。在每一轮的评测中,我们仍然选择40条数据中的39条用来训 练,剩下的一条数据用来进行测试。由于上下的一段数据含有10个数据段,我们对它进行划 分,产生三组子序列,每一个子序列的长度分别是3,5,7个数据段。每一个在这些集合中的 数据段,都被看作是一个特定的乘客的地铁数据。然后我们应用投票算法来推测他的乘坐 地铁的轨迹。对于这个数据段的每一个长度情况下的推测的正确率如图9所示。我们发现, 随着乘客地铁数据段的增加,此时我们推测乘客乘坐路径的准确度在不断上升。特别地,当 乘客乘坐3站地铁的时候,推测出用户正确的乘坐路线的概率在80 %左右。当乘客乘坐的地 铁线的长度上升到7的时候,准确度的值就会上升到94 %。
[0127] 对于另外的两个城市的推测的准确度稍微有点降低,不过,它们也是随着乘客乘 坐的地铁的长度的上升而准确度不断提高的。特别需要指出的是,当乘客乘坐的地铁的长 度等于5站的时候,6条地铁线中有4条的识别率都超过80%,并且还有两条的数据超过了 90% 〇
[0128] 衷4:各个间隔映射至Il各个姑点^间的概率分布
【主权项】
1. 一种基于手机传感器的地铁乘客位置推测方法,其特征在于,包括如下步骤: 训练阶段,收集来自每一个站点的标记好的各种手机加速度传感器的数据,从这些数 据中抽取出相应的特征,然后使用机器学习的方法学习出一组在各个站点之间的分类器, 一个站间隔是分类器最基本的识别单元。 采集用户数据的阶段,读取用户手机上的加速度传感器数据并上传到相应的服务器; 识别阶段,从服务器上获得乘客的手机上的传感器的相关数据,划分出地铁数据中的 站点数据,利用分类器把站点数据映射到每一个站点,基于投票算法来推测出用户的完整 的地铁乘坐路径。2. 如权利要求1所述的基于手机传感器的地铁乘客位置推测方法,其特征在于,所述训 练阶段中,根据得到的用户手机加速度传感器的数据进行分类和训练,然后得到分类器; 首先对手机传感器的数据进行坐标转换,转换完坐标之后,得到的数据就是相对于同 一个参照系ENU的数据;坐标转换之后,用构建的分类器将不是地铁部分的数据去掉。得到 纯净的只含有地铁相关的数据,并且这个数据的参照系是唯一不变的ENU坐标系统。接下来 的工作是对地铁数据进行划分操作,划分结束之后,使用朴素贝叶斯的方法进行训练,得到 分类器。3. 如权利要求2所述的基于手机传感器的地铁乘客位置推测方法,其特征在于,从手机 上得到的关于手机的坐标[x,y,z],转换成基于ENU的坐标[X',y',z' ],通过方向传感器来 实现转换,手机中的方向传感器的数据也是一个3维的数据[α,β,γ ],这里的,α是在水平面 之间和Y轴之间的夹角,β是X轴与水平线之间的夹角,γ是Y轴在水平线上的投影和真实的 北方向上的夹角,令:<^是¥轴与Z轴在水平方向上投影的夹角,仏是乂轴与Z轴在水平方向上 投影的夹角,γι是X轴与Z轴在水平方向上投影的夹角,Xl,Υ1,Ζ1为手机坐标系中x,y,ζ轴 的加速度;有了这些夹角的数据,就能够很容易地确定东西南北,并且准确计算出各个向量 的分量(位于ENU坐标系下的)。利用立体几何公式:向北方向加速度: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. 如权利要求1所述的基于手机传感器的地铁乘客位置推测方法,其特征在于,建立一 个贝叶斯分类器,基于数据的HRA特性来判断这些混合数据是不是地铁的数据。 将M个乘客手机传感器数据的坐标转换后的数据作为M个样本,对这M个样本的数据使 用滑动窗口(WIN)进行分类;使用5个统计指标来对这些数据进行分类:均值,方差,超过预 先定义的三个阈值的点的数目作为分类器的分类特征;首先对这M个样本用滑动窗口向后 滑动取值;对于一个特定的地铁线,窗口的值被设定在这个地铁的最小的站点距离的一半, 先将已知的地铁和非地铁数据放入贝叶斯分类器中训练出一个概率模型,然后将未知分类 的窗口中的数据输入进模型,这样就可以判断这个窗口中的数据是否是地铁相关的数据; 如果Win1(窗口)被分成是非地铁相关的数据,但是啊111+1却被分成是地铁相关的数据, 则会继续对Wirm2进行进一步地划分,如果这个数据被归类为非地铁的数据的话,则认为 Win1+1是被错误划分的;否则,一个新的地铁的数据,就会被认为是在位置Win1的地方开始 的,这种情况下的时候,进一步对开始的窗口,也就是第(i+l)w-l(w为窗口的大小),(i + 1) w-2,···一个一个进行划分直到出现第一个被划分成不是地铁的数据;接下来,如果开始位 置的窗口是在样本(i+l)w-k(l〈k〈=w),那么地铁的开始位置就将会被认为是在样本(i+1) w-k+w/2的位置;当Win1被分成地铁相关数据时,方法也类似。5. 如权利要求3所述的基于手机传感器的地铁乘客位置推测方法,其特征在于,在获得 地铁相关的传感器数据之后,对这些数据进行划分,将这些数据的每一段都对应于两个地 铁站点之间的一段距离; 假设X3,…,Xn}是应用程序从用户的智能设备中获取的一系列的地铁数据的 HRA;定义了一个滑动的窗口W,窗口的长度Lw等于两个地铁站点之间最少行驶时间的大小; 假设滑动的窗口 W从X1开始,一个一个数据采样到X1,那么X1的判定就是在阈值T 1W下同时 在窗口Wxi中的数值是否超过长度95%Lw,I {ke {i,i + l,i+Lw-l} =XiXTU |>95%Lw,标记 石众ei,i +I,+ f-I).,这里使用最小化的数据值Mean(Wxs)作为潜在的划分的点;这 个的Mean(Wxs)被定义为在%8中的这些数据的均值;一旦发现Xs,那么算法就会直接跳过接 下来的T2f数据值,搜寻下一个暂停站点Xs+T2;这里的T2等于在目标地铁线上的最短的站 点间隔之间的距离; 当传感器数据含有很多噪音的时候,选择一个不恰当的T1,可能会错过一个或者几个划 分的点;为了处理这个问题,进一步划分前面找到的暂停站点的集合;如果在相邻的两个站 点之间的距离大于这条地铁线上的最大的两个站点之间的距离的话,那么在这段间隔之 间,有一些站点划分被我们漏掉了;所以,在这个时候,算法就应该稍微减小一下T 1的值,然 后再重新搜索在这个间隔里的停靠站点的划分;为了提高精确度,不断重复这个算法,直到 所有的划分的站点的间隔都没有超过最大的间隔的时候停止。6. 如权利要求3所述的基于手机传感器的地铁乘客位置推测方法,其特征在于,在对地 铁相关的传感器数据划分之后,接着识别其具体对应的站点,在站点识别过程中,为提高站 点识别的精确度,进行容忍错误的推测算法;具体方法如下: 得到分类器数据 对地铁相关数据进行去噪处理使得这些数据变得光滑: 对于一个在特定方向上的加速度样本X1来说,使用周围k个样本的均值或者它们附近的 值来对加速度样本Xi进行替换,f i指平滑后的加速度值,用来替代X1,k指X1周围的 (1) 特征选择:用来对数据进行划分的特征选择主要是来自以下的两个集合: 数据的统计特征:被抽取特征的地铁相关数据包括3个数据化04,1^4,¥04),所提取的 特征主要包括加速度均值、加速度的最大值、加速度的标准差、加速度绝对值的平均值、分 别超过三个预定义阈值的个数、分段的长度和六种傅里叶变换的值; 峰值特征:把地铁相关数据的加速度曲线划分在同样大小的窗口中,然后对每个窗口 的最大值、最小值分别进行排序,找出所有窗口中的最大值和最小值,并且把最大的三个峰 值数据作为提取的峰值,最小的三个峰谷作为提取的峰谷;为了进一步提高准确度,把窗口 的大小设置为不同的值,重复几次以上的处理过程,并且选取三个峰值和三个峰谷出现次 数最多的作为最后的结果; (2) 分类:在确定哪些特征作为抽取的特征之后,从已经收集到的标记好的数据中抽取 出这些特征,并使用它们进行训练得到识别未知的数据是哪一段的分类器;使用两种分类 器:改进后的朴素贝叶斯方法和决策树; (3)错误容忍的轨迹推测 假设地铁乘客的用户数据由η的段组成,分别为(ShS2lS3lS4,……,S n},并且地铁网站 有m个站点间隔组成{ Il ,12,13,14,......In};给出概率矩阵P= [Pi, j]n*m,这里的Pi, j表示的是 数据S1被映射到站点间隔的概率;使用基于投票的方法来决定最终的输出,在投票的方法 中,投m-个可能的概率Pbti: L·-〉··· 等于每一个分段被匹配到对应车站区间的概 率和:选取获得最高概率的区间作为最终的推测区间。
【文档编号】G01C21/20GK105890600SQ201610231284
【公开日】2016年8月24日
【申请日】2016年4月14日
【发明人】华景煜, 沈振宇, 张保佳, 仲盛
【申请人】南京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1