路径确定方法和装置
技术领域
本申请涉及互联网技术领域,尤其涉及一种路径确定方法和装置。
背景技术
随着互联网的发展,手机APP(例如,支付宝二维码)可被用来乘坐公共交通出行(例如,公交车刷码、地铁扫码进出站等),可有效地解决找零、忘带卡、充值不便等的问题。
另一方面,随着城市交通的发展,路网逐步形成并不断扩大,地铁线路间换乘日益频繁。城市轨道交通的地铁线路可能涉及多个运营方,因此票务收入需要考虑到用户经过的每条地铁线路的站点数,或即期望确定用户乘坐地铁的实际路线(路线在本文也可被称为路径)。
但手机APP一般仅采集用户的进站点和出站点,无法确定用户乘坐的实际地铁线路,由此无法确定用户实际经过的地铁线路及其长度(站点数)。因此,期望能够提供一种准确地追踪用户的乘车轨迹,由此合理地执行票务清分的方案。
发明内容
本公开提供了一种路径确定方法,包括:
获取移动终端的进站点和出站点;
根据所述进站点和出站点来确定所述移动终端的一个或多个候选路径离散序列;
获取所述移动终端在所述进站点与所述出站点之间的多个预估位置;
根据所述多个预估位置来确定所述移动终端的预估路径离散序列;
确定所述一个或多个候选路径离散序列中与所述预估路径离散序列最相似的候选路径离散序列;以及
将与所述最相似的候选路径离散序列相对应的候选路径确定为实际路径。
可任选地,所述获取移动终端的进站点和出站点包括:
接收来自信息采集器的扫码消息;以及
从所述扫码消息中获取所述进站点和出站点。
可任选地,所述扫码消息包括所述移动终端的账号、站点标识、以及进出站标记,所述方法进一步包括:
根据所述站点标识来确定扫码站点;以及
根据所述进出站标记来确定所述扫码站点是进站点还是出站点。
可任选地,所述根据所述进站点和出站点来确定所述移动终端的一个或多个候选路径离散序列包括;
根据所存储的站点地图来确定所述进站点和出站点之间的一条或多条候选路径;
针对每一条候选路径,
获取该候选路径上各站点的位置;以及
根据各站点的位置来生成一候选路径离散序列,所述候选路径离散序列中的每一个元素对应于相应站点的位置。
可任选地,所述确定一条或多条候选路径包括:
根据所存储的站点地图来确定所述进站点和出站点之间的多条路径;以及
根据所述多条路径的覆盖站点个数、换乘次数以及乘坐时长从所述多条路径中选择所述一条或多条候选路径。
可任选地,所述获取多个预估位置包括:
在多个时间点从所述移动终端接收多个定位消息,每个定位消息包括在一时间点分别使用一种或多种定位技术确定的一个或多个定位结果;以及
针对每个定位消息,使用该定位消息中所包括的一个或多个定位结果来确定一预估位置。
可任选地,所述定位技术包括GPS定位技术、LBS定位技术、和/或Wi-Fi定位技术。
可任选地,所述确定所述预估位置包括:
选择所述一个或多个定位结果之一作为所述预估位置。
可任选地,所述确定所述预估位置包括:
对所述一个或多个定位结果进行加权求和以确定所述预估位置。
可任选地,所述确定所述预估位置包括:
滤除掉所述一个或多个定位结果中的偏离定位结果;以及
使用剩余的定位结果来确定所述预估位置。
可任选地,该方法进一步包括:
获取所存储的地铁线路中的多个地铁线路位置;以及
将与所述多个地铁线路位置中的一个地铁线路位置的距离低于阈值的预估位置改变为所述地铁线路位置。
可任选地,所述确定最相似的候选路径离散序列包括:
使用动态时间规整来确定所述一个或多个候选路径离散序列中的每一者与所述预估路径离散序列的累积距离;以及
将与所述预估路径离散序列的累积距离最小的候选路径离散序列确定为所述最相似的候选路径离散序列。
可任选地,所述确定最相似的候选路径离散序列包括:
根据余弦相似度算法来确定所述一个或多个候选路径离散序列中的每一者与所述预估路径离散序列的余弦相似度;以及
将余弦相似度最高的候选路径离散序列确定为所述最相似的候选路径离散序列。
本公开的另一方面提供了一种路径确定装置,包括:
候选路径离散序列确定模块,其获取移动终端的进站点和出站点,以及根据所述进站点和出站点来确定所述移动终端的一个或多个候选路径离散序列;
预估路径离散序列确定模块,其获取所述移动终端在所述进站点与所述出站点之间的多个预估位置,以及根据所述多个预估位置来确定所述移动终端的预估路径离散序列;
相似度确定模块,其确定所述一个或多个候选路径离散序列中与所述预估路径离散序列最相似的候选路径离散序列;以及
实际路径确定模块,其将与所述最相似的候选路径离散序列相对应的候选路径确定为实际路径。
可任选地,所述获取移动终端的进站点和出站点包括:
接收来自信息采集器的扫码消息;以及
从所述扫码消息中获取所述进站点和出站点。
可任选地,所述扫码消息包括所述移动终端的账号、站点标识、以及进出站标记,所述方法进一步包括:
根据所述站点标识来确定扫码站点;以及
根据所述进出站标记来确定所述扫码站点是进站点还是出站点。
可任选地,所述根据所述进站点和出站点来确定所述移动终端的一个或多个候选路径离散序列包括;
根据所存储的站点地图来确定所述进站点和出站点之间的一条或多条候选路径;
针对每一条候选路径,
获取该候选路径上各站点的位置;以及
根据各站点的位置来生成一候选路径离散序列,所述候选路径离散序列中的每一个元素对应于相应站点的位置。
可任选地,所述确定一条或多条候选路径包括:
根据所存储的站点地图来确定所述进站点和出站点之间的多条路径;以及
根据所述多条路径的覆盖站点个数、换乘次数以及乘坐时长从所述多条路径中选择所述一条或多条候选路径。
可任选地,所述获取多个预估位置包括:
在多个时间点从所述移动终端接收多个定位消息,每个定位消息包括在一时间点分别使用一种或多种定位技术确定的一个或多个定位结果;以及
针对每个定位消息,使用该定位消息中所包括的一个或多个定位结果来确定一预估位置。
可任选地,所述定位技术包括GPS定位技术、LBS定位技术、和/或Wi-Fi定位技术。
可任选地,所述确定所述预估位置包括:
选择所述一个或多个定位结果之一作为所述预估位置。
可任选地,所述确定所述预估位置包括:
对所述一个或多个定位结果进行加权求和以确定所述预估位置。
可任选地,所述确定所述预估位置包括:
滤除掉所述一个或多个定位结果中的偏离定位结果;以及
使用剩余的定位结果来确定所述预估位置。
可任选地,所述预估路径离散序列确定模块被进一步配置成:
获取所存储的地铁线路中的多个地铁线路位置;以及
将与所述多个地铁线路位置中的一个地铁线路位置的距离低于阈值的预估位置改变为所述地铁线路位置。
可任选地,所述确定最相似的候选路径离散序列包括:
使用动态时间规整来确定所述一个或多个候选路径离散序列中的每一者与所述预估路径离散序列的累积距离;以及
将与所述预估路径离散序列的累积距离最小的候选路径离散序列确定为所述最相似的候选路径离散序列。
可任选地,所述确定最相似的候选路径离散序列包括:
根据余弦相似度算法来确定所述一个或多个候选路径离散序列中的每一者与所述预估路径离散序列的余弦相似度;以及
将余弦相似度最高的候选路径离散序列确定为所述最相似的候选路径离散序列。
本公开的进一步方面提供了一种装置,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
获取移动终端的进站点和出站点;
根据所述进站点和出站点来确定所述移动终端的一个或多个候选路径离散序列;
获取所述移动终端在所述进站点与所述出站点之间的多个预估位置;
根据所述多个预估位置来确定所述移动终端的预估路径离散序列;
确定所述一个或多个候选路径离散序列中与所述预估路径离散序列最相似的候选路径离散序列;以及
将与所述最相似的候选路径离散序列相对应的候选路径确定为实际路径。
附图说明
图1示出了根据用户的进站点和出站点来预测实际路线的一个示例。
图2是根据本公开的各方面的用于路线确定的系统示图。
图3是根据本公开的各方面的路线确定方法的流程图。
图4是根据本公开的各方面的生成一个或多个候选路线离散序列的过程流程图。
图5是根据本公开的各方面的生成预估路径离散序列的过程流程图。
图6是可被计算相似度的两个序列的示意图。
图7是将两个序列扩展为相同长度的序列的示意图。
图8是根据本发明的各个方面的用于路线确定的装置的模块图。
具体实施方式
为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,因此本发明不受下面公开的具体实施例的限制。
城市公共交通的票务清分涉及到众多因素,例如,建设成本、车站数量、地铁线路里程、换乘站数量、换乘方式、行车间隔、服务时间、票务政策等。目前大多数公共交通(例如,公交、地铁等)的交易数据,一般是基于乘客的起点站和出站点信息来确定乘客的乘车路线,随后根据所确定的乘车路线中不同地铁线路的贡献来制定清分比例。现有乘车路线确定通常包括以下几种方案:
1、路线最短原则:将乘客从起点到终点的各条路线中距离最短(例如,乘坐站数最少)的路线确定为乘车路线。
2、时间最短原则:将乘客花费时间最短的路线确定为乘车路线。时间最短原则需要考虑经过的站点数目、站点间时长、相邻两列地铁之间的时间间隔等等。
3、换乘次数最少原则:将换乘次数最少的路线确定为乘车路线。
以上方案在针对简单路网的清分问题上比较简单,但是在面对复杂的轨道城市交通路网时,往往难以准确地确定乘客的实际乘车路线。
图1示出了根据用户的进站点和出站点来预测乘客的实际路线的一个示例。
如图1所示,乘坐北京地铁从莲花桥(起点站)到和平里北街(出站点),通常可以使用以下三条路线:
路线1:乘坐10号线到公主坟站,乘坐1号线到东单站,转乘5号线到和平里北街站,包括16站、2次换乘;
路线2:乘坐10号线到慈寿寺站,转乘6号线到车公庄站,转乘2号线到雍和宫站,在转乘5号线到和平里北街站,包括13站、3次换乘;
路线3:乘坐10号线到惠新西街南口站,转乘5号线到和平里北街站,包括19站、1次换乘。
如果根据路径最短原则,将预测用户使用路线2,而根据换乘次数最少原则,则预测用户使用路线1。由此可见,在现有的复杂路网下,使用不同的方案确定用户的实际乘坐路线可能产生不同的结果。
本公开通过地铁APP进行数据埋点采集乘客的地理位置信息,根据采集到的地理位置点,通过反演和简单近似来推断用户的“广义”乘车轨迹(即,近似乘车轨迹),由此提出基于“广义真实路线”的OD(起点到终点)清分解决方案。
本公开的方案可以有效解决城市轨道交通中的票务清分问题。此外,基于本公开的方案还可以解决乘客异常行为的风控问题,例如,对换码欺诈、客流异常等行为的监控。
图2是根据本公开的各方面的用于路线确定的系统示图。
如图2所示,路线确定系统200可包括移动终端201、信息采集器202和服务器203。
移动终端201可以是安装有地铁APP(例如,北京易通行、上海Metro大都会、ApplePay等等)的手机。地铁APP可绑定支付账号(例如,支付宝账号、微信账号、银行卡账号等)。地铁APP可生成支付码,例如二维码。支付码上编码有移动终端201的用户的支付账号等。支付码可供信息采集器202读取用户的支付账号信息。
在扫码进站之后,移动终端201上的地铁APP可每隔一段时间(例如,每隔五分钟)确定自己的位置,并且将位置信息发送给服务器203。例如,移动终端201可通过多种定位技术来确定自己的位置,如以下具体描述的。
信息采集器202可以是地铁的进出站闸机。信息采集器202可包括读码装置,用于扫描移动终端201上的支付码以读取支付码上的信息(例如,用户的账号)。每个信息采集器202可以存储有其所在站点的标识(即,站点标识) 以及进出站标记,进出站标记可标识该信息采集器202上的扫码对应于进站操作还是出站操作。
用户在进站或出站时,可将移动终端201上的支付码对准信息采集器202 的读码装置,以用于扫码进站或出站。信息采集器202可通过手机上的支付码来采集移动终端的用户的账户信息(例如,账号),并且生成扫码消息。该扫码消息包括用户的账户信息(例如,账号)、站点标识和进出站标记。信息采集器202可将扫码消息发送给服务器203。
服务器203接收来自信息采集器202的扫码消息。服务器203可以根据进出站标记确定该扫码消息对应于出站操作还是进站操作,并由此确定站点标识所对应的站点是进站点还是出站点。
如果服务器203确定扫码消息对应于进站操作,则可将接收到的用户账号、站点标识及进出站标记作为一个进站条目存储在存储器中。
在第一实施例中,服务器203可以关于一用户账号仅存储一个进站条目。在这种情况下,如果服务器203确定接收到的扫码消息对应于出站操作,则可在存储器中查找与该账号相对应的进站条目,从进站条目中获取进站点,从当前接收到的扫码消息中获取出站点以用于生成候选路径离散序列(如下所述)。随后服务器203可在存储器中删除与该账号相对应的进站条目。
在第二实施例中,服务器203可以关于一用户账号存储所有的进出站条目。在这种情况下,服务器203可在接收到扫码消息之后将一编号与用户账号、站点标识及进出站标记存储在一起。
在一个示例中,该编号可与服务器203接收到扫码消息的时间相对应,例如,20190101130535(2019年1月1日13时5分35秒)。在另一示例中,信息采集器202也可将生成扫码消息的时间包括在扫码消息中,一起传送给服务器203;该编号可与信息采集器202生成扫码消息的时间相对应,例如, 20190101130530(2019年1月1日13时5分30秒)。在又一示例中,服务器 203可以为每个用户账号的进出站条目编号,每当接收到与该用户账号相对应的消息时,可将该消息作为该用户账号下的新条目进行存储,条目的编号可以递增。本领域技术人员将领会,其它编号方式也在本公开的构想中,只要能够表示扫码消息的先后顺序即可。
在服务器203查找到多个与一用户账号相对应的进站条目的情况下,服务器203可获取最近接收到(例如,时间最接近、编号最大等)的进站条目进行后续处理。例如,服务器203可从存储器中所存储的对应的最近进站条目中获取进站点,并且从当前接收到的扫码消息中提取出站点。
在第三实施例中,服务器203可在存储器中为每个扫码消息存储以下条目: {用户账号,站点标识,进出站标记,配对标记}。配对标记可表示该条目是否已与另一条目配对(乘客乘坐一次地铁的进站操作条目与出站操作条目为配对条目)。例如,如果配对标记为0,则表示该条目已与另一条目配对;如果站点标记为1,则表示该条目尚未与另一条目配对。请注意,以上取值仅是示例性的,其它取值也在本发明的构想中。
服务器203接收到与进站操作相关的扫码消息时,将该扫码消息中的信息存储在存储器中,并将配对标记设为‘未配对’(例如‘1’)。
服务器203接收到与出站操作相关的扫码消息时,可在存储器中查找与当前用户账号相对应的未配对条目,并且在未配对条目中获取进站点,将该未配对条目的配对标记修改为‘配对’(例如‘0’)。服务器203还可将接收到的与出站操作相关的扫码消息中的信息存储在存储器中,并将配对标记设为‘配对’。
请注意,以上仅仅列出了确定进站点和出站点的示例,本领域技术人员将领会,其它确定进站点和出站点的方式也在本公开的构想中。
服务器203根据所确定的进站点和出站点,通过连通图算法在地铁线路地图中获取数条可能的乘坐路线,每条路线可包括多个站点,例如,如图1所示的路线1-3。
服务器203可以针对每条路线生成一离散序列(在本文可被称为“候选路径离散序列”),候选路径离散序列中的每一个元素表示对应站点的标识,例如位置信息(例如,站点的经纬度信息)。例如,服务器203可存储每个站点的位置信息,根据路线中所包括的多个站点来获得该多个站点的位置信息,由此生成候选路径离散序列。
服务器203还可以基于在多个时间点从移动终端201接收到的多个定位结果(例如,使用不同定位技术获取的位置)来生成预估路径离散序列。预估路径离散序列中的每一个元素表示在一时间点估计的移动终端201位置(例如,经纬度信息),估计的移动终端201位置可以使用在该时间点来自移动终端201 的该多个定位结果来确定。请注意,术语“预估”和“估计”在本文可替换地使用。
进一步,服务器203可利用DTW(Dynamic Time Warping,动态时间规整) 分别确定以上获得的数个候选路径离散序列与预估路径离散序列之间的相似度,依次推断出与预估路径离散序列的相似度最高的路径即为实际乘车路线。
服务器203根据实际乘车路线可确定用户所需支付的费用。进一步,服务器203可以根据实际乘车路线所覆盖的各地铁线路的站点数、长度等因素来确定要划分给每个地铁线路的运营商的票务金额。
图3是根据本发明的各方面的路线确定方法的流程图。该路线确定方法可例如由服务器203来执行。
如图3所示,在步骤302,可生成一个或多个候选路线离散序列。
该一个或多个候选路线离散序列可以根据进站点与出站点之间的所有潜在路线上覆盖的站点的位置来生成。
图4示出了服务器203生成一个或多个候选路线离散序列的过程流程图。
在402,可获得乘客的起点(进站点)和终点(出站点),如以上关于图 2所描述的。
在步骤404,可确定从进站点到出站点的一条或多条候选路径。
服务器203中存储有各个地铁线路的地图(也称为连通图)。例如,可将城市轨道交通的各个地铁线路形成为连通图。图1为地铁连通图的一个示例。
通过连通图算法,根据乘客的进站点和出站点,在连通图上查找所有潜在的乘坐路线,并且计算每条路线上覆盖的站点个数、换乘次数、总时长等特征信息,基于传统方法涉及的原则可过滤出较优的一条或多条候选路径。例如,根据上述路线最短原则、时间最短原则、换乘次数最少原则来筛选出特定数目的路径(在本文可被称为候选路径)。
例如,以上关于图1所述的路线1、路线2、和路线3可以是候选路径的示例。作为最简单的示例,如果进站点和出站点同属于一条地铁线路,就可默认只有单条候选路径。
本领域技术人员将领会,以上示例仅仅是示例性的,其它数目的候选路径、考虑到其它因素获得的候选路径都在本发明的构想中。
在步骤406,可获取或查找在步骤404中确定的该一条或多条候选路径中的每个站点的地理位置信息。
服务器203可预先存储有上述连通图中每个站点的地理位置(例如,经纬度信息)。例如,服务器203可以存储站点标识和对应的地理位置的映射,由此可以通过查找站点标识来确定路径中每个站点的地理位置。
在步骤408,可根据一条或多条候选路线和相应站点的位置信息来获得一个或多个候选路线离散序列。
具体而言,可基于每条候选路径上每个站点的位置来生成一候选路径离散序列。
候选路径离散序列可由候选路径所覆盖的各站点的位置(例如,经纬度) 来表示。例如,包括n个站点的候选路径可由离散序列{A1,A2,……,An}来表示。其中Ai指示对应站点的位置(例如,经纬度)。服务器203可存储每个站点的位置信息,由此站点位置Ai可从服务器203中的存储器获得。站点的位置信息也可以存放其它地方,例如,云端。
回到图3,在步骤304,生成预估路径离散序列。
在一个实施例中,服务器203可以每隔一时间段接收来自移动终端201的定位消息,每个定位消息可包括使用不同定位技术生成的一个或多个定位结果。服务器203可以使用该定位消息来估计移动终端201的位置。
换言之,服务器203可以在多个时间点中的每一个时间点使用来自移动终端201的定位消息来确定移动终端201的对应预估位置。服务器203可以根据在m个时间点确定的m个预估位置来生成预估路径离散序列。预估路径离散序列可包括m个元素,其中每一个元素对应于一个时间点生成的预估位置。例如,预估路径离散序列可以由离散序列{B1,B2,……,Bm}来表示。其中Bi指示在第i个时间点确定的预估位置。
如上所述,在移动终端201扫码之后,移动终端201可确定该扫码操作涉及进站还是出站。替换地,服务器203可确定该扫码涉及进站还是出站,并且可以将该信息通知移动终端201。
移动终端201确定扫码进站之后,可每隔一定时间(例如,每隔5分钟) 使用一种或多种定位技术确定一个或多个定位结果,并且将该一个或多个定位结果传送给服务器203,直至确定移动终端201已出站。
图5是根据本公开的各方面的生成预估路径离散序列的过程流程图。
在步骤502,可针对多个时间点中的每个时间点获取移动终端的一个或多个定位结果,该一个或多个定位结果是使用不同定位技术生成的。
服务器203可每隔一段时间(例如,每隔3分钟、5分钟等),或即在多个时间点中的每一个时间点从移动终端201获取一个或多个定位结果。具体而言,移动终端201可以在每个时间点利用一种或多种定位技术来分别获取一个或多个定位结果(例如,GPS位置、LBS位置、Wi-Fi位置),并且随后将该一个或多个定位结果发送给服务器203。请注意,这里的定位技术仅仅是示例性的,也可使用其它数目和其它类型的定位技术。
移动终端201的定位技术可包括GPS定位(全球定位系统)、LBS(Location BasedService,基于位置的服务)定位、Wi-Fi定位,等等。
LBS定位也被称为基站定位。在城市中,一个移动终端通常在多个基站的信号覆盖之下。移动终端可对来自不同基站的导频信号进行测量,得到各个基站的信号TOA(到达时刻)或TDOA(到达时间差)。根据测量结果,结合基站的坐标,就能够计算出终端的坐标值。
Wi-Fi定位是通过无线接入点的信号来定位的。地铁线路上可设置有多个无线接入点(Wi-Fi路由器),无线接入点通常在一段时间内是固定的。在开启 Wi-Fi的情况下,移动终端可以检测到多个无线接入点的信号,根据来自多个无线接入点的信号强度,可确定移动终端位置。
在步骤504,针对多个时间点中的每个时间点确定移动终端的预估位置。
具体而言,对于每个时间点,可以根据在步骤502获得的移动终端201的一个或多个定位结果来确定一预估位置。
例如,可以根据来自移动终端的GPS定位结果(可被称为GPS位置)、LBS 定位结果(可被称为LBS位置)和/或Wi-Fi定位结果(可被称为Wi-Fi位置)来确定它的预估位置。
在一方面,如果当前仅存在一个定位结果(例如,仅存在GPS位置、基站位置和Wi-Fi位置中的一者),可将该定位结果确定为预估位置。替换地,移动终端 201可优选地将多个定位结果中的一者(例如,GPS定位结果)确定为其预估位置。
在另一方面,可以选取一个定位结果作为主位置,使用其它定位结果和/或其它手段(例如,使用系统中的记录(诸如地铁地图)进行调整)对主位置进行纠偏,以得到准确的终端定位位置。
例如,可以将GPS位置作为主位置(主定位结果)。但由于地铁的疾速奔驰,往往采集的GPS位置容易出现漂移而造成较大的偏差。可通过环境指纹技术对 GPS位置进行纠偏并降低噪声,即,使用其它定位技术获得的位置来纠正GPS 位置。
作为一示例,可以对在一时间点通过多种技术获得的多个位置(例如,GPS 位置、LBS位置和Wi-Fi位置)进行加权求和以得到该时间点的预估位置。
例如,在一时间点获得的n个定位结果的经纬度分别为(a1,b1)、(a2, b2)、……、(an,bn),则该时间点的预估位置为(x,y)可按照下式来获得:
x=wa1*a1+wa2*a2+……+wan*an,
y=wb1*b1+wb2*b2+……+wbn*bn。
其中wa1-wan、wb1-wbn为对应位置的权重,其中0<wai<1,0<wbi<1。
在另一方面,可以滤除多个定位结果中的偏离定位结果,随后使用其它定位结果来确定预估位置。例如,可以确定多个定位结果的中心点,距离该中心点距离较远(例如,大于一阈值)的定位结果可被确定为偏离定位结果,可被认为是不准确的定位结果,从位置估计中滤除掉,由此提高位置估计的准确度。
在又一方面,可以使用其它手段滤除掉偏离的定位结果。
例如,服务器203中可存储有地铁的各条线路的地图,该地图包括每条线路上的各个站点以及两个站点之间的若干点的地理信息(例如,经纬度)。
服务器203可确定在步骤502获得的一个或多个定位结果是否偏离地铁线路。在一方面,可以将距离地铁线路较远的定位结果滤除掉,不用于确定预估位置。
进一步,如果根据上述操作得到的预估位置离地铁线路很近(例如,距离小于一阈值),可将该预估位置修改为地铁线路上的相应点的位置,从而能够更准确地反映乘客的位置。
例如,如果预估位置为北纬N39°95',东经E116°29',服务器203中查找到地铁地图中的中关村地铁站的位置为北纬N39°98',东经E116°31',两者很接近,则服务器203可将预估位置改变为中关村地铁站的位置(北纬N39°98',东经E116°31')。
在步骤506,根据步骤504得到的多个预估位置来生成预估路径离散序列。
回到图3,在步骤306,确定该一个或多个候选路径离散序列中与预估路径离散序列最相似的一个候选路径离散序列。
具体而言,可以分别确定在步骤302得到的一个或多个候选路径离散序列中的每一个序列与在步骤304得到的预估路径离散序列的相似度度量,并且根据相似度度量来确定该一个或多个候选路径离散序列中与预估路径离散序列最相似的一个候选路径离散序列。可以将与预估路径离散序列最相似的一个候选路径离散序列确定为真实乘车路径的离散序列。
图6是序列X和序列Y(例如,预估路径离散序列和候选路径离散序列) 的示意图,可以计算这两个序列的相似度,如下所述。
在一个实施例中,可以利用DTW(Dynamic Time Warping,动态时间规整) 来确定与预估路径离散序列最相似的候选路径离散序列。
DTW算法通过将时间规整和距离测量计算结合起来,以确定两个序列之间的相似程度。以下对使用DTW算法来确定两个序列的相似度的过程进行说明:
首先,可以构建序列距离矩阵,矩阵的行可对应于X序列,矩阵的列可对应于Y序列。例如,矩阵的行可对应于X序列的各元素(位置),矩阵的列可对应于Y序列的各元素(位置)。矩阵中的元素(i,j)是X序列的第i个元素对应的位置与Y序列的第j个元素对应的位置的距离(例如,欧式距离)。在一个示例中,X 序列和Y序列可以分别是要被计算相似度的预估路径离散序列和一个候选路径离散序列。
表1示出了序列距离矩阵的一个示例。矩阵的行对应于预估路径离散序列{B1,B2,……,Bm},矩阵的列对应于候选路径离散序列{A1,A2,……,An}。在表1中, m=6,n=7。本领域技术人员将领会,表1中序列中元素的数目仅仅是示例性的,其它元素的数目也在本公开的构想中。
Y\X |
B<sub>1</sub> |
B<sub>2</sub> |
B<sub>3</sub> |
B<sub>4</sub> |
B<sub>5</sub> |
B<sub>6</sub> |
A<sub>1</sub> |
D<sub>11</sub> |
D<sub>12</sub> |
D<sub>13</sub> |
D<sub>14</sub> |
D<sub>15</sub> |
D<sub>16</sub> |
A<sub>2</sub> |
D<sub>21</sub> |
D<sub>22</sub> |
D<sub>23</sub> |
D<sub>24</sub> |
D<sub>25</sub> |
D<sub>26</sub> |
A<sub>3</sub> |
D<sub>31</sub> |
D<sub>32</sub> |
D<sub>33</sub> |
D<sub>34</sub> |
D<sub>35</sub> |
D<sub>36</sub> |
A<sub>4</sub> |
D<sub>41</sub> |
D<sub>42</sub> |
D<sub>43</sub> |
D<sub>44</sub> |
D<sub>45</sub> |
D<sub>46</sub> |
A<sub>5</sub> |
D<sub>51</sub> |
D<sub>52</sub> |
D<sub>53</sub> |
D<sub>54</sub> |
D<sub>55</sub> |
D<sub>56</sub> |
A<sub>6</sub> |
D<sub>61</sub> |
D<sub>62</sub> |
D<sub>63</sub> |
D<sub>64</sub> |
D<sub>65</sub> |
D<sub>66</sub> |
A<sub>7</sub> |
D<sub>71</sub> |
D<sub>72</sub> |
D<sub>73</sub> |
D<sub>74</sub> |
D<sub>75</sub> |
D<sub>76</sub> |
表1
其中Dij是位置点Ai与位置点Bj的距离,例如,欧氏距离。
在构造序列距离矩阵之后,可以从矩阵的左上角开始计算累积距离Gij。例如,可以构造累积距离矩阵,如表2所示。
Y\X |
B<sub>1</sub> |
B<sub>2</sub> |
B<sub>3</sub> |
B<sub>4</sub> |
B<sub>5</sub> |
B<sub>6</sub> |
A<sub>1</sub> |
G<sub>11</sub> |
G<sub>12</sub> |
G<sub>13</sub> |
G<sub>14</sub> |
G<sub>15</sub> |
G<sub>16</sub> |
A<sub>2</sub> |
G<sub>21</sub> |
G<sub>22</sub> |
G<sub>23</sub> |
G<sub>24</sub> |
G<sub>25</sub> |
G<sub>26</sub> |
A<sub>3</sub> |
G<sub>31</sub> |
G<sub>32</sub> |
G<sub>33</sub> |
G<sub>34</sub> |
G<sub>35</sub> |
G<sub>36</sub> |
A<sub>4</sub> |
G<sub>41</sub> |
G<sub>42</sub> |
G<sub>43</sub> |
G<sub>44</sub> |
G<sub>45</sub> |
G<sub>46</sub> |
A<sub>5</sub> |
G<sub>51</sub> |
G<sub>52</sub> |
G<sub>53</sub> |
G<sub>54</sub> |
G<sub>55</sub> |
G<sub>56</sub> |
A<sub>6</sub> |
G<sub>61</sub> |
G<sub>62</sub> |
G<sub>63</sub> |
G<sub>64</sub> |
G<sub>65</sub> |
G<sub>66</sub> |
A<sub>7</sub> |
G<sub>71</sub> |
G<sub>72</sub> |
G<sub>73</sub> |
G<sub>74</sub> |
G<sub>75</sub> |
G<sub>76</sub> |
表2
可以从矩阵的左上角
Gij=Di,j+min[Gi-1,j,Gi,j-1,Gi-1,j-1]
累积距离矩阵最后一行最后一列的值(Gnm)即为预估路径离散序列{B1, B2,……,Bm}和候选路径离散序列{A1,A2,……,An}的累积距离。在表2的示例中,G76为两个序列(预估路径离散序列和一个候选路径离散序列)的累积距离。
两个序列的累积距离越小,表明两个序列的相似度越高。
在以上讨论中,矩阵的行对应于预估路径离散序列,矩阵的列对应于候选路径离散序列,但本领域技术人员将领会,也可以将矩阵的行设置为对应于候选路径离散序列,矩阵的列设置为对应于预估路径离散序列。
在确定一个或多个候选路径离散序列中的每一者和预估路径离散序列之间的累积距离之后,将累积距离最小的候选路径离散序列所对应的路径确定为实际路径。
以上说明了使用DTW来确定两个序列的相似度,也可以使用其它方式来确定两个序列的相似度。
在又一实施例中,还可以通过计算累加距离来确定两个序列之间的相似度。
例如,如果预估序列X中元素(位置点)的个数为m,序列Y中元素(位置点)的个数为n。假设m>n,则可以针对序列Y中的每一个点,选择序列X 中与其距离(例如,欧式距离)最短的一个点。例如,如图6所示,序列Y中的点a在序列X中有4个较接近的点,可以选取其中距离最小的点作为点a的对应点,其它三个点可以不纳入考虑。
随后可确定序列X和Y中的n对点之间的距离(D1,D2,……,Dn)。序列X 和Y的累加距离可如下计算:
两个序列的累加距离越小,表明两个序列的相似度越高。
可以分别计算一个或多个候选路径离散序列中的每一者与预估路径离散序列之间的累加距离,将累加距离最小的候选路径离散序列确定为与预估路径离散序列最相似的候选路径离散序列。
在进一步实施例中,可以使用余弦相似度算法来确定预估路径离散序列和候选路径离散序列之间的相似度。
其中A=(A1,……An),B=(B1,……Bn),An和Bn分别代表A和B的各分量。
以下解说根据本公开的一方面使用余弦相似度算法来确定预估路径离散序列和候选路径离散序列之间的相似度。
首先,可将序列X=(X1,……Xn)和序列Y=(Y1,……Ym)扩展为相同长度的序列。
例如,可根据DTW算法将X序列中的点和Y序列中的点进行映射,从而扩展为相同长度的序列。图7是将两个序列扩展为相同长度的序列的示意图。
如图7所示,序列X=(X1,X2,…,Xn),X中元素(位置点)的个数为n;序列Y=(Y1,Y2,…,Ym),Y中元素(位置点)的个数为m。可以通过DTW 算法来获得映射P={P1,P2,…Ps,…,Pk},Ps=(Xi,Xj)表示序列X中的元素 Xi与序列Y中的元素Yj的映射,其中max(m,n)≤k<m+n-1,边界条件:W1=(1, 1)和Wk=(m,n)。映射Ps=(Xi,Xj)中可存在一对多或多对一的情况。
作为非限定性示例,映射P可使用如下方法来获取:
序列X和Y之间的各种可能映射路径的时间归一化距离如下:
其中d(ps)是X序列的第is个元素(位置点)与Y序列的第js个元素(位置点) 之间的距离(例如,欧式距离),ws是加权系数,0<ws<1。
可求解下式:
从而得到映射P={p1,p2,…ps,…,pk}。
进一步根据映射P={p1,p2,…ps,…,pk}得到扩展后的序列X’=(X1’, X2’,…,Xk’)和Y’=(Y1’,Y2’,…,Yk’),其中p1=(X1’,Y1’),p2=(X2’, Y2’),……,pk=(Xk’,Yk’)。
在图7的示例中,p1=(X1,Y1)=(X1’,Y1’),p2=(X2,Y1)=(X2’,Y2’),p3=(X3, Y1)=(X3’,Y3’),……,ps=(Xis,Yjs)=(Xs’,Ys’),……,pk-2=(Xn-2,Ym)=(Xk-2’,Yk-2’),pk-1=(Xn-1,Ym)=(Xk-1’,Yk-1’),pk=(Xn,Ym)=(Xk’,Yk’)。
随后可计算序列X’和Y’的余弦相似度:
可确定一个或多个候选路径离散序列中的每一者与所述预估路径离散序列的余弦相似度,并且将余弦相似度最高的候选路径离散序列所对应的路径确定为实际路径。
以上列举了确定预估路径离散序列和一个候选路径离散序列之间的相似度的几个实施例,但本领域技术人员能够构想到用于确定预估路径离散序列和一个候选路径离散序列之间的相似度的其它方式。
在步骤308,可以根据最相似的候选路径离散序列来确定实际路径。
如在步骤302中所述,候选路线离散序列是根据进站点与出站点之间的潜在路径上覆盖的站点的位置来生成的。可以根据站点位置与站点表示的映射,根据站点的位置来确定对应站点。由此可从最相似的候选路径离散序列确定对应的路径作为真实乘车路径,该真实乘车路径包括乘客经过的各线路及其上的站点。
图8是根据本发明的各个方面的用于路线确定的装置的模块图。
如图8所示,用于路线确定的装置800可包括候选路径离散序列确定模块 801、预估路径离散序列确定模块802、相似度确定模块803、以及实际路径确定模块804。
候选路径离散序列确定模块801可以接收乘客的进站点和出站点信息,根据进站点和出站点信息来确定数条可能的乘坐路线(即,候选路径离散序列),每条路线乘坐可包括多个站点。可根据每条路线中所包括的站点的位置来生成一离散序列,该序列中的每一个元素代表对应站点的位置信息。由此可生成对应于一条或多条可能的乘坐路线的一条或多条候选路径离散序列。
预估路径离散序列确定模块802可以每隔一段时间(或即在多个时间点中的一个时间点)接收来自移动终端的定位消息,定位消息中可包括一个或多个定位结果,该一个或多个定位结果是使用不同定位技术(例如,GPS、LBS和 WiFi等)来获取的。预估路径离散序列确定模块802可以根据该一个或多个定位结果来确定移动终端在当前时间点的预估位置。预估路径离散序列确定模块802可以根据多个时间点的预估位置来生成,序列的每一个元素对应于一个时间点的预估位置。
相似度确定模块803可以接收候选路径离散序列确定模块801输出的数条候选路径离散序列和预估路径离散序列确定模块802输出的预估路径离散序列,并且分别计算数条候选路径离散序列与预估路径离散序列之间的相似度,选择与预估路径离散序列最相似的候选路径离散序列。
实际路径确定模块804可以将与相似度确定模块803输出的最相似的候选路径离散序列相对应的候选路径确定为实际路径。
如上所述,本公开的技术方案可以确定乘客的真实乘车轨迹,可以用于地铁各线路费用的清分结算。例如,可以按照乘客的真实乘车路径所覆盖的各线路的长度(例如,站点个数)来确定分配给每条线路的运营商的费用比例。
本公开的技术方案还应用于换码欺诈。例如,欺诈团伙会生成短距离(进站点和出站点之间的站点数较少)的支付码,向乘客下发该支付码以在出站时使用,由此可仅花费很低的乘车费用来乘坐较远的路程。例如,乘客从海淀黄庄站上车,乘坐10号线到双井,一共乘坐19站。在出站前,欺诈团伙可向乘客下发从国贸站进站的乘车码,由此只会扣除一站的乘车费用。
利用本公开的技术方案,可以跟踪到该生成该乘车码的移动终端的定位 (预估位置)基本上是固定的(欺诈团伙的窝点),与候选路径明显不符,由此可发现欺诈行为。
本文结合附图阐述的说明描述了示例配置而不代表可被实现或者落在权利要求的范围内的所有示例。本文所使用的术语“示例性”意指“用作示例、实例或解说”,而并不意指“优于”或“胜过其他示例”。本详细描述包括具体细节以提供对所描述的技术的理解。然而,可以在没有这些具体细节的情况下实践这些技术。在一些实例中,众所周知的结构和设备以框图形式示出以避免模糊所描述的示例的概念。
在附图中,类似组件或特征可具有相同的附图标记。此外,相同类型的各个组件可通过在附图标记后跟随短划线以及在类似组件之间进行区分的第二标记来加以区分。如果在说明书中仅使用第一附图标记,则该描述可应用于具有相同的第一附图标记的类似组件中的任何一个组件而不论第二附图标记如何。
结合本文中的公开描述的各种解说性框以及模块可以用设计成执行本文中描述的功能的通用处理器、DSP、ASIC、FPGA或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合来实现或执行。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何常规的处理器、控制器、微控制器、或状态机。处理器还可被实现为计算设备的组合(例如,DSP 与微处理器的组合、多个微处理器、与DSP核心协同的一个或多个微处理器,或者任何其他此类配置)。
本文中所描述的功能可以在硬件、由处理器执行的软件、固件、或其任何组合中实现。如果在由处理器执行的软件中实现,则各功能可以作为一条或多条指令或代码存储在计算机可读介质上或藉其进行传送。其他示例和实现落在本公开及所附权利要求的范围内。例如,由于软件的本质,以上描述的功能可使用由处理器执行的软件、硬件、固件、硬连线或其任何组合来实现。实现功能的特征也可物理地位于各种位置,包括被分布以使得功能的各部分在不同的物理位置处实现。另外,如本文(包括权利要求中)所使用的,在项目列举(例如,以附有诸如“中的至少一个”或“中的一个或多个”之类的措辞的项目列举) 中使用的“或”指示包含性列举,以使得例如A、B或C中的至少一个的列举意指A或B或C或AB或AC或BC或ABC(即,A和B和C)。同样,如本文所使用的,短语“基于”不应被解读为引述封闭条件集。例如,被描述为“基于条件A”的示例性步骤可基于条件A和条件B两者而不脱离本公开的范围。换言之,如本文所使用的,短语“基于”应当以与短语“至少部分地基于”相同的方式来解读。
计算机可读介质包括非瞬态计算机存储介质和通信介质两者,其包括促成计算机程序从一地向另一地转移的任何介质。非瞬态存储介质可以是能被通用或专用计算机访问的任何可用介质。作为示例而非限定,非瞬态计算机可读介质可包括RAM、ROM、电可擦除可编程只读存储器(EEPROM)、压缩盘(CD) ROM或其他光盘存储、磁盘存储或其他磁存储设备、或能被用来携带或存储指令或数据结构形式的期望程序代码手段且能被通用或专用计算机、或者通用或专用处理器访问的任何其他非瞬态介质。任何连接也被正当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外、无线电、以及微波之类的无线技术从web网站、服务器、或其它远程源传送而来的,则该同轴电缆、光纤电缆、双绞线、数字订户线(DSL)、或诸如红外、无线电、以及微波之类的无线技术就被包括在介质的定义之中。如本文所使用的盘(disk)和碟(disc)包括CD、激光碟、光碟、数字通用碟 (DVD)、软盘和蓝光碟,其中盘常常磁性地再现数据而碟用激光来光学地再现数据。以上介质的组合也被包括在计算机可读介质的范围内。
提供本文的描述是为了使得本领域技术人员能够制作或使用本公开。对本公开的各种修改对于本领域技术人员将是显而易见的,并且本文中定义的普适原理可被应用于其他变形而不会脱离本公开的范围。由此,本公开并非被限定于本文所描述的示例和设计,而是应被授予与本文所公开的原理和新颖特征相一致的最广范围。