用于将目标的位置捕捉到道路网络的方法和系统与流程

文档序号:33196427发布日期:2023-02-04 12:23阅读:78来源:国知局
用于将目标的位置捕捉到道路网络的方法和系统与流程

1.各种示例实施例涉及导航系统,并且更具体地涉及用于将目标捕捉到道路网络的路段的方法。


背景技术:

2.导航系统是基于地图匹配来引导驾驶员到达他们的目的地的有用工具。地图匹配或捕捉是许多路由应用中使用的技术,用于将地理点或点序列与道路网络相关联。对于点序列,地图匹配的典型应用是确定车辆最可能的驾驶路径。可以在路由应用中实施捕捉以确定道路网络上的初始位置和目的地位置。例如,这允许将给定地理位置与道路网络上的单个点(被称为捕捉点)相关联。然而,捕捉点的计算可能需要被改善。


技术实现要素:

3.各种实施例提供了如独立权利要求的主题所描述的用于确定道路网络、计算机系统和计算机程序产品中的捕捉位置的方法。在从属权利要求中描述了有利的实施例。如果本发明的实施例不是互相排斥的,则本发明的实施例可以彼此自由组合。
4.在一个方面,本发明涉及一种用于确定道路网络中的捕捉位置的方法。该方法包括步骤a)至步骤f):
5.a)确定边界区域,边界区域包括道路网络的路段;
6.b)确定表示边界区域的单元的初始成本矩阵,其中向初始成本矩阵的每个单元分配成本值,该成本值指示由所述单元表示的边界区域的子区域的至少一个区域特征;
7.c)识别表示路段的初始成本矩阵的k个源单元;
8.d)为初始成本矩阵的每个单元和每个源单元确定累积成本值,该确定导致多个累积成本值,其中累积成本值是所述每个单元的成本值与所述每个单元和所述每个源单元之间的累积成本路径的一个或更多个单元的成本值的组合。例如,在步骤d)中的“每个单元”可以是无源单元,这意味着“每个单元”可以不是该k个源单元中的源单元。例如,步骤d)包括为不是初始成本矩阵中的源单元的每个单元以及为该k个源单元中的每个源单元确定累积成本值,其中累积成本值是所述每个单元的成本值与所述每个单元和所述每个源单元之间的累积成本路径的一个或更多个单元的成本值的组合,该确定导致多个累积成本值。
9.e)对于初始成本矩阵的每个单元,选择所述每个单元的多个累积成本值中的最小累积成本值,并确定最小成本路径以作为与所选择的最小累积成本值相关联的累积成本路径。例如,步骤e)确定不是初始成本矩阵的源单元的每个单元的最小成本路径。
10.f)选择为初始成本矩阵的期望目的地单元确定的最小成本路径的源单元,其中所选择的源单元与道路网络的捕捉位置相关联。目的地单元不是初始成本矩阵的源单元,它可以表示目标。捕捉位置可以被认为是道路网络上的位置或点。例如,根据本主题确定的捕捉位置可以是道路网络上所选择的源单元的位置。
11.在另一方面,本发明涉及一种捕捉系统(或计算机系统)。该捕捉系统被配置用于
执行步骤a)至步骤f):
12.a)确定边界区域,边界区域包括道路网络的路段;
13.b)确定表示边界区域的单元的初始成本矩阵,其中向初始成本矩阵的每个单元分配成本值,该成本值指示由所述单元表示的边界区域的子区域的至少一个区域特征;
14.c)识别表示路段的初始成本矩阵的k个源单元;
15.d)为初始成本矩阵的每个单元和每个源单元确定累积成本值,该确定导致多个累积成本值,其中累积成本值是所述每个单元的成本值与所述每个单元和所述每个源单元之间的累积成本路径的一个或更多个单元的成本值的组合。例如,在步骤d)中的“每个单元”可以是无源单元,这意味着“每个单元”可以不是该k个源单元中的源单元。例如,步骤d)包括为不是初始成本矩阵中的源单元的每个单元以及为该k个源单元中的每个源单元确定累积成本值,其中累积成本值是所述每个单元的成本值与所述每个单元和所述每个源单元之间的累积成本路径的一个或更多个单元的成本值的组合,该确定导致多个累积成本值。
16.e)对于初始成本矩阵的每个单元,选择所述每个单元的多个累积成本值中的最小累积成本值,并确定最小成本路径以作为与所选择的最小累积成本值相关联的累积成本路径。例如,步骤e)确定不是初始成本矩阵的源单元的每个单元的最小成本路径。
17.f)选择为初始成本矩阵的单元确定的最小成本路径的源单元,其中源单元与道路网络的捕捉位置相关联。目的地单元不是初始成本矩阵的源单元。捕捉位置可以被认为是道路网络上的位置或点。例如,根据本主题确定的捕捉位置可以是道路网络上所选择的源单元的位置。
18.在另一个方面,本发明涉及一种计算机程序产品,该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有包含在其中的计算机可读程序代码,该计算机可读程序代码被配置为实施根据前述实施例的方法的所有步骤。
附图说明
19.包括附图以提供对示例的进一步理解,并将附图合并至本说明书并构成本说明书的一部分。在图中:
20.图1是根据本主题的示例的系统的框图;
21.图2a是用于将目标的位置捕捉到路段上的位置的方法的流程图;
22.图2b描绘了根据本主题的示例的候选路段的区域的表示;
23.图3a是根据本主题的示例的用于生成初始成本矩阵的方法的流程图;
24.图3b示出了中间成本矩阵和初始成本矩阵的示例;
25.图4a是根据本主题的示例的用于确定源单元和其他单元之间的最佳路径的方法的流程图;
26.图4b示出了根据本主题的示例的用于确定最小成本路径的算法的伪代码;
27.图4c示出了算法的输入矩阵的示例;
28.图4d示出了算法的输出矩阵的示例;
29.图5示出了用于评估根据本主题的示例所确定的捕捉点的方法;
30.图6示出了根据本主题的捕捉系统的示意框图。
具体实施方式
31.在以下描述中,出于解释而非限制的目的,阐述了具体的细节,例如特定的架构、接口、技术等,以提供对示例的全面理解。然而,对于本领域技术人员来说显而易见的是,可以在背离这些具体的细节的其他解释性示例中实践所公开的主题。在一些情况下,省略了公知设备和/或方法的详细描述,以便不以不必要的细节来模糊描述。
32.初始成本矩阵可以包括单元集。单元集的子集是k个源单元。可以执行步骤d)至步骤e)以确定初始成本矩阵的每个单元(被称为目的地单元)和对应的最近源单元(本文中的术语“最近”是指可以不是必须最短距离的最低成本)之间的最小成本路径。每个最小成本路径可以具有最少两个单元,该最少两个单元包括源单元和由最小成本路径和零个或更多个中间单元链接的目的地单元。例如,确定最小成本路径,使得最小成本路径的目的地单元可以与道路网络上的位置相关联,其中所述位置是所述最小成本路径的源单元的位置。步骤d)至步骤e)中确定的每个最小成本路径的目的地单元为不是源单元的单元。
33.本主题可以实现目的地目标的位置与道路网络中的相应位置的地图匹配。目的地目标可以是边界区域的子区域(例如地块)或位于边界区域中的目标。例如,目的地目标可以永久地立在一个地方。例如,目标可以是房屋、宿舍、农场、办公室等建筑物。建筑物可以具有一个或更多个入口,这些入口中的一个可以用于表示目标。例如,可以提供捕捉位置作为道路网络上最有可能从由目的地单元表示的建筑物进入的点。这可能是特别有利的,因为建筑物可能有从道路网络获得访问的多于一种的可能性,因此选择最佳捕捉点可以改善对建筑物的访问。例如,目标的位置可以由纬度和经度坐标限定。术语“位置”与术语“点”可互换使用。根据一个实施例,目的地单元表示目标。
34.本文使用的术语“道路网络”可指表示给定区域的道路系统的互连线和点的系统。例如,道路网络可以被存储为具有节点和边缘或链路的图。路段是两点之间的道路的一部分。这些点可以是相邻的道路交叉点,或可以是相隔固定距离的点。路段可以是不同类型的路段中的一种。例如,路段可以包括步行路径、自行车路径、运输路线、道路或公路的一部分或全部。
35.本文使用的术语“地图匹配”可以是将一个或更多个地理点与道路网络上的对应点相关联的技术。将一个地理点与道路网络上的对应点相关联可以称为点捕捉。将多于一个地理点与道路网络上的对应点相关联可以称为道路捕捉。因此,道路捕捉可以是多个单独点捕捉的组合。
36.边界区域可以是关注区域(area ofinterest,aoi)。边界区域覆盖多个目标。例如,可以基于用户输入来确定边界区域。例如,北莱茵-威斯特法伦州(north rhine-westphalia,nrw)西南部的赫克斯特尔镇的一部分可能被选为边界区域。初始成本矩阵的每个单元被分配成本值,该成本值指示由所述单元表示的边界区域的子区域的至少一个区域特征。例如,每个单元表示边界区域的至少一个区域特征。
37.边界区域的子区域具有特性或区域特征,例如f1、f2、

、fn。例如,区域特征可以指示地形的陡度、植被密度或归一化数字植被指数(normalized digital vegetation index,ndvi)、建筑物的存在或描述子区域的任何其他特性。
38.为了获得区域特征f1、f2、

、fn的值,本主题可利用现有数据源。例如,数据源可以包括航空图像数据源、光探测和测距(lidar)数据源等。数据源可以被配置为以预定义格
式来提供每个区域特征的值。例如,数据源可以已经被配置为以网格或栅格格式来提供每个区域特征的值。可以为单元网格提供栅格数据。每个单元(数据)值表示边界区域的子区域。
39.例如,为了获得边界区域中的植被密度的值,可以相应地查询数据源中的数据源。数据源可以提供作为单元矩阵的成本面,其中矩阵的每个单元都具有成本值,该成本值指示由该单元所覆盖的区域中的植被密度。因此,可以分别为区域特征f1、f2、

、fn中的每个区域特征确定成本面cs1

csn。成本面cs1

csn具有相同的大小、相同的单元数和相同的单元大小。单元大小可以不大于由要为其确定捕捉的目标所覆盖的子区域。单元大小可以足够小以捕获所需的细节,但可以足够大以使得可以有效地执行计算机存储和分析。例如,尺寸越小,点捕捉越精确。本主题可以限定单元的大小以平衡最佳点捕捉的优点和计算负担的缺点。例如,成本面的单元值可以表示建筑物、坡度和植被的存在。
40.初始成本矩阵是单元矩阵。初始成本矩阵icm可以是两个或更多个成本面cs1

csn的组合。因此,初始成本矩阵可以称为合并成本面。例如,初始成本矩阵可以是两个或更多个成本面的加权和,诸如icm=w1*cs1+w2*cs2...+wn*csn。可以根据用户的需求来分配加权和的权重wi。例如,组合的单独成本矩阵可以被不同地加权,以控制它们对初始成本矩阵的单独影响。因此,初始成本矩阵的每个单元可以与成本值相关联,该成本值是多个区域特征的值的加权和。例如,初始成本矩阵的每个单元可以与成本值相关联,该成本值是指示植被密度、陡度和建筑物的存在的值的加权和。不可越过的建筑物的存在可以类似于不可越过的植被但不同于(例如)可越过的砾石路的方式来加权。被分类为非植被、非建筑物和可越过的初始成本矩阵中的单元的值可以被设置为预定义值,例如1。
41.如果初始成本矩阵的单元位于道路网络上,则将其限定为源单元。目的地单元可以是目的地目标的占用空间的质心或不同于源单元的任何其他单元。例如,目的地单元可以表示目标。关于道路网络和目标的信息可以由其他数据源来提供。例如,可以从开放式街道地图(open street map,osm)数据源获得道路网络。
42.初始成本矩阵可以用于确定从目的地单元a到源单元的源单元b的最小成本路径,其中单元a可以是不同于源单元的初始成本矩阵的任何单元或可以是表示目标的单元。可以使用传统的最小成本路径确定方法来确定最小成本路径。最小成本路径的捕捉点可以是源单元b的中心。源单元b的中心可以具有给定的纬度和经度坐标的位置c
p
。如果位置c
p
也是在道路网络中存储的位置,则位置c
p
是捕捉点;否则,捕捉点可以是道路网络的最接近c
p
位置的位置。所确定的捕捉点是单元a的捕捉点。术语“捕捉点”与术语“捕捉位置”可交换使用。
43.一旦确定,可以(例如,使用图5的方法)通过本主题进行验证或评估捕捉点。评估可以指示正确确定的捕捉点的分数。
44.目的地单元的点捕捉可以使用初始成本矩阵的成本值以确定源单元中的一个特定源单元与目的地单元之间的最小成本路径。最小成本路径可以连接相邻的单元,其中路径的两个相邻单元可以位于初始成本矩阵的同一对角线上或同一列或同一行上。
45.本主题可能是有利的,因为它可以实现目的地单元的精确点捕捉,因为最小成本路径的特定源单元不是最近的距离,而是以最低成本到达的单元。例如,对目的地目标的精确点捕捉可能是特别有利的,因为它可能实现对目的地目标的最佳访问,例如,对目的地目
标的捕捉点的最佳识别可以防止在运输中的错误的上下车位置。因此,目的地单元的点捕捉的结果可以被有利地用于确定终止于目的地目标的路线,该路线可以包括从捕捉点到目的地目标的最小成本路径。
46.本主题可能具有节省处理资源的另一个优点,因为它可以控制边界区域的大小。例如,如果该方法的用户(例如提供“捕捉点服务”的公司)对镇的建筑物的捕捉点感兴趣,则边界区域可以被限制在足够大的区域内以只包括建筑物周围必要的路段,例如,无需具有覆盖整个区(除了镇,整个区还覆盖其他城市)的区域,较小的区域可能就足够了。因此,可以节省以其他方式处理覆盖整个区的区域的额外数据所需的资源。
47.根据一个实施例,单元ck的累计成本值被定义如下:其中i=n表示单元ck,n是单元ck和源单元之间的路径的单元数,以及cos t(ci,c
i+1
)是两个邻近单元的组合成本值,在两个单元ci和c
i+1
位于初始成本矩阵的同一行或同一列的情况下,其中是初始成本矩阵中的单元ci的成本值,以及在两个单元ci和c
i+1
位于初始成本矩阵的同一对角线上的情况下,
48.单元ck的累计成本值可以指示从源单元行进到单元ck的成本。单元ck的累计成本值也可以称为源单元和单元ck之间的路径的累积成本值。根据单元的空间布置,该实施例可以提供从一个单元行进到源单元的成本。因此,该实施例可以进一步改进点捕捉,因为它使用成本的精确且依赖于单元的成本估计以行进通过单元。
49.本方法的步骤d)和步骤e)的实施可以使得能够确定特定源单元和目的地单元之间的最小成本路径。根据一个实施例,使用迪杰斯特拉(dijkstra)算法来执行步骤d)和步骤e)的实施。例如,通过提供源单元和初始成本矩阵作为dijkstra算法的输入,可以为k个源单元的每个源单元执行dijkstra算法。源单元和单元之间的链路的链路权重是单元的累积成本值。dijkstra算法的实施可能导致初始成本矩阵的每个单元的k个累积成本值,因为它分别处理k个源单元的每个源单元。每个单元的最小累积成本值可以是k个累积成本值中的最小的一个。dijkstra算法可以被修改,以使得它可以使用初始成本矩阵作为输入。例如,dijkstra算法可以使用虚拟图。可以如下方式来创建虚拟图。初始成本矩阵的每个单元的单元中心可以用作虚拟图的节点,并且两个邻近的单元中心之间的路径可以用作虚拟图的链路。dijkstra算法使用链路权重以便找到最佳路径。
50.该实施例可以使得能够进一步修改dijkstra算法,使得源单元和单元之间的链路的链路权重等于从单元行进到源单元的累积成本值。此外,可以修改dijkstra算法,以便将累积成本值临时存储在累积成本矩阵中。此外,生成方向网格,如后链栅格(backlink raster),其中每个单元的值表示到源单元的路径上的下一个单元的方向。后链栅格和累积成本矩阵中的每一个具有与初始成本矩阵的单元相对应的单元,并且具有与初始成本矩阵相同的大小。该实施例可能是有利的,因为它可以例如仅基于后链栅格实现最小成本路径的最佳和资源节省确定。最小成本路径的确定可以节省资源,因为dijkstra算法使用优化的方式来找到从源单元开始的路径。
51.根据一个实施例,最小成本路径的确定包括创建具有与初始成本矩阵的单元相对应的单元的后链栅格。后链栅格为后链栅格的每个单元指示朝向沿着每个单元的最小成本路径的源单元中的一个的方向,其中使用后链栅格来确定目的地单元的最小成本路径。如前所述,任何目的地单元的最小成本路径的确定可以仅基于后链栅格。在确定了后链栅格之后,可以丢弃累积成本值。这可能具有提供一种(在存储器和cpu成本方面的)快速和资源节约的方式的优点,以实现最小成本路径的确定。
52.根据一个实施例,该方法还包括使用目的地目标的捕捉位置来确定源目标和由目的地单元表示的目的地目标之间的路线。例如,捕捉位置是源目标和目的地目标之间的路线的一部分。路线还可以包括从捕捉点到目的地目标的最小成本路径。该实施例可以提供精确的道路捕捉,因为它使用由本主题最佳确定的目的地目标的捕捉位置。
53.根据一个实施例,该方法还包括:响应于接收确定从源目标到目的地目标的路线的请求而执行该方法,以及确定从源目标到目的地目标的路线,使得捕捉位置是路线的一部分。路线还可以包括从捕捉点到目的地目标的最小成本路径。该实施例可能是有利的,因为它可以被无缝地集成到现有导航系统中,因为可以通过对现有导航系统的轻微修改来使用本主题确定路线。
54.根据一个实施例,该方法还包括确定初始成本矩阵的成本值,其中初始成本矩阵的成本值的确定包括为每个单元:确定所述单元的至少一个区域特征的每个特征的成本值,以及使用分配给至少一个区域特征的权重来确定所确定的成本值的加权和,其中所述单元的成本值是加权和。该实施例可以实现通过初始成本矩阵的单元的行进成本的精确表示,因为它可以考虑对应单元的特定地形特性,从而考虑边界区域。这可以进一步改进根据本主题的点捕捉的精度。
55.根据一个实施例,区域特征是以下各项中的任意一个:风景区、地面区和安全等级。考虑的区域特征越多,点捕捉的精度就越高。
56.根据一个实施例,目标由成本矩阵的相邻单元集表示,其中目的地单元是该集的中心单元。单元集的中心可以提供适用于不同形状的目标的通用表示。
57.根据一个实施例,目标由成本矩阵的相邻单元集表示,其中目的地单元是该集的边缘单元或具有最低累积成本值的所述边缘单元的相邻单元。该实施例可以能够通过目的地单元来表示建筑物的入口,因为建筑物的入口通常覆盖由建筑物覆盖的单元集的边缘(或边界)单元。建筑物的入口可能是最佳/期望的目的地。因此,根据本主题,该实施例可以进一步改进点捕捉。
58.根据一个实施例,相邻单元集由多边形界定。该实施例可以能够处理不同的建筑物占用空间,因为大多数目标可以覆盖由多边形界定的相邻单元集。
59.根据一个实施例,该方法还包括评估捕捉位置。评估包括:提供目标的可替代的捕捉点,以及确定捕捉位置是否在可替代的捕捉点周围的预定义区内。可替代的捕捉点可以由预定义的可替代技术限定,或者可以是用户限定的参考/真实捕捉点。如果捕捉位置在预定义区内,则可以将其命名为正确的捕捉位置。该实施例可以能够组合两种方法的捕捉点评估。在捕捉点在预定义区内的情况下,可以使用根据本主题确定的捕捉点。这可以进一步改进根据本主题的点捕捉确定。例如,可以与点捕捉的结果相关联地提供评估的结果。
60.根据一个实施例,该区由距可替代的捕捉点的最大距离和由距目的地单元的多段
线和可替代的捕捉点之间的最大允许方位差限定的方向限定。该实施例可以提供对捕捉点的可靠和精确的评估。
61.根据一个实施例,该方法还包括如果捕捉位置在预定义区内,则使用捕捉位置进行路线确定。该实施例可以能够改进导航系统中的路线确定。例如,如果捕捉点不在预定义区内,则路线可以使用可替代的捕捉点而不是确定的捕捉点。
62.在一个示例中,可以针对不同的目的地目标来重复本方法。这可能会导致目的地目标的多个确定的捕捉点。也可以对多个捕捉点重复评估。如果正确的捕捉点的比例高于预定义的阈值,则这可以验证本方法,或可用于例如通过改变初始成本矩阵的大小或增加使用的区域特征的数量等来调整该方法。因此,该方法可以进一步用于一个或更多个路由应用。
63.根据一个实施例,该方法还包括:响应于接收确定从源目标到目的地目标的路线的请求而执行步骤f)。
64.根据一个实施例,目的地单元表示边界区域内的目标。
65.根据一个实施例,目标由成本矩阵的相邻单元集表示,其中目的地单元是该集的中心单元。
66.图1是根据本主题的示例的系统100的框图。系统100可以包括至少一个定位设备101、捕捉系统102和一个或更多个客户端103。虽然被示出为独立的部件,但在一个示例中,定位设备101和/或捕捉系统102和/或客户端103可以形成系统100的必要部分。在一个示例中,定位设备101、捕捉系统102和客户端103可以通过网络来通信。例如,该网络包括无线局域网(wlan)连接、广域网(wan)连接、局域网(lan)连接、互联网或它们的组合。
67.图1的系统100可以被配置为根据本主题执行点捕捉。由系统100执行的点捕捉的结果可以进一步用于不同的目的。例如,点捕捉的结果可用于确定路线。在另一示例中,点捕捉的结果可以用作元数据。在一个示例中,通过使用本主题确定边界区域中每个位置的捕捉点,可以为给定的边界区域限定或预处理元数据。例如,边界区域(例如城市)可以被细分为多个子区域,其中对于每个子区域,由该子区域所覆盖的目标的相关联的捕捉点是根据本主题预先确定或预先计算的。例如,边界区域可能只覆盖单个城市、国家或者甚至整个大陆。子区域的大小可以从人口密集区域的1平方米到农村区域的100平方米范围。然而,这些数字仅被视为示例性,而不被视为对本主题的限制。
68.此外,可以(例如)在查找表中提供元数据。查找表可以包括将表示边界区域的子区域(例如,包括建筑物)的位置与相应的预先计算的捕捉点相关联的条目。例如,可以提供应用编程接口(api)。api能够实现对元数据的访问。
69.定位设备101通常可以被理解为提供要确定捕捉点的空间位置的任何设备或工具。定位设备101可以以各种变体实施。
70.在一种变体中,定位设备101可以被配置为通过地理空间位置卫星来确定其位置。定位设备101的当前位置可以指示定位设备101当前所在的建筑物或车辆等的位置。实际的场景可能是,携带定位设备101(例如作为移动电话)的第一用户想要向第二用户指示他的当前位置。为此,指示建筑物的位置的定位设备的位置可用于确定第一用户的当前位置或定位的捕捉点。第一用户可以向第二用户提供确定的捕捉点,使得他可以使用终止于捕捉点的路线来加入第一用户。在该示例中,定位设备101被配置为通过地理空间位置卫星来确
定其位置。为此,定位设备101可以(例如)使用以下各项中的任意一项:全球定位系统(gps)、glonass系统、compass和北斗导航系统、伽利略定位系统或印度的印度区域导航卫星系统。定位设备101可以(例如)包括gnss接收器,以接收差分gnss信号的多个源。
71.捕捉系统102可以包括道路网络存储105。道路网络存储可以是(例如)计算机存储器。道路网络存储105可以维持道路网络图107,道路网络图107包括关于道路的位置、状况和布局中的任意一项的数据。道路网络存储105可以存储路段和关于道路的附加数据,诸如道路上的行进方向(如单向或双向行进)、转弯限制、交通规则信息等。
72.为了执行根据本主题的目标的捕捉点的确定,捕捉系统102可能需要关于目标的位置的信息。例如,关于目标的位置的信息可以能够识别初始成本矩阵的单元或者更优选地识别表示目标的后链栅格。例如,关于目标的位置的信息可以由定位设备101提供。在一个示例中,可以从定位设备101接收该信息。在另一个示例中,如上所述,如果客户端103和定位设备101形成必要部分,则客户端103可以将该信息发送到捕捉系统102。
73.例如,关于目标的位置的信息可以由定位设备101以如下所示的方式来提供。可以在定位设备101的用户接口处接收指示目标的用户输入。在一个示例中,用户输入可以包括目标的地址。该地址可由定位设备101进一步转换为指示该目标的位置的坐标。例如,可以使用地址到坐标转换器来执行该转换。例如,可以由云服务提供地址到坐标转换器。地址到坐标转换器可以使用一个或更多个数据库来进行地址转换。
74.在另一示例中,如果目标是建筑物,则关于该目标的位置的信息可以指示该目标的入口。出于此目的,可以利用指示其入口的位置的标签来标记目标的地址或目标本身。这可以能够找到与建筑物的入口相关联的初始成本矩阵的单元。
75.捕捉系统102可以被配置为(例如)使用上述的查找表,基于本主题来捕捉从特定位置到道路网络图107的路段的地理数据。捕捉是指由定位设备101所指示的位置到路段上的位置的关联或映射。
76.上述方法可以不同的方式使用。优选地,捕捉系统102被配置为使用查找表来快速识别与地理坐标或子区域的信息相关联的捕捉点。
77.因此,应用可以建立数据集,该数据集包括目标或目标位置与相关联的捕捉点之间的关联。优选地,该数据集还可以包括从目标到所述捕捉点的对应的最小成本路径,这被上述描述为具有元数据的查找表(或更普遍的预先计算的数据集)。可以仅使用沿路径的方向指示来存储最小成本路径(例如,如上所述关于后链栅格)。这可能是有益的,因为对于任何源位置和目标之间的任何后续路由规划,与目标相关联的捕捉点以及可选的最小成本路径可以被用作路线的一部分,并且随时可用。
78.在另一示例中,一般来说,源位置和目标之间的路由规划可以确定目标的捕捉点,并确定源位置和捕捉点之间的路线。可以用常规的路线计算方法来确定路线。
79.本主题可能是有利的,因为它可以用于精确地确定路线。例如,想要从其当前位置移动(步行或开车)到目的地的人可能请求其当前位置和目的地之间的路线。例如,可以由捕捉系统来接收该请求。捕捉系统还可以被配置为接收用户的当前起始位置数据并执行该位置数据的道路捕捉。特别地,该捕捉系统可以根据本主题来执行点捕捉,以识别捕捉点。捕捉系统或任何其他装置还可以用于确定从捕捉点到目的地的路线。
80.捕捉系统102还可以包括显示器109,以提供道路网络107的部分的图形表示。捕捉
系统102还可以被配置为接收来自一个或更多个数据源(未示出)的数据。例如,数据源可以是lidar系统。
81.捕捉系统102可以被配置为根据具有客户端103的服务器-客户端配置来运行。例如,捕捉系统102可以接收来自客户端的请求,以确定关于特定目标(类似于将在下面针对图2b进行讨论的目标233)的道路网络107的路线中的一条上的捕捉点。例如,如果客户端103和定位设备101形成(如上所述的)必要部分,则捕捉系统102还可以从客户端103接收指示路线的目的地目标(如目标233)的位置的信息。在接收请求后,捕捉系统102可以执行本主题的至少一部分。
82.为了更详细地解释确定捕捉点的本方法,在下文中不受一般性的限制的情况下,假设捕捉点是计算出来的,而不是从表中检索出来的。
83.图2a是用于将目标的位置捕捉到路段上的位置的方法的流程图。为了解释的目的,图2a所描述的方法可以在图1所示的系统中实施,但不限于该实施方式。
84.该方法开始于步骤201,其中捕捉系统102确定边界区域。在一个示例中,可以响应于由捕捉系统102接收的来自客户端103中的一个的请求而执行步骤201,以确定到给定目标的路线。给定目标可能具有地理位置,如纬度和经度坐标。在另一优选的示例中,可以响应于由捕捉系统102接收的来自客户端103中的一个的请求而执行步骤201,以确定位于边界区域内的任何目标的整个边界区域捕捉点。此处必须注意的是,后一请求可能相当不具体,甚至可能没有指示单个目标。
85.图2b示出了示例边界区域230。边界区域230包括道路网络107的路段231a、231b和231c。此外,示例性地指示了给定目标233。给定目标233可以是建筑物。捕捉系统102可以基于用户输入来确定边界区域230。例如,用户输入可以指示目标233的位置或目标所位于的城镇的名称,例如在另一示例中,用户可以借助于指示边界区域的外部界限的地理坐标来指示边界区域。也可以使用区或甚至整个国家的名称来指示边界区域。应当理解的是,在城市、区或国家的名称的情况下,需要工具来将该指示“翻译”为指示边界区域的外部界限的地理坐标。例如,边界区域可以被确定为位于的中心处的预定大小(例如,1平方千米)的正方形或圆形区域。例如,可以基于给定目标233的位置数据来确定边界区域的位置,例如,如果目标233位于的中心,则边界区域可以位于中心。通常,目标233可以位于中心。例如,可以从定位设备101接收位置数据233。在另一示例中,可以从用户接收给定目标233的位置数据来作为用户输入的一部分。
86.如图2b所示,路段231a至231c穿过具有纬度和经度坐标的多个位置p1至pn。路段231a至231c中的每个路段都穿过位置235a至235c的对应子集。路段上的这些位置p1至pn可以用于将给定目标233的位置捕捉到道路网络107。
87.在确定边界区域230之后,该方法进行到步骤203,其中捕捉系统102生成单元的初始成本矩阵。初始成本矩阵表示边界区域230。初始成本矩阵可以包括表示路段235a至235c的k个源单元sc1…
sck。初始成本矩阵的剩余l个单元可以被称为单元c1…cl
。源单元中的每个源单元可以表示道路的一部分,并穿过位置p1至pn中的至少一个位置。
88.初始成本矩阵可以(例如)被存储为文件。该文件可以包括关于单元的坐标的信息和附加信息。附加信息可以包括分配给初始成本矩阵的对应单元的初始成本值。单元的成本值可以指示行进或移动通过该单元的成本。例如,单元的成本值可以是由所述单元表示
的边界区域的子区域的一个或更多个区域特征的值的组合。例如,区域特征可以指示坡度、植被、地形特性等的存在。图3a和图3b提供了用于确定初始成本矩阵的成本值的示例。
89.初始成本矩阵可以提供成本面,该成本面能够在源单元中的一个源单元和初始成本矩阵的另一单元之间找到具有最小累积成本的最优路径。使用单元表示可能是有利的,因为它可以能够实现表示边界区域的数据的简化存储,同时仍然能够实现基于图的工具的使用。这是因为初始成本矩阵的每个单元中心可以用作节点,并且两个邻近单元中心之间的长度可以用作链路。链路可用于限定路径。使用单元结构的另一优点可以是利用诸如lidar源的现有数据源来获得边界区域的预先计算的矩阵。
90.在一个示例中,可以使用初始成本矩阵的单元之间的所有可能链路,以便根据本方法来确定路径。这可能是有利的,因为它可以提供最佳路径的精确估计。如果边界区域的大小小于预定义的最大大小,这可能是特别有利的,因为小的边界区域可能导致要处理的单元的数量较少,例如,如果边界区域是1000平方米,单元的数量可能比1平方千米的区域的单元的数量小一个数量级。换句话说,如果初始成本矩阵的大小很小,则开发人员可能总是有足够的处理资源来快速计算路径。边界区域的大小可以是初始成本矩阵中的单元的数量,或者可以是由边界区域覆盖的面的大小。然而,如果边界区域的大小大于最大大小,则链路的数量可能会以指数方式增长。这种链路的高数量可能会增加总的计算工作量,因为可能有可供选择的更多的可替代路线。因此,在可替代示例中,可以通过限制链路的数量来执行路径的确定。可以通过考虑邻域关系来限制链路的数量,使得初始成本矩阵的给定单元可以仅连接到特定的单元集。这也可以约束路径的方向。在边界区域的大小大于预定义的最大大小的情况下,可以限制链路的数量。例如,根据rook模式的邻域关系可以将给定单元的直接邻近单元的数量限制为4个。在另一示例中,根据皇后模式(queen pattern)的邻域关系可以将给定单元的直接邻近单元的数量限制为8个。使用邻域关系可以能够控制路径的确定。
91.该方法进行到步骤205,其中捕捉系统102确定从每个单元到源单元sc1…
sck中的一个的最佳路径。例如,步骤205可以导致如图4d所示的后链栅格433。
92.在一个示例中,可能需要将诸如给定目标233的目标与单元中的单个单元(称为“目标单元”)相关联,即使给定目标由多于一个单元表示。例如,给定目标可以覆盖相邻单元集。目标单元可以是相邻单元集的质心。这可能是有利的,因为它可以根据建筑物的形状来提供最佳路径。在另一示例中,目标单元可以是表示建筑物的入口的单元,该单元是建筑物占用空间的外部线上的任何位置的单元。这可以能够找到与建筑物形状无关的最佳路径。
93.源单元sci(i=1

k)和目的地单元cj(j=1

l)之间的每一路径可以与累积成本值相关联。源单元sci和目的地单元cj之间的路径可以包括0或更多的中间单元ch(h=0

且h≠j)。然后,路径的单元数n可以大于或等于2(n≥2)。路径的累积成本值可以被称为该路径的目的地单元cj的累积成本值。单元cj的累积成本值可以被限定如下:其中k=n表示单元cj,以及cost(ck,c
k+1
)是两个邻近单元的组合成本值,在两个单元ck和c
k+1
位于初始成本矩阵的同一行或同一列的情况下,其中是从初始成本矩阵中获得的单元ck的初始
成本值,以及在两个单元ck和c
k+1
位于初始成本矩阵的同一对角线上的情况下,
94.将每个单元链接到源单元sc1…
sck中的一个的最佳路径(在步骤205中确定)可以是与最低累积成本值相关联的路径。
95.例如,单元cj和源单元sc1…
sck中的一个之间的最佳路径的确定可以通过单独处理每个源单元来执行,以找到将所述源单元链接到单元cj的一个或更多个(可替代)路径的组gi,其中每条路径都有累计成本值。可以比较所有路径的累积成本值,以识别最低累积成本值和作为最小累积成本路径的相关最佳路径。图4a-图4d提供了执行步骤205的示例。
96.在确定最佳路径之后,该方法进行到步骤207,其中捕捉系统102选择或识别单元c1…cl
中的特定单元的最佳路径的源单元,例如,特定单元可以表示给定目标233。在步骤207中,捕捉系统102将与所选源单元的位置相关联(或与所选源单元的位置相对应)的捕捉点确定为特定单元的捕捉点。例如,假设为特定确定的最佳路径从源单元sc2开始,捕捉点可以(例如)是与最佳路径的源单元sc2相关联的位置p1到pn的位置。所确定的捕捉点可以是道路网络107上的理想捕捉点,最有可能从建筑物233访问该理想捕捉点。
97.可以(例如)通过首先确定或识别将特定单元链接到源单元的(例如,后链栅格上的)最佳路径来执行步骤207。所识别的最佳路径的源单元的中心可以具有给定纬度和经度坐标的位置c
p
。如果c
p
也是被存储在道路网络中的位置,则位置c
p
是捕捉点;否则,捕捉点可以是距离c
p
最近的道路网络的位置。所确定的捕捉点是特定单元的捕捉点。
98.捕捉点集可以与指示单元的信息相关联地存储。在一个示例中,捕捉位置可以与指示给定目标的信息相关联地存储。这可以能够确定到给定目标的目的地中(稍后的时间点处)的路线,其中路线在捕捉位置处结束。
99.图3a是根据本主题的示例的用于确定初始成本矩阵的方法的流程图。为了解释的目的,图3a中描述的方法可以在图1所示的系统中实施,并且可以参考图3b进行描述,但不限于这些实施方式。图3a的方法提供了步骤203的示例实施方式。
100.该方法开始于步骤301,其中捕捉系统102确定多个成本矩阵320和321(称为中间成本矩阵),如图3b所示。为了简化描述,图3b示出了两个中间成本矩阵,但不限于两个中间成本矩阵。多个中间成本矩阵320-321中的每个中间成本矩阵的单元值可以是对应区域特征的值。例如,中间成本矩阵320的单元值可以指示由各个单元表示的地形的陡度,(例如)因此中间成本矩阵320可以被称为坡度栅格。中间成本矩阵321的单元值可以指示各个单元处的植被密度,(例如)因此中间成本矩阵320可以被称为植被栅格。
101.在步骤303中,可以由捕捉系统102组合中间成本矩阵320和321,以生成初始成本矩阵322。例如,该组合可以是中间成本矩阵320和321的相应单元的值的和。在另一示例中,可以执行该组合,使得每个单独的中间成本被不同地加权,以控制对初始成本矩阵322的单独影响。初始成本矩阵322的单元的单元值cost12
ij
(其中i和j是初始成本矩阵322的行和列的标引)可以分别是中间成本矩阵320和321中的相应单元的单元值cost1
ij
和cost2
ij
的加权和。加权和可以被限定如下cost12
ij
=w1×
cost1
ij
+w2×
cost2
ij
,其中w1和w2是分别与中间成本矩阵320和321相关联的预定义权重。
102.图4a是根据本主题的示例的用于确定源单元和其他单元之间的最佳路径的方法
的流程图。为了解释的目的,图4a中描述的方法可以在图1所示的系统中实施,但不限于该实施方式。图4a的方法提供了步骤205的示例实施方式。
103.该方法开始于步骤401,其中捕捉系统102配置dijkstra算法,以便根据本主题来提供修改的dijkstra算法。修改的dijkstra算法的伪代码如图4b所示。dijkstra算法被配置为使用初始成本矩阵的(虚拟)图表示,其中每个单元中心表示图的节点。根据所使用的邻域类型,每个节点都通过图的边缘或链路被连接到所有相邻节点。由dijkstra算法使用的表示源单元的源节点和表示另一单元的另一节点之间的链路的链路权重可以根据本主题被限定为从单元行进到源单元的累积成本。单元ck的累计成本值被定义如下:其中i=n表示单元ck,n是单元ck和源单元之间的路径的单元数,以及cos t(ci,c
i+1
)是两个邻近单元的组合成本值,在两个单元ci和c
i+1
位于初始成本矩阵的同一行或同一列的情况下,其中是初始成本矩阵中的单元ci的成本值,以及在两个单元ci和c
i+1
位于初始成本矩阵的同一对角线上的情况下,
104.因此,该算法被配置为接收初始成本矩阵和源矩阵422来作为输入,如图4c所示。源矩阵422指示初始成本矩阵322的哪个单元是(例如与值1相关联的)源单元以及初始成本矩阵322的哪个单元不是(例如与值0相关联的)源单元。此外,该算法被配置为通过扩展函数来生成基于初始成本矩阵322的累积成本矩阵,该扩展函数计算到达最近源单元的最小总成本并存储关于路径的信息。累积成本矩阵具有与初始成本矩阵的单元相对应的单元,并且具有与初始成本矩阵相同的大小。例如,在处理算法时,可以为累积成本矩阵的相同单元找到多个累积成本值。累积成本值可以被临时地存储在累积成本矩阵中,并由所述单元的另一较小的累积成本值代替该累积成本值。此外,生成方向网格,诸如后链栅格,在该方向网格中,每个单元的值表示到源单元的路径上的下一单元的方向。
105.图4b的伪代码总结了上述执行的配置。如第2-3行所指示的,初始化累积成本矩阵。如第4行所指示的,初始化后链栅格。可以针对输入初始成本矩阵的源单元中的每个源单元来重复由第7行至第20行所指示的迭代过程。在迭代过程中,可以(例如)执行以下操作。在每次迭代中,从active_list(第11行)移除active_list中的最小值。识别单元的所有邻域(第10行)。对于所有邻域,计算到最近源单元的累积成本(第13行),并将该邻域添加到active_list(第14行)。如果邻近单元的成本低于先前迭代中该单元的已计算的累计成本(第15行),则active_list中的旧值将被较小的值替换(第16行-第17行)。旧值也将被输出栅格中的较小值替换(第18行)。此外,计算编码方向值(第19行)并将该编码方向值写入到后链栅格(第20行)。
106.在步骤403中,初始成本矩阵322和源矩阵422可以作为输入被提供给修改算法。然后,可以在步骤405中执行修改算法。修改算法的输出是(最终)累积成本矩阵432和相关的后链栅格433,如图4d所示。为了解释的目的,图中示出了单元值。
107.后链栅格433可以用于确定初始成本矩阵中不是源单元的每个单元的最佳路径。例如,单元435的最佳路径可以是将单元435链接到源单元437的路径436。与源单元437相关联的道路网络的位置可以是单元435的最佳捕捉点。单元438的最佳路径可以是将单元438
链接到源单元440的路径439。在这种情况下,与源单元440相关联的道路网络的位置可以是单元438的最佳捕捉点。因此,根据哪个目标单元用于表示建筑物,最佳捕捉点可以是不同的。
108.本主题还可以能够验证或评估所确定的捕捉点。例如,如图5所示,可以确定给定目标233的参考捕捉点501。参考捕捉点501可以是用户限定的,例如它表示真实/理想捕捉点。可以提供捕捉区503(图5的虚线区域)。捕捉区503由从目标233的质心到参考捕捉点501的向量505、由r限定的最大距离和由最大允许方位差限定的方向来限定。在该示例中,θ1和θ2之间的允许方位差β为15,允许的距离差由r限定。可以通过检查所确定的捕捉点是否在捕捉区503内来执行对所确定的捕捉点的评估。如果它在捕捉区503内,则捕捉点还可以用于确定到目标233的路线。
109.图6示出了根据本主题的示例的计算机系统(诸如捕捉系统102)的示意框图。
110.计算机系统102的部件可以包括但不限于一个或更多个处理器或处理单元603、存储系统611、存储器单元605以及总线607,总线607将包括存储器单元605的各种系统部件耦接到处理器603。存储系统611可以包括(例如)硬盘驱动器(hdd)。存储器单元605可以包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(ram)和/或高速缓冲存储器。
111.计算机系统102还可以与一个或更多个外部设备(诸如键盘、定点设备、显示器613等)通信;与使用户能够与计算机系统102交互的一个或更多个设备通信;和/或与使计算机系统102能够与一个或更多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)通信。可以经由i/o接口619进行这种通信。仍然,计算机系统102可以经由网络适配器609与一个或更多个网络(诸如局域网(lan)、通用广域网(wan)和/或公共网络(例如,互联网))通信。如图所示,网络适配器609经由总线207与客户端系统102的其他部件通信。
112.存储器单元605被配置为存储可在处理器603上执行的应用。例如,存储器单元605可以包括操作系统以及一个或更多个应用程序。应用程序包括指令,这些指令在执行时能够执行参考图2a、图3a、图4a或图5描述的方法的至少一部分。
113.如本领域技术人员将理解的,本发明的各方面可以被体现为装置、方法、计算机程序或计算机程序产品。因此,本发明的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等)或结合软件和硬件方面的实施例的形式,在本文中,这些实施例通常可以被称为“电路”、“模块”或“系统”。此外,本发明的各方面可以采取体现在其上具有计算机可执行代码的一个或更多个计算机可读介质中的计算机程序产品的形式。计算机程序包括计算机可执行代码或“程序指令”。
114.可以使用一个或更多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读存储介质。本文所使用的“计算机可读存储介质”包括可以存储可由计算设备的处理器执行的指令的任何有形存储介质。计算机可读存储介质可以被称为计算机可读非暂时性存储介质。计算机可读存储介质也可以称为有形计算机可读介质。在一些实施例中,计算机可读存储介质还可以能够存储能够由计算设备的处理器访问的数据。
[0115]“计算机存储器”或“存储器”是计算机可读存储介质的示例。计算机存储器是处理器可以直接访问的任何存储器。“计算机存储”或“存储”是计算机可读存储介质的另一示例。计算机存储是任何非易失性计算机可读存储介质。在一些实施例中,计算机存储也可以
是计算机存储器,反之亦然。
[0116]
本文使用的“处理器”包括能够执行程序或机器可执行指令或计算机可执行代码的电子部件。对包括“处理器”的计算设备的引用应被解释为可能包括多于一个处理器或处理核心。处理器可以例如是多核处理器。处理器也可以指单个计算机系统内或分布在多个计算机系统之间的处理器的集合。术语计算设备还应被解释为可能指代计算设备的集合或网络,每个计算设备包括一个或更多个处理器。计算机可执行代码可以由同一计算设备内的多个处理器执行,或者甚至可以分布在多个计算设备上。
[0117]
计算机可执行代码可以包括使处理器执行本发明的一个方面的机器可执行指令或程序。用于执行本发明各方面的操作的计算机可执行代码可以由一种或更多种编程语言的任意组合编写,一种或更多种编程语言包括面向对象的编程语言(诸如java、smalltalk、c++或类似语言)以及传统的过程式编程语言(诸如“c”编程语言或类似编程语言),并被编译成机器可执行指令。在一些情况下,计算机可执行代码可以是高级语言的形式或预编译的形式,并可以与解释器结合使用,该解释器动态生成机器可执行指令。
[0118]
通常,程序指令可以在一个处理器上或者多个处理器上执行。在多个处理器的情况下,它们可以分布在多个不同的实体上。每个处理器可以执行用于该实体的指令的一部分。因此,当参考涉及多个实体的系统或过程时,计算机程序或程序指令被理解为适合于由与各自实体相关联或相关的处理器执行。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1