CN115601419A - 同步定位与建图后端优化方法、装置及存储介质 - Google Patents
同步定位与建图后端优化方法、装置及存储介质 Download PDFInfo
- Publication number
- CN115601419A CN115601419A CN202110766196.5A CN202110766196A CN115601419A CN 115601419 A CN115601419 A CN 115601419A CN 202110766196 A CN202110766196 A CN 202110766196A CN 115601419 A CN115601419 A CN 115601419A
- Authority
- CN
- China
- Prior art keywords
- key
- dimensional space
- reprojection error
- relative
- target
- 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.)
- Pending
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/75—Determining position or orientation of objects or cameras using feature-based methods involving models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2004—Aligning objects, relative positioning of parts
Abstract
本申请提供一种同步定位与建图后端优化方法、装置及存储介质,该方法通过在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点,进而,根据该目标三维空间点,确定重投影误差,通过预处理后上述目标三维空间点对应的最大视差提供权重,获得相对重投影误差,该相对重投影误差描述了点的空间位置与相机空间位置之间的差异,从而为同步定位与建图的优化问题提供更为鲁棒的残差构建,更好地进行空间定位,解决了现有后端优化不能很好的表现出重投影误差与点的深度之间的关系,缺乏空间信息的描述,导致优化后的位姿估计准确率较低的问题。
Description
技术领域
本申请涉及图像处理技术领域,尤其涉及一种同步定位与建图后端优化方法、装置及存储介质。
背景技术
随着计算机视觉技术的发展,同步定位与建图算法被广泛应用于如增强现实、虚拟现实、自动驾驶以及机器人或者无人机的定位导航等领域。
在同步定位与建图算法问题中,可以分为前端和后端两个部分。前端的主要作用是计算帧与帧间的相对关系,例如计算帧与帧间之间的相对位姿。后端的作用主要是对前端的输出结果进行优化,得到最优的位姿估计。以视觉同步定位与建图方法中,后端优化一般以帧与帧匹配关键点之间的重投影误差作为损失函数,进而基于该损失函数进行一个整体优化,例如在损失函数较小时,得到优化后的位姿估计。
然而,上述后端优化不能很好的表现出重投影误差与点的深度之间的关系,缺乏空间信息的描述,可能导致优化后的位姿估计准确率较低。
发明内容
为解决现有技术中存在的问题,本申请提供一种同步定位与建图后端优化方法、装置及存储介质。
第一方面,本申请实施例提供一种同步定位与建图后端优化方法,包括:
在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点;
根据所述目标三维空间点,确定重投影误差;
根据所述重投影误差和预处理后所述目标三维空间点对应的最大视差,确定相对重投影误差,所述预处理包括去除旋转影响的操作;
同步定位与建图系统进行后端优化根据所述相对重投影误差,对所述。
在一种可能的实现方式中,在所述根据所述重投影误差和预处理后所述目标三维空间点对应的最大视差,确定相对重投影误差之前,还包括:
确定所述目标三维空间点对应的多个目标关键帧;
根据关键帧ui的关键点坐标、关键帧uj的关键点坐标、所述同步定位与建图系统中图像获取装置的内参矩阵,以及所述关键帧uj到所述关键帧ui的旋转矩阵,确定所述预处理后所述目标三维空间点对应的多个视差,其中,所述关键帧ui和所述关键帧uj为所述多个目标关键帧中任意两个关键帧,i=1,2,…m,j=1,2,…m,m等于所述多个目标关键帧的数目;
从所述预处理后所述目标三维空间点对应的多个视差中,确定所述最大视差。
在一种可能的实现方式中,所述根据关键帧ui的关键点坐标、关键帧uj的关键点坐标、所述同步定位与建图系统中图像获取装置的内参矩阵,以及所述关键帧uj到所述关键帧ui的旋转矩阵,确定所述预处理后所述目标三维空间点对应的多个视差,包括:
计算所述内参矩阵、所述旋转矩阵、所述内参矩阵的逆矩阵,以及所述关键帧uj的关键点坐标的乘积;
根据所述关键帧ui的关键点坐标与所述乘积的差值,确定所述预处理后所述目标三维空间点对应的多个视差。
在一种可能的实现方式中,所述根据所述重投影误差和预处理后所述目标三维空间点对应的最大视差,确定相对重投影误差,包括:
计算所述重投影误差与所述最大视差的比值;
将所述比值作为所述相对重投影误差。
在一种可能的实现方式中,所述根据所述目标三维空间点,确定重投影误差,包括:
确定所述目标三维空间点进行投影得到的位置;
根据所述投影得到的位置,确定所述重投影误差。
在一种可能的实现方式中,所述根据所述相对重投影误差,对所述同步定位与建图系统进行后端优化,包括:
判断所述相对重投影误差是否达到预设误差阈值;
若所述相对重投影误差未达到所述预设误差阈值,则重新执行所述在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点的步骤,以使所述相对重投影误差达到所述预设误差阈值,根据所述相对重投影误差,对所述同步定位与建图系统进行后端优化。
在一种可能的实现方式中,在所述在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点之前,还包括:
对所述同步定位与建图系统进行初始化。
在一种可能的实现方式中,所述对所述同步定位与建图系统进行初始化,包括:
获取预设数量的连续的帧图像,对所述预设数量的连续的帧图像进行所述预处理;
利用预先构建的自适应大小的滑动窗口,在去除旋转影响的所述预设数量的连续的帧图像中筛选出初始关键帧,所述初始关键帧包括多个关键帧;
基于所述多个关键帧,进行同步定位与建图初始化。
在一种可能的实现方式中,所述基于所述多个关键帧,进行同步定位与建图初始化,包括:
确定所述多个关键帧中的第一关键帧和最后一关键帧的相对位姿;
根据所述第一关键帧和所述最后一关键帧的相对位姿,获得所述多个关键帧中各个关键帧的三维空间点;
根据所述第一关键帧和所述最后一关键帧的相对位姿,以及所述多个关键帧中各个关键帧的三维空间点,确定所述多个关键帧中各个关键帧的相对位姿;
根据优化后的所述初始关键帧中各个关键帧的三维空间点和所述初始关键帧中各个关键帧的相对位姿,建立所述初始地图。
第二方面,本申请实施例提供一种同步定位与建图后端优化装置,包括:
空间点确定模块,用于在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点;
重投影误差确定模块,用于根据所述目标三维空间点,确定重投影误差;
相对重投影误差确定模块,用于根据所述重投影误差和预处理后所述目标三维空间点对应的最大视差,确定相对重投影误差,所述预处理包括去除旋转影响的操作;
同步定位与建图系统进行后端优化。后端优化模块,用于根据所述相对重投影误差,对所述
在一种可能的实现方式中,还包括误差确定模块,用于在所述相对重投影误差确定模块根据所述重投影误差和预处理后所述目标三维空间点对应的最大视差,确定相对重投影误差之前,确定所述目标三维空间点对应的多个目标关键帧;
根据关键帧ui的关键点坐标、关键帧uj的关键点坐标、所述同步定位与建图系统中图像获取装置的内参矩阵,以及所述关键帧uj到所述关键帧ui的旋转矩阵,确定所述预处理后所述目标三维空间点对应的多个视差,其中,所述关键帧ui和所述关键帧uj为所述多个目标关键帧中任意两个关键帧,i=1,2,…m,j=1,2,…m,m等于所述多个目标关键帧的数目;
从所述预处理后所述目标三维空间点对应的多个视差中,确定所述最大视差。
在一种可能的实现方式中,所述误差确定模块,具体用于:
计算所述内参矩阵、所述旋转矩阵、所述内参矩阵的逆矩阵,以及所述关键帧uj的关键点坐标的乘积;
根据所述关键帧ui的关键点坐标与所述乘积的差值,确定所述预处理后所述目标三维空间点对应的多个视差。
在一种可能的实现方式中,所述相对重投影误差确定模块,具体用于:
计算所述重投影误差与所述最大视差的比值;
将所述比值作为所述相对重投影误差。
在一种可能的实现方式中,所述重投影误差确定模块,具体用于:
确定所述目标三维空间点进行投影得到的位置;
根据所述投影得到的位置,确定所述重投影误差。
在一种可能的实现方式中,所述后端优化模块,具体用于:
判断所述相对重投影误差是否达到预设误差阈值;
若所述相对重投影误差未达到所述预设误差阈值,则所述空间点确定模块重新执行所述在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点的步骤,以使所述相对重投影误差达到所述预设误差阈值,所述后端优化模块根据所述相对重投影误差,对所述同步定位与建图系统进行后端优化。
在一种可能的实现方式中,还包括同步定位与建图初始化模块,用于在所述空间点确定模块在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点之前,对所述同步定位与建图系统进行初始化。
在一种可能的实现方式中,所述同步定位与建图初始化模块,具体用于:
获取预设数量的连续的帧图像,对所述预设数量的连续的帧图像进行所述预处理;
利用预先构建的自适应大小的滑动窗口,在去除旋转影响的所述预设数量的连续的帧图像中筛选出初始关键帧,所述初始关键帧包括多个关键帧;
基于所述多个关键帧,进行同步定位与建图初始化。
在一种可能的实现方式中,所述同步定位与建图初始化模块,具体用于:
确定所述多个关键帧中的第一关键帧和最后一关键帧的相对位姿;
根据所述第一关键帧和所述最后一关键帧的相对位姿,获得所述多个关键帧中各个关键帧的三维空间点;
根据所述第一关键帧和所述最后一关键帧的相对位姿,以及所述多个关键帧中各个关键帧的三维空间点,确定所述多个关键帧中各个关键帧的相对位姿;
根据优化后的所述初始关键帧中各个关键帧的三维空间点和所述初始关键帧中各个关键帧的相对位姿,建立所述初始地图。
第三方面,本申请实施例提供一种同步定位与建图后端优化设备,包括:
处理器;
存储器;以及
计算机程序;
其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如第一方面所述的方法的指令。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得服务器执行第一方面所述的方法。
第五方面,本申请实施例提供一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行第一方面所述的方法。
本申请实施例提供的同步定位与建图后端优化方法、装置及存储介质,该方法通过在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点,进而,根据该目标三维空间点,确定重投影误差,并根据该重投影误差和预处理后上述目标三维空间点对应的最大视差,确定相对重投影误差,该预处理包括去除旋转影响的操作,从而,根据该相对重投影误差,对同步定位与建图系统进行后端优化。其中,上述视差为三维空间点在相机帧上的投影点之间的基线长度,本申请实施例通过上述视差为重投影误差提供权重,获得相对重投影误差,该相对重投影误差描述了点的空间位置与相机空间位置之间的差异,从而为同步定位与建图的优化问题提供更为鲁棒的残差构建,更好地进行空间定位,解决了现有后端优化不能很好的表现出重投影误差与点的深度之间的关系,缺乏空间信息的描述,导致优化后的位姿估计准确率较低的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种同步定位与建图后端优化系统架构示意图;
图2为本申请实施例提供的一种同步定位与建图后端优化方法的流程示意图;
图3为本申请实施例提供的一种重投影误差示意图;
图4为本申请实施例提供的另一种同步定位与建图后端优化方法的流程示意图;
图5为本申请实施例提供的再一种同步定位与建图后端优化方法的流程示意图;
图6为本申请实施例提供的同步定位与建图后端优化示意图;
图7为本申请实施例提供的一种同步定位与建图后端优化装置的结构示意图;
图8为本申请实施例提供的另一种同步定位与建图后端优化装置的结构示意图;
图9为本申请实施例提供的再一种同步定位与建图后端优化装置的结构示意图;
图10A为本申请提供的一种同步定位与建图后端优化设备的基本硬件架构示意图;
图10B为本申请提供的另一种同步定位与建图后端优化设备的基本硬件架构示意图;
图10C为本申请提供的再一种同步定位与建图后端优化设备的基本硬件架构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”及“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
相关技术中,以移动端设备中的同步定位与建图算法为例,同步定位与建图算法用于获取所在的移动端设备自身姿态、移动端设备所在的环境以及移动端设备在环境中的位置等。当用户使用移动端设备时,同步定位与建图算法的前端计算帧与帧间的相对关系,例如计算帧与帧间之间的相对位姿,后端的作用主要是对前端的输出结果进行优化,得到最优的位姿估计。其中,在上述同步定位与建图后端优化时,通常以帧与帧匹配关键点之间的重投影误差作为损失函数,进而基于该损失函数进行一个整体优化,例如在损失函数较小时,得到优化后的位姿估计。该位姿估计的准确率影响了移动端设备基于同步定位与建图算法实现增强现实、虚拟现实、自动驾驶等应用的效果。
其中,重投影误差是像素坐标(观测到的投影位置)与三维点按照当前估计的位姿进行投影得到的位置相比较得到的误差。示例性的,在相机运动相同的情况下,越远的点在图像上的运动距离越小,越近的点在图像上的运动距离越大。如果以重投影误差作为损失函数进行同步定位与建图后端优化,在损失函数较小时,由于同步定位与建图后端优化以重投影误差作为损失函数进行优化,不能很好的表现出重投影误差与点的深度之间的关系,缺乏空间信息的描述,因此,并不能确定此时得到优化结果是否较好,可能导致优化后的位姿估计准确率较低。
因此,本申请实施例提出一种同步定位与建图后端优化方法,通过视差为重投影误差提供权重,获得相对重投影误差,其中视差为三维空间点在相机帧上的投影点之间的基线长度,从而,使得上述相对重投影误差能够描述点的空间位置与相机空间位置之间的差异,为同步定位与建图的优化问题提供更为鲁棒的残差构建,可以更好地进行空间定位,解决了现有后端优化不能很好的表现出重投影误差与点的深度之间的关系,缺乏空间信息的描述,可能导致优化后的位姿估计准确率较低的问题。
可选地,本申请实施例提供的同步定位与建图后端优化方法可以应用于如图1所示的应用场景中。图1只是以示例的方式描述了本申请实施例提供的同步定位与建图后端优化方法的一种可能的应用场景,本申请实施例提供的同步定位与建图后端优化方法的应用场景不限于图1所示的应用场景。
图1为同步定位与建图后端优化系统架构示意图。在图1中,以用户在移动端设备上处理视频为例,其中,上述移动端设备可以为手机或平板等等。上述架构可以包括获取单元101、处理器102和显示单元103。
可以理解的是,本申请实施例示意的结构并不构成对同步定位与建图后端优化架构的具体限定。在本申请另一些可行的实施方式中,上述架构可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置,具体可根据实际应用场景确定,在此不做限制。图1所示的部件可以以硬件,软件,或软件与硬件的组合实现。
以上述移动端设备为手机为例,上述获取单元101可以为手机上的摄像头。用户可以通过手机上的摄像头拍摄视频,然后将拍摄的视频发送至处理器102处理。这里,上述获取单元101除为上述摄像头外,还可以是输入/输出接口,也可以是通信接口。用户可以通过上述接口接收其他用户发送的视频等信息,并将接收的视频发送至处理器102处理。
在具体实现过程中,处理器102在获取上述视频后,可以利用同步定位与建图系统定位上述视频中的多个关键帧的三维空间点。以某一目标三维空间点为例,该目标三维空间点可以为上述三维空间点中的任意一个三维空间点,处理器102可以根据同步定位与建图系统定位的多个关键帧的三维空间点,确定能够观测到上述目标三维空间点的关键值,该观测值是上述目标三维空间点的投影,进而,根据确定上述目标三维空间点,确定重投影误差,并通过预处理后上述目标三维空间点对应的最大视差为重投影误差提供权重,获得相对重投影误差,该预处理包括去除旋转影响的操作。其中,上述视差为三维空间点在相机帧上的投影点之间的基线长度,因此,上述相对重投影误差描述了点的空间位置与相机空间位置之间的差异,从而为同步定位与建图的优化问题提供更为鲁棒的残差构建,能够更好地进行空间定位,提高优化后的位姿估计准确率。
显示单元103可以用于对上述目标三维空间点、重投影误差、视差和相对重投影误差等进行显示。显示单元还可以是触摸显示屏,用于在显示的上述内容的同时接收用户指令,以实现与用户的交互。
应理解,本申请实施例描述的系统架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
下面以几个实施例为例对本申请的技术方案进行描述,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图2为本申请实施例提供的一种同步定位与建图后端优化方法的流程示意图,本实施例的执行主体可以为图1中的处理器102,具体执行主体可以根据实际应用场景确定,本申请实施例对此不做特别限制。如图2所示,本申请实施例提供的同步定位与建图后端优化方法可以包括如下步骤:
S201:在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点。
这里,上述处理器可以首先在同步定位与建图系统定位的多个关键帧的三维空间点中,确定任意一个三维空间点作为上述目标三维空间点,然后,还可以确定能够观测到上述目标三维空间点的关键值,该观测值是上述目标三维空间点的投影,进而,确定上述目标三维空间点对应的多个目标关键帧。
S202:根据上述目标三维空间点,确定重投影误差。
示例性的,上述处理器可以利用透视N点方法,确定上述目标三维空间点进行投影得到的位置,进而,根据该投影得到的位置,确定上述重投影误差。
其中,透视N点方法用于解决已知部分世界坐标系下的三维空间点坐标及它们的二维相机坐标系时,对相机位姿的估计问题。在本申请实施例中,上述处理器利用透视N点方法,确定上述目标三维空间点进行投影得到的位置,进而,基于该位置,确定上述重投影误差。
这里,重投影误差是像素坐标(观测到的投影位置)与三维点按照当前估计的位姿进行投影得到的位置(例如上述目标三维空间点进行投影得到的位置)相比较得到的误差。
其中,上述重投影误差是去除旋转影响后的重投影误差。
考虑到n个三维空间点P和他们的投影p,计算R,T,可以表示为ξ。假设某空间点pi=[Xi,Yi,Zi]T,其投影的像素坐标为ui=[ui,vi]T
像素位置与空间点位置的关系如下:
其中,si为距离(深度),k为相机内参矩阵,R为旋转矩阵,T为平移矩阵。
相应的,写成矩阵形式就是:siui=kexp(ξ^)pi
由于相机位姿未知以及观测点的噪声,该等式存在一个误差,这里可以将误差求和,构建最小二乘问题,然后寻找做好的相机位姿,使它最小化:
其中可以用高斯牛顿法/列文伯格-马夸尔特方法求解。
S203:根据上述重投影误差和预处理后上述目标三维空间点对应的最大视差,确定相对重投影误差,该预处理包括去除旋转影响的操作。
这里,上述预处理的原因是:旋转影响帧的像素距离差,影响帧之间的视差,使得同步定位与建图后端优化无法得到最优的位姿估计。因此,本申请实施例为了解决该问题,进行了上述预处理,利用重投影误差和预处理后的上述目标三维空间点对应的最大视差,确定相对重投影误差,进行同步定位与建图系统后端优化,获得最优的位姿估计。
其中,上述处理器可以从惯性测量单元中获取上述旋转的信息,从而,基于获取的信息确定旋转影响帧的像素距离差,确定去除旋转影响后的目标三维空间点对应的最大视差,进一步确定相对重投影误差,进行同步定位与建图系统后端优化。
示例性的,上述处理器可以计算上述重投影误差与上述最大视差的比值,并将该比值作为上述相对重投影误差。其中,视差为三维空间点在相机帧上的投影点之间的基线长度,从而,使得上述相对重投影误差能够描述点的空间位置与相机空间位置之间的差异,为同步定位与建图的优化问题提供更为鲁棒的残差构建,可以更好地进行空间定位。
S204:根据上述相对重投影误差,对上述同步定位与建图系统进行后端优化。
在本申请实施例中,上述处理器在确定上述相对重投影误差之后,可以构建一优化问题,该优化问题以上述重投影误差作为损失函数,进而,基于该优化问题,对上述同步定位与建图系统进行后端优化,获得优化后的位姿估计。例如上述处理器可以判断上述相对重投影误差是否达到预设误差阈值(该预设误差阈值可以根据实际情况确定,例如等于上述相对重投影误差最小值)。如果上述相对重投影误差未达到上述预设误差阈值,则上述处理器可以重新执行上述在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点的步骤,以使上述相对重投影误差达到上述预设误差阈值,进而,根据上述相对重投影误差,对上述同步定位与建图系统进行后端优化。
另外,在对上述同步定位与建图系统进行后端优化时,上述处理器除考虑上述相对重投影误差外,例如以上述相对重投影误差构建一优化问题,基于该优化问题,对上述同步定位与建图系统进行后端优化。上述处理器还可以考虑上述重投影误差,即可以同时基于上述重投影误差与相对误差构建一优化问题,基于该优化问题,对上述同步定位与建图系统进行后端优化,得到最优的位姿估计,实现更为鲁棒的地图构建。
本申请实施例中,上述处理器通过在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点,进而,根据该目标三维空间点,确定重投影误差,并根据该重投影误差和预处理后上述目标三维空间点对应的最大视差,确定相对重投影误差,该预处理包括去除旋转影响的操作,从而,根据该相对重投影误差,对同步定位与建图系统进行后端优化。其中,上述视差为三维空间点在相机帧上的投影点之间的基线长度,本申请实施例通过上述视差为重投影误差提供权重,获得相对重投影误差,该相对重投影误差描述了点的空间位置与相机空间位置之间的差异,从而为同步定位与建图的优化问题提供更为鲁棒的残差构建,更好地进行空间定位,解决了现有后端优化不能很好的表现出重投影误差与点的深度之间的关系,缺乏空间信息的描述,可能导致优化后的位姿估计准确率较低的问题。
另外,本申请实施例在根据上述重投影误差和预处理后上述目标三维空间点对应的最大视差,确定相对重投影误差之前,还考虑确定上述预处理后上述目标三维空间点对应的多个视差,从而,从该多个视差中,确定上述最大视差,根据上述重投影误差和上述最大视差,确定相对重投影误差,并基于该相对重投影误差进行同步定位与建图系统后端优化,得到最优的位姿估计。图4为本申请实施例提出的另一种同步定位与建图后端优化方法的流程示意图。如图4所示,该方法包括:
S401:在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点。
S402:根据上述目标三维空间点,确定重投影误差。
其中,步骤S401-S402与上述步骤S201-S202的实现方式相同,此处不再赘述。
S403:确定上述目标三维空间点对应的多个目标关键帧。
S404:根据关键帧ui的关键点坐标、关键帧uj的关键点坐标、上述同步定位与建图系统中图像获取装置的内参矩阵,以及关键帧uj到关键帧ui的旋转矩阵,确定预处理后所述目标三维空间点对应的多个视差,其中,该预处理包括去除旋转影响的操作,关键帧ui和关键帧uj为上述多个目标关键帧中任意两个关键帧,i=1,2,…m,j=1,2,…m,m等于上述多个目标关键帧的数目。
S405:从上述预处理后所述目标三维空间点对应的多个视差中,确定最大视差。
另外这里,上述处理器可以先计算上述内参矩阵、旋转矩阵、内参矩阵的逆矩阵,以及关键帧uj的关键点坐标的乘积,进而,根据关键帧ui的关键点坐标与上述乘积的差值,确定上述预处理后所述目标三维空间点对应的多个视差,从该多个视差中,确定上述最大视差。
示例性的,以关键帧ui为第一帧,关键帧uj为第二帧为例,上述处理器计算预处理后的上述目标三维空间点对应的视差(parallax)包括:
parallax=u1-k*R*kinv*u2
其中,u1为上述多个目标关键帧的第一帧中关键点坐标;u2为上述多个目标关键帧的第二帧中关键点坐标;k为同步定位与建图系统中图像获取装置的内参矩阵,例如相机的内参矩阵;kinv为内参矩阵的逆矩阵;R为上述第二帧到第一帧的旋转矩阵。
示例性的,上述处理器可以计算上述重投影误差与上诉最大视差的比值,从而,将该比值作为上述相对重投影误差。
S406:根据上述重投影误差和上述最大视差,确定相对重投影误差。
S407:根据上述相对重投影误差,对上述同步定位与建图系统进行后端优化。
其中,步骤S406-S407与上述步骤S203-S204的实现方式相同,此处不再赘述。
本申请实施例中,上述处理器在根据上述重投影误差和上述预处理后上述目标三维空间点对应的最大视差,确定相对重投影误差之前,还考虑确定上述预处理后上述目标三维空间点对应的多个视差,从而,从该多个视差中,确定最大视差,根据上述重投影误差和上述最大视差,确定相对重投影误差,并基于该相对重投影误差进行同步定位与建图系统后端优化,得到最优的位姿估计。另外,上述处理器通过上述视差为重投影误差提供权重,获得相对重投影误差,该相对重投影误差描述了点的空间位置与相机空间位置之间的差异,从而为同步定位与建图的优化问题提供更为鲁棒的残差构建,更好地进行空间定位,解决了现有后端优化不能很好的表现出重投影误差与点的深度之间的关系,缺乏空间信息的描述,导致优化后的位姿估计准确率较低的问题。
另外,本申请实施例在在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点之前,还考虑对同步定位与建图系统进行初始化,从而保证后续处理正常进行。图5为本申请实施例提出的再一种同步定位与建图后端优化方法的流程示意图。如图5所示,该方法包括:
S501:对同步定位与建图系统进行初始化。
这里,上述处理器可以首先获取预设数量的连续的帧图像,对该预设数量的连续的帧图像进行上述预处理,进而,利用预先构建的自适应大小的滑动窗口,在去除旋转影响的上述预设数量的连续的帧图像中筛选出初始关键帧,该初始关键帧包括多个关键帧,从而,基于该多个关键帧,进行同步定位与建图初始化。
示例性的,上述处理器可以确定上述初始关键帧中的第一关键帧和最后一关键帧的相对位姿,并根据上述第一关键帧和最后一关键帧的相对位姿,获得上述多个关键帧中各个关键帧的三维空间点,根据上述第一关键帧和最后一关键帧的相对位姿,以及上述多个关键帧中各个关键帧的三维空间点,确定上述多个关键帧中各个关键帧的相对位姿,最后,根据上述多个关键帧中各个关键帧的三维空间点和上述多个关键帧中各个关键帧的相对位姿,建立初始地图,完成同步定位与建图系统的初始化。
其中,上述预设数量的连续的帧图像可以根据实际情况确定,例如某一视频中的帧1、帧2…帧25。上述处理器可以预先构建自适应大小的滑动窗口,该滑动窗口的大小可调,具体大小可以根据实际情况确定,例如5帧图像帧大小-10帧图像帧大小。上述处理器利用上述滑动窗口,在去除旋转影响的上述预设数量的连续的帧图像中筛选出初始关键帧。例如当前上述滑动窗口的长度为5帧,上述处理器利用上述滑动窗口,对去除旋转影响的上述预设数量的连续的帧图像进行筛选,例如对上述视频中的帧1、帧2…帧25进行筛选,筛选出帧6、帧7、帧10、帧12、帧13作为上述初始关键帧。
上述预处理的原因是:旋转影响帧的像素距离差,但是仅有旋转无法进行同步定位与建图初始化。因此,本申请实施例为了解决该问题,进行了上述预处理,并利用去除旋转影响的像素距离差筛选窗口内的初始关键帧,保证窗口中的帧之间有足够共视的前提下拥有足够的像素距离差进行同步定位与建图初始化。
上述处理器基于从一定数量连续的帧图像中筛选出的初始关键帧来进行同步定位与建图初始化,减少了同步定位与建图初始化的时间。而且,上述处理器通过利用去除旋转影响的像素距离差筛选窗口内的初始关键帧,保证窗口中的帧之间拥有足够的像素距离差进行同步定位与建图初始化,同时减少旋转对同步定位与建图初始化的影响,提高了同步定位与建图初始化精度。
另外,由于旋转已知、以及尺度不客观等原因,上述处理器在筛选出上述初始关键帧后,可以只利用两帧进行同步定位与建图初始化。在本申请实施例中,同样为了保证窗口中的帧之间有足够共视的前提下拥有足够的像素距离差,上述处理器可以利用上述初始关键帧中的第一关键帧和最后一关键帧进行同步定位与建图初始化。
示例性的,上述处理器可以首先对上述第一关键帧和最后一关键帧进行二维关键点提取,获得上述第一关键帧的一个二维关键点,以及最后一关键帧的一个二维关键点,从而,利用上述第一关键帧的一个二维关键点,以及最后一关键帧的一个二维关键点,确定上述第一关键帧和所述最后一关键帧的相对位姿。
进一步地,上述处理器可以利用上述第一关键帧的一个二维关键点,以及上述最后一关键帧的一个二维关键点,确定上述第一关键帧和最后一关键帧对应的本质矩阵,进而,根据该本质矩阵,获得旋转矩阵R和平移矩阵T,从而,根据旋转矩阵R和平移矩阵T,确定上述第一关键帧和最后一关键帧的相对位姿。
示例性的,上述处理器可以首先确定上述第一关键帧和最后一关键帧对应的本质矩阵,进而,根据该本质矩阵,获得旋转矩阵R和平移矩阵T,从而,根据旋转矩阵R和平移矩阵T,确定上述第一关键帧和最后一关键帧的相对位姿。其中,上述处理器可以利用随机一致性采样方法,确定上述第一关键帧和最后一关键帧对应的本质矩阵,然后,从该本质矩阵中通过奇异值分解求解出旋转矩阵R和平移矩阵T。这里,旋转矩阵R和平移矩阵T为相机的位姿参数,旋转矩阵R已知。从而,上述处理器根据旋转矩阵R和平移矩阵T,确定上述第一关键帧和最后一关键帧的相对位姿。
在本申请实施例中,上述处理器可以基于三角化计算,获得上述初始关键帧中各个关键帧的三维空间点。
示例性的,上述处理器可以基于上述第一关键帧和最后一关键帧的相对位姿,进行三角化计算,获得上述第一关键帧和最后一关键帧的三维空间点。然后,上述处理器可以根据上述第一关键帧和最后一关键帧的三维空间点,以及上述初始关键帧中帧与帧之间的特征匹配关系,确定上述初始关键帧中除上述第一关键帧和最后一关键帧外剩余的各个关键帧的三维空间点,从而,获得了上述初始关键帧中各个关键帧的三维空间点。
这里,上述处理器进行三角化计算可以包括以下步骤:
例如三维空间点齐次坐标[x,y,z,1]T,三维空间点在图像上的投影
λu=PX
两边同时差乘u,得到:
u^PX=0
展开得到:
进一步得到:
其中上述三个方程中有两个是线性独立的,因为(1)式×(-u)-(2)式×v=(3)式,其中Pi是矩阵P的行。一个帧可以形成两个方程,那么两个帧可以形成四个方程:
这里可以使用奇异值分解求解,齐次坐标X即为H的最小奇异值的奇异向量。
另外,上述处理器在获得上述第一关键帧和最后一关键帧的相对位姿,以及上述初始关键帧中各个关键帧的三维空间点后,可以确定上述多个关键帧中各个关键帧的三维空间点,在第一关键帧和最后一关键帧进行投影得到的位置,进而,根据该投影得到的位置,确定一重投影误差,并基于该重投影误差和上述多个关键帧中各个关键帧的三维空间点,确定上述多个关键帧中各个关键帧的相对位姿。
其中,在上述确定重投影误差后,上述处理器还可以进一步确定相对重投影误差,从而,基于该重投影误差和上述多个关键帧中各个关键帧的三维空间点,确定上述多个关键帧中各个关键帧的相对位姿,提高位姿估计准确率。
示例性的,上述处理器在基于上述重投影误差和/或相对重投影误差,确定上述多个关键帧中各个关键帧的相对位姿时,可以构建一局部优化问题,该优化问题以上述重投影误差和/或相对重投影误差作为损失函数,在损失函数值达到预设误差阈值时,获得上述初始关键帧中各个关键帧的相对位姿,提高同步定位与建图初始化精度。
这里,上述处理器在根据上述多个关键帧中各个关键帧的三维空间点和上述多个关键帧中各个关键帧的相对位姿,建立初始地图之前,可以根据上述多个关键帧中各个关键帧的三维空间点,确定另一重投影误差,进而,基于该重投影误差进行全局优化,获得优化后的上述多个关键帧中各个关键帧的三维空间点和上述多个关键帧中各个关键帧的相对位姿,从而,根据优化后的上述初始关键帧中各个关键帧的三维空间点和上述初始关键帧中各个关键帧的相对位姿,建立初始地图。
其中,在上述确定重投影误差后,上述处理器还可以进一步确定相对重投影误差,从而,基于该相对重投影误差进行全局优化,获得优化后的上述多个关键帧中各个关键帧的三维空间点和上述多个关键帧中各个关键帧的相对位姿,更好地进行空间定位。
示例性的,上述处理器在确定上述重投影误差和相对重投影误差之后,可以构建一全局优化问题,该优化问题以上述重投影误差和\或相对重投影误差作为损失函数,进而,基于该优化问题,获得优化后的初始关键帧中各个关键帧的三维空间点和初始关键帧中各个关键帧的相对位姿,从而,基于优化后的信息,建立初始地图,精准地提供地图点信息。
S502:在上述同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点。
S503:根据上述目标三维空间点,确定重投影误差。
S504:根据上述重投影误差和预处理后上述目标三维空间点对应的最大视差,确定相对重投影误差,该预处理包括去除旋转影响的操作。
S505:根据上述相对重投影误差,对上述同步定位与建图系统进行后端优化。
其中,步骤S502-S505与上述步骤S201-S204的实现方式相同,此处不再赘述。
本申请实施例上述处理器还可以对同步定位与建图系统进行初始化,从而保证后续处理正常进行。而且,上述处理器通过上述视差为重投影误差提供权重,获得相对重投影误差,该相对重投影误差描述了点的空间位置与相机空间位置之间的差异,从而为同步定位与建图的优化问题提供更为鲁棒的残差构建,更好地进行空间定位,解决了现有后端优化不能很好的表现出重投影误差与点的深度之间的关系,缺乏空间信息的描述,可能导致优化后的位姿估计准确率较低的问题。
在本申请实施例中,如图6所示,上述处理器可以首先对同步定位与建图系统进行初始化,然后,在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点。进而,上述处理器可以根据上述目标三维空间点,确定重投影误差,根据上述重投影误差和预处理后上述目标三维空间点对应的最大视差,确定相对重投影误差,该预处理包括去除旋转影响的操作。其中,上述处理器确定去除旋转之后的最大视差,计算上述重投影误差与上述最大视差的比值,将该比值作为上述相对重投影误差,最后,基于上述相对重投影误差,对同步定位与建图系统进行后端优化,也可以同时考虑上述相对重投影误差和重投影误差,对同步定位与建图系统进行后端优化。
其中,与现有同步定位与建图后端优化相比,上述处理器通过上述视差为重投影误差提供权重,获得相对重投影误差,该相对重投影误差描述了点的空间位置与相机空间位置之间的差异,从而为同步定位与建图的优化问题提供更为鲁棒的残差构建,更好地进行空间定位,解决了现有后端优化不能很好的表现出重投影误差与点的深度之间的关系,缺乏空间信息的描述,可能导致优化后的位姿估计准确率较低的问题。
对应于上文实施例的同步定位与建图后端优化方法,图7为本申请实施例提供的同步定位与建图后端优化装置的结构示意图。为了便于说明,仅示出了与本申请实施例相关的部分。图7为本申请实施例提供的一种同步定位与建图后端优化装置的结构示意图,该同步定位与建图后端优化装置70包括:空间点确定模块701、重投影误差确定模块702、相对重投影误差确定模块703以及后端优化模块704。这里的同步定位与建图后端优化装置可以是上述处理器本身,或者是实现处理器的功能的芯片或者集成电路。这里需要说明的是,空间点确定模块、重投影误差确定模块、相对重投影误差确定模块以及后端优化模块的划分只是一种逻辑功能的划分,物理上两者可以是集成的,也可以是独立的。
其中,空间点确定模块701,用于在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点。
重投影误差确定模块701,用于根据所述目标三维空间点,确定重投影误差。
相对重投影误差确定模块703,用于根据所述重投影误差和预处理后所述目标三维空间点对应的最大视差,确定相对重投影误差,所述预处理包括去除旋转影响的操作。
同步定位与建图系统进行后端优化。后端优化模块704,用于根据所述相对重投影误差,对所述
在一种可能的实现方式中,所述相对重投影误差确定模块703,具体用于:
计算所述重投影误差与所述最大视差的比值;
将所述比值作为所述相对重投影误差。
在一种可能的实现方式中,所述重投影误差确定模块702,具体用于:
确定所述目标三维空间点进行投影得到的位置;
根据所述投影得到的位置,确定所述重投影误差。
在一种可能的实现方式中,所述后端优化模块704,具体用于:
判断所述相对重投影误差是否达到预设误差阈值;
空间点确定模块701重新执行所述在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点的步骤,以使所述相对重投影误差达到所述预设误差阈值,所述后端优化模块704根据所述相对重投影误差,对所述同步定位与建图系统进行后端优化若所述相对重投影误差未最小化,则将所述相对重投影误差最小化,获得优化后的所述。
本申请实施例提供的装置,可用于执行上述图2方法实施例的技术方案,其实现原理和技术效果类似,本申请实施例此处不再赘述。
图8为本申请实施例提供的另一种同步定位与建图后端优化装置的结构示意图,在图7所示实施例基础上,上述同步定位与建图后端优化装置70还包括:误差确定模块705。
其中,误差确定模块705,用于在所述相对重投影误差确定模块703根据所述重投影误差和预处理后所述目标三维空间点对应的最大视差,确定相对重投影误差之前,确定所述目标三维空间点对应的多个目标关键帧;
根据关键帧ui的关键点坐标、关键帧uj的关键点坐标、所述同步定位与建图系统中图像获取装置的内参矩阵,以及所述关键帧uj到所述关键帧ui的旋转矩阵,确定所述预处理后所述目标三维空间点对应的多个视差,其中,所述关键帧ui和所述关键帧uj为所述多个目标关键帧中任意两个关键帧,i=1,2,…m,j=1,2,…m,m等于所述多个目标关键帧的数目;
三维空间点对应的多个视差中,确定所述最大视差。根据所述重投影误差和
在一种可能的实现方式中,所述误差确定模块705,具体用于:
计算所述内参矩阵、所述旋转矩阵、所述内参矩阵的逆矩阵,以及所述关键帧uj的关键点坐标的乘积;
关键帧ui的关键点坐标与所述乘积的差值,确定所述预处理后所述目标三维空间点对应的多个视差。根据所述重投影误差和所述最大视差,确定所述相对重投影误差。
本申请实施例提供的装置,可用于执行上述图4方法实施例的技术方案,其实现原理和技术效果类似,本申请实施例此处不再赘述。
图9为本申请实施例提供的再一种同步定位与建图后端优化装置的结构示意图,在图7所示实施例基础上,上述同步定位与建图后端优化装置70还包括:同步定位与建图初始化模块706。
其中,同步定位与建图初始化模块706,用于在所述空间点确定模块701在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点之前,对所述同步定位与建图系统进行初始化。
在一种可能的实现方式中,所述同步定位与建图初始化模块706,具体用于:
获取预设数量的连续的帧图像,对所述预设数量的连续的帧图像进行所述预处理;
利用预先构建的自适应大小的滑动窗口,在去除旋转影响的所述预设数量的连续的帧图像中筛选出初始关键帧,所述初始关键帧包括多个关键帧;
同步定位与建图初始化。根据所述初始关键帧中各个关键帧的三维空间点和所述初始关键帧中各个关键帧的相对位姿,建立初始地图。
在一种可能的实现方式中,所述同步定位与建图初始化模块706,具体用于:
确定所述多个关键帧中的第一关键帧和最后一关键帧的相对位姿;
根据所述第一关键帧和所述最后一关键帧的相对位姿,获得所述多个关键帧中各个关键帧的三维空间点;
根据所述第一关键帧和所述最后一关键帧的相对位姿,以及所述多个关键帧中各个关键帧的三维空间点,确定所述多个关键帧中各个关键帧的相对位姿;
基于确定的重投影误差,确定所述初始关键帧中各个关键帧的相对位姿。
在一种可能的实现方式中,所述同步定位与建图初始化模块706,具体用于:
确定所述多个关键帧中各个关键帧的三维空间点,在所述第一关键帧和所述最后一关键帧进行投影得到的位置;
根据所述投影得到的位置,确定一重投影误差;
基于所述重投影误差和所述多个关键帧中各个关键帧的三维空间点,确定所述多个关键帧中各个关键帧的相对位姿。
在一种可能的实现方式中,所述同步定位与建图初始化模块706,具体用于:
根据所述多个关键帧中各个关键帧的三维空间点,确定另一重投影误差;
根据所述重投影误差进行全局优化,获得优化后的所述多个关键帧中各个关键帧的三维空间点和所述多个关键帧中各个关键帧的相对位姿;
根据优化后的所述初始关键帧中各个关键帧的三维空间点和所述初始关键帧中各个关键帧的相对位姿,建立所述初始地图。
本申请实施例提供的装置,可用于执行上述图5方法实施例的技术方案,其实现原理和技术效果类似,本申请实施例此处不再赘述。
可选地,图10A、10B和10C示意性地提供本申请所述同步定位与建图后端优化设备的一种可能的基本硬件架构示意图。
参见图10A、10B和10C,同步定位与建图后端优化设备1000包括至少一个处理器1001以及通信接口1003。进一步可选的,还可以包括存储器1002和总线1004。
其中,同步定位与建图后端优化设备1000中,处理器1001的数量可以是一个或多个,图10A、10B和10C仅示意了其中一个处理器1001。可选地,处理器1001,可以是中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)或者数字信号处理器(digital signal processor,DSP)。如果同步定位与建图后端优化设备1000具有多个处理器1001,多个处理器1001的类型可以不同,或者可以相同。可选地,同步定位与建图后端优化设备1000的多个处理器1001还可以集成为多核处理器。
存储器1002存储计算机指令和数据;存储器1002可以存储实现本申请提供的上述同步定位与建图后端优化方法所需的计算机指令和数据,例如,存储器1002存储用于实现上述同步定位与建图后端优化方法的步骤的指令。存储器1002可以是以下存储介质的任一种或任一种组合:非易失性存储器(例如只读存储器(ROM)、固态硬盘(SSD)、硬盘(HDD)、光盘),易失性存储器。
通信接口1003可以为所述至少一个处理器提供信息输入/输出。也可以包括以下器件的任一种或任一种组合:网络接口(例如以太网接口)、无线网卡等具有网络接入功能的器件。
可选的,通信接口1003还可以用于同步定位与建图后端优化设备1000与其它计算设备或者终端进行数据通信。
进一步可选的,图10A、10B和10C用一条粗线表示总线1004。总线1004可以将处理器1001与存储器1002和通信接口1003连接。这样,通过总线1004,处理器1001可以访问存储器1002,还可以利用通信接口1003与其它计算设备或者终端进行数据交互。
在本申请中,同步定位与建图后端优化设备1000执行存储器1002中的计算机指令,使得同步定位与建图后端优化设备1000实现本申请提供的上述同步定位与建图后端优化方法,或者使得同步定位与建图后端优化设备1000部署上述的同步定位与建图后端优化装置。
从逻辑功能划分来看,示例性的,如图10A所示,存储器1002中可以包括空间点确定模块701、重投影误差确定模块702、相对重投影误差确定模块703以及后端优化模块704。这里的包括仅仅涉及存储器中所存储的指令被执行时可以分别实现空间点确定模块、重投影误差确定模块、相对重投影误差确定模块以及后端优化模块的功能,而不限定是物理上的结构。
示例性的,如图10B所示,存储器1002中还可以包括误差确定模块705。这里的包括仅仅涉及存储器中所存储的指令被执行时可以实现误差确定模块的功能,而不限定是物理上的结构。
示例性的,如图10C所示,存储器1002中还可以包括同步定位与建图初始化模块706。这里的包括仅仅涉及存储器中所存储的指令被执行时可以实现同步定位与建图初始化模块的功能,而不限定是物理上的结构。
另外,上述的同步定位与建图后端优化设备除了可以像上述图10A、10B和10C通过软件实现外,也可以作为硬件模块,或者作为电路单元,通过硬件实现。
本申请提供一种计算机可读存储介质,所述计算机程序产品包括计算机指令,所述计算机指令指示计算设备执行本申请提供的上述同步定位与建图后端优化方法。
本申请提供一种计算机程序产品,包括计算机指令,所述计算机指令被处理器执行第一方面所述的方法。
本申请提供一种芯片,包括至少一个处理器和通信接口,所述通信接口为所述至少一个处理器提供信息输入和/或输出。进一步,所述芯片还可以包含至少一个存储器,所述存储器用于存储计算机指令。所述至少一个处理器用于调用并运行该计算机指令,以执行本申请提供的上述同步定位与建图后端优化方法。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
Claims (20)
1.一种同步定位与建图后端优化方法,其特征在于,包括:
在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点;
根据所述目标三维空间点,确定重投影误差;
根据所述重投影误差和预处理后所述目标三维空间点对应的最大视差,确定相对重投影误差,所述预处理包括去除旋转影响的操作;
根据所述相对重投影误差,对所述同步定位与建图系统进行后端优化。
2.根据权利要求1所述的方法,其特征在于,在所述根据所述重投影误差和预处理后所述目标三维空间点对应的最大视差,确定相对重投影误差之前,还包括:
确定所述目标三维空间点对应的多个目标关键帧;
根据关键帧ui的关键点坐标、关键帧uj的关键点坐标、所述同步定位与建图系统中图像获取装置的内参矩阵,以及所述关键帧uj到所述关键帧ui的旋转矩阵,确定所述预处理后所述目标三维空间点对应的多个视差,其中,所述关键帧ui和所述关键帧uj为所述多个目标关键帧中任意两个关键帧,i=1,2,…m,j=1,2,…m,m等于所述多个目标关键帧的数目;
从所述预处理后所述目标三维空间点对应的多个视差中,确定所述最大视差。
3.根据权利要求2所述的方法,其特征在于,所述根据关键帧ui的关键点坐标、关键帧uj的关键点坐标、所述同步定位与建图系统中图像获取装置的内参矩阵,以及所述关键帧uj到所述关键帧ui的旋转矩阵,确定所述预处理后所述目标三维空间点对应的多个视差,包括:
计算所述内参矩阵、所述旋转矩阵、所述内参矩阵的逆矩阵,以及所述关键帧uj的关键点坐标的乘积;
根据所述关键帧ui的关键点坐标与所述乘积的差值,确定所述预处理后所述目标三维空间点对应的多个视差。
4.根据权利要求1至3中任意一项所述的方法,其特征在于,所述根据所述重投影误差和预处理后所述目标三维空间点对应的最大视差,确定相对重投影误差,包括:
计算所述重投影误差与所述最大视差的比值;
将所述比值作为所述相对重投影误差。
5.根据权利要求1至3中任意一项所述的方法,其特征在于,所述根据所述目标三维空间点,确定重投影误差,包括:
确定所述目标三维空间点进行投影得到的位置;
根据所述投影得到的位置,确定所述重投影误差。
6.根据权利要求1至3中任意一项所述的方法,其特征在于,所述根据所述相对重投影误差,对所述同步定位与建图系统进行后端优化,包括:
判断所述相对重投影误差是否达到预设误差阈值;
若所述相对重投影误差未达到所述预设误差阈值,则重新执行所述在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点的步骤,以使所述相对重投影误差达到所述预设误差阈值,根据所述相对重投影误差,对所述同步定位与建图系统进行后端优化。
7.根据权利要求1至3中任意一项所述的方法,其特征在于,在所述在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点之前,还包括:
对所述同步定位与建图系统进行初始化。
8.根据权利要求7所述的方法,其特征在于,所述对所述同步定位与建图系统进行初始化,包括:
获取预设数量的连续的帧图像,对所述预设数量的连续的帧图像进行所述预处理;
利用预先构建的自适应大小的滑动窗口,在去除旋转影响的所述预设数量的连续的帧图像中筛选出初始关键帧,所述初始关键帧包括多个关键帧;
基于所述多个关键帧,进行同步定位与建图初始化。
9.根据权利要求8所述的方法,其特征在于,所述基于所述多个关键帧,进行同步定位与建图初始化,包括:
确定所述多个关键帧中的第一关键帧和最后一关键帧的相对位姿;
根据所述第一关键帧和所述最后一关键帧的相对位姿,获得所述多个关键帧中各个关键帧的三维空间点;
根据所述第一关键帧和所述最后一关键帧的相对位姿,以及所述多个关键帧中各个关键帧的三维空间点,确定所述多个关键帧中各个关键帧的相对位姿;
根据所述多个关键帧中各个关键帧的三维空间点和所述多个关键帧中各个关键帧的相对位姿,建立初始地图。
10.一种同步定位与建图后端优化装置,其特征在于,包括:
空间点确定模块,用于在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点;
重投影误差确定模块,用于根据所述目标三维空间点,确定重投影误差;
相对重投影误差确定模块,用于根据所述重投影误差和预处理后所述目标三维空间点对应的最大视差,确定相对重投影误差,所述预处理包括去除旋转影响的操作;
后端优化模块,用于根据所述相对重投影误差,对所述同步定位与建图系统进行后端优化。
11.根据权利要求10所述的装置,其特征在于,还包括误差确定模块,用于在所述相对重投影误差确定模块根据所述重投影误差和预处理后所述目标三维空间点对应的最大视差,确定相对重投影误差之前,确定所述目标三维空间点对应的多个目标关键帧;
根据关键帧ui的关键点坐标、关键帧uj的关键点坐标、所述同步定位与建图系统中图像获取装置的内参矩阵,以及所述关键帧uj到所述关键帧ui的旋转矩阵,确定所述预处理后所述目标三维空间点对应的多个视差,其中,所述关键帧ui和所述关键帧uj为所述多个目标关键帧中任意两个关键帧,i=1,2,…m,j=1,2,…m,m等于所述多个目标关键帧的数目;
从所述预处理后所述目标三维空间点对应的多个视差中,确定所述最大视差。
12.根据权利要求11所述的装置,其特征在于,所述误差确定模块,具体用于:
计算所述内参矩阵、所述旋转矩阵、所述内参矩阵的逆矩阵,以及所述关键帧uj的关键点坐标的乘积;
根据所述关键帧ui的关键点坐标与所述乘积的差值,确定所述预处理后所述目标三维空间点对应的多个视差。
13.根据权利要求10至12中任意一项所述的装置,其特征在于,所述相对重投影误差确定模块,具体用于:
计算所述重投影误差与所述最大视差的比值;
将所述比值作为所述相对重投影误差。
14.根据权利要求10至12中任意一项所述的装置,其特征在于,所述重投影误差确定模块,具体用于:
确定所述目标三维空间点进行投影得到的位置;
根据所述投影得到的位置,确定所述重投影误差。
15.根据权利要求10至12中任意一项所述的装置,其特征在于,所述后端优化模块,具体用于:
判断所述相对重投影误差是否达到预设误差阈值;
若所述相对重投影误差未达到所述预设误差阈值,则所述空间点确定模块重新执行所述在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点的步骤,以使所述相对重投影误差达到所述预设误差阈值,所述后端优化模块根据所述相对重投影误差,对所述同步定位与建图系统进行后端优化。
16.根据权利要求10至12中任意一项所述的装置,其特征在于,还包括同步定位与建图初始化模块,用于在所述空间点确定模块在同步定位与建图系统定位的多个关键帧的三维空间点中,确定目标三维空间点之前,对所述同步定位与建图系统进行初始化。
17.根据权利要求16所述的装置,其特征在于,所述同步定位与建图初始化模块,具体用于:
获取预设数量的连续的帧图像,对所述预设数量的连续的帧图像进行所述预处理;
利用预先构建的自适应大小的滑动窗口,在去除旋转影响的所述预设数量的连续的帧图像中筛选出初始关键帧,所述初始关键帧包括多个关键帧;
基于所述多个关键帧,进行同步定位与建图初始化。
18.一种同步定位与建图后端优化设备,其特征在于,包括:
处理器;
存储器;以及
计算机程序;
其中,所述计算机程序被存储在所述存储器中,并且被配置为由所述处理器执行,所述计算机程序包括用于执行如权利要求1-9任一项所述的方法的指令。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序使得服务器执行权利要求1-9任一项所述的方法。
20.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令被处理器执行权利要求1-9任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110766196.5A CN115601419A (zh) | 2021-07-07 | 2021-07-07 | 同步定位与建图后端优化方法、装置及存储介质 |
PCT/CN2022/094529 WO2023279867A1 (zh) | 2021-07-07 | 2022-05-23 | 同步定位与建图后端优化方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110766196.5A CN115601419A (zh) | 2021-07-07 | 2021-07-07 | 同步定位与建图后端优化方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115601419A true CN115601419A (zh) | 2023-01-13 |
Family
ID=84800309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110766196.5A Pending CN115601419A (zh) | 2021-07-07 | 2021-07-07 | 同步定位与建图后端优化方法、装置及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115601419A (zh) |
WO (1) | WO2023279867A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116883502B (zh) * | 2023-09-05 | 2024-01-09 | 深圳市智绘科技有限公司 | 相机位姿和路标点位置的确定方法、装置、介质及设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11210805B2 (en) * | 2017-01-13 | 2021-12-28 | Zhejiang University | Simultaneous localization and dense three-dimensional reconstruction method |
CN108428249A (zh) * | 2018-01-30 | 2018-08-21 | 哈尔滨工业大学深圳研究生院 | 一种基于光流跟踪和双几何模型的初始位姿估计方法 |
CN110044354B (zh) * | 2019-03-28 | 2022-05-20 | 东南大学 | 一种双目视觉室内定位与建图方法及装置 |
CN112734839B (zh) * | 2020-12-31 | 2022-07-08 | 浙江大学 | 一种提高鲁棒性的单目视觉slam初始化方法 |
CN112819860B (zh) * | 2021-02-18 | 2023-12-22 | Oppo广东移动通信有限公司 | 视觉惯性系统初始化方法及装置、介质和电子设备 |
-
2021
- 2021-07-07 CN CN202110766196.5A patent/CN115601419A/zh active Pending
-
2022
- 2022-05-23 WO PCT/CN2022/094529 patent/WO2023279867A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2023279867A1 (zh) | 2023-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11270460B2 (en) | Method and apparatus for determining pose of image capturing device, and storage medium | |
CN107747941B (zh) | 一种双目视觉定位方法、装置及系统 | |
US11145083B2 (en) | Image-based localization | |
CN108028871B (zh) | 移动设备上的无标记的多用户多对象增强现实 | |
Tanskanen et al. | Live metric 3D reconstruction on mobile phones | |
CN111598993B (zh) | 基于多视角成像技术的三维数据重建方法、装置 | |
US20130335529A1 (en) | Camera pose estimation apparatus and method for augmented reality imaging | |
CN107818592A (zh) | 协作式同步定位与地图构建的方法、系统及交互系统 | |
JP6609640B2 (ja) | 電子デバイス上における環境マッピング用のフィーチャ・データの管理 | |
CN110310326A (zh) | 一种位姿数据处理方法、装置、终端及计算机可读存储介质 | |
CN111127524A (zh) | 一种轨迹跟踪与三维重建方法、系统及装置 | |
US20230298280A1 (en) | Map for augmented reality | |
CN113361365B (zh) | 定位方法和装置、设备及存储介质 | |
CN110866977A (zh) | 增强现实处理方法及装置、系统、存储介质和电子设备 | |
CN108028904B (zh) | 移动设备上光场增强现实/虚拟现实的方法和系统 | |
CN109495733B (zh) | 三维影像重建方法、装置及其非暂态电脑可读取储存媒体 | |
CN105809664B (zh) | 生成三维图像的方法和装置 | |
US11978232B2 (en) | Method for displaying three-dimensional augmented reality | |
CN115601419A (zh) | 同步定位与建图后端优化方法、装置及存储介质 | |
CN110310325A (zh) | 一种虚拟测量方法、电子设备及计算机可读存储介质 | |
CN111862150A (zh) | 图像跟踪的方法、装置、ar设备和计算机设备 | |
CN110880187B (zh) | 一种相机位置信息确定方法、装置、电子设备及存储介质 | |
CN111260544B (zh) | 数据处理方法及装置、电子设备和计算机存储介质 | |
CN115601420A (zh) | 同步定位与建图初始化方法、装置及存储介质 | |
CN110322569B (zh) | 多模态ar处理方法、装置、设备和可读存储介质 |
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 |