CN112614185B - 地图构建方法及装置、存储介质 - Google Patents
地图构建方法及装置、存储介质 Download PDFInfo
- Publication number
- CN112614185B CN112614185B CN202011599715.5A CN202011599715A CN112614185B CN 112614185 B CN112614185 B CN 112614185B CN 202011599715 A CN202011599715 A CN 202011599715A CN 112614185 B CN112614185 B CN 112614185B
- Authority
- CN
- China
- Prior art keywords
- key frame
- image
- map
- frame image
- determining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Abstract
本公开提供了一种地图构建方法及装置、存储介质,其中,该方法包括:根据新注册图像与已有关键帧图像之间的关联特征,确定所述新注册图像是否属于关键帧图像;每次基于新确定的所述关键帧图像,在已构建的三维地图上增加新的地图点。
Description
技术领域
本公开涉及计算机视觉领域,尤其涉及地图构建方法及装置、存储介质。
背景技术
目前,三维重建技术在文物保护、定位导航、场景漫游、增强现实、工业测量等领域有广泛的应用前景。三维重建方法可以分为两类:增量重建方法和全局重建方法。
增量重建方法在重建小规模场景时,能够达到很高的重建精度,但是,随着场景规模的扩大,重建效率急剧下降,同时因为增量重建过程逐帧注册的方式,会导致大场景重建产生漂移现象。全局重建可以通过场景图直接推算相机位姿,只需执行一次全局调整过程,特别适用于大规模场景重建任务。但全局重建对匹配噪声敏感,并且没有经过充分优化,因此重建的鲁棒性和精度有所下降。
发明内容
本公开提供了一种地图构建方法及装置、存储介质。
根据本公开实施例的第一方面,提供一种地图构建方法,所述方法包括:根据新注册图像与已有关键帧图像之间的关联特征,确定所述新注册图像是否属于关键帧图像;每次基于新确定的所述关键帧图像,在已构建的三维地图上增加新的地图点。
在一些可选实施例中,所述根据新注册图像与已有关键帧图像之间的关联特征,确定所述新注册图像是否属于关键帧图像,包括:确定所述新注册图像是否属于所述已有关键帧图像对应的回环帧;如果所述新注册图像属于所述已有关键帧图像对应的回环帧,则确定所述新注册图像属于所述关键帧图像。
在一些可选实施例中,所述根据新注册图像与已有关键帧图像之间的关联特征,确定所述新注册图像是否属于关键帧图像,包括:如果所述新注册图像不属于所述已有关键帧图像对应的回环帧,确定所述新注册图像所包括的目标特征点的总数目;其中,所述目标特征点是在所述已构建的三维地图上存在对应的地图点的特征点;如果所述目标特征点的总数目小于预设数目,则确定所述新注册图像属于所述关键帧图像。
在一些可选实施例中,所述根据新注册图像与已有关键帧图像之间的关联特征,确定所述新注册图像是否属于关键帧图像,包括:分别确定相机在采集所述新注册图像以及第一关键帧图像时,在世界坐标系中的第一坐标和第二坐标;其中,所述第一关键帧图像是所述已有关键帧图像中采集时间最接近所述新注册图像的关键帧图像;确定所述第一坐标和所述第二坐标之间的第一距离值;如果所述第一距离值满足预设距离要求,则确定所述新注册图像属于所述关键帧图像。
在一些可选实施例中,所述预设距离要求包括满足与目标距离值的对应关系;所述方法还包括:在所述已有关键帧图像中,分别确定所述相机在采集时间相邻的两张关键帧图像时,在世界坐标系中的第三坐标和第四坐标;确定所述第三坐标和所述第四坐标之间的第二距离值;根据所述第二距离值确定所述目标距离值。
在一些可选实施例中,所述根据新注册图像与已有关键帧图像之间的关联特征,确定所述新注册图像是否属于关键帧图像,包括:确定所述新注册图像与第一关键帧图像之间的图像视差;其中,所述第一关键帧图像是所述已有关键帧图像中采集时间最接近所述新注册图像的关键帧图像;如果所述图像视差大于预设视差,则确定所述新注册图像属于所述关键帧图像。
在一些可选实施例中,所述每次基于新确定的所述关键帧图像,在已构建的三维地图上增加新的地图点,包括:对新确定的所述关键帧图像所包括的特征点进行采样,获得多个采样点;在已构建的三维地图上,根据所述多个采样点生成新的地图点。
在一些可选实施例中,所述对新确定的所述关键帧图像所包括的特征点进行采样,获得多个采样点,包括:在新确定的所述关键帧图像所包括的特征点中,确定与已构建的所述三维地图上的地图点不匹配的第二特征点;在新确定的所述关键帧图像上,对所述第二特征点进行采样,获得所述多个采样点。
在一些可选实施例中,所述在新确定的所述关键帧图像上,对所述第二特征点进行采样,获得所述多个采样点,包括:在新确定的所述关键帧图像上,根据预设采样半径,划分多个采样区域;对每个采样区域所包括的所述第二特征点进行均匀采样,获得所述多个采样点。
在一些可选实施例中,所述对每个采样区域所包括的所述第二特征点进行均匀采样,获得所述多个采样点,包括:在所述每个采样区域内采样相同数目的所述第二特征点,获得总数目满足预设区间范围的所述多个采样点。
在一些可选实施例中,所述方法还包括:根据至少一张第二关键帧图像,对已构建的三维地图进行优化。
在一些可选实施例中,所述方法还包括:将每次新确定的所述关键帧图像作为所述第二关键帧图像;或将分多次确定的多张所述关键帧图像作为多张第二关键帧图像。
在一些可选实施例中,所述根据至少一张第二关键帧图像,对已构建的三维地图进行优化,包括:确定所述已构建的三维地图上的至少一个地图点在每张第二关键帧图像中对应的权重值;基于所述至少一个地图点在所述每张第二关键帧图像中对应的权重值,确定已构建的三维地图对应的损失函数;确定使得所述损失函数最小的相机位姿参数;基于所述相机位姿参数,更新所述已构建的三维地图上的所述至少一个地图点。
在一些可选实施例中,所述确定所述已构建的三维地图上的至少一个地图点在每张第二关键帧图像中对应的权重值,包括:在所述已构建的三维地图上的至少一个地图点中,确定在当前第二关键帧图像中不存在对应的特征点的第一地图点和存在对应的特征点的第二地图点;确定所述第一地图点在所述当前第二关键帧图像中对应的权重值为0,确定所述第二地图点在所述当前第二关键帧图像中对应的所述权重值与目标值成正比。
在一些可选实施例中,所述方法还包括:在所述已有关键帧图像中,确定第三关键帧图像的总数目;其中,所述第二地图点在所述第三关键帧图像上存在对应的特征点;基于所述第三关键帧图像的总数目,确定与所述第二地图点对应的所述目标值。
在一些可选实施例中,所述方法还包括:确定所述已有关键帧图像中每张关键帧图像所包括的特征点;将所述已有关键帧图像中的任意两张关键帧图像作为一组图像对,对任意一组图像对的特征点进行匹配,确定匹配结果;根据所述匹配结果,对多组图像对按照预先指定的顺序排序后,顺序基于不同图像对进行三维地图的重建初始化;基于所述多组图像对中重建初始化成功的初始化图像对,构建三维地图。
根据本公开实施例的第二方面,提供一种地图构建装置,所述装置包括:第一确定模块,用于根据新注册图像与已有关键帧图像之间的关联特征,确定所述新注册图像是否属于关键帧图像;地图更新模块,用于每次基于新确定的所述关键帧图像,在已构建的三维地图上增加新的地图点。
在一些可选实施例中,所述第一确定模块包括:第一确定子模块,用于确定所述新注册图像是否属于所述已有关键帧图像对应的回环帧;第二确定子模块,用于如果所述新注册图像属于所述已有关键帧图像对应的回环帧,则确定所述新注册图像属于所述关键帧图像。
在一些可选实施例中,所述第一确定模块包括:第三确定子模块,用于如果所述新注册图像不属于所述已有关键帧图像对应的回环帧,确定所述新注册图像所包括的目标特征点的总数目;其中,所述目标特征点是在所述已构建的三维地图上存在对应的地图点的特征点;第四确定子模块,用于如果所述目标特征点的总数目小于预设数目,则确定所述新注册图像属于所述关键帧图像。
在一些可选实施例中,所述第一确定模块包括:第五确定子模块,用于分别确定相机在采集所述新注册图像以及第一关键帧图像时,在世界坐标系中的第一坐标和第二坐标;其中,所述第一关键帧图像是所述已有关键帧图像中采集时间最接近所述新注册图像的关键帧图像;第六确定子模块,用于确定所述第一坐标和所述第二坐标之间的第一距离值;第七确定子模块,用于如果所述第一距离值满足预设距离要求,则确定所述新注册图像属于所述关键帧图像。
在一些可选实施例中,所述预设距离要求包括满足与目标距离值的对应关系;所述装置还包括:第二确定模块,用于在所述已有关键帧图像中,分别确定所述相机在采集时间相邻的两张关键帧图像时,在世界坐标系中的第三坐标和第四坐标;第三确定模块,用于确定所述第三坐标和所述第四坐标之间的第二距离值;第四确定模块,用于根据所述第二距离值确定所述目标距离值。
在一些可选实施例中,所述第一确定模块包括:第八确定子模块,用于确定所述新注册图像与第一关键帧图像之间的图像视差;其中,所述第一关键帧图像是所述已有关键帧图像中采集时间最接近所述新注册图像的关键帧图像;第九确定子模块,用于如果所述图像视差大于预设视差,则确定所述新注册图像属于所述关键帧图像。
在一些可选实施例中,所述地图更新模块包括:获取子模块,用于对新确定的所述关键帧图像所包括的特征点进行采样,获得多个采样点;生成子模块,用于在已构建的三维地图上,根据所述多个采样点生成新的地图点。
在一些可选实施例中,所述获取子模块包括:第一确定单元,用于在新确定的所述关键帧图像所包括的特征点中,确定与已构建的所述三维地图上的地图点不匹配的第二特征点;获取单元,用于在新确定的所述关键帧图像上,对所述第二特征点进行采样,获得所述多个采样点。
在一些可选实施例中,所述获取单元包括:区域划分子单元,用于在新确定的所述关键帧图像上,根据预设采样半径,划分多个采样区域;获取子单元,用于对每个采样区域所包括的所述第二特征点进行均匀采样,获得所述多个采样点。
在一些可选实施例中,所述获取子单元包括:在所述每个采样区域内采样相同数目的所述第二特征点,获得总数目满足预设区间范围的所述多个采样点。
在一些可选实施例中,所述装置还包括:地图优化模块,用于根据至少一张第二关键帧图像,对已构建的三维地图进行优化。
在一些可选实施例中,所述装置还包括:第五确定模块,用于将每次新确定的所述关键帧图像作为所述第二关键帧图像;或第六确定模块,用于将分多次确定的多张所述关键帧图像作为多张第二关键帧图像。
在一些可选实施例中,所述地图优化模块包括:第十确定子模块,用于确定所述已构建的三维地图上的至少一个地图点在每张第二关键帧图像中对应的权重值;第十一确定子模块,用于基于所述至少一个地图点在所述每张第二关键帧图像中对应的权重值,确定已构建的三维地图对应的损失函数;第十二确定子模块,用于确定使得所述损失函数最小的相机位姿参数;第十三确定子模块,用于基于所述相机位姿参数,更新所述已构建的三维地图上的所述至少一个地图点。
在一些可选实施例中,所述第十确定子模块包括:第二确定单元,用于在所述已构建的三维地图上的至少一个地图点中,确定在当前第二关键帧图像中不存在对应的特征点的第一地图点和存在对应的特征点的第二地图点;第三确定单元,用于确定所述第一地图点在所述当前第二关键帧图像中对应的权重值为0,确定所述第二地图点在所述当前第二关键帧图像中对应的所述权重值与目标值成正比。
在一些可选实施例中,所述装置还包括:第七确定模块,用于在所述已有关键帧图像中,确定第三关键帧图像的总数目;其中,所述第二地图点在所述第三关键帧图像上存在对应的特征点;第八确定模块,用于基于所述第三关键帧图像的总数目,确定与所述第二地图点对应的所述目标值。
在一些可选实施例中,所述装置还包括:第就确定模块,用于确定所述已有关键帧图像中每张关键帧图像所包括的特征点;匹配模块,用于将所述已有关键帧图像中的任意两张关键帧图像作为一组图像对,对任意一组图像对的特征点进行匹配,确定匹配结果;地图重建初始化模块,用于根据所述匹配结果,对多组图像对按照预先指定的顺序排序后,顺序基于不同图像对进行三维地图的重建初始化;地图构建模块,用于基于所述多组图像对中重建初始化成功的初始化图像对,构建三维地图。
根据本公开实施例的第三方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述第一方面任一所述的地图构建方法。
根据本公开实施例的第四方面,提供一种地图构建装置,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为调用所述存储器中存储的可执行指令,实现第一方面中任一项所述的地图构建方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开实施例中,可以根据新注册图像与已有关键帧图像之间的关联特征,在新注册图像中选取关键帧图像,每次基于新确定的关键帧图像,在已构建的三维地图上增加新的地图点。本公开减少了三维地图增量式重建过程中图像数据的冗余,简化了重建规模,提高了重建效率。
本公开实施例中,如果新注册图像属于已有关键帧图像对应的回环帧,那么该新注册图像属于关键帧图像。本公开将已有关键帧图像对应的回环帧作为比较重要的关键帧图像,提高了地图重建的准确性,便于保护地图重建场景。
本公开实施例中,如果新注册图像不属于已有关键帧图像对应的回环帧,那么可以在已构建的三维地图上,确定新注册图像所包括的目标特征点的总数目。其中,目标特征点是在所述已构建的三维地图上存在对应的地图点的特征点。如果目标特征点的总数目小于预设数目,说明新注册图像拍摄的当前场景未被已有的关键帧图像观测到,可以作为新确定的关键帧图像,从而减少了三维地图增量式重建过程中图像数据的冗余,简化了重建规模,提高了重建效率。
本公开实施例中,可以分别确定相机在采集新注册图像以及第一关键帧图像时,在世界坐标系中的第一坐标和第二坐标,其中,第一关键帧图像是已有关键帧图像中与新注册图像的采集时间最接近的一张关键帧图像。进一步地,可以确定第一坐标和第二坐标之间的第一距离值,如果所述第一距离值满足预设距离要求,那么可以确定所述新注册图像属于所述关键帧图像。本公开中,可以根据相机采集新注册图像和第一关键帧图像时,在世界坐标系中的位置,来确定新注册图像是否属于关键帧图像。减少了三维地图增量式重建过程中图像数据的冗余,简化了重建规模,提高了重建效率。
本公开实施例中,可以根据已有关键帧图像,确定相机在采集相邻两张关键帧图像时,在世界坐标系中的第三坐标和第四坐标,从而确定第三坐标和第四坐标之间的第二距离值。根据第二距离值确定目标距离值。如果第一距离值超过上述目标距离值,那么可以确定满足预设距离要求,新注册图像属于关键帧图像。本公开可以通过调整第一距离值与目标距离值的关系,控制关键帧图像的插入频率,减少三维地图增量式重建过程中图像数据的冗余,简化了重建规模,提高了重建效率。
本公开实施例中,还可以根据新注册图像与已有关键帧图像中采集时间最接近的第一关键帧图像之间的图像视差,来确定新注册图像是否属于关键帧图像。充分利用输入的注册图像的时序结构,在保证场景连接性的情况下,确定关键帧图像,每次可以根据新确定的关键帧图像,在已构建的三维地图上增加新的地图点。减少了三维地图增量式重建过程中图像数据的冗余,简化了重建规模,提高了重建效率。
本公开实施例中,可以对新确定的关键帧图像所包括的特征点进行采样,获得多个采样点。从而在已构建的三维地图上,根据多个采样点生成新的地图点。进一步地,在新确定的关键帧图像上,针对在已构建的三维地图上没有对应的地图点的第二特征点进行均匀采样,通过调整采样半径,可以控制采样点的总数目。避免图像特征过于集中,降低了后续优化时的复杂度,提高了重建效率。
本公开实施例中,可以根据至少一张第二关键帧图像,对已构建的三维地图进行优化。其中,可以将每次新确定的所述关键帧图像作为第二关键帧图像,从而在每次新确定关键帧图像之后,对已构建的三维地图进行局部优化。或者还可以将分多次确定的多张关键帧图像作为多张第二关键帧图像,对已构建的三维地图进行全局优化。降低了优化复杂度,提高了重建的准确性。
本公开实施例中,可以确定已构建的三维地图上的至少一个地图点,在每张第二关键帧图像中是否存在对应的特征点。如果第一地图点在当前第二关键帧图像中不存在对应的特征点,那么确定第一地图点在当前第二关键帧图像中对应的权重值为0,确定存在对应的特征点的第二地图点,在当前第二关键帧图像中对应的权重值与目标值成正比。本公开中,可以在已有的所述关键帧图像中,确定第三关键帧图像的总数目,根据第三关键帧图像的总数目确定目标值。从而让地图点在当前第二关键帧图像中对应的权重值,随着该地图点对应的第三关键帧图像的总数目的增多而提高,使得重建的地图更加准确,实现对已构建的三维地图进行优化的目的。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本公开根据一示例性实施例示出的一种地图构建方法流程图;
图2是本公开根据一示例性实施例示出的另一种地图构建方法流程图;
图3是本公开根据一示例性实施例示出的另一种地图构建方法流程图;
图4是本公开根据一示例性实施例示出的另一种地图构建方法流程图;
图5是本公开根据一示例性实施例示出的另一种地图构建方法流程图;
图6是本公开根据一示例性实施例示出的另一种地图构建方法流程图;
图7是本公开根据一示例性实施例示出的另一种地图构建方法流程图;
图8是本公开根据一示例性实施例示出的一种对第二特征点均匀采样的场景示意图;
图9是本公开根据一示例性实施例示出的另一种地图构建方法流程图;
图10是本公开根据一示例性实施例示出的另一种地图构建方法流程图;
图11是本公开根据一示例性实施例示出的另一种地图构建方法流程图;
图12是本公开根据一示例性实施例示出的另一种地图构建方法流程图;
图13是本公开根据一示例性实施例示出的另一种地图构建方法流程图;
图14是本公开根据一示例性实施例示出的一种确定基线的场景示意图;
图15是本公开根据一示例性实施例示出的一种地图构建装置示意图;
图16是本公开根据一示例性实施例示出的一种用于地图构建装置的一结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开运行的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所运行的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中运行的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所运行的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在重建初始化之后,例如图1所示,图1是根据一示例性实施例示出的一种地图构建方法,该方法可以包括以下步骤:
在步骤101中,根据新注册图像与已有关键帧图像之间的关联特征,确定所述新注册图像是否属于关键帧图像。
在本公开实施例中,新注册图像是相机在移动过程中每次新采集到的图像。关键帧图像是从新注册图像中按照时序有前到后顺序筛选出来的比较重要的图像,在确保场景连续性的基础上,可以基于关键帧图像进行三维地图重建。
在步骤102中,每次基于新确定的所述关键帧图像,在已构建的三维地图上增加新的地图点。
在本公开实施例中,已构建的三维地图是基于已有关键帧图像进行三维重建初始化后,构建得到的三维地图。每次新确定一张关键帧图像之后,根据新确定的关键帧图像所包括的特征点,采用三维点匹配的方法在已构建的三维地图上增加新的三维地图点,从而实现三维重建的目的。
上述实施例中,可以根据新注册图像与已有关键帧图像之间的关联特征,在新注册图像中选取关键帧图像,每次基于新确定的关键帧图像,在已构建的三维地图上增加新的地图点。本公开减少了三维地图增量式重建过程中图像数据的冗余,简化了重建规模,提高了重建效率。
在一些可选实施例中,可以采用以下方式中的至少一种确定新注册图像是否属于关键帧图像。
第一种方式,根据新注册图像是否属于已有关键帧图像对应的回环帧来确定新注册图像是否属于关键帧图像。
例如图2所示,步骤101可以包括:
在步骤101-11中,确定所述新注册图像是否属于所述已有关键帧图像对应的回环帧。
在本公开实施例中,回环帧是指在拍摄了某个场景之后,间隔一段时间又再次对该场景进行拍摄所得到的图像。回环帧是为了确保场景重建的准确性。因此,回环帧在三维重建过程中是很重要的。
本公开中,可以根据新注册图像与已有关键帧图像之间的图像特征的匹配度,以及新注册图像与已有关键帧图像之间间隔的注册图像的数目来判断新注册图像是否属于已有关键帧图像对应的回环帧。
如果新注册图像与已有关键帧图像之间的图像特征的匹配度超过预设匹配度,且间隔的注册图像的数目超过预设图像数目,则可以认为新注册图像属于已有关键帧图像对应的回环帧。
在步骤101-12中,如果所述新注册图像属于所述已有关键帧图像对应的回环帧,则确定所述新注册图像属于所述关键帧图像。
在本公开实施例中,直接将回环帧作为关键帧图像,后续可以根据关键帧图像进行三维地图重建。
上述实施例中,如果新注册图像属于已有关键帧图像对应的回环帧,那么该新注册图像属于关键帧图像。本公开将回环帧作为比较重要的关键帧图像,提高了地图重建的准确性,便于保护地图重建场景。
第二种方式,新注册图像不属于已有关键帧图像对应的回环帧的情况下,可以根据目标特征点的总数目,确定新注册图像是否属于关键帧图像。
例如图3所示,步骤101可以包括:
在步骤101-21中,如果所述新注册图像不属于所述已有关键帧图像对应的回环帧,确定所述新注册图像所包括的目标特征点的总数目。
在本公开实施例中,如果按照上述步骤101-11中的方式确定新注册图像不属于回环帧,那么可以采用三维点匹配方法,确定所述新注册图像所包括的每个特征点在已构建的三维地图上是否存在对应的地图点,如果存在对应的地图点,那么该特征点就是目标特征点。本公开可以确定新注册图像所包括的目标特征点的总数目。
在步骤101-22中,如果所述目标特征点的总数目小于预设数目,则确定所述新注册图像属于所述关键帧图像。
在本公开实施例中,如果目标特征点的总数目小于预设数目,那么可以认为新注册图像所对应的场景未被已有关键帧图像观测到,新注册图像包括新场景,可以确定新注册图像属于所述关键帧图像。其中,预设数目可以是大于零的正整数,例如可以是300。
在上述实施例中,如果新注册图像不属于已有关键帧图像对应的回环帧,那么可以在已构建的三维地图上,确定新注册图像所包括的目标特征点的总数目。其中,目标特征点是在所述已构建的三维地图上存在对应的地图点的特征点。如果目标特征点的总数目小于预设数目,说明新注册图像拍摄的当前场景未被已有的关键帧图像观测到,可以作为新确定的关键帧图像,从而减少了三维地图增量式重建过程中图像数据的冗余,简化了重建规模,提高了重建效率。
第三种方式,根据新注册图像与已有关键帧图像之间的距离值,即相机移动的距离值,来确定新注册图像是否属于关键帧图像。例如图4所示,步骤101可以包括:
在步骤101-31中,分别确定相机在采集所述新注册图像以及第一关键帧图像时,在世界坐标系中的第一坐标和第二坐标。
在本公开实施例中,考虑到观测到相似场景时,相机在世界坐标系中的位置应该没有移动很远。因此,可以分别确定相机在采集所述新注册图像和第一关键帧图像时,在世界坐标系中的第一坐标和第二坐标。其中,第一关键帧图像是已有关键帧图像中采集时间最接近所述新注册图像的关键帧图像,即第一关键帧图像是与新注册图像采集时间最近的一张关键帧图像。第一坐标和第二坐标可以通过是相机在世界坐标系中的位姿来表示。
在本公开实施例中,可以根据新注册图像中特征点与对应的三维的地图点之间的对应关系,采用随机样本一致性(Random Sample Consensus,RANSAC)和透视n点(Perspective-n-Points,P3P)算法估计出相机在采集新注册图像时,在世界坐标系中的位姿,从而确定第一坐标。采用同样的方式,也可以确定出相机在采集第一关键帧图像时,在世界坐标系中的第二坐标。
在步骤101-32中,确定所述第一坐标和所述第二坐标之间的第一距离值。
在本公开实施例中,在确定了第一坐标和第二坐标之后,可以在世界坐标系中计算出两者之间的第一距离值。
在步骤101-33中,如果所述第一距离值满足预设距离要求,则确定所述新注册图像属于所述关键帧图像。
在本公开实施例中,预设距离要求可以包括但不限于满足与目标距离值的对应关系,对应关系可以包括但不限于是目标距离值与大于0的预设数值的乘积关系。
在一个示例中,可以在已有关键帧图像中,先确定相机在采集时间相邻的两张关键帧图像时,在世界坐标系中的第三坐标和第四坐标,将第三坐标和第四坐标之间的第二距离值的平均值作为目标距离值。
其中,Ck表示相机在采集第k个关键帧图像时在世界坐标系中的坐标,f(k)表示距离第k个关键帧图像采集时间最近的关键帧图像索引,K是已有的关键帧图像的总数目。
在确定新注册图像是否属于关键帧图像时,可以采用以下公式2来确定:
其中,Ck+1表示相机在采集新注册图像时,在世界坐标系中的第一坐标,f(k+1)表示第一关键帧图像的索引,第一关键帧图像是已有关键帧图像中与新注册图像采集时间最接近的关键帧图像,Cf(k+1)表示相机在采集第一关键帧图像时,在世界坐标系中的第二坐标,为目标距离值,σ是大于0的预设倍数。
通过公式2可以看出,通过调整σ可以控制关键帧图像插入频率,当σ≥1时,公式2就成为单调递增函数,关键帧图像之间的间隔会越来越大。当σ<1时,可以让关键帧图像的插入频率保持在一个固定范围。在本公开实施例中,可以让σ位于[0.8,1]的区间范围内。
需要说明的是,第三种方式可以单独实施,也可以在上述步骤101-11,确定新注册图像不属于已有关键帧图像对应的回环帧的基础上,进一步根据相机移动距离值来确定新注册图像是否属于关键帧图像。
上述实施例中,本公开可以通过调整预设倍数,控制关键帧图像的插入频率,减少三维地图增量式重建过程中图像数据的冗余,简化了重建规模,提高了重建效率。
第四种方式,根据新注册图像与已有关键帧图像之间的图像视差来确定新注册图像是否属于关键帧图像。例如图5所示,步骤101可以包括:
在步骤101-41中,确定所述新注册图像与第一关键帧图像之间的图像视差。
在本公开实施例中,第一关键帧图像就是已有关键帧图像中采集时间最接近新注册图像的关键帧图像。图像视差是指从两个不同的点上观察同一个目标所产生的方向差异,一般可以通过视差角来衡量,即从同一个目标看两个不同的点时对应确定的夹角。
在本公开中,可以从已构建的三维地图上选取一个地图点,该地图点在新注册图像和第一关键帧图像上均存在对应的特征点。在世界坐标系中,确定该地图点与新注册图像上对应的特征点之间的连线,以及该地图点与第一关键帧图像上对应的特征点之间的连线的夹角,将这个夹角作为视差角,用来衡量新注册图像与第一关键帧图像之间的图像视差。
在步骤101-42中,如果所述图像视差大于预设视差,则确定所述新注册图像属于所述关键帧图像。
在本公开实施例中,预设视差可以根据经验证确定,例如可以为大于等于零的值。
需要说明的是,第四种方式可以单独实施,也可以在上述步骤101-11,确定新注册图像不属于已有关键帧图像对应的回环帧的基础上,进一步根据图像视差来确定新注册图像是否属于关键帧图像。或者还可以在确定新注册图像不属于已有关键帧图像对应的回环帧的基础上,结合第三种方式,根据相机移动距离值来共同确定新注册图像是否属于关键帧图像,本公开对此不作限定。例如,可以在确定新注册图像不属于已有关键帧图像对应的回环帧的基础上,确定相机移动距离值满足预设距离要求,且与第一关键帧图像之间的图像视差大于预设视差的情况下,确定该新注册图像属于关键帧图像。
上述实施例中,可以避免相机长时间停留在某个位置,导致采集的图像之间的视差过小,从而造成重建的三维地图质量变差的问题。
在一些可选实施例中,例如图6所示,步骤102可以包括:
在步骤102-1中,对新确定的所述关键帧图像所包括的特征点进行采样,获得多个采样点。
在本公开实施例中,可以针对每次新确定的关键帧图像所包括的特征点进行均匀采样,避免图像特征过于集中,得到多个采样点。
在步骤102-2中,在已构建的三维地图上,根据所述多个采样点生成新的地图点。
将多个采样点通过三维点匹配的方式,在已构建的三维地图上,生成新的地图点。
在一些可选实施例中,例如图7所示,步骤102-1可以包括:
在步骤201中,在新确定的所述关键帧图像所包括的特征点中,确定与已构建的所述三维地图上的地图点不匹配的第二特征点。
在本公开实施例中,新确定的关键帧图像上包括多个特征点,可以确定每个特征点在已构建的地图上是否存在匹配的地图点,如果存在匹配的地图点,那么该特征点作为第一特征点,否则将该特征点作为第二特征点。
例如图8所示,已有的关键帧图像包括图像1和图像2,其中,图像1和图像2中实心圆形的特征点在已有的三维地图中存在匹配的地图点(地图点就是图9中三角形的点)。新确定的关键帧图像为图像3,在图像3的多个特征点中,如果某个特征点在已有的三维地图中存在匹配的地图点,则该特征点对应实心圆形的第一特征点,否则对应空心圆形的第二特征点。
在步骤202中,在新确定的所述关键帧图像上,对所述第二特征点进行采样,获得所述多个采样点。
上述实施例中,可以在新确定的关键帧图像所包括的特征点中,确定与已构建的三维地图上的地图点不匹配的第二特征点,后续基于第二特征点进行采样,以便生成新的地图点,避免生成与已有地图点重复的地图点,可用性高。
在一些可选实施例中,例如图8所示,步骤102-12可以包括:
在步骤301中,在新确定的所述关键帧图像上,根据预设采样半径,划分多个采样区域。
在本公开实施例中,预设采样半径可以根据采样点总数目的需要来划分。如果总数目较多,可以减少预设采样半径,反之,增加预设采样半径,从而在新确定的关键帧图像上可以划分出多个采样区域,例如图8所示。
在步骤302中,对每个采样区域所包括的所述第二特征点进行均匀采样,获得所述多个采样点。
为了确保地图的连续性,可以在每个采样区域内对第二特征点进行均匀采样,采样相同数目的所述第二特征点,获得总数目满足预设区间范围的所述多个采样点。预设区域范围可以是[900,2000]之间的任意整数。
例如图8所示,假设在每个采样区域内采样一个第二特征点,那么在采样区域1和2中只保留一个第二特征点。在本公开实施例中,可以保留更接近与采样区域中心位置的第二特征点。在采样区域3中由于只有一个第二特征点,那么保留该第二特征点。
上述实施例中,可以在新确定的关键帧图像上,针对在已构建的三维地图上没有对应的地图点的第二特征点进行均匀采样,通过调整采样半径,可以控制采样点的总数目。避免图像特征过于集中,降低了后续优化时的复杂度,提高了重建效率。
在一些可选实施例中,例如图10所示,上述方法还可以包括:
在步骤103中,根据至少一张第二关键帧图像,对已构建的三维地图进行优化。
在本公开实施例中,可以将每次新确定的关键帧图像作为第二关键帧图像,每次新确定一张关键帧图像,就对三维地图进行局部优化。还可以将分多次确定的多张所述关键帧图像作为多张第二关键帧图像,对三维地图进行全局优化。
在一些可选实施例中,例如图11所示,步骤103可以包括:
在步骤103-1中,确定所述已构建的三维地图上的至少一个地图点在每张第二关键帧图像中对应的权重值。
在本公开实施例中,可以根据每个地图点在每张第二关键帧图像上是否存在对应的特征点,来确定该地图点在每张第二关键帧图像中对应的权重值。
在步骤103-2中,基于所述至少一个地图点在所述每张第二关键帧图像中对应的权重值,确定已构建的三维地图对应的损失函数。
在本公开实施例中,损失函数f(*)可以通过以下公式3表示:
其中,n是已有的关键帧图像的总数目,m是已构建的三维地图所包括的地图点的总数目,K是相机内参,一般是预先标定好的,Ri和Ti是相机在采集第i张关键帧图像时对应的旋转矩阵和平移向量,一般可以通过相机位姿来确定。Xj是已构建的三维地图上的第j个地图点。xj是第j个地图点在关键帧图像上对应的特征点。vij是第j个地图点在第i张关键帧图像上对应的特征点的权重值。
在步骤103-3中,确定使得所述损失函数最小的相机位姿参数。
上述进行局部或全局优化的目的就是为了让f(*)这个函数值减小。相机位姿参数包括但不限于上述公式3中的Ri和Ti。
在步骤103-4中,基于所述相机位姿参数,更新所述已构建的三维地图上的所述至少一个地图点。
在本公开实施例中,可以重新确定已构建的三维地图上的每个地图点所对应的相机位姿参数,从而基于重新确定的相机位姿参数,更新已构建的三维地图上的地图点,实现对已构建的三维地图进行全局优化或局部优化的目的。
在一些可选实施例中,例如图12所示,步骤103-1可以包括:
在步骤401中,在所述已构建的三维地图上的至少一个地图点中,确定在当前第二关键帧图像中不存在对应的特征点的第一地图点和存在对应的特征点的第二地图点。在本公开实施例中,已构建的三维地图上的至少一个地图点需要分别在每张第二关键帧图像中确定是否存在对应的特征点。从而得到在当前第二关键帧图像上不存在对应的特征点的第一地图点,以及存在对应的特征点的第二地图点。
例如,已构建的三维地图上存在5个地图点,第二关键帧图像的数目为1,则需要分别确定5个地图点在该第二关键帧图像上是否存在对应的特征点。如果第二关键帧的数目为3,则需要分别确定5个地图点在三张第二关键帧图像上是否存在对应的特征点。
在步骤402中,确定所述第一地图点在所述当前第二关键帧图像中对应的权重值为0,确定所述第二地图点在所述当前第二关键帧图像中对应的所述权重值与目标值成正比。
在本公开实施例中,第一地图点在当前第二关键帧图像中不存在对应的特征点,第一地图点在当前第二关键帧图像中对应的权重值就是0。
第二地图点在当前第二关键帧图像上存在对应的特征点,第二地图点在当前第二关键帧图像中对应的权重值与一个目标值成正比,可以随着目标值的增加而增加。
在一个示例中,在所有的所述已有关键帧图像中,确定第三关键帧图像的总数目。如果第二地图点在某张关键帧图像上存在对应的特征点,那么该关键帧图像可以作为第三关键帧图像,本公开可以根据第三关键帧图像的总数目,确定与第二地图点对应的目标值。可选地,可以直接将第三关键帧图像的总数目,作为目标值。
例如,在当前第二关键帧图像上包括两个第二地图点,地图点1和地图点2,即地图点1和地图点2是在当前第二关键帧图像上存在对应的特征点的地图点。已有关键帧图像共有5张,地图点1在其中的3张关键帧图像上存在对应的特征点,地图点2在其中的4张关键帧图像上存在对应的特征点。则地图点1对应的目标值为3,地图点2对应的目标值为4,相应地,地图点1在当前第二关键帧图像上对应的权重值小于地图点2在当前第二关键帧图像上对应的权重值。
如果已构建的三维地图上地图点的权重值vij的值采用以下公式4来确定:
那么地图点Xj的权重值要么为0要么为1,没有侧重。地图优化的局限性较高,准确性也较差。而在本公开实施例中,可以采用以下公式5来确定vij的值:
其中,σ可以为20,D(Xj)位地图点Xj对应的目标值。
上述实施例中,可以在已有关键帧图像中,确定第三关键帧图像的总数目,从而根据第三关键帧图像的总数目确定所述目标值。使得已构建的三维地图上的地图点在当前第二关键帧图像中对应的权重值,随着该地图点对应的第三关键帧图像的总数目的增多而提高,使得重建的地图更加准确。
在一些可选实施例中,可以基于已有关键帧图像进行三维地图重建初始化,从而构建三维地图,后续在确定了新的关键帧图像后,可以在已构建的三维地图上添加新的地图点。例如图13所示,重建初始化以及构建三维地图的过程可以包括以下步骤:
在步骤501中,确定所述已有关键帧图像中每张关键帧图像所包括的特征点。
在本公开实施例中,在进行三维重建之前需要先对多张已注册图像进行重建初始化,目的是为了确定基线最合理的图像对,后续会根据初始化图像对构建三维地图,每次出现新注册图像之后,在构建的三维地图上增加新的地图点。
在多张已注册图像中,可以采用尺度不变特征变换(Scale-Invariant FeatureTransform,SIFT)的方法,对已有关键帧图像中的每张关键帧图像提取图像特征,确定每张关键帧图像所包括的多个特征点,并计算特征点对应的描述子。
在步骤502中,将所述已有关键帧图像中的任意两张关键帧图像作为一组图像对,对任意一组图像对的特征点进行匹配,确定匹配结果。
在本公开实施例中,已有关键帧图像中的任意两张关键帧图像组成一组图像对,可以采用近似最近邻(Approximate Nearest Neighbor,ANN)算法对任意一组图像对进行特征点匹配,得到匹配结果。其中,匹配结果包括但不限于特征点匹配数目。
在步骤503中,根据所述匹配结果,对多组图像对按照预先指定的顺序排序后,顺序基于不同图像对进行三维地图的重建初始化。
在本公开实施例中,针对多组图像对,可以按照特征点匹配数目按照预先指定的顺序进行排序。例如,按照特征点匹配数目由高到低的顺序进行排序。可选地,还可以结合特征点分布情况进行排序,例如按照特征点匹配数目由高到低,且特征点分布由分散到集中的顺序进行排序。对排序后得到的多组图像对,由前到后依次尝试进行重建初始化。
在步骤504中,基于所述多组图像对中重建初始化成功的初始化图像对,构建三维地图。
在初始化过程中,可以确定当前一组图像对的基线,如果该基线位于预设基线范围内,那么将当前这组图像对作为初始化图像对,初始化过程成功。预设基线范围可以根据经验值得到,不能太大也不能太小。
其中,在确定当前一组图像对的基线时,可以根据每张图像分别确定相机在世界坐标系中的相机位姿,从而得到相机的光心坐标,例如图14所示,一组图像对可以确定两个光心坐标O1和O2。另外,还可以分别根据图像对匹配的特征点在空间坐标系中的坐标值,例如图14中图像对上的匹配特征点在世界坐标系的坐标值为P,那么P与O1之间的连线、和P与O2之间的连线构成一个夹角,当前一组图像对中所有匹配的特征点对应的夹角的中值可以作为当前一组图像对对应的基线。
在本公开实施例中,可以基于重建初始化成功的初始化图像,构建三维地图。
上述实施例中,可以基于已有关键帧图像进行三维地图重建初始化,提高了初始化过程的效率,实现简便,可用性高。
与前述方法实施例相对应,本公开还提供了装置的实施例。
如图15所示,图15是本公开根据一示例性实施例示出的一种地图构建装置框图,装置包括:
第一确定模块610,用于根据新注册图像与已有关键帧图像之间的关联特征,确定所述新注册图像是否属于关键帧图像;
地图更新模块620,用于每次基于新确定的所述关键帧图像,在已构建的三维地图上增加新的地图点。
在一些可选实施例中,所述第一确定模块包括:第三确定子模块,用于如果所述新注册图像不属于所述已有关键帧图像对应的回环帧,确定所述新注册图像所包括的目标特征点的总数目;其中,所述目标特征点是在所述已构建的三维地图上存在对应的地图点的特征点;第四确定子模块,用于如果所述目标特征点的总数目小于预设数目,则确定所述新注册图像属于所述关键帧图像。
在一些可选实施例中,所述第一确定模块包括:第五确定子模块,用于分别确定相机在采集所述新注册图像以及第一关键帧图像时,在世界坐标系中的第一坐标和第二坐标;其中,所述第一关键帧图像是所述已有关键帧图像中采集时间最接近所述新注册图像的关键帧图像;第六确定子模块,用于确定所述第一坐标和所述第二坐标之间的第一距离值;第七确定子模块,用于如果所述第一距离值满足预设距离要求,则确定所述新注册图像属于所述关键帧图像。
在一些可选实施例中,所述预设距离要求包括满足与目标距离值的对应关系;所述装置还包括:第二确定模块,用于在所述已有关键帧图像中,分别确定所述相机在采集时间相邻的两张关键帧图像时,在世界坐标系中的第三坐标和第四坐标;第三确定模块,用于确定所述第三坐标和所述第四坐标之间的第二距离值;第四确定模块,用于根据所述第二距离值确定所述目标距离值。
在一些可选实施例中,所述第一确定模块包括:第八确定子模块,用于确定所述新注册图像与第一关键帧图像之间的图像视差;其中,所述第一关键帧图像是所述已有关键帧图像中采集时间最接近所述新注册图像的关键帧图像;第九确定子模块,用于如果所述图像视差大于预设视差,则确定所述新注册图像属于所述关键帧图像。
在一些可选实施例中,所述地图更新模块包括:获取子模块,用于对新确定的所述关键帧图像所包括的特征点进行采样,获得多个采样点;生成子模块,用于在已构建的三维地图上,根据所述多个采样点生成新的地图点。
在一些可选实施例中,所述获取子模块包括:第一确定单元,用于在新确定的所述关键帧图像所包括的特征点中,确定与已构建的所述三维地图上的地图点不匹配的第二特征点;获取单元,用于在新确定的所述关键帧图像上,对所述第二特征点进行采样,获得所述多个采样点。
在一些可选实施例中,所述获取单元包括:区域划分子单元,用于在新确定的所述关键帧图像上,根据预设采样半径,划分多个采样区域;获取子单元,用于对每个采样区域所包括的所述第二特征点进行均匀采样,获得所述多个采样点。
在一些可选实施例中,所述获取子单元包括:在所述每个采样区域内采样相同数目的所述第二特征点,获得总数目满足预设区间范围的所述多个采样点。
在一些可选实施例中,所述装置还包括:地图优化模块,用于根据至少一张第二关键帧图像,对已构建的三维地图进行优化。
在一些可选实施例中,所述装置还包括:第五确定模块,用于将每次新确定的所述关键帧图像作为所述第二关键帧图像;或第六确定模块,用于将分多次确定的多张所述关键帧图像作为多张第二关键帧图像。
在一些可选实施例中,所述地图优化模块包括:第十确定子模块,用于确定所述已构建的三维地图上的至少一个地图点在每张第二关键帧图像中对应的权重值;第十一确定子模块,用于基于所述至少一个地图点在所述每张第二关键帧图像中对应的权重值,确定已构建的三维地图对应的损失函数;第十二确定子模块,用于确定使得所述损失函数最小的相机位姿参数;第十三确定子模块,用于基于所述相机位姿参数,更新所述已构建的三维地图上的所述至少一个地图点。
在一些可选实施例中,所述第十确定子模块包括:第二确定单元,用于在所述已构建的三维地图上的至少一个地图点中,确定在当前第二关键帧图像中不存在对应的特征点的第一地图点和存在对应的特征点的第二地图点;第三确定单元,用于确定所述第一地图点在所述当前第二关键帧图像中对应的权重值为0,确定所述第二地图点在所述当前第二关键帧图像中对应的所述权重值与目标值成正比。
在一些可选实施例中,所述装置还包括:第七确定模块,用于在所述已有关键帧图像中,确定第三关键帧图像的总数目;其中,所述第二地图点在所述第三关键帧图像上存在对应的特征点;第八确定模块,用于基于所述第三关键帧图像的总数目,确定与所述第二地图点对应的所述目标值。
在一些可选实施例中,所述装置还包括:第就确定模块,用于确定所述已有关键帧图像中每张关键帧图像所包括的特征点;匹配模块,用于将所述已有关键帧图像中的任意两张关键帧图像作为一组图像对,对任意一组图像对的特征点进行匹配,确定匹配结果;地图重建初始化模块,用于根据所述匹配结果,对多组图像对按照预先指定的顺序排序后,顺序基于不同图像对进行三维地图的重建初始化;地图构建模块,用于基于所述多组图像对中重建初始化成功的初始化图像对,构建三维地图。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本公开实施例还提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序用于执行上述任一所述的地图构建方法。
在一些可选实施例中,本公开实施例提供了一种计算机程序产品,包括计算机可读代码,当计算机可读代码在设备上运行时,设备中的处理器执行用于实现如上任一实施例提供的地图构建方法的指令。
该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
本公开实施例还提供了一种地图构建装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为调用所述存储器中存储的可执行指令,实现上述任一项所述的地图构建方法。
本公开实施例还提供了一种地图构建装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为调用所述存储器中存储的可执行指令,实现上述任一项所述的地图构建方法。
图16为本公开实施例提供的一种地图构建装置的硬件结构示意图。该地图构建装置710包括处理器711,还可以包括输入装置712、输出装置713和存储器714。该输入装置712、输出装置713、存储器714和处理器711之间通过总线相互连接。
存储器包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable readonly memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM),该存储器用于相关指令及数据。
输入装置用于输入数据和/或信号,以及输出装置用于输出数据和/或信号。输出装置和输入装置可以是独立的器件,也可以是一个整体的器件。
处理器可以包括是一个或多个处理器,例如包括一个或多个中央处理器(centralprocessing unit,CPU),在处理器是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。
存储器用于存储网络设备的程序代码和数据。
处理器用于调用该存储器中的程序代码和数据,执行上述方法实施例中的步骤。具体可参见方法实施例中的描述,在此不再赘述。
可以理解的是,图16仅仅示出了一种地图构建装置的简化设计。在实际应用中,地图构建装置还可以分别包含必要的其他元件,包含但不限于任意数量的输入/输出装置、处理器、控制器、存储器等,而所有可以实现本公开实施例的地图构建装置都在本公开的保护范围之内。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或者惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。
Claims (17)
1.一种地图构建方法,其特征在于,包括:
根据新注册图像与已有关键帧图像之间的关联特征,确定所述新注册图像是否属于关键帧图像;
每次基于新确定的所述关键帧图像,在已构建的三维地图上增加新的地图点;
所述方法还包括:
根据至少一张第二关键帧图像,对已构建的三维地图进行优化;其中,所述第二关键帧图像是每次新确定的关键帧图像;
所述根据至少一张第二关键帧图像,对已构建的三维地图进行优化,包括:
确定所述已构建的三维地图上的至少一个地图点在每张第二关键帧图像中对应的权重值;
所述确定所述已构建的三维地图上的至少一个地图点在每张第二关键帧图像中对应的权重值,包括:
在所述已构建的三维地图上的至少一个地图点中,确定在当前第二关键帧图像中不存在对应的特征点的第一地图点和存在对应的特征点的第二地图点;
确定所述第一地图点在所述当前第二关键帧图像中对应的权重值为0,确定所述第二地图点在所述当前第二关键帧图像中对应的所述权重值与目标值正相关;其中,所述目标值为第三关键帧图像的总数目,所述第三关键帧图像是存在与所述第二地图点对应的特征点的关键帧图像。
2.根据权利要求1所述的方法,其特征在于,所述根据新注册图像与已有关键帧图像之间的关联特征,确定所述新注册图像是否属于关键帧图像,包括:
确定所述新注册图像是否属于所述已有关键帧图像对应的回环帧;
如果所述新注册图像属于所述已有关键帧图像对应的回环帧,则确定所述新注册图像属于所述关键帧图像。
3.根据权利要求1或2所述的方法,其特征在于,所述根据新注册图像与已有关键帧图像之间的关联特征,确定所述新注册图像是否属于关键帧图像,包括:
如果所述新注册图像不属于所述已有关键帧图像对应的回环帧,确定所述新注册图像所包括的目标特征点的总数目;其中,所述目标特征点是在所述已构建的三维地图上存在对应的地图点的特征点;
如果所述目标特征点的总数目小于预设数目,则确定所述新注册图像属于所述关键帧图像。
4.根据权利要求1所述的方法,其特征在于,所述根据新注册图像与已有关键帧图像之间的关联特征,确定所述新注册图像是否属于关键帧图像,包括:
分别确定相机在采集所述新注册图像以及第一关键帧图像时,在世界坐标系中的第一坐标和第二坐标;其中,所述第一关键帧图像是所述已有关键帧图像中采集时间最接近所述新注册图像的关键帧图像;
确定所述第一坐标和所述第二坐标之间的第一距离值;
如果所述第一距离值满足预设距离要求,则确定所述新注册图像属于所述关键帧图像。
5.根据权利要求4所述的方法,其特征在于,所述预设距离要求包括满足与目标距离值的对应关系;
所述方法还包括:
在所述已有关键帧图像中,分别确定所述相机在采集时间相邻的两张关键帧图像时,在世界坐标系中的第三坐标和第四坐标;
确定所述第三坐标和所述第四坐标之间的第二距离值;
根据所述第二距离值确定所述目标距离值。
6.根据权利要求1所述的方法,其特征在于,所述根据新注册图像与已有关键帧图像之间的关联特征,确定所述新注册图像是否属于关键帧图像,包括:
确定所述新注册图像与第一关键帧图像之间的图像视差;其中,所述第一关键帧图像是所述已有关键帧图像中采集时间最接近所述新注册图像的关键帧图像;
如果所述图像视差大于预设视差,则确定所述新注册图像属于所述关键帧图像。
7.根据权利要求1所述的方法,其特征在于,所述每次基于新确定的所述关键帧图像,在已构建的三维地图上增加新的地图点,包括:
对新确定的所述关键帧图像所包括的特征点进行采样,获得多个采样点;
在已构建的三维地图上,根据所述多个采样点生成新的地图点。
8.根据权利要求7所述的方法,其特征在于,所述对新确定的所述关键帧图像所包括的特征点进行采样,获得多个采样点,包括:
在新确定的所述关键帧图像所包括的特征点中,确定与已构建的所述三维地图上的地图点不匹配的第二特征点;
在新确定的所述关键帧图像上,对所述第二特征点进行采样,获得所述多个采样点。
9.根据权利要求8所述的方法,其特征在于,所述在新确定的所述关键帧图像上,对所述第二特征点进行采样,获得所述多个采样点,包括:
在新确定的所述关键帧图像上,根据预设采样半径,划分多个采样区域;
对每个采样区域所包括的所述第二特征点进行均匀采样,获得所述多个采样点。
10.根据权利要求9所述的方法,其特征在于,所述对每个采样区域所包括的所述第二特征点进行均匀采样,获得所述多个采样点,包括:
在所述每个采样区域内采样相同数目的所述第二特征点,获得总数目满足预设区间范围的所述多个采样点。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将每次新确定的所述关键帧图像作为所述第二关键帧图像;或
将分多次确定的多张所述关键帧图像作为多张第二关键帧图像。
12.根据权利要求1所述的方法,其特征在于,所述根据至少一张第二关键帧图像,对已构建的三维地图进行优化,还包括:
基于所述至少一个地图点在所述每张第二关键帧图像中对应的权重值,确定已构建的三维地图对应的损失函数;
确定使得所述损失函数最小的相机位姿参数;
基于所述相机位姿参数,更新所述已构建的三维地图上的所述至少一个地图点。
13.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述已有关键帧图像中,确定所述第三关键帧图像的总数目;基于所述第三关键帧图像的总数目,确定与所述第二地图点对应的所述目标值。
14.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述已有关键帧图像中每张关键帧图像所包括的特征点;
将所述已有关键帧图像中的任意两张关键帧图像作为一组图像对,对任意一组图像对的特征点进行匹配,确定匹配结果;
根据所述匹配结果,对多组图像对按照预先指定的顺序排序后,顺序基于不同图像对进行三维地图的重建初始化;
基于所述多组图像对中重建初始化成功的初始化图像对,构建三维地图。
15.一种地图构建装置,其特征在于,所述装置包括:
第一确定模块,用于根据新注册图像与已有关键帧图像之间的关联特征,确定所述新注册图像是否属于关键帧图像;
地图更新模块,用于每次基于新确定的所述关键帧图像,在已构建的三维地图上增加新的地图点;
所述装置还包括:
地图优化模块,用于根据至少一张第二关键帧图像,对已构建的三维地图进行优化;其中,所述第二关键帧图像是每次新确定的关键帧图像;
所述地图优化模块包括:
第十确定子模块,用于确定所述已构建的三维地图上的至少一个地图点在每张第二关键帧图像中对应的权重值;
所述第十确定子模块包括:
第二确定单元,用于在所述已构建的三维地图上的至少一个地图点中,确定在当前第二关键帧图像中不存在对应的特征点的第一地图点和存在对应的特征点的第二地图点;
第三确定单元,用于确定所述第一地图点在所述当前第二关键帧图像中对应的权重值为0,确定所述第二地图点在所述当前第二关键帧图像中对应的所述权重值与目标值正相关;其中,所述目标值为第三关键帧图像的总数目,所述第三关键帧图像是存在与所述第二地图点对应的特征点的关键帧图像。
16.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-14任一所述的地图构建方法。
17.一种地图构建装置,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为调用所述存储器中存储的可执行指令,实现权利要求1-14中任一项所述的地图构建方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011599715.5A CN112614185B (zh) | 2020-12-29 | 2020-12-29 | 地图构建方法及装置、存储介质 |
PCT/CN2021/092114 WO2022142049A1 (zh) | 2020-12-29 | 2021-05-07 | 地图构建方法及装置、设备、存储介质、计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011599715.5A CN112614185B (zh) | 2020-12-29 | 2020-12-29 | 地图构建方法及装置、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112614185A CN112614185A (zh) | 2021-04-06 |
CN112614185B true CN112614185B (zh) | 2022-06-21 |
Family
ID=75249118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011599715.5A Active CN112614185B (zh) | 2020-12-29 | 2020-12-29 | 地图构建方法及装置、存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112614185B (zh) |
WO (1) | WO2022142049A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112614185B (zh) * | 2020-12-29 | 2022-06-21 | 浙江商汤科技开发有限公司 | 地图构建方法及装置、存储介质 |
CN116958267B (zh) * | 2023-09-21 | 2024-01-12 | 腾讯科技(深圳)有限公司 | 位姿处理方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103413322A (zh) * | 2013-07-16 | 2013-11-27 | 南京师范大学 | 序列视频关键帧提取方法 |
CN106846467A (zh) * | 2017-01-23 | 2017-06-13 | 阿依瓦(北京)技术有限公司 | 基于每个相机位置优化的实体场景建模方法和系统 |
CN107369183A (zh) * | 2017-07-17 | 2017-11-21 | 广东工业大学 | 面向mar的基于图优化slam的跟踪注册方法及系统 |
CN111325842A (zh) * | 2020-03-04 | 2020-06-23 | Oppo广东移动通信有限公司 | 地图构建方法、重定位方法及装置、存储介质和电子设备 |
CN111795704A (zh) * | 2020-06-30 | 2020-10-20 | 杭州海康机器人技术有限公司 | 一种视觉点云地图的构建方法、装置 |
WO2020233724A1 (zh) * | 2019-05-23 | 2020-11-26 | 全球能源互联网研究院有限公司 | 一种基于视觉slam的电网作业环境地图的构建方法及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103247075B (zh) * | 2013-05-13 | 2015-08-19 | 北京工业大学 | 基于变分机制的室内环境三维重建方法 |
US9830706B2 (en) * | 2015-09-17 | 2017-11-28 | Skycatch, Inc. | Generating georeference information for aerial images |
CN109816769A (zh) * | 2017-11-21 | 2019-05-28 | 深圳市优必选科技有限公司 | 基于深度相机的场景地图生成方法、装置及设备 |
CN110610520B (zh) * | 2019-08-29 | 2022-03-29 | 中德(珠海)人工智能研究院有限公司 | 一种基于双球幕相机的视觉定位方法及系统 |
CN111968129B (zh) * | 2020-07-15 | 2023-11-07 | 上海交通大学 | 具有语义感知的即时定位与地图构建系统及方法 |
CN112614185B (zh) * | 2020-12-29 | 2022-06-21 | 浙江商汤科技开发有限公司 | 地图构建方法及装置、存储介质 |
-
2020
- 2020-12-29 CN CN202011599715.5A patent/CN112614185B/zh active Active
-
2021
- 2021-05-07 WO PCT/CN2021/092114 patent/WO2022142049A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103413322A (zh) * | 2013-07-16 | 2013-11-27 | 南京师范大学 | 序列视频关键帧提取方法 |
CN106846467A (zh) * | 2017-01-23 | 2017-06-13 | 阿依瓦(北京)技术有限公司 | 基于每个相机位置优化的实体场景建模方法和系统 |
CN107369183A (zh) * | 2017-07-17 | 2017-11-21 | 广东工业大学 | 面向mar的基于图优化slam的跟踪注册方法及系统 |
WO2020233724A1 (zh) * | 2019-05-23 | 2020-11-26 | 全球能源互联网研究院有限公司 | 一种基于视觉slam的电网作业环境地图的构建方法及系统 |
CN111325842A (zh) * | 2020-03-04 | 2020-06-23 | Oppo广东移动通信有限公司 | 地图构建方法、重定位方法及装置、存储介质和电子设备 |
CN111795704A (zh) * | 2020-06-30 | 2020-10-20 | 杭州海康机器人技术有限公司 | 一种视觉点云地图的构建方法、装置 |
Non-Patent Citations (1)
Title |
---|
CFD-SLAM:融合特征法与直接法的快速鲁棒SLAM系统;王化友等;《高技术通讯》;20191215(第12期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112614185A (zh) | 2021-04-06 |
WO2022142049A1 (zh) | 2022-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110310333B (zh) | 定位方法及电子设备、可读存储介质 | |
CN108537876B (zh) | 三维重建方法、装置、设备及存储介质 | |
WO2019205852A1 (zh) | 确定图像捕捉设备的位姿的方法、装置及其存储介质 | |
CN111598993B (zh) | 基于多视角成像技术的三维数据重建方法、装置 | |
KR100855657B1 (ko) | 단안 줌 카메라를 이용한 이동로봇의 자기위치 추정 시스템및 방법 | |
CN112614185B (zh) | 地图构建方法及装置、存储介质 | |
KR101791590B1 (ko) | 물체 자세 인식장치 및 이를 이용한 물체 자세 인식방법 | |
KR20230127313A (ko) | 3차원 재구성 및 관련 인터랙션, 측정 방법 및 관련장치, 기기 | |
CN110704562B (zh) | 地图融合方法及装置、设备、存储介质 | |
Zhuang et al. | Acdnet: Adaptively combined dilated convolution for monocular panorama depth estimation | |
CN111127524A (zh) | 一种轨迹跟踪与三维重建方法、系统及装置 | |
CN111553939B (zh) | 一种多目摄像机的图像配准算法 | |
CN111862299A (zh) | 人体三维模型构建方法、装置、机器人和存储介质 | |
CN110243390B (zh) | 位姿的确定方法、装置及里程计 | |
US20230298344A1 (en) | Method and device for determining an environment map by a server using motion and orientation data | |
CN113361365B (zh) | 定位方法和装置、设备及存储介质 | |
CN109785373A (zh) | 一种基于散斑的六自由度位姿估计系统及方法 | |
CN115375842A (zh) | 一种植株三维重建方法、终端及存储介质 | |
WO2019013162A1 (ja) | 情報処理装置、情報処理方法 | |
JP2017037426A (ja) | 情報処理装置、情報処理方法、プログラム | |
CN111028346B (zh) | 一种视频对象的重建方法和装置 | |
CN113706391B (zh) | 无人机航拍图像实时拼接方法、系统、设备及存储介质 | |
CN110110767A (zh) | 一种图像特征优化方法、装置、终端设备及可读存储介质 | |
CN111383262B (zh) | 遮挡检测方法、系统、电子终端以及存储介质 | |
CN112184611A (zh) | 图像生成模型训练方法以及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40040712 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |