发明内容
针对上述技术问题,本申请提供一种新旧地图差异检测方法、装置及可读存储介质,解决或缓解对新旧版本地图存在差异的部分进行快速查找的问题。
为解决上述技术问题,本申请提供一种新旧地图差异检测方法,包括:
在目标区域内,获取旧版地图的第一行点数据和新版地图的第二行点数据;
根据所述第一行点数据建立快速索引表;
抽取所述第二行点数据中的第二行点坐标,根据所述快速索引表查找所述第一行点数据中距离所述第二行点坐标最近的第一行点坐标;
根据所述第二行点坐标与最接近的第一行点坐标之间的点间距离,检测所述新版地图的第二行点坐标中的差异点。
可选地,所述在目标区域内,获取旧版地图的第一行点数据和新版地图的第二行点数据的步骤之前,还包括:
获取所述新版地图的行点密度;
根据所述行点密度,对所述旧版地图进行行点插值,以获取所述第一行点数据。
可选地,所述预设插值方法选自线性插值法和/或三次样条插值法。
可选地,所述根据所述第二行点坐标与最接近的第一行点坐标之间的点间距离,检测新版地图的第二行点坐标中的差异点,包括:
在所述第二行点坐标与最接近的第一行点坐标之间的点间距离超出距离阈值时,确认所述第二行点坐标为差异点;
所述根据所述第二行点坐标与最接近的第一行点坐标之间的点间距离,检测新版地图的第二行点坐标中的差异点之后,还包括:
按照预设策略对所述差异点进行处理。
可选地,所述预设策略选自标记、仿真、核实中的至少一项。
可选地,所述距离阈值包括第一距离阈值、第二距离阈值和第三阈值,所述预设策略包括第一预设策略、第二预设策略和第三预设策略;所述按照预设策略对所述差异点进行处理的步骤,包括以下至少一种:
在所述点间距离超出第一距离阈值且未超出所述第二距离阈值时,按照第一预设策略对所述第二行点坐标进行处理;
在所述点间距离超出所述第二距离阈值且未超出第三距离阈值时,按照第二预设策略对所述第二行点坐标进行处理;
在所述点间距离超出所述第三距离阈值时,按照第三预设策略对所述第二行点坐标进行处理。
本申请还提供一种新旧地图差异检测装置,包括:
行点预处理单元,用于在目标区域内,获取旧版地图的第一行点数据和新版地图的第二行点数据;
索引处理单元,用于根据所述第一行点数据建立快速索引表;
行点查找单元,用于抽取所述第二行点数据中的第二行点坐标,根据所述快速索引表查找所述第一行点数据中距离所述第二行点坐标最近的第一行点坐标;
差异检测单元,用于根据所述第二行点坐标与最接近的第一行点坐标之间的点间距离,检测所述新版地图的第二行点坐标中的差异点。
可选地,还包括:
插值单元,用于获取所述新版地图的行点密度,并根据所述行点密度对所述旧版地图进行行点插值,以获取所述第一行点数据。
可选地,所述差异检测单元,用于在所述第二行点坐标与最接近的第一行点坐标之间的点间距离超出距离阈值时,确认所述第二行点坐标为差异点;
所述新旧地图差异检测装置,还包括:
差异处理单元,用于按照预设策略对所述差异点进行处理。
本申请还提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述的新旧地图差异检测方法的步骤。
如上所述,本申请的新旧地图差异检测方法、装置及可读存储介质,所述方法包括:在目标区域内,获取旧版地图的第一行点数据和新版地图的第二行点数据;根据所述第一行点数据建立快速索引表;抽取所述第二行点数据中的第二行点坐标,根据所述快速索引表查找所述第一行点数据中距离所述第二行点坐标最近的第一行点坐标;根据所述第二行点坐标与最接近的第一行点坐标之间的点间距离,检测所述新版地图的第二行点坐标中的差异点。本申请的新旧地图差异检测方法、装置及可读存储介质,能够高效地对新版本地图与旧版本地图之间存在差异的部分进行检测,有效节约时间和成本。
具体实施方式
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素,此外,本申请不同实施例中具有同样命名的部件、特征、要素可能具有相同含义,也可能具有不同含义,其具体含义需以其在该具体实施例中的解释或者进一步结合该具体实施例中上下文进行确定。
应当理解,尽管在本文可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本文范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语"如果"可以被解释成为"在……时"或"当……时"或"响应于确定"。
第一实施例
在一方面,本申请首先提供一种新旧地图差异检测方法,图1为本申请一实施例的新旧地图差异检测方法的流程图。
如图1所示,在一实施例中,新旧地图差异检测方法包括:
S10:在目标区域内,获取旧版地图的第一行点数据和新版地图的第二行点数据。
行点是高清地图里面的道路标识特征点,可以作为定位、检索以及机器学习等数字化应用的基础数据。根据道路标识的不同,行点可以包括车道线行点、箭头行点、人行道行点、停止线行点、限速标志行点、以及文字行点等元素的特征点组成的特征点群。在选定的同一目标区域里面,通过分别获取新旧地图的特征点群,得到新旧地图中所有道路标识的行点数据。
图2为本申请一实施例的行点插值流程图。如图2所示,在一实施例中,S10:在目标区域内,获取旧版地图的第一行点数据和新版地图的第二行点数据的步骤之前,包括:
S11:获取新版地图的行点密度。
S12:根据行点密度,对旧版地图进行行点插值,以获取第一行点数据。
在新旧版地图行点密度不同的情况下,一般来说,新版地图有了更精细化的制作。此时,按照新版地图的行点密度,先对旧版地图进行行点插值处理。例如,新版地图的行点密度是0.1米,旧版地图的行点数据的行点密度是0.5米。则对旧版地图中的每条车道线,按照在每个原有行点的沿车道线方向的两边,各插入两个间隔0.1米的行点的方式进行插值补齐。在插值后,旧版地图的行点数据的行点密度也提升至0.5米。
在一实施例中,行点插值方法选自线性插值法及三次样条插值法中的至少一种。
线性插值是指插值函数为一次多项式的插值方式,其在插值节点上的插值误差为零。线性插值相比其他插值方式,具有简单、方便的特点。线性插值利用经过两点的直线来近似表示原函数,因此,线性插值可以用来近似代替原函数,也可以用来计算得到查表过程中表中没有的数值。由于线性插值法简单、方便,是比较优选的行点插值方法。
三次样条插值(Cubic Spline Interpolation)简称Spline插值,是通过一系列型值点的一条光滑曲线,型值点是通过测量或计算得到的曲线或曲面上少量描述曲线或曲面几何形状的数据点,进而以型值点近似地决定曲线或曲面。构造三次样条插值函数通常有两种方法:一是以给定插值结点处得二阶导数值作为未知数来求解,工程上称二阶导数为弯矩,因此,这种方法成为三弯矩插值;二是以给定插值结点处的一阶导数作为未知数来求解,一阶导数又称为斜率,因此,这种方法称为三斜率插值。三次样条插值法计算简单、稳定性好、收敛性有保证,能够提高插值函数的光滑性。
S20:根据第一行点数据建立快速索引表;
可选地,将旧版地图中的行点数据建立快速索引表,例如k-d树(K-dimensiontree)结构的索引数据结构,以利于数据行点的查找。
k-d树是对数据点在k维空间中划分的一种数据结构,主要应用于多维空间关键数据的搜索。本质上,k-d树是一种空间划分树,通过把整个空间划分为特定的几个部分,然后在特定空间的部分内进行相关搜索操作。k-d树是用于高维空间中的快速最近邻和近似最近邻查找的一种便捷的数据结构。
构造k-d树的过程一般涉及到两个步骤:
1.划分时以选中维度的中位数来划分,小的为左节点,大的为右节点;
2.选择维度的方法有最大方差法或顺序遍历法,这里采用顺序遍历法,即对于点(x1,x2,x3,x4....),第一次按x1的维度来切分,第二次按照x2的维度来切分,切刀最后一个维度之后又回到x1的维度。
例如,在一个旧版地图的二维行点图中,有6个行点:(2,3)、(4,7)、(5,4)、(7,2)、(8,1)和(9,6)。
首先先以x坐标中间值进行切分。6个行点的x轴坐标分别为2、4、5、7、8、9,因此,可以选择x轴坐标的中位行点(5,4)或(7,2),本实施例中选择最根部节点(y轴较小)的行点(7,2)。
之后,左右两边再按照y轴的排序选择中间值进行切分,中位行点分别记载于左右枝的节点。在行点(7,2)的左侧,三个行点的y轴坐标分别为3、4、7,因此,选择左枝节点的中位行点(5,4)。在行点(7,2)的右侧,两个行点的y轴坐标分别为1、6,因此,可以选择右枝节点的中位行点(8,1)或(9,6)。在本实施例中,左边区域按(5,4)上下分割,右边区域按(9,6)上下分割。
接着,把剩下的行点再交替按照x轴的排序和y轴的排序进行中位分割。通过不断按照上面的步骤进行切分和构造,即可得到最终的k-d树快速索引表。本实施例中,在左边区域按中位行点(5,4)上下分割后,其左侧区域计入仅剩下的行点(2,3),右侧区域计入仅剩下的行点(4,7)。在右边区域按照中位行点(9,6)上下分割后,在左侧区域计入仅剩下的行点(8,1),在右侧区域无行点计入,从而得到最后结果如表1所示。
表1.二维k-d树索引表
S30:抽取第二行点数据中的第二行点坐标,根据快速索引表查找第一行点数据中距离第二行点坐标最近的第一行点坐标;
可选地,遍历新版地图中的每一个行点,在旧版地图中查找距离最接近的一个行点坐标。
示例性地,在检索新版地图中的目标行点(2.1,3.1)时,通过表1进行快速最近邻查找。通过二叉搜索,即按照切分方法不断寻找目标行点在树中的位置,顺着搜索路径很快就能该点的邻近点,也就是叶子行点(2,3)。而找到的叶子行点(2,3)并不一定就是最邻近的行点,比叶子行点(2,3)更邻近的行点如果存在,应该位于以查询点为圆心且通过叶子行点(2,3)的圆域内。为了找到真正的最邻近行点,还需要进行回溯操作:算法沿搜索路径反向查找是否有距离目标行点更近的数据点。本实施例中,先从最根部的行点(7,2)点开始进行二叉查找,然后到达左枝节点的行点(5,4),最后到达叶子行点(2,3),此时行点搜索路径为(7,2)至(5,4)至(2,3)。首先以行点(2,3)作为当前最近邻点,计算其到目标行点(2.1,3.1)的距离为0.1414,然后回溯到其父节点的行点(5,4),并判断在该父节点的其他子节点空间中是否有距离目标行点更近的数据点。具体地,以(2.1,3.1)为圆心,以叶子行点(2,3)到目标行点(2.1,3.1)的距离0.1414为半径画圆。计算得知该圆并不和第一次纵轴分割平面y=4交割,更不会与第一次横轴分割平面x=7超平面交割,因此不用进入行点(5,4)节点右侧子空间中去搜索,也不用进入行点(7,2)右子空间进行查找。至此,搜索路径中的节点已经全部回溯完,结束整个搜索,返回最近邻行点(2,3),最近距离为0.1414。
示例性地,如目标行点为(2,4.5),同样先进行二叉查找,先从最根部行点(7,2)查找到行点(5,4)的节点。由于在进行纵轴第一次分割时是由y=4为分割超平面的,而目标行点的纵轴坐标为y值为4.5,因此进入右子空间查找到行点(4,7),形成行点搜索路径(7,2)至(5,4)至(4,7),先取行点(4,7)为当前最近邻点,计算其与目标行点的距离为3.202。然后回溯到其父节点的行点(5,4),目标行点与行点(5,4)之间的距离为3.041,小于3.202,因此,以(2,4.5)为圆心,以3.041为半径作圆。计算得知该圆和第一次纵轴分割平面y=4超平面交割,所以需要进入行点(5,4)左侧子空间进行查找。此时需将行点(2,3)节点加入行点搜索路径中得(7,2)至(2,3)。回溯至叶子节点的行点(2,3),由于行点(2,3)距离目标行点(2,4.5)比行点(5,4)要近,所以最近邻行点更新为行点(2,3),最近距离更新为1.5。回溯至最根部的行点(7,2),以目标行点(2,4.5)为圆心1.5为半径作圆,计算得知该圆并不和第一次横轴分割平面x=7分割超平面交割。至此,搜索路径回溯完。返回最近邻行点(2,3),最近距离1.5。
如此,通过提取新版地图中的每一个行点坐标,在同一区域内,按照快速索引表查找插值后的旧版地图中的最接近的行点坐标,确定新旧地图的同一区域内的行点的对应关系。
S40:根据第二行点坐标与最接近的第一行点坐标之间的点间距离,检测新版地图的第二行点坐标中的差异点。
可选地,在第二行点坐标与最接近的第一行点坐标之间的点间距离超出距离阈值时,确认第二行点坐标为差异点;反之,如果新版地图的第二行点坐标和旧版地图中的最接近的第一行点坐标之间的点间距离在距离阈值内,可以认为这个行点在新旧地图中无变化,不是差异点。
可选地,S40之后,还可以包括步骤:
按照预设策略对所述差异点进行处理。
可选地,对于地图差异点,可以按照预设策略进行处理,在一实施例中,预设策略选自标记、仿真、核实中的至少一项,以便进一步的地图处理。
在一实施例中,距离阈值包括第一距离阈值、第二距离阈值和第三距离阈值,第一距离阈值、第二距离阈值、第三距离阈值依次增大,例如,第一距离阈值为5cm,第二距离阈值为20cm,第三距离阈值为50cm。
预设策略包括第一预设策略、第二预设策略和第三预设策略。可选地,按照预设策略对所述差异点进行处理,可以包括:
在点间距离超出第一距离阈值且未超出第二距离阈值时,按照第一预设策略对第二行点坐标进行处理;
在点间距离超出第二距离阈值且未超出第三距离阈值时,按照第二预设策略对第二行点坐标进行处理;
在点间距离超出第三距离阈值时,按照第三预设策略对第二行点坐标进行处理。
可选地,在点间距离超出第一距离阈值且未超出第二距离阈值时,例如点间距离在5-20cm之间,按照第一预设策略对第二行点坐标进行处理,第一预设策略包括标记为第一颜色,表示轻微差异,第一颜色例如为黄色。
可选地,在点间距离超出第二距离阈值但在第三距离阈值之内,例如点间距离在20-50cm之间时,按照第二预设策略对第二行点坐标进行处理,第二预设策略包括标记为第二颜色和/或仿真,第二颜色表示中度差异,例如为紫色。中等差异可能会对导航的正确性造成影响,因此可以使用紫色进行差异标记,也可以对此中等差异点进行仿真测试,并根据仿真测试结果,接受不影响导航正确性的中等差异点,核实会影响导航正确性的中等差异点。
可选地,在点间距离超出第三距离阈值时,例如点间距离超出50cm,按照第三预设策略对第二行点坐标进行处理,第三预设策略包括标记为第三颜色和/或核实,第三颜色表示重度差异,例如为红色,重大差异的点有可能是新建道路中的点,会对导航路径造成重大影响,因此可以使用红色进行差异标记,也可以用调取最新资料的方式进行核实。
通过点间距离的不同对差异点进行分级,可以有效反映出新版地图元素与旧版地图的差异程度,以利于指导后续的测试和验证工作。
如上所述,本申请的新旧地图差异检测方法,能够高效地对当前版本地图与上一版本地图存在差异的部分进行核对处理,有效节约时间和成本。
第二实施例
另一方面,本申请还提供一种新旧地图差异检测装置,图3为本申请一实施例的新旧地图差异检测装置的方框图。
如图3所示,在一实施例中,新旧地图差异检测装置包括行点预处理单元1、索引处理单元2、行点查找单元3和差异检测单元4。其中:
行点预处理单元1用于在目标区域内,获取旧版地图的第一行点数据和新版地图的第二行点数据。
索引处理单元2与行点预处理单元1连接,用于根据第一行点数据建立快速索引表。
行点查找单元3分别与索引处理单元2与行点预处理单元1连接,用于抽取第二行点数据中的第二行点坐标,根据快速索引表查找第一行点数据中距离第二行点坐标最近的第一行点坐标。
差异检测单元4与行点查找单元3连接,用于根据第二行点坐标与最接近的第一行点坐标之间的点间距离,检测新版地图的第二行点坐标中的差异点。
可选地,新旧地图差异检测装置还包括差异处理单元,用于按照预设策略对所述差异点进行处理。
可选地,新旧地图差异检测装置还包括插值单元,用于获取新版地图的行点密度,根据行点密度,对旧版地图进行行点插值,以获取第一行点数据。
以上各单元模块的详见工作过程参考第一实施例中的描述,在此不再赘述。
另一方面,本申请还提供一种设备,具体地,设备包括存储器和处理器,其中,存储器上存储有处理程序,处理程序被处理器执行时实现如上述的任一实施例的新旧地图差异检测方法的步骤。
另一方面,本申请还提供一种可读存储介质,具体地,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述任一实施例的新旧地图差异检测方法的步骤。
在本申请提供的设备和可读存储介质的实施例中,包含了上述新旧地图差异检测方法各实施例的全部技术特征,说明书拓展和解释内容与上述方法的各实施例基本相同,在此不做再赘述。
设备可以以各种形式来实施。例如,本申请中描述的移动终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、便捷式媒体播放器(Portable Media Player,PMP)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字TV、台式计算机等固定终端。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。