一种地图构建方法及装置、存储介质与流程

文档序号:24488886发布日期:2021-03-30 21:13阅读:85来源:国知局
一种地图构建方法及装置、存储介质与流程

本公开涉及地图处理领域,尤其涉及一种地图构建方法及装置、存储介质。



背景技术:

在slam(simultaneouslocalizationandmapping,即时定位与地图构建)系统中,地图构建是重要的组成部分。地图则是以某种形式记录了曾经访问过的场景信息。一致性的地图可以降低地图构建过程中的误差。

然而维护一致性的地图是一件比较困难的事情,尤其是在例如手机之类的移动设备上。由于摄像头所采集的图像质量较差,用户过快移动手机视频造成的图像运动模糊,手机设备上安装的imu(inertialmeasurementunit,惯性测量单元)精度偏低等原因,都会造成采集到的图像的部分关键帧的位姿存在较大偏差,从而导致地图无法正常拓展。



技术实现要素:

有鉴于此,本公开提供了一种地图构建方法及装置、存储介质,以解决相关技术中的不足。

根据本公开实施例的第一方面,提供一种地图构建方法,所述方法包括:对当前图像帧结合当前子地图进行视觉跟踪,获得视觉跟踪结果;根据所述视觉跟踪结果,确定所述当前图像帧与所述当前子地图之间是否具备共视关系;响应于所述当前图像帧与所述当前子地图之间不具备共视关系,则创建新的子地图。

上述实施例在当前图像帧与当前子地图之间不具备共视关系时,创建新的子地图,可以解决单一地图中一旦视觉难以继续跟踪,则地图无法扩展的问题。

可选地,所述根据所述视觉跟踪结果,确定所述当前图像帧与所述当前子地图之间是否具备共视关系,包括:响应于所述视觉跟踪结果指示所述当前图像帧与所述当前子地图之间存在匹配的特征点,且匹配的所述特征点的数目大于或等于第一预设阈值,则确定所述当前图像帧与所述当前子地图之间具备共视关系,否则确定所述当前图像帧与所述当前子地图之间不具备共视关系。

上述实施例,根据当前图像帧与当前子地图之间存在匹配的特征点大于或等于第一预设阈值,确定当前图像帧与当前子地图之间具备共视关系,否则确定两者不具备共视关系,实现简便,可用性高。

可选地,所述根据所述视觉跟踪结果,确定所述当前图像帧与所述当前子地图之间是否具备共视关系,包括:响应于所述视觉跟踪结果指示所述当前图像帧与所述当前子地图之间存在匹配的特征点,在匹配的所述特征点中去除错误匹配的第一特征点,获得有效匹配的第二特征点;响应于所述第二特征点的数目大于或等于第二预设阈值,则确定所述当前图像帧与所述当前子地图之间具备共视关系,否则确定所述当前图像帧与所述当前子地图之间不具备共视关系。

上述实施例,除了确定当前图像帧与当前子地图之间是否存在匹配的特征点之外,还根据两者之间有效匹配的第二特征点的数目,来确定当前图像帧与当前子地图之间是否具备共视关系,降低了误判的可能。

可选地,所述在匹配的所述特征点中去除错误匹配的第一特征点后,获得有效匹配的第二特征点,包括:将所述当前图像帧与所述当前子地图所包括的图像帧输入预先建立的特征点匹配模型,通过所述特征点匹配模型在匹配的所述特征点中去除错误匹配的所述第一特征点,获得有效匹配的所述第二特征点。

上述实施例中,可以预先建立特征点匹配模型,将当前图像帧与当前子地图输入该特征点匹配模型,由该特征点匹配模型去除当前图像帧与当前子地图之间错误匹配的第一特征点,从而得到有效匹配的第二特征点,从而可以快速确定有效匹配的第二特征点,实现简便。

可选地,所述方法还包括:响应于所述当前图像帧与所述当前子地图之间具备共视关系,则利用所述当前图像帧扩展所述当前子地图。

上述实施例中,可以在当前图像帧与当前子地图之间具备共视关系时,基于当前图像帧扩展当前子地图,提高地图精度。

可选地,所述利用所述当前图像帧扩展所述当前子地图之后,所述方法还包括:响应于所述当前图像帧与至少一个所述其他子地图之间具备共视关系,则将所述当前子地图与至少一个所述其他子地图合并。

上述实施例中,可以在当前图像帧与至少一个其他子地图之间具备共视关系时,将当前子地图与至少一个其他子地图合并,提高地图精度。

可选地,所述创建新的子地图,包括:创建内容为空的新的子地图;在内容为空的所述新的子地图中,将所述当前图像帧作为所述新的子地图的初始帧。

上述实施例可以在内容为空的所述新的子地图中,将所述当前图像帧作为所述新的子地图的初始帧,以便后续根据采集到的新的当前图像帧对新的子地图进行扩展,从而可以避免相关技术中采用单一地图,一旦出现视觉难以跟踪的情况,地图无法扩展的问题。

可选地,所述创建新的子地图之后,所述方法还包括:对新的当前图像帧结合所述新的子地图进行视觉跟踪,获得新的视觉跟踪结果;根据所述新的视觉跟踪结果,确定所述新的当前图像帧与所述新的子地图之间是否具备共视关系;响应于所述新的当前图像帧与所述新的子地图之间不具备共视关系,则再次创建新的子地图。

上述实施例中,可以将新的当前图像帧结合新的子地图进行视觉跟踪,根据新的视觉跟踪结果,确定新的当前图像帧与新的子地图之间是否具备共视关系,如果不具备共视关系,仍然可以再次创建新的子地图,避免了相关技术中采用单一地图,一旦出现视觉难以跟踪的情况,地图无法扩展的问题。

可选地,所述方法还包括:将所有满足预设合并条件的子地图合并,得到全局地图。

上述实施例中,可以将所有满足预设合并条件的子地图合并,得到全局地图,可用性更高。

可选地,采用以下方式确定满足预设合并条件的子地图:响应于至少两个子地图之间具备共视关系,则确定具备所述共视关系的所述至少两个子地图是满足预设合并条件的子地图。

上述实施例中,可以在至少两个子地图之间具备共视关系时,确定至少两个子地图之间满足预设合并条件,确保最终得到的全局地图的精度。

根据本公开实施例的第二方面,提供一种多地图构建装置,所述装置包括:第一视觉跟踪模块,用于对当前图像帧结合当前子地图进行视觉跟踪,获得视觉跟踪结果;第一共视关系确定模块,用于根据所述视觉跟踪结果,确定所述当前图像帧与所述当前子地图之间是否具备共视关系;第一地图构建模块,用于响应于所述当前图像帧与所述当前子地图之间不具备共视关系,则创建新的子地图。

可选地,所述第一共视关系确定模块包括:第一确定子模块,用于响应于所述视觉跟踪结果指示所述当前图像帧与所述当前子地图之间存在匹配的特征点,且匹配的所述特征点的数目大于或等于第一预设阈值,则确定所述当前图像帧与所述当前子地图之间具备共视关系,否则确定所述当前图像帧与所述当前子地图之间不具备共视关系。

可选地,所述第一共视关系确定模块包括:获取子模块,用于响应于所述视觉跟踪结果指示所述当前图像帧与所述当前子地图之间存在匹配的特征点,在匹配的所述特征点中去除错误匹配的第一特征点,获得有效匹配的第二特征点;第二确定子模块,用于响应于所述第二特征点的数目大于或等于第二预设阈值,则确定所述当前图像帧与所述当前子地图之间具备共视关系,否则确定所述当前图像帧与所述当前子地图之间不具备共视关系。

可选地,所述获取子模块包括:获取单元,用于将所述当前图像帧与所述当前子地图所包括的图像帧输入预先建立的特征点匹配模型,通过所述特征点匹配模型在匹配的所述特征点中去除错误匹配的所述第一特征点,获得有效匹配的所述第二特征点。

可选地,所述装置还包括:第二地图构建模块,用于响应于所述当前图像帧与所述当前子地图之间具备共视关系,则利用所述当前图像帧扩展所述当前子地图。

可选地,所述装置还包括:第三地图构建模块,用于响应于所述当前图像帧与至少一个所述其他子地图之间具备共视关系,则将所述当前子地图与至少一个所述其他子地图合并。

可选地,所述第一地图构建模块包括:第一地图构建子模块,用于创建内容为空的新的子地图;第二地图构建子模块,用于在内容为空的所述新的子地图中,将所述当前图像帧作为所述新的子地图的初始帧。

可选地,所述装置还包括:第二视觉跟踪模块,用于对新的当前图像帧结合所述新的子地图进行视觉跟踪,获得新的视觉跟踪结果;第二共视关系确定模块,用于根据所述新的视觉跟踪结果,确定所述新的当前图像帧与所述新的子地图之间是否具备共视关系;第四地图构建模块,用于响应于所述新的当前图像帧与所述新的子地图之间不具备共视关系,则再次创建新的子地图。

可选地,所述装置还包括:第五地图构建模块,用于将所有满足预设合并条件的子地图合并,得到全局地图。

可选地,所述第五地图构建模块包括:第三确定子模块,用于响应于至少两个子地图之间具备共视关系,则确定具备所述共视关系的所述至少两个子地图是满足预设合并条件的子地图。

根据本公开实施例的第三方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述第一方面所述的地图构建方法。

根据本公开实施例的第四方面,提供一种地图构建装置,所述装置包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器用于调用所述存储器中存储的可执行指令,实现上述第一方面所述的地图构建方法。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是本公开根据一示例性实施例示出的一种地图构建方法流程图;

图2是本公开根据一示例性实施例示出的另一种地图构建方法流程图;

图3是本公开根据一示例性实施例示出的另一种地图构建方法流程图;

图4是本公开根据一示例性实施例示出的另一种地图构建方法流程图;

图5是本公开根据一示例性实施例示出的另一种地图构建方法流程图;

图6是本公开根据一示例性实施例示出的另一种地图构建方法流程图;

图7是本公开根据一示例性实施例示出的另一种地图构建方法流程图;

图8是本公开根据一示例性实施例示出的一种地图构建装置框图;

图9是本公开根据一示例性实施例示出的另一种地图构建装置框图;

图10是本公开根据一示例性实施例示出的另一种地图构建装置框图;

图11是本公开根据一示例性实施例示出的另一种地图构建装置框图;

图12是本公开根据一示例性实施例示出的另一种地图构建装置框图;

图13是本公开根据一示例性实施例示出的另一种地图构建装置框图;

图14是本公开根据一示例性实施例示出的另一种地图构建装置框图;

图15是本公开根据一示例性实施例示出的另一种地图构建装置框图;

图16是本公开根据一示例性实施例示出的另一种地图构建装置框图;

图17是本公开根据一示例性实施例示出的另一种地图构建装置框图;

图18是本公开根据一示例性实施例示出的一种用于地图构建装置的一结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

在本公开运行的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所运行的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中运行的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所运行的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

本公开实施例提供了一种地图构建方法,可以用于需要进行实时地图构建的机器设备、终端设备或平台上,下面仅以终端为例进行说明。如图1所示,图1是根据一示例性实施例示出的一种地图构建方法,包括以下步骤:

在步骤101中,对当前图像帧结合当前子地图进行视觉跟踪,获得视觉跟踪结果。

终端可以通过图像采集装置,例如摄像头来采集当前图像帧。当前子地图是之前采集到的至少一帧图像帧所包括的图像信息的集合。

可选地,在本公开实施例中,终端还可以通过其他至少一个传感器来获取相应的传感器数据,以便后续在对采集到的图像帧进行视觉跟踪时,可以结合这些传感器数据共同进行分析,提高对图像帧进行视觉跟踪的准确性。本公开实施例中,上述传感器可以包括但不限于imu传感器、方向传感器、加速度传感器、重力传感器等。

进一步地,终端可以对当前图像帧结合当前子地图进行视觉跟踪,从而来获得视觉跟踪结果。

在本公开实施例中,针对当前图像帧和当前图像帧的上一帧图像帧(即构建当前子地图的最后一帧图像帧),分别提取特征点,确定当前图像帧与上一帧图像帧之间是否存在匹配的特征点,如果存在,则确定视觉跟踪结果为当前图像帧与当前子地图之间存在匹配的特征点,否则确定视觉跟踪结果为当前图像帧与当前子地图之间不存在匹配的特征点。在步骤102中,根据所述视觉跟踪结果,确定所述当前图像帧与所述当前子地图之间是否具备共视关系。

终端可以根据视觉跟踪结果指示当前图像帧与当前子地图之间是否存在匹配的特征点,来确定当前图像帧与当前子地图之间是否具备共视关系。

可选地,如果视觉跟踪结果指示当前图像帧与当前子地图存在匹配的特征点,且匹配的特征点数目较多,则确定当前图像帧与当前子地图之间具备共视关系,否则确定当前图像帧与当前子地图之间不具备共视关系。

或者如果视觉跟踪结果指示当前图像帧与当前子地图存在匹配的特征点,且匹配的特征点中去除错误匹配(outlier)的第一特征点后得到的有效匹配(inlier)的第二特征点数目较多,则确定当前图像帧与当前子地图之间具备共视关系,否则确定当前图像帧与当前子地图之间不具备共视关系。

在步骤103中,响应于所述当前图像帧与所述当前子地图之间不具备共视关系,则创建新的子地图。

响应于当前图像帧与当前子地图之间不具备共视关系,那么此时终端可以先创建内容为空的新的子地图,然后将当前图像帧作为新的子地图的初始帧,以便后续继续对新的子地图进行扩展,从而可以避免相关技术中采用单一地图,一旦出现视觉难以跟踪的情况,地图无法扩展的问题,另一方面终端可以无需依赖imu进行地图扩展,可用性更高,能够应用于更广泛的领域中。

在一些可选实施例中,终端可以采用以下方式中的任意一种,根据视觉跟踪结果,来确定当前图像帧与当前子地图之间是否存在共视关系。

<第一种方式>只判断当前图像帧与当前子地图之间是否具备匹配的特征点,以及判断两者之间匹配的特征点的数目是否大于或等于第一预设阈值。

在第一种方式下,如果当前图像帧与当前子地图之间存在匹配的特征点,并且匹配的特征点的数量大于或等于第一预设阈值,则确定当前图像帧与当前子地图之间具备共视关系。

例如当前子地图构建当前子地图的最后一帧图像帧a相应的特征点对应场景a,当前图像帧相应的特征点同样对应场景a,确定出当前图像帧与图像帧a的匹配的特征点的数目大于或等于第一预设阈值,说明当前图像帧与当前子地图之间存在足够多的匹配的特征点,确定当前图像帧与当前子地图之间具备共视关系。

再例如,构建当前子地图的最后一帧图像帧a对应场景a,当前图像帧相应的特征点对应了场景b,确定出的匹配的特征点的数目小于第一预设阈值,则说明两者之间不存在足够数目的匹配的特征点。

采用第一种方式可以快速确定当前图像帧与当前子地图之间是否具备共视关系,但是另一方面,也可能会存在误判的情况,为了避免这一情况,本公开实施例中,终端还可以采用第二种方式来确定当前图像帧与当前子地图之间是否具备共视关系。

<第二种方式>同时判断当前图像帧与当前子地图之间是否存在匹配的特征点,以及判断两者之间有效匹配的特征点的数目是否大于或等于第二预设阈值。

如果当前图像帧与当前子地图之间存在匹配的特征点,还需要进一步通过诸如几何一致性等方法的检验剔除错误匹配(outlier)的第一特征点,得到有效匹配(inlier)的第二特征点,并判断有效匹配的第二特征点的数目是否足够多,例如是否大于或等于第二预设阈值。在有效匹配的第二特征点的数目大于或等于第二预设阈值时,终端才认为当前图像帧与当前子地图之间具备共视关系。其中,第二预设阈值与第一预设阈值各自的取值相同或不同,本公开对此不作限定。

在其他情况下,例如当前图像帧与当前子地图之间不存在匹配的特征点,或两者之间虽然存在匹配的特征点,但是有效匹配的第二特征点的数目较少,小于第二预设阈值,则同样可以认为当前图像帧与当前子地图之间不具备共视关系,从而减少误判。

在一些可选实施例中,可以将当前图像帧与当前子地图输入预先建立的特征点匹配模型,由该特征点匹配模型在匹配的特征点中去除错误匹配的第一特征点,从而获得有效匹配的第二特征点。

其中,该特征点匹配模型可以是基于局部几何一致性或全局几何一致性方法建立的,例如该特征点匹配模型采用全局几何一致性方法对至少两帧样本图像帧之间的所有特征点进行验证,至少两帧样本图像帧之间有效匹配的第二特征点已经标注出来,通过对该特征点匹配模型进行训练,使得该特征点匹配模型输出的至少两个样本图像帧之间有效匹配的第二特征点,与至少两帧样本图像帧中标注出的第二特征点满足预设的容错范围甚至一致。

上述实施例中,可以预先建立特征点匹配模型,将当前图像帧与当前子地图输入该特征点匹配模型,由该特征点匹配模型去除当前图像帧与当前子地图之间错误匹配的第一特征点,从而得到有效匹配的第二特征点,从而可以快速确定有效匹配的第二特征点,实现简便。

在一些可选实施例中,例如图2所示,上述方法还可以包括以下步骤:

在步骤104中,响应于所述当前图像帧与所述当前子地图之间具备共视关系,则利用所述当前图像帧扩展所述当前子地图。

本公开实施例中,如果当前图像帧与当前子地图之间具备共视关系,那么可以基于当前图像帧与当前子地图匹配的特征点部分,将当前图像帧的其他特征点的信息添加到当前子地图中,从而扩展当前子地图。

上述实施例中,可以在当前图像帧与当前子地图之间具备共视关系时,基于当前图像帧扩展当前子地图,提高地图精度。

在一些可选实施例中,例如图3所示,在完成步骤104之后,该方法还可以包括:

在步骤105中,响应于当前图像帧与至少一个其他子地图之间具备共视关系,则将当前子地图与至少一个其他子地图合并。

本步骤中,终端同样可以按照上述步骤102中确定当前图像帧与当前子地图是否具备共视关系的方式,来确定当前子地图与除了当前子地图之外的至少一个其他子地图之间是否具备共视关系,从而在当前图像帧与至少一个其他子地图之间具备共视关系时,采用闭合回路算法,将当前子地图与至少一个其他子地图合并,并通过全局优化消除误差,提高地图精度。

在一些可选实施例中,例如图4所示,上述步骤103可以包括:

在步骤103-1中,创建内容为空的新的子地图。

本公开实施例中,除了当前子地图之外,可以重新创建一个内容为空的新的子地图。

在步骤103-2中,在内容为空的所述新的子地图中,将所述当前图像帧作为所述新的子地图的初始帧。

在内容为空的所述新的子地图中,将所述当前图像帧作为所述新的子地图的初始帧,新的子地图中可以包括当前图像帧中特征点的信息。

上述实施例中,可以在内容为空的所述新的子地图中,将所述当前图像帧作为所述新的子地图的初始帧,以便后续根据采集到的新的当前图像帧对新的子地图进行扩展,从而可以避免相关技术中采用单一地图,一旦出现视觉难以跟踪的情况,地图无法扩展的问题。

在一些可选实施例中,例如图5所示,完成步骤103之后,该方法还可以包括:

在步骤106中,对新的当前图像帧结合所述新的子地图进行视觉跟踪,获得新的视觉跟踪结果。

重新按照上述步骤101的方法对终端采集的新的当前图像帧结合新的子地图进行视觉跟踪,从而获得新的视觉跟踪结果。

在步骤107中,根据所述新的视觉跟踪结果,确定所述新的当前图像帧与所述新的子地图之间是否具备共视关系。

本公开实施例中,可以采用与上述步骤102相同的方式判断新的当前图像帧与所述新的子地图之间是否具备共视关系,在此不再赘述。

在步骤108中,响应于所述新的当前图像帧与所述新的子地图之间不具备共视关系,则再次创建新的子地图。

如果新的当前图像帧与所述新的子地图之间不具备共视关系,那么可以再次创建新的子地图,如果新的当前图像帧与所述新的子地图之间具备共视关系,那么可以通过新的当前图像帧扩展新的子地图。

上述实施例中,可以将新的当前图像帧结合新的子地图进行视觉跟踪,根据新的视觉跟踪结果,确定新的当前图像帧与新的子地图之间是否具备共视关系,如果不具备共视关系,仍然可以再次创建新的子地图,避免了相关技术中采用单一地图,一旦出现视觉难以跟踪的情况,地图无法扩展的问题。在一些可选实施例中,例如图6所示,该方法还可以包括:

在步骤109中,将所有满足预设合并条件的子地图合并,得到全局地图。

在本公开实施例中,所有子地图均可以存放在地图数据库中。

终端可以通过判断任意两个子地图之间是否具备共视关系,来确定指示两个子地图之间是否满足预设合并条件,如果两个子地图之间存在有效匹配的第二特征点的数目大于或等于第二预设阈值,则可以确定这两个子地图之间具备共视关系。进一步地,可以确定这两个子地图满足预设合并条件。

终端可以利用具备共视关系的两个子地图之间有效匹配的第二特征点,纠正两个子地图之间可能存在的相对位置偏移,采用闭合回路算法对这两个子地图进行合并,最终通过全局优化得到全局地图。

上述实施例中,可以在至少两个子地图之间具备共视关系时,确定至少两个子地图之间满足预设合并条件,使用回路闭合算法将具备共视关系的子地图进行合并,确保最终得到的全局地图的精度,可用性更高。

在一实施例中,如图7所示,图7是根据一示例性实施例示出的另一种地图构建方法,包括以下步骤:

在步骤201中,对当前图像帧结合当前子地图进行视觉跟踪,获得视觉跟踪结果。

在步骤202中,根据视觉跟踪结果,确定当前图像帧与当前子地图之间是否具备共视关系。

响应于视觉跟踪结果指示当前图像帧与当前子地图之间存在匹配的特征点,且有效匹配的第二特征点的数目大于或等于第二预设阈值,则确定当前图像帧与当前子地图之间具备共视关系,执行步骤203。否则确定当前图像帧与当前子地图之间不具备共视关系,执行步骤205。

在步骤203中,利用所述当前图像帧扩展所述当前子地图。

在步骤204中,响应于当前图像帧与至少一个其他子地图之间具备共视关系,则将所述当前子地图与至少一个所述其他子地图合并。

在步骤205中,创建内容为空的新的子地图。

在步骤206中,在内容为空的所述新的子地图中,将所述当前图像帧作为所述新的子地图的初始帧。

在步骤207中,对新的当前图像帧结合所述新的子地图进行视觉跟踪,获得新的视觉跟踪结果。

在步骤208中,根据所述新的视觉跟踪结果,确定所述新的当前图像帧与所述新的子地图之间是否具备共视关系。

在步骤209中,响应于所述新的当前图像帧与所述新的子地图之间具备共视关系,则利用新的当前图像帧扩展新的当前子地图,否则再次创建新的子地图。

在步骤210中,将所有子地图合并,得到全局地图。

响应于至少两个子地图之间具备共视关系,则采用回路闭合算法对具备共视关系的子地图进行合并,并通过优化消除误差,得到全局地图。

上述实施例中,基于当前图像帧与当前子地图之间是否具备共视关系,来进行子地图扩展和子地图的生成,用以解决单一地图中一旦视觉难以继续跟踪,则地图无法扩展的问题。与前述方法实施例相对应,本公开还提供了装置的实施例。

如图8所示,图8是本公开根据一示例性实施例示出的一种地图构建装置框图,装置包括:第一视觉跟踪模块310,用于对当前图像帧结合当前子地图进行视觉跟踪,获得视觉跟踪结果;第一共视关系确定模块320,用于根据视觉跟踪结果,确定当前图像帧与当前子地图之间是否具备共视关系;第一地图构建模块330,用于响应于当前图像帧与当前子地图之间不具备共视关系,则创建新的子地图。

如图9所示,图9本公开根据一示例性实施例示出的另一种地图拓展装置框图,该实施例在前述图8实施例的基础上,第一共视关系确定模块320包括:第一确定子模块321,用于响应于视觉跟踪结果指示当前图像帧与当前子地图之间存在匹配的特征点,且匹配的特征点的数目大于或等于第一预设阈值,则确定当前图像帧与当前子地图之间具备共视关系,否则确定当前图像帧与当前子地图之间不具备共视关系。

如图10所示,图10本公开根据一示例性实施例示出的另一种地图构建装置框图,该实施例在前述图9实施例的基础上,第一共视关系确定模块320包括:获取子模块322,用于响应于视觉跟踪结果指示当前图像帧与当前子地图之间存在匹配的特征点,在匹配的所述特征点中去除错误匹配的第一特征点,获得有效匹配的第二特征点;第二确定子模块323,用于响应于所述第二特征点的数目大于或等于第二预设阈值,则确定当前图像帧与当前子地图之间具备共视关系,否则确定当前图像帧与当前子地图之间不具备共视关系。

如图11所示,图11本公开根据一示例性实施例示出的另一种地图构建装置框图,该实施例在前述图10实施例的基础上,所述获取子模块322包括:获取单元3221,用于将所述当前图像帧与所述当前子地图所包括的图像帧输入预先建立的特征点匹配模型,通过所述特征点匹配模型在匹配的所述特征点中去除错误匹配的所述第一特征点,获得有效匹配的所述第二特征点。

如图12所示,图12本公开根据一示例性实施例示出的另一种地图构建装置框图,该实施例在前述图8实施例的基础上,装置还包括:第二地图构建模块340,用于响应于所述当前图像帧与所述当前子地图之间具备共视关系,则利用所述当前图像帧扩展所述当前子地图。

如图13所示,图13本公开根据一示例性实施例示出的另一种地图构建装置框图,该实施例在前述图8实施例的基础上,装置还包括:第三地图构建模块350,用于响应于所述当前图像帧与至少一个所述其他子地图之间具备共视关系,则将所述当前子地图与至少一个所述其他子地图合并。

如图14所示,图14本公开根据一示例性实施例示出的另一种地图构建装置框图,该实施例在前述图8实施例的基础上,所述第一地图构建模块330包括:第一地图构建子模块331,用于创建内容为空的新的子地图;第二地图构建子模块332,用于在内容为空的所述新的子地图中,将所述当前图像帧作为所述新的子地图的初始帧。

如图15所示,图15本公开根据一示例性实施例示出的另一种地图构建装置框图,该实施例在前述图8实施例的基础上,装置还包括:第二视觉跟踪模块360,用于对新的当前图像帧结合所述新的子地图进行视觉跟踪,获得新的视觉跟踪结果;第二共视关系确定模块370,用于根据所述新的视觉跟踪结果,确定所述新的当前图像帧与所述新的子地图之间是否具备共视关系;第四地图构建模块380,用于响应于所述新的当前图像帧与所述新的子地图之间不具备共视关系,则再次创建新的子地图。

如图16所示,图16本公开根据一示例性实施例示出的另一种地图构建装置框图,该实施例在前述图8实施例的基础上,装置还包括:第五地图构建模块390,用于将所有满足预设合并条件的子地图合并,得到全局地图。

如图17所示,图17本公开根据一示例性实施例示出的另一种地图构建装置框图,该实施例在前述图16实施例的基础上,所述第五地图构建模块390包括:第三确定子模块391,用于响应于至少两个子地图之间具备共视关系,则确定具备所述共视关系的所述至少两个子地图是满足预设合并条件的子地图。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本公开实施例还提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序用于执行上述任一的地图构建方法。

在一些可选实施例中,本公开实施例提供了一种计算机程序产品,包括计算机可读代码,当计算机可读代码在设备上运行时,设备中的处理器执行用于实现如上任一实施例提供的地图构建方法的指令。

在一些可选实施例中,本公开实施例还提供了另一种计算机程序产品,用于存储计算机可读指令,指令被执行时使得计算机执行上述任一实施例提供的地图构建方法的操作。

该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质(包括易失性和非易失性存储介质),在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(softwaredevelopmentkit,sdk)等等。

本公开实施例还提供了一种地图构建装置,装置包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器用于调用存储器中存储的可执行指令,实现上述任一的地图构建方法。

如图18所示,图18是根据一示例性实施例示出的一种地图构建装置1800的一结构示意图。例如,装置1800可以被提供为一机器设备、终端或平台。参照图18,装置1800包括处理组件1822,其进一步包括一个或多个处理器,以及由存储器1832所代表的存储器资源,用于存储可由处理部件1822的执行的指令,例如应用程序。存储器1832中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1822用于执行指令,以执行上述任一地图构建方法。

装置1800还可以包括一个电源组件1826用于执行装置1800的电源管理,一个有线或无线网络接口1850用于将装置1800连接到网络,和一个输入输出(i/o)接口1858。装置1800可以操作基于存储在存储器1832的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或类似。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或者惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1