CN113160102A - 三维场景重建的方法、装置、设备和存储介质 - Google Patents
三维场景重建的方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN113160102A CN113160102A CN202110448026.2A CN202110448026A CN113160102A CN 113160102 A CN113160102 A CN 113160102A CN 202110448026 A CN202110448026 A CN 202110448026A CN 113160102 A CN113160102 A CN 113160102A
- Authority
- CN
- China
- Prior art keywords
- sub
- map
- current
- image frame
- pose
- 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
- 238000000034 method Methods 0.000 title claims abstract description 103
- 230000008569 process Effects 0.000 claims abstract description 56
- 238000001514 detection method Methods 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 claims description 16
- 230000004927 fusion Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 9
- 238000009448 modified atmosphere packaging Methods 0.000 description 50
- 239000011159 matrix material Substances 0.000 description 23
- 238000005457 optimization Methods 0.000 description 21
- 238000004422 calculation algorithm Methods 0.000 description 18
- 230000009466 transformation Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 238000005070 sampling Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- 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
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/136—Segmentation; Edge detection involving thresholding
-
- 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/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Remote Sensing (AREA)
- Computer Graphics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供一种三维场景重建的方法、装置、设备和存储介质,该方法包括,在视频拍摄过程中,获得当前图像帧;判断当前子地图是否符合子地图创建条件,即当前图像帧的前M个图像帧发生跟踪丢失,或者当前子地图的体素存储空间的空余率小于空余率阈值,或者当前子地图融合的图像帧数量大于或等于N;若是,新建一个子地图,将当前图像帧融合至新建子地图;若否,将当前图像帧融合至当前子地图;对后一图像帧重复上述流程,直至拍摄结束,将各个子地图融合,得到被摄场景的场景模型。本方案在三维重建时按子地图创建条件自动新建子地图,使得整个被摄场景分割为多个子地图,从而减小累计误差,提高针对大尺度的场景重建的场景模型的精度。
Description
技术领域
本发明涉及图像处理技术领域,特别涉及一种三维场景重建的方法、装置、设备和存储介质。
背景技术
三维重建,是指,利用RGBD相机(一种可以同时拍摄物体的彩色图像和深度图的相机)针对某一场景拍摄一段视频,然后通过三维重建算法对该视频进行还原,得到三维的被摄场景的场景模型。三维重建技术是计算机视觉和计算机图形学领域的研究热点,在虚拟现实/增强现实、自动驾驶、机器人等领域中发挥着重大作用,有着广泛的应用。近年来许多消费级RGBD相机的出现,使得一般场景与物体能够进行实时三维重建。
三维重建算法中的一个重要环节,就是计算视频拍摄过程中,拍摄每一帧时的位姿(即相机的位置参数和姿态参数),现有的三维重建算法一般采用帧-模型的迭代最近点(Iterative Closest Point,ICP)配准方法计算每一帧的位姿,这种算法一般是以拍摄第一帧时相机的位置作为原点建立一个世界坐标系,然后在世界坐标系下逐一计算视频中每一帧的位姿,也就是跟踪视频拍摄过程中的相机轨迹。
这种方法的问题在于,在计算位姿时,每一帧的计算误差均会累加到下一帧的计算结果中,当视频的时间较长时(如拍摄场景的空间尺度较大时),视频中靠后的帧计算得到的位姿就会有较大的误差,使得最后根据位姿还原得到的场景模型的精度较差,容易出现重影,局部重建失败等问题。
发明内容
基于上述现有技术的缺点,本申请提供一种三维场景重建的方法、装置、设备和存储介质,以提高重建的场景模型的精度。
本申请第一方面提供一种三维场景重建的方法,包括:
在视频拍摄过程中,获得由深度相机拍摄得到的当前图像帧;
计算得到所述当前图像帧相对于当前子地图的位姿;其中,所述当前子地图,是指当前处于激活状态的子地图;
判断所述当前子地图是否符合子地图创建条件;其中,所述子地图创建条件包括,所述当前图像帧的前M个图像帧发生跟踪丢失,或者所述当前子地图的体素存储空间的空余率小于空余率阈值,或者所述当前子地图融合的图像帧数量大于或等于N;M和N均为预设的正整数;
若所述当前子地图符合所述子地图创建条件,新建一个子地图,并根据所述当前图像帧相对于所述当前子地图的位姿,计算得到新建子地图的位姿,和所述当前图像帧相对于所述新建子地图的位姿;
基于所述当前图像帧相对于所述新建子地图的位姿,将所述当前图像帧融合至所述新建子地图;
将所述当前子地图设置为非激活状态,将所述新建子地图设置为激活状态;
若所述当前子地图不符合所述子地图创建条件,基于所述当前图像帧相对于所述当前子地图的位姿,将所述当前图像帧融合至所述当前子地图;
若所述视频拍摄过程未结束,获得所述深度相机拍摄得到的后一个图像帧作为当前图像帧;返回执行所述计算得到所述当前图像帧相对于当前子地图的位姿步骤,直至所述视频拍摄过程结束为止;
根据处于非激活状态的各个子地图的位姿,将所述各个子地图融合,得到被摄场景的场景模型;其中,所述视频拍摄过程结束后,每一个子地图均设置为非激活状态。
本申请第二方面提供一种三维场景重建的装置,包括:
获得单元,用于在视频拍摄过程中,获得由深度相机拍摄得到的当前图像帧;
计算单元,用于计算得到所述当前图像帧相对于当前子地图的位姿;其中,所述当前子地图,是指当前处于激活状态的子地图;
判断单元,用于判断所述当前子地图是否符合子地图创建条件;其中,所述子地图创建条件包括,所述当前图像帧的前M个图像帧发生跟踪丢失,或者所述当前子地图的体素存储空间的空余率小于空余率阈值,或者所述当前子地图融合的图像帧数量大于或等于N;M和N均为预设的正整数;
新建单元,用于若所述当前子地图符合所述子地图创建条件,新建一个子地图,并根据所述当前图像帧相对于所述当前子地图的位姿,计算得到新建子地图的位姿,和所述当前图像帧相对于所述新建子地图的位姿;
融合单元,用于基于所述当前图像帧相对于所述新建子地图的位姿,将所述当前图像帧融合至所述新建子地图;
设置单元,用于将所述当前子地图设置为非激活状态,将所述新建子地图设置为激活状态;
所述融合单元,用于若所述当前子地图不符合所述子地图创建条件,基于所述当前图像帧相对于所述当前子地图的位姿,将所述当前图像帧融合至所述当前子地图;
所述获得单元,用于若所述视频拍摄过程未结束,获得所述深度相机拍摄得到的后一个图像帧作为当前图像帧;并触发所述计算单元返回执行所述计算得到所述当前图像帧相对于当前子地图的位姿步骤,直至所述视频拍摄过程结束为止;
所述融合单元,用于根据处于非激活状态的各个子地图的位姿,将所述各个子地图融合,得到被摄场景的场景模型;其中,所述视频拍摄过程结束后,每一个子地图均设置为非激活状态。
本申请第三方面提供一种电子设备,包括存储器和处理器;
其中,所述存储器用于存储计算机程序;
所述处理器用于执行所述计算机程序,具体用于实现本申请第一方面任意一项所提供的三维场景重建的方法。
本申请第四方面提供一种计算机存储介质,用于存储计算机程序,所述计算机程序被执行时,具体用于实现本申请第一方面任意一项所提供的三维场景重建的方法。
本申请提供一种三维场景重建的方法、装置、设备和存储介质,该方法包括,在视频拍摄过程中,获得由深度相机拍摄得到的当前图像帧;计算得到当前图像帧相对于当前子地图的位姿;判断当前子地图是否符合子地图创建条件;子地图创建条件包括,当前图像帧的前M个图像帧发生跟踪丢失,或者当前子地图的体素存储空间的空余率小于空余率阈值,或者当前子地图融合的图像帧数量大于或等于N;M和N均为预设的正整数;当前子地图,是指当前处于激活状态的子地图;若符合子地图创建条件,新建一个子地图,并根据当前图像帧相对于当前子地图的位姿,计算得到新建子地图的位姿,和当前图像帧相对于新建子地图的位姿;基于当前图像帧相对于新建子地图的位姿,将当前图像帧融合至新建子地图;将当前子地图设置为非激活状态,将新建子地图设置为激活状态;若当前子地图不符合子地图创建条件,基于当前图像帧相对于当前子地图的位姿,将当前图像帧融合至当前子地图;获得深度相机拍摄得到的后一个图像帧作为当前图像帧;返回执行计算得到当前图像帧相对于当前子地图的位姿步骤,直至视频拍摄过程结束;根据处于非激活状态的各个子地图的位姿,将各个子地图融合,得到被摄场景的场景模型。本方案三维重建过程中,每当跟踪丢失或融合了多个图像帧时,自动新建一个子地图,使得整个被摄场景分割为多个子地图,从而减小拍摄过程中各个图像帧的位姿的累计误差,提高针对大尺度的场景重建的场景模型的精度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种三维重建的方法的流程图;
图2为本申请实施例提供的一种三维重建的方法的一个执行示例图;
图3为本申请实施例提供的一种优化子地图位姿的方法的流程图;
图4为本申请实施例提供的一种三维重建的装置的结构示意图;
图5为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了方便理解本申请所提供的三维重建的方法,首先对本申请所涉及的部分概念进行简要说明。
地图可以理解为一个空间坐标系(包括特定位置的原点以及指向特定方向的坐标轴X,Y和Z),以及在该空间坐标系下的一个三维模型的组合,本申请所提供的三维重建方法,由于在视频拍摄过程中会按照一定的子地图创建条件创建若干个地图,因此将创建的每一个地图称为子地图,以将这些地图,和最终在世界坐标系下生成的整个被摄场景的场景模型加以区分。
世界坐标系,是指以被摄场景中某一固定点作为坐标原点而建立的坐标系,一般的,可以在拍摄视频的第一个图像帧时,记录此时相机的位置,以该位置作为世界坐标系的原点,同时根据此时相机的姿态确定世界坐标系的各个坐标轴的方向。
场景模型,在本申请中,一个场景模型可以由多个体素组成,具体的,在计算机中会为每一个子地图分配一个体素存储空间,该体素存储空间用于存储根据各个图像帧生成的体素,这些体素在子地图的空间坐标系下的组合,就是该子地图的场景模型。
图像帧相对于子地图的位姿,对于一个图像帧而言,位姿是指拍摄该图像帧时相机的姿态和所在位置(即位置参数和姿态参数),而姿态和所在位置均需要参考某一空间坐标系来描述,随着参考的空间坐标系的不同,同一图像帧显然会有不同的位姿,因此引入图像帧相对于子地图的位姿(可以简称为图像帧的相对位姿),对于图像帧1和子地图2,若参考子地图2的空间坐标系来描述拍摄图像帧1时相机的姿态和所在位置,则最后得到的就是图像帧1相对于子地图2的相对位姿。
一般的,相机拍摄某一帧时的位置和姿态,可以采用一个矩阵来描述,随着参考的空间坐标系的不同,矩阵中各个元素的取值会对应的变化,在下文中,图像帧1相对于子地图2的相对位姿,可以采用矩阵T(1,2)表示,括号内的第一项表示图像帧,第二项表示子地图。
子地图的位姿。每一个空间坐标系,均可以由世界坐标系按一个转换矩阵转换得到,具体来说,对于一个给定的转换矩阵,可以将世界坐标系的原点按这个转换矩阵沿X,Y,Z三个方向平移一定距离,并将坐标轴向不同方向旋转一定角度,完成平移和旋转后就可以得到一个新的空间坐标系。在本申请中,对于一个给定的子地图,如子地图2,描述子地图2的空间坐标系和世界坐标系之间的转换关系的转换矩阵M2,就是这个子地图的位姿。
基于上述定义,本申请提供一种三维重建的方法,请参考图1,该方法具体可以包括如下步骤:
S101、在视频拍摄过程中,获得由深度相机拍摄得到的当前图像帧。
本申请所述的方法,可以在视频开始拍摄时立即执行,直至视频拍摄结束,此时,步骤S101可以是,获得本次视频拍摄过程中,深度相机拍摄得到的第一个图像帧作为当前图像帧。
本方案也可以在视频拍摄了一段时间之后再开始执行,直至视频拍摄结束。例如,可以在拍摄到第50个图像帧时开始执行,此时步骤S101就可以是,获得本次视频拍摄过程中,深度相机拍摄的第50个图像帧作为当前图像帧。
深度相机,又称为RGBD相机,使用深度相机拍摄得到的图像帧(可以记为RGBD图像帧),包括被摄景物的二维彩色图像和深度图,深度图用于描述被摄景物相对于拍摄时相机所在位置的距离,因此,利用深度相机拍摄得到的一个图像帧,以及拍摄时深度相机的位置和姿态,就可以确定出图像帧中各个像素点在真实景物中对应的位置,即确定出每个像素点所表示的是真实景物中哪一点。
S102、计算得到当前图像帧相对于当前子地图的位姿。
在步骤S102中,可以采用任意一种现有的位姿计算方法进行计算,例如,可以采用基于帧-模型的迭代最近点(Iterative Closest Point,ICP)算法进行计算,得到当前子地图的位姿,具体的计算方法不再详述。
当前子地图,是指当前处于激活状态的子地图。本申请的三维重建过程会涉及多个子地图,每个子地图可以设置为激活状态(Active)和非激活状态(Deactive),一般的,同一时刻最多有一个子地图可以设置为激活状态,而其他子地图则设置为非激活状态。
若执行步骤S102时,尚不存在子地图,则新建一个子地图,并将这个新建的子地图设置为激活状态,使其成为当前子地图,若已经存在一个处于激活状态的子地图,将这一处于激活状态的子地图视为当前子地图。
进一步的,在本申请中,对于首个子地图,即第一次创建的子地图,可以计算此时当前图像帧相对于世界坐标系的位姿,也就是计算拍摄当前图像帧时深度相机在世界坐标系下的位置和姿态,然后将当前图像帧相对于世界坐标系的位姿,确定为首个子地图的位姿。若将首次获得的当前图像帧记为图像帧0,将当前图像帧相对于世界坐标系的位姿记为矩阵T0,则首个子地图的位姿M0=T0。
S103、判断当前子地图是否符合子地图创建条件。
其中,子地图创建条件包括,当前图像帧的前M个图像帧发生跟踪丢失,或者当前子地图的体素存储空间的空余率小于空余率阈值,或者当前子地图融合的图像帧数量大于或等于N;M和N均为预设的正整数;当前子地图,是指当前处于激活状态的子地图。
若当前子地图符合子地图创建条件,则执行步骤S104,反之,若当前子地图不符合子地图创建条件,则执行步骤S107。
也就是说,在步骤S103中会分别判断当前是否存在下述三种情况,若存在其中的任意一种或多种,则确定当前子地图符合子地图创建条件,反之,若三种情况均不存在,则确定当前子地图不符合子地图创建条件:
情况1,当前图像帧的前M个图像帧发生跟踪丢失;
情况2,当前子地图的体素存储空间的空余率小于空余率阈值;
情况3,当前子地图融合的图像帧数量大于或等于N。
对于情况1,现有的位姿计算方法在计算得到一个图像帧相对于一个子地图的位姿时,还会评估计算结果的误差,若该误差不再一个给定的误差范围内,就可以认为这个图像帧发生了跟踪丢失,例如,若给定误差范围是-0.1mm至+0.1mm,而某个图像帧的误差是+1mm,显然超出误差范围,因此该图像帧发生跟踪丢失。而情况1,就是指当前图像帧的前M个图像帧均发生跟踪丢失,M一般可以在3至5这一范围内选取。
例如,若当前图像帧记为图像帧X,之前的连续三个图像帧,即图像帧X-1,图像帧X-2和图像帧X-3均发生跟踪丢失,则认为发生了情况1。
显然,情况1只有在当前图像帧是开始执行本方法之后拍摄得到的第M个以后的图像帧时才会发生。
情况2,如前文所述,每一个子地图有一个预先分配的体素存储空间,空余率,就是指这个预先分配的体素存储空间中的空闲存储空间(即尚未存储数据的存储空间)占整个体素存储空间的比例,空余率阈值可以设定为10%,换言之,若当前子地图的体素存储空间已使用超过90%,则认为发生情况2。
情况3,当前子地图融合的图像帧数量大于或等于N。N一般可以设定为60,也就是说,若当前子地图融合的图像帧数量大于或等于60,则认为发生情况3。
S104、新建一个子地图,并根据当前图像帧相对于当前子地图的位姿,计算得到新建子地图的位姿,和当前图像帧相对于新建子地图的位姿。
可选的,在执行步骤S104之前,首先可以基于当前图像帧相对于当前子地图的位姿,将当前图像帧融合至当前子地图,这样可以确保当前子地图和新建的子地图融合了同一个图像帧,便于子地图之间进行图像特征相似性查找,有利于后续子地图之间的位姿优化。
步骤S104具体的计算方法可以是:
将当前图像帧记为图像帧pc,当前子地图记为mc,将步骤S102中计算得到的当前图像帧相对于当前子地图的位姿记为矩阵T(pc,mc),将当前子地图的位姿记为矩阵M(mc),那么,可以按下述公式计算当前图像帧相对于世界坐标系的位姿T(pc):
T(pc)=M(mc)×T(pc,mc)。
然后,就可以将当前图像帧相对于世界坐标系的位姿设置为新建的子地图的位姿M(new),即M(new)=T(pc)=M(mc)×T(pc,mc)。
可以看出,此时新建的子地图的位姿,和当前图像帧相对于世界坐标系的位姿一致,也就是说,新建的子地图的空间坐标系原点和拍摄当前图像帧时相机的位置重合,且新建的子地图的空间坐标系各个坐标轴的方向和拍摄当前图像帧时相机的指向一致,因此,这种情况下当前图像帧相对于与新建子地图的位姿T(pc,new)就是一个单位矩阵。
需要说明的是,新建一个子地图,包括,分配一个新的子地图的编号,并为该编号分配一定大小的体素存储空间。
S105、基于当前图像帧相对于新建子地图的位姿,将当前图像帧融合至新建子地图。
将一个图像帧融合至一个子地图,可以理解为,根据这个图像帧相对于这个子地图的相对位姿,以及这个图像帧自身包含的彩色图像和深度图像,计算得到若干个体素,然后将这些体素存储在这个子地图的体素存储空间中。
具体的如何计算得到一个图像帧对应的体素,可以参考相关的现有技术,如Victor Adrian Prisacariu等人提出的InfiniTAM算法(参考论文《Real-time3DReconstruction at Scale using Voxel Hashing》)。
S106、将当前子地图设置为非激活状态,将新建子地图设置为激活状态。
S107、基于当前图像帧相对于当前子地图的位姿,将当前图像帧融合至当前子地图。
步骤S107的具体执行过程和步骤S105一致。
S108、判断本次视频拍摄过程是否结束。
若本次视频拍摄过程结束,执行步骤S110,反之,若本次视频拍摄过程未结束,执行步骤S109,直至本次视频拍摄过程结束为止。
S109、获得深度相机拍摄得到的后一个图像帧作为当前图像帧。
步骤S109执行结束后,返回执行步骤S102,也就是对后一个图像帧重复上述步骤S102至S107所述的流程。
举例来说,假设在步骤S101至S108中,当前图像帧是视频的第一个图像帧,则步骤S109,就是将视频的第二个图像帧确定为当前图像帧。
S110、根据处于非激活状态的各个子地图的位姿,将各个子地图融合,得到被摄场景的场景模型。
其中,视频拍摄过程结束后,每一个子地图均设置为非激活状态。
通过步骤S101至S109所述的过程,可以将视频拍摄过程中的所有图像帧分别融合至多个子地图中,且每一个子地图都有一个位姿,也就是该子地图的空间坐标系到世界坐标系之间的变换矩阵,在此基础上,可以针对每一个子地图,将这个子地图的体素存储空间所存储的所有体素均和这个子地图的位姿(即前述变换矩阵)相乘,从而将每一个子地图的体素均变换到统一的世界坐标系下,所有变换后的体素的组合,就构成了被摄场景完整的场景模型,这一过程,就是将各个子地图融合的过程。
针对基于世界坐标系连续计算每一帧的位姿所引入的累计误差过大的问题,本发明将整个被摄场景划分为多个子地图,在每一个子地图内,基于该子地图中新建的空间坐标系对图像帧的相对位姿进行计算,并基于图像帧相对于子地图的相对位姿进行融合,通过对被摄场进行分割,减小累计误差引起的相机漂移对重建模型精度的影响,从而提高了对大尺度场景的三维重建的精度。
下面结合一个具体的例子对上述实施例进行说明,请参考图2。
视频拍摄开始后,获得拍摄得到的首个图像帧(记为图像帧0)作为当前图像帧,此时尚没有子地图,因此建立一个子地图(记为子地图0),给子地图0分配体素存储空间,将子地图0设置为激活状态,对图像帧0,计算其在世界坐标系下的位姿T0,并将子地图0的位姿M0设定为T0,相应的,图像帧0相对于子地图0的相对位姿T(0,0)就等于单位矩阵。
随后,判断出当前子地图不符合子地图创建条件,于是将图像帧0融合至子地图0。
获得拍摄得到的第二个图像帧(图像帧1),并计算出图像帧1相对于当前子地图(此时为子地图0)的相对位姿T(1,0),并在判断出当前子地图不符合子地图创建条件后,将图像帧1融合至子地图0。
以此类推,假设当拍摄到第30个图像帧(图像帧29)时,判断出当前子地图符合子地图创建条件,于是,新建一个子地图(子地图1),将图像帧29同时融合至子地图0和子地图1,并将子地图0设置为非激活状态,将子地图1设置为激活状态,此后,子地图1就成为当前子地图。然后继续将后续的图像帧融合至子地图1。
在子地图1融合了第61图像帧(图像帧60)之后,判断出子地图1符合子地图创建条件,于是又新建一个子地图(子地图2),然后将图像帧60和后续的图像帧融合至子地图2。
以此类推,假设在拍摄得到第A+1个图像帧(图像帧A)之后,视频拍摄过程结束,此时共创建了B+1个子地图(依次为子地图0至子地图B),于是将这B+1个子地图的场景模型,基于各自的子地图的位姿进行融合,得到被摄场景的场景模型。
被摄场景,是指整段视频所拍摄的场景,例如,在一个房屋内拍摄一段视频,则该房屋就是这一视频的被摄场景。
可选的,在本申请的另一实施例中,每次将当前图像帧融合至当前子地图之后,即在图1所示的实施例中每次执行步骤S107之后,可以按本申请提供的优化子地图位姿的方法对当前子地图的位姿进行优化,优化方法可以概括为如下两个步骤:
在当前子地图之前的多个子地图中查找出相似子地图;
以相似子地图为依据,利用回环检测约束或者重定位约束优化当前子地图的位姿。
结合图2所示的实例,假设当前子地图是子地图K(K小于或等于B),那么,为了优化当前子地图的位姿,可以在之前的多个子地图,即子地图0至子地图K-1中查找出和子地图K相似的相似子地图,然后以相似子地图为依据,利用回环检测约束或者重定位约束优化子地图K的位姿。
本申请所提供而优化子地图位姿的方法,请参考图3,具体可以包括如下步骤:
S301、提取当前图像帧的关键点。
在步骤S301中,可以调用任意一种现有的关键点检测算法,将图像帧中包含的若干个像素点提取出来,作为该图像帧的关键点,具体的方法可以参考现有的图像处理技术领域中相关文献,不再详述。
S302、在当前子地图所融合的所有图像帧的关键点中,确定出当前子地图的关键点,并获得当前子地图的关键点的图像特征。
对于图像帧中的每一个关键点,可以采用任意一种特征提取算法(特征描述子)对该关键点进行处理,得到该关键点对应的一个图像特征。
步骤S302中所述的关键点的图像特征,可以采用任意一种现有的特征提取算法获得。例如,关键点的图像特征可以是采用尺度不变特征转换(Scale-invariant featuretransform,SIFT)算法提取得到的Sift特征,也可以是采用加速稳健特征(Speeded UpRobust Features,Surf)算法提取得到的Surf特征,还可以是采用定向FAST和旋转BRIEF(Oriented FAST and Rotated BRIEF,ORB)算法提取得到的ORB特征。
其中,FAST是图像处理技术领域现有的一种关键点检测算法,BRIEF则是图像处理技术领域现有的一种用于提取关键点特征的算法。
需要说明的是,在本实施例的优化方法中,每一个图像帧在融合至一个子地图之后,均会提取出该图像帧的多个关键点,而一个子地图所包含的多个图像帧之间,可能会有一些关键点发生重复。
关键点的重复,是指,对于一个子地图中的两个图像帧1和2,图像帧1的一部分关键点和图像帧2的一部分关键点对应于真实景物上的同一位置,则认为这两部分关键点是重复的。
针对上述情况,需要对当前子地图已融合的所有图像帧的关键点进行优化,以从中确定出最能表达该子地图特征的关键点,将这些关键点确定为当前子地图的关键点,并获取这些关键点的图像特征。
具体来说,在应用InfiniTAM算法将图像帧融合至子地图时,该图像帧的各个像素点会被投影至该子地图的空间坐标系中,得到由多个空间点组成的点云,该图像帧的点云存储在HashVoxel中。
因此在步骤S302中,可以从HashVoxel中获得当前子地图已融合的所有图像帧的点云,并从中获取每一个图像帧的关键点所对应的空间点,按空间点之间的距离对这些空间点进行聚类,从而将这些空间点划分为多个类别,然后按每个类别包含的空间点的数量多少,从多到少的选择其中的前Q个类别,将每一个被选择的类别的多个关键点合并成一个关键点,并将多个关键点的图像特征合并成一个图像特征,最后得到该子地图的Q个关键点和这Q个关键点的图像特征。Q是一个预设的正整数。或者,也可以从被选择的每一个类别中,进一步选取该类别的一个关键点,最后也能得到子地图的Q个关键点。
例如,假设选择的一个类别包含20个分别属于当前子地图所融合的不同图像帧的关键点,同时每一个关键点都有一个图像特征,那么,可以对这20个关键点所对应的空间点的三维坐标进行均值计算,最后得到的一个三维坐标,就是当前子地图的一个关键点,同时对这20个图像特征进行均值计算,最后得到的图像特征,就是当前子地图的一个图像特征。
S303、将当前子地图之前每一个子地图中,对应的关键点的图像特征和当前子地图的关键点的图像特征相似的子地图确定为相似子地图。
可以理解的,步骤S302所述的过程适用于整个视频拍摄过程中建立的每一个子地图。即每一个子地图均会通过步骤S302的过程,确定出若干个该子地图的关键点,和关键点的图像特征。
步骤S303中查找相似子地图的具体方式可以是,首先以多个图像特征作为语料,利用DBoW2算法(图像处理技术领域一种现有算法)构建一个词袋模型,然后,针对每一个子地图,可以利用构建好的词袋模型对这个子地图的关键点的图像特征进行转换,得到该子地图对应的一个图像特征词袋向量,最后,逐一计算当前子地图的图像特征词袋向量,和之前已建立的每一个子地图的图像特征词袋向量之间的相似度,将其中相似度最高的子地图,或者将其中相似度高于设定阈值的子地图确定为当前子地图的相似子地图。
S304、获得当前图像帧的RGBD编码值。
一个图像帧的RGBD编码值可以按如下方式获得:
首先在该图像帧中按一定的规律选取若干个采样点(例如将图像帧划分为多个区域,在每一个区域随机选取5个像素点作为采样点),假设共得到N个采样点,对其中任意一个采样点i,定义采样点i在红(red,R),绿(green,G),蓝(blue,B)三个通道上的像素值为Iri,Igi,Ibi,在深度图上的像素值为Idi,同时对彩色图像的每一个通道以及深度图,分别定义四个采样阈值,依次是THri,THgi,THbi和THdi,基于上述设定,可以得到采样点i的编码值codei:
codei=(Br<<3|Bg<<2|Bb<<1|Bd<<0),
其中:
其中各个采样阈值的大小可以根据具体情况设定,最后得到的编码值codei是一个四位二进制数,其中每一个位(Bk就表示codei中的各个二进制位)对应于彩色图像的一个通道的像素值,或者对应于深度图上的像素值,该位的值为1,表示对应的像素值大于或等于相应的采样阈值,该位的值为0表示对应的像素值小于相应的采样阈值。
最后,将图像帧的所有采样点的编码值组合成一个更长的二进制序列,这一二进制序列就是这个图像帧的RGBD编码值。
S305、在当前图像帧之前的每一个图像帧中,查找出对应的RGBD编码值和当前图像帧的RGBD编码值相似的图像帧。
对于任意两个图像帧,可以定义这两个图像帧的相似度为:
两个图像帧的编码值中,相同的二进制位(两个二进制位在编码值中有相同位置且数值相同,则这两个二进制位相同)所占的比例。
进一步的,对于两个图像帧,若这两个图像帧的相似度大于一定的阈值,则认为这两个图像帧相似,或者认为这两个图像帧的编码值相似。
因此,步骤S305,实质就是将当前图像帧的编码值和其他子地图(指除了当前子地图以外的子地图)的图像帧的编码值进行比对,查找出其中和当前图像帧的相似度大于一定阈值的图像帧。
S306、将融合了查找得到的图像帧的子地图,确定为相似子地图。
举例来说,假设当前子地图为子地图5,当前图像帧为图像帧80,经查找,发现之前建立的子地图2所融合的图像帧20的编码值,和图像帧80的编码值相似,因此,将子地图2确定为子地图5的相似子地图。
需要说明的是,步骤S301至S303是通过图像特征查找相似子地图,步骤S304至步骤S306,则是通过RGBD编码值查找相似子地图,在本申请实施例中,这两种方法可以同时使用,也可以根据情况选择只使用其中的某一种,当同时使用两种方法时,在后续的优化步骤中,会将每一种方法查找得到的每一个相似子地图,均用于当前子地图的位姿的优化。
S307、判断当前子地图所融合的第一个图像帧之前的连续M个图像帧是否均发生跟踪丢失。
若判断结果为是,即当前子地图所融合的第一个图像帧之前的连续M个图像帧均发生跟踪丢失,则执行步骤S308,反之,若判断结果为否,即当前子地图所融合的第一个图像帧之前的连续M个图像帧中有至少一个图像帧未发生跟踪丢失,则执行步骤S309。
请参考前述子地图创建条件所列举的三种情况,步骤S307,相当于判断在创建当前子地图时,前一个子地图是否发生了情况1,若是,则采用重定位约束优化当前子地图的位姿,若否,则采用回环检测约束优化当前子地图的位姿。
S308、以相似子地图为依据,利用重定位约束优化当前子地图的位姿。
S309、以相似子地图为依据,利用回环检测约束优化当前子地图的位姿。
下面对步骤S308和S309的具体执行过程进行说明:
首先定义如下符号:
当前图像帧记为Fc,当前子地图记为MAPc,在当前子地图之前建立的多个子地图依次记为MAP0,MAP1……MAPc-1,对于任意一个子地图MAPi(i是0至c范围内的任一整数),MAPi的位姿记为矩阵Mi,子地图MAPi到子地图MAPc的变换矩阵记为Tci,即:Mc=Tci*Mi。
进一步的,定义Pmi为子地图MAPi的场景模型在子地图MAPi的第m个图像帧的相对位姿Tm(指该图像帧相对于子地图MAPi的相对位姿)下的三维点云,Nmi为子地图MAPi的场景模型在子地图MAPi的第m个图像帧的相对位姿Tm下的法向量,pik为子地图MAPi的关键点k的空间坐标,也就是该关键点对应的空间点的坐标,xk=(u,v)T表示当前子地图MAPc中关键点k的二维坐标(即该关键点在所属的图像帧上的位置)。
基于上述定义,假设对于当前子地图MAPc,在MAP0,MAP1……MAPc-1这些子地图中找到了一个相似子地图MAPh,那么在相似子地图和当前子地图之间,可以计算出如下的几项误差:
第一项,相似子地图MAPh中的关键点phk到当前图像帧的匹配点xk的重投影误差Eproj:
Eproj=∑||xk-KTchphk||2
其中,若当前图像帧的某一关键点xk和相似子地图的关键点phk对应于真实景物中的同一位置,就可以将关键点xk称为相似子地图的关键点phk的一个匹配点。
K表示相机内参,对于某一次视频拍摄过程,K是拍摄该视频的相机固有的参数。
第二项,相似子地图MAPh的位姿和当前子地图MAPc的位姿的相对变换误差Erela:
Erela=∑||Tc-TchTh||2
第三项,相似子地图MAPh在相机位姿Tm下的点云Pmh和法向量与Nmh当前图像帧在相机位姿Tm下的点云Pmc的配准误差Eicp:
Eicp=∑||(Pmc-TchPmh)·Nmh||2
在上述公式中,可以选择相似子地图MAPh所融合的,且和当前图像帧相似(即两者的编码值相似)的图像帧的相对位姿(指该图像帧相对于子地图MAPh的位姿)作为相机位姿Tm。
可以看出,上述三项误差的大小均与相似子地图MAPh到子地图MAPc的变换矩阵记为Tch相关,基于上述三项误差,若要通过重定位约束对当前子地图的位姿进行优化,即执行步骤S308,那么可以建立如下的目标函数Eloca:
然后基于上述目标函数,求解出一个使得目标函数Eloca达到最小值的变换矩阵Tch,将求解得到的变换矩阵Tch和相似子地图的位姿Mh相乘,就可以得到优化后的当前子地图的位姿,完成基于重定位约束的优化。
也就是说,基于重定位约束进行优化,具体包括:
计算相似子地图的场景模型在相似图像帧位姿下的投影点云数据,个女警重投影误差和配准误差建立约束关系,也就是上述目标函数Eloca,对目标函数进行优化求解,得到变换矩阵,然后用变换矩阵计算得到优化后的当前子地图的位姿。
若要通过回环检测约束对当前子地图的位姿进行优化,即执行步骤S309,那么可以建立如下的目标函数Eloop:
然后基于上述目标函数,求解出一个使得目标函数Eloca达到最小值的变换矩阵Tch,将求解得到的变换矩阵Tch和相似子地图的位姿Mh相乘,就可以得到优化后的当前子地图的位姿,完成基于回环检测约束的优化。
也就是说,基于重定位约束进行优化,具体包括:
根据重投影误差和相对变换误差建立约束关系,也就是上述目标函数Eloop,对目标函数进行优化求解,得到变换矩阵,然后用变换矩阵计算得到优化后的当前子地图的位姿。
在基于重定位约束进行优化和基于回环检测约束进行优化的过程中,对目标函数的求解均可以利用通用图形优化(General Graph Optimization,g2o)算法或者Ceres库(一种现有的用于解决优化问题的C++库)来实现。
本实施例对多个子地图的位姿,采用闭环检测约束和重定位约束进行优化。除了对RGBD数据同时进行编码,增加编码鲁棒性以外,同时加入图像特征构建的词袋模型,寻找相似帧和相似子地图的鲁棒性和效率更高,最后,用多种误差约束,增加回环检测和重定位的鲁棒性。
进一步的,为了增加子地图位姿优化的鲁棒性,可以在根据处于非激活状态的各个子地图的位姿,将各个子地图融合,得到被摄场景的场景模型之前,执行如下过程:
将处于非激活状态的各个子地图中,融合的图像帧数量小于预设的最小融合数量的子地图识别为不可靠子地图;
删除每一个不可靠子地图。
一般的,最小融合数量可以设置为3至5中的一个整数,例如,若一个子地图融合的图像帧的数量小于5,可以认为该子地图是不可靠子地图,于是直接删除该子地图。
可选的,上述过程具体可以在每次新建一个子地图之后执行,也就是说,每次新建一个子地图之后,可以将逐一判断之前建立的子地图是否为不可靠子地图,若其中存在不可靠子地图,则删除不可靠子地图,以避免在基于回环检测约束进行优化时,影响其他子地图的位姿。
可选的,为了节约存储空间,每次新建一个子地图,并将当前子地图设置为非激活状态,将新建子地图设置为激活状态之后,可以对之前的子地图进行压缩,具体过程如下:
确定出处于非激活状态的子地图的体素存储空间中的未使用存储空间;
释放未使用存储空间。
结合本申请实施例所提供的三维场景重建的方法,本申请实施例还提供一种三维场景重建的装置,请参考图4,该装置具体可以包括如下单元:
获得单元401,用于在视频拍摄过程中,获得由深度相机拍摄得到的当前图像帧。
计算单元402,用于计算得到当前图像帧相对于当前子地图的位姿。
其中,当前子地图,是指当前处于激活状态的子地图。
判断单元403,用于判断当前子地图是否符合子地图创建条件。
其中,子地图创建条件包括,当前图像帧的前M个图像帧发生跟踪丢失,或者当前子地图的体素存储空间的空余率小于空余率阈值,或者当前子地图融合的图像帧数量大于或等于N;M和N均为预设的正整数。
新建单元404,用于若当前子地图符合子地图创建条件,新建一个子地图,并根据当前图像帧相对于当前子地图的位姿,计算得到新建子地图的位姿,和当前图像帧相对于新建子地图的位姿。
融合单元405,用于基于当前图像帧相对于新建子地图的位姿,将当前图像帧融合至新建子地图。
设置单元406,用于将当前子地图设置为非激活状态,将新建子地图设置为激活状态。
融合单元405,用于若当前子地图不符合子地图创建条件,基于当前图像帧相对于当前子地图的位姿,将当前图像帧融合至当前子地图。
获得单元401,用于若视频拍摄过程未结束,获得深度相机拍摄得到的后一个图像帧作为当前图像帧;并触发计算单元返回执行计算得到当前图像帧相对于当前子地图的位姿步骤,直至视频拍摄过程结束为止。
融合单元405,用于根据处于非激活状态的各个子地图的位姿,将各个子地图融合,得到被摄场景的场景模型。
其中,视频拍摄过程结束后,每一个子地图均设置为非激活状态。
可选的,该装置还包括优化单元407,用于:
在当前子地图之前的多个子地图中查找出相似子地图;
以相似子地图为依据,利用回环检测约束或者重定位约束优化当前子地图的位姿。
可选的,优化单元407在当前子地图之前的多个子地图中查找出相似子地图时,具体用于:
提取当前图像帧的关键点;
在当前子地图所融合的所有图像帧的关键点中,确定出当前子地图的关键点,并获得当前子地图的关键点的图像特征;
将当前子地图之前每一个子地图中,对应的关键点的图像特征和当前子地图的关键点的图像特征相似的子地图确定为相似子地图。
可选的,优化单元407在当前子地图之前的多个子地图中查找出相似子地图时,具体用于:
获得当前图像帧的RGBD编码值;
在当前图像帧之前的每一个图像帧中,查找出对应的RGBD编码值和当前图像帧的RGBD编码值相似的图像帧;
将融合了查找得到的图像帧的子地图,确定为相似子地图。
可选的,优化单元407以相似子地图为依据,利用回环检测约束或者重定位约束优化当前子地图的位姿时,具体用于:
判断当前子地图所融合的第一个图像帧之前的连续M个图像帧是否均发生跟踪丢失;
若当前子地图所融合的第一个图像帧之前的连续M个图像帧均发生跟踪丢失,以相似子地图为依据,利用重定位约束优化当前子地图的位姿;
若当前子地图所融合的第一个图像帧之前的连续M个图像帧中有至少一个图像帧未发生跟踪丢失,以相似子地图为依据,利用回环检测约束优化当前子地图的位姿。
可选的,该装置还包括删除单元408,用于:
将处于非激活状态的各个子地图中,融合的图像帧数量小于预设的最小融合数量的子地图识别为不可靠子地图;
删除每一个不可靠子地图。
可选的,该装置还包括释放单元409,用于:
确定出处于非激活状态的子地图的体素存储空间中的未使用存储空间;
释放未使用存储空间。
本实施例所提供的三维场景重建的装置,其具体工作原理可以参考本申请任一实施例所提供的三维重建的方法,此处不再详述。
本申请提供一种三维场景重建的装置,其中,获得单元401在视频拍摄过程中,获得由深度相机拍摄得到的当前图像帧;计算单元402计算得到当前图像帧相对于当前子地图的位姿;判断单元403判断当前子地图是否符合子地图创建条件;子地图创建条件包括,当前图像帧的前M个图像帧发生跟踪丢失,或者当前子地图的体素存储空间的空余率小于空余率阈值,或者当前子地图融合的图像帧数量大于或等于N;M和N均为预设的正整数;当前子地图,是指当前处于激活状态的子地图;若符合子地图创建条件,新建单元404新建一个子地图,并根据当前图像帧相对于当前子地图的位姿,计算得到新建子地图的位姿,和当前图像帧相对于新建子地图的位姿;融合单元405基于当前图像帧相对于新建子地图的位姿,将当前图像帧融合至新建子地图;设置单元406将当前子地图设置为非激活状态,将新建子地图设置为激活状态;若当前子地图不符合子地图创建条件,融合单元405基于当前图像帧相对于当前子地图的位姿,将当前图像帧融合至当前子地图;获得单元401获得深度相机拍摄得到的后一个图像帧作为当前图像帧;返回执行计算得到当前图像帧相对于当前子地图的位姿步骤,直至视频拍摄过程结束;融合单元405根据处于非激活状态的各个子地图的位姿,将各个子地图融合,得到被摄场景的场景模型。本方案三维重建过程中,每当跟踪丢失或融合了多个图像帧时,自动新建一个子地图,使得整个被摄场景分割为多个子地图,从而减小拍摄过程中各个图像帧的位姿的累计误差,提高针对大尺度的场景重建的场景模型的精度。
本申请实施例还提供一种电子设备,如图5所示,包括存储器501和处理器502,其中,存储器501用于存储计算机程序,处理器502用于执行该计算机程序,具体用于实现本申请任一实施例所提供的三维重建的方法。
本申请实施例还提供一种计算机存储介质,用于存储计算机程序,该计算机程序被执行时,具体用于实现本申请任一实施例所提供的三维重建的方法。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
需要注意,本发明中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种三维场景重建的方法,其特征在于,包括:
在视频拍摄过程中,获得由深度相机拍摄得到的当前图像帧;
计算得到所述当前图像帧相对于当前子地图的位姿;其中,所述当前子地图,是指当前处于激活状态的子地图;
判断所述当前子地图是否符合子地图创建条件;其中,所述子地图创建条件包括,所述当前图像帧的前M个图像帧发生跟踪丢失,或者所述当前子地图的体素存储空间的空余率小于空余率阈值,或者所述当前子地图融合的图像帧数量大于或等于N;M和N均为预设的正整数;
若所述当前子地图符合所述子地图创建条件,新建一个子地图,并根据所述当前图像帧相对于所述当前子地图的位姿,计算得到新建子地图的位姿,和所述当前图像帧相对于所述新建子地图的位姿;
基于所述当前图像帧相对于所述新建子地图的位姿,将所述当前图像帧融合至所述新建子地图;
将所述当前子地图设置为非激活状态,将所述新建子地图设置为激活状态;
若所述当前子地图不符合所述子地图创建条件,基于所述当前图像帧相对于所述当前子地图的位姿,将所述当前图像帧融合至所述当前子地图;
若所述视频拍摄过程未结束,获得所述深度相机拍摄得到的后一个图像帧作为当前图像帧;返回执行所述计算得到所述当前图像帧相对于当前子地图的位姿步骤,直至所述视频拍摄过程结束为止;
根据处于非激活状态的各个子地图的位姿,将所述各个子地图融合,得到被摄场景的场景模型;其中,所述视频拍摄过程结束后,每一个子地图均设置为非激活状态。
2.根据权利要求1所述的方法,其特征在于,所述基于所述当前图像帧相对于所述当前子地图的位姿,将所述当前图像帧融合至所述当前子地图的场景模型之后,还包括:
在所述当前子地图之前的多个子地图中查找出相似子地图;
以所述相似子地图为依据,利用回环检测约束或者重定位约束优化所述当前子地图的位姿。
3.根据权利要求2所述的方法,其特征在于,所述在所述当前子地图之前的多个子地图中查找出相似子地图,包括:
提取所述当前图像帧的关键点;
在所述当前子地图所融合的所有图像帧的关键点中,确定出所述当前子地图的关键点,并获得所述当前子地图的关键点的图像特征;
将所述当前子地图之前每一个子地图中,对应的关键点的图像特征和所述当前子地图的关键点的图像特征相似的子地图确定为相似子地图。
4.根据权利要求2所述的方法,其特征在于,所述根据所述当前图像帧在所述当前子地图之前的多个子地图中查找出相似子地图,包括:
获得所述当前图像帧的RGBD编码值;
在所述当前图像帧之前的每一个图像帧中,查找出对应的RGBD编码值和所述当前图像帧的RGBD编码值相似的图像帧;
将融合了查找得到的图像帧的子地图,确定为相似子地图。
5.根据权利要求2至4任意一项所述的方法,其特征在于,所述以所述相似子地图为依据,利用回环检测约束或者重定位约束优化所述当前子地图的位姿,包括:
判断所述当前子地图所融合的第一个图像帧之前的连续M个图像帧是否均发生跟踪丢失;
若所述当前子地图所融合的第一个图像帧之前的连续M个图像帧均发生跟踪丢失,以所述相似子地图为依据,利用重定位约束优化所述当前子地图的位姿;
若所述当前子地图所融合的第一个图像帧之前的连续M个图像帧中有至少一个图像帧未发生跟踪丢失,以所述相似子地图为依据,利用回环检测约束优化所述当前子地图的位姿。
6.根据权利要求1所述的方法,其特征在于,所述根据处于非激活状态的各个子地图的位姿,将所述各个子地图融合,得到被摄场景的场景模型之前,还包括:
将处于非激活状态的各个子地图中,融合的图像帧数量小于预设的最小融合数量的子地图识别为不可靠子地图;
删除每一个所述不可靠子地图。
7.根据权利要求1所述的方法,其特征在于,所述将所述当前子地图设置为非激活状态,将所述新建子地图设置为激活状态之后,还包括:
确定出处于非激活状态的子地图的体素存储空间中的未使用存储空间;
释放所述未使用存储空间。
8.一种三维场景重建的装置,其特征在于,包括:
获得单元,用于在视频拍摄过程中,获得由深度相机拍摄得到的当前图像帧;
计算单元,用于计算得到所述当前图像帧相对于当前子地图的位姿;其中,所述当前子地图,是指当前处于激活状态的子地图;
判断单元,用于判断所述当前子地图是否符合子地图创建条件;其中,所述子地图创建条件包括,所述当前图像帧的前M个图像帧发生跟踪丢失,或者所述当前子地图的体素存储空间的空余率小于空余率阈值,或者所述当前子地图融合的图像帧数量大于或等于N;M和N均为预设的正整数;
新建单元,用于若所述当前子地图符合所述子地图创建条件,新建一个子地图,并根据所述当前图像帧相对于所述当前子地图的位姿,计算得到新建子地图的位姿,和所述当前图像帧相对于所述新建子地图的位姿;
融合单元,用于基于所述当前图像帧相对于所述新建子地图的位姿,将所述当前图像帧融合至所述新建子地图;
设置单元,用于将所述当前子地图设置为非激活状态,将所述新建子地图设置为激活状态;
所述融合单元,用于若所述当前子地图不符合所述子地图创建条件,基于所述当前图像帧相对于所述当前子地图的位姿,将所述当前图像帧融合至所述当前子地图;
所述获得单元,用于若所述视频拍摄过程未结束,获得所述深度相机拍摄得到的后一个图像帧作为当前图像帧;并触发所述计算单元返回执行所述计算得到所述当前图像帧相对于当前子地图的位姿步骤,直至所述视频拍摄过程结束为止;
所述融合单元,用于根据处于非激活状态的各个子地图的位姿,将所述各个子地图融合,得到被摄场景的场景模型;其中,所述视频拍摄过程结束后,每一个子地图均设置为非激活状态。
9.一种计算机存储介质,其特征在于,用于存储计算机程序,所述计算机程序被执行时,具体用于实现如权利要求1至7任意一项所述的三维场景重建的方法。
10.一种电子设备,其特征在于,包括存储器和处理器;
其中,所述存储器用于存储计算机程序;
所述处理器用于执行所述计算机程序,具体用于实现如权利要求1至7任意一项所述的三维场景重建的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110448026.2A CN113160102A (zh) | 2021-04-25 | 2021-04-25 | 三维场景重建的方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110448026.2A CN113160102A (zh) | 2021-04-25 | 2021-04-25 | 三维场景重建的方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113160102A true CN113160102A (zh) | 2021-07-23 |
Family
ID=76870206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110448026.2A Pending CN113160102A (zh) | 2021-04-25 | 2021-04-25 | 三维场景重建的方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113160102A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113628284A (zh) * | 2021-08-10 | 2021-11-09 | 深圳市人工智能与机器人研究院 | 位姿标定数据集生成方法、装置、系统、电子设备及介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017128934A1 (zh) * | 2016-01-29 | 2017-08-03 | 成都理想境界科技有限公司 | 一种实现增强现实的方法、服务器、终端及系统 |
CN109242959A (zh) * | 2018-08-29 | 2019-01-18 | 清华大学 | 三维场景重建方法及系统 |
CN109658449A (zh) * | 2018-12-03 | 2019-04-19 | 华中科技大学 | 一种基于rgb-d图像的室内场景三维重建方法 |
CN110148217A (zh) * | 2019-05-24 | 2019-08-20 | 北京华捷艾米科技有限公司 | 一种实时三维重建方法、装置及设备 |
CN111815738A (zh) * | 2020-06-15 | 2020-10-23 | 北京沃东天骏信息技术有限公司 | 一种构建地图的方法和装置 |
CN111951397A (zh) * | 2020-08-07 | 2020-11-17 | 清华大学 | 一种多机协同构建三维点云地图的方法、装置和存储介质 |
CN112004196A (zh) * | 2020-08-24 | 2020-11-27 | 唯羲科技有限公司 | 定位方法、装置、终端及计算机存储介质 |
-
2021
- 2021-04-25 CN CN202110448026.2A patent/CN113160102A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017128934A1 (zh) * | 2016-01-29 | 2017-08-03 | 成都理想境界科技有限公司 | 一种实现增强现实的方法、服务器、终端及系统 |
CN109242959A (zh) * | 2018-08-29 | 2019-01-18 | 清华大学 | 三维场景重建方法及系统 |
CN109658449A (zh) * | 2018-12-03 | 2019-04-19 | 华中科技大学 | 一种基于rgb-d图像的室内场景三维重建方法 |
CN110148217A (zh) * | 2019-05-24 | 2019-08-20 | 北京华捷艾米科技有限公司 | 一种实时三维重建方法、装置及设备 |
CN111815738A (zh) * | 2020-06-15 | 2020-10-23 | 北京沃东天骏信息技术有限公司 | 一种构建地图的方法和装置 |
CN111951397A (zh) * | 2020-08-07 | 2020-11-17 | 清华大学 | 一种多机协同构建三维点云地图的方法、装置和存储介质 |
CN112004196A (zh) * | 2020-08-24 | 2020-11-27 | 唯羲科技有限公司 | 定位方法、装置、终端及计算机存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113628284A (zh) * | 2021-08-10 | 2021-11-09 | 深圳市人工智能与机器人研究院 | 位姿标定数据集生成方法、装置、系统、电子设备及介质 |
CN113628284B (zh) * | 2021-08-10 | 2023-11-17 | 深圳市人工智能与机器人研究院 | 位姿标定数据集生成方法、装置、系统、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107292949B (zh) | 场景的三维重建方法、装置及终端设备 | |
WO2019157924A1 (zh) | 三维物体的实时检测方法及系统 | |
CN104933755B (zh) | 一种静态物体重建方法和系统 | |
US5930378A (en) | Dynamic image processing apparatus and method | |
CN107329962B (zh) | 图像检索数据库生成方法、增强现实的方法及装置 | |
CN112785705B (zh) | 一种位姿获取方法、装置及移动设备 | |
CN109842811B (zh) | 一种在视频中植入推送信息的方法、装置及电子设备 | |
CN111402412B (zh) | 数据采集方法及装置、设备、存储介质 | |
CN110648397A (zh) | 场景地图生成方法、装置、存储介质及电子设备 | |
WO2023015409A1 (zh) | 物体姿态的检测方法、装置、计算机设备和存储介质 | |
CN111291768A (zh) | 图像特征匹配方法及装置、设备、存储介质 | |
CN112243518A (zh) | 获取深度图的方法、装置及计算机存储介质 | |
CN113628343B (zh) | 三维网格的合并处理方法和装置、存储介质 | |
CN115393761A (zh) | 视频关键帧提取方法、装置、设备和存储介质 | |
US20200036961A1 (en) | Constructing a user's face model using particle filters | |
JP5192437B2 (ja) | 物体領域検出装置、物体領域検出方法および物体領域検出プログラム | |
CN113298871B (zh) | 地图生成方法、定位方法及其系统、计算机可读存储介质 | |
CN113160102A (zh) | 三维场景重建的方法、装置、设备和存储介质 | |
CN111402429B (zh) | 一种尺度还原、三维重建方法、系统、存储介质及设备 | |
CN106845555A (zh) | 基于Bayer格式的图像匹配方法及图像匹配装置 | |
CN112085842A (zh) | 深度值确定方法及装置、电子设备和存储介质 | |
CN113361400B (zh) | 一种头部姿态估计方法、装置及存储介质 | |
CN111144489B (zh) | 匹配对滤除方法、装置、电子设备与存储介质 | |
CN111508063A (zh) | 一种基于图像的三维重建方法及系统 | |
CN115147619B (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 | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20240920 |