三维重建对象的方法和设备与流程

文档序号:17955582发布日期:2019-06-19 00:25阅读:249来源:国知局
三维重建对象的方法和设备与流程

本发明一般地涉及三维成像领域。具体而言,本发明涉及一种能够准确地进行对象的三维重建的方法和设备。



背景技术:

近年来,随着三维成像技术的发展,涌现了很多相关的应用,如增强现实、数字博物馆、三维打印等等。三维成像技术的重要方面是三维重建技术。主流的三维重建方法基于一组深度图像来重建三维对象。

传统的三维重建方法主要关注于如何更加准确地对相机的参数进行估计,例如引入了变形信息用以估计相机的失真。但是,传统的三维重建方法,在计算全局TSDF(截断有向距离函数,Truncated Signed Distance Function)表征时,只是简单地对所有的局部TSDF表征进行算术平均,没有充分挖掘局部TSDF表征与全局TSDF表征之间的关系。由于仅依靠改进对相机参数的估计来提升三维重建的效果,所以传统的三维重建方法的效果改善有限,三维重建对象的准确度有待进一步提高。

因此,期望一种三维重建对象的方法和设备,其能够准确地进行对象的三维重建。



技术实现要素:

在下文中给出了关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。

本发明的目的是针对现有技术的上述问题,提出了一种侧重于挖掘局部TSDF表征与全局TSDF表征之间的关系的三维重建对象的方法和设备。

为了实现上述目的,根据本发明的一个方面,提供了一种对象的三维重建方法,该方法包括:获得三维空间中体素的初始局部截断有向距离函数TSDF值,每个初始局部TSDF值对应于多个深度图中的一个深度图;按对应的深度图,将初始局部TSDF值分组,至少一组初始局部TSDF值对应于不止一个深度图;针对每组初始局部TSDF值,得到该组的全局TSDF值;将所得到的各组的全局TSDF值作为初始局部TSDF值,求解最优化问题,以得到最终全局TSDF值;以及基于所得到的最终全局TSDF值,三维重建所述对象;其中,在所述最优化问题中,一个体素的全局TSDF值基于该体素的最终局部TSDF值得到,一个体素的最终局部TSDF值等于该体素经变换对应的体素的初始局部TSDF值,变量是体素的全局TSDF值和变换的参数,代价函数与下列因素相关:特定体素的全局TSDF值与该体素经变换对应的体素的初始局部TSDF值的差的平方的加权和,加权和的权重等于特定体素经变换对应的体素的对应组的权重。

根据本发明的另一个方面,提供了一种对象的三维重建设备,该设备包括:获得装置,被配置为:获得三维空间中体素的初始局部截断有向距离函数TSDF值,每个初始局部TSDF值对应于多个深度图中的一个深度图;分组装置,被配置为:按对应的深度图,将初始局部TSDF值分组,至少一组初始局部TSDF值对应于不止一个深度图;组全局TSDF值获取装置,被配置为:针对每组初始局部TSDF值,得到该组的全局TSDF值;求解装置,被配置为:将所得到的各组的全局TSDF值作为初始局部TSDF值,求解最优化问题,以得到最终全局TSDF值;以及重建装置,被配置为:基于所得到的最终全局TSDF值,三维重建所述对象;其中,在所述最优化问题中,一个体素的全局TSDF值基于该体素的最终局部TSDF值得到,一个体素的最终局部TSDF值等于该体素经变换对应的体素的初始局部TSDF值,变量是体素的全局TSDF值和变换的参数,代价函数与下列因素相关:特定体素的全局TSDF值与该体素经变换对应的体素的初始局部TSDF值的差的平方的加权和,加权和的权重等于特定体素经变换对应的体素的对应组的权重。

另外,根据本发明的另一方面,还提供了一种存储介质。所述存储介质包括机器可读的程序代码,当在信息处理设备上执行所述程序代码时,所述程序代码使得所述信息处理设备执行根据本发明的上述方法。

此外,根据本发明的再一方面,还提供了一种程序产品。所述程序产品包括机器可执行的指令,当在信息处理设备上执行所述指令时,所述指令使得所述信息处理设备执行根据本发明的上述方法。

附图说明

参照下面结合附图对本发明的实施例的说明,会更加容易地理解本发明的以上和其它目的、特点和优点。附图中的部件只是为了示出本发明的原理。在附图中,相同的或类似的技术特征或部件将采用相同或类似的附图标记来表示。附图中:

图1示出了根据本发明的实施例的三维重建对象方法的流程图;

图2示出了根据本发明的实施例的获得初始局部TSDF方法的流程图;

图3示出了根据本发明的实施例的计算初始局部TSDF方法的流程图;

图4示出了根据本发明的实施例的三维重建对象的设备的结构方框图;以及

图5示出了可用于实施根据本发明的实施例的方法和设备的计算机的示意性框图。

具体实施方式

在下文中将结合附图对本发明的示范性实施例进行详细描述。为了清楚和简明起见,在说明书中并未描述实际实施方式的所有特征。然而,应该了解,在开发任何这种实际实施方式的过程中必须做出很多特定于实施方式的决定,以便实现开发人员的具体目标,例如,符合与系统及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。

在此,还需要说明的一点是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其他细节。另外,还需要指出的是,在本发明的一个附图或一种实施方式中描述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。

下面将参照图1描述根据本发明的实施例的对象的三维重建方法的流程。

图1示出了根据本发明的实施例的三维重建对象方法的流程图。如图1所示,根据本发明的实施例的三维重建对象方法包括如下步骤:获得三维空间中体素的初始局部截断有向距离函数TSDF值,每个初始局部TSDF值对应于多个深度图中的一个深度图(步骤S1);按对应的深度图,将初始局部TSDF值分组,至少一组初始局部TSDF值对应于不止一个深度图(步骤S2);针对每组初始局部TSDF值,得到该组的全局TSDF值(步骤S3);将所得到的各组的全局TSDF值作为初始局部TSDF值,求解最优化问题,以得到最终全局TSDF值(步骤S4);以及基于所得到的最终全局TSDF值,三维重建所述对象(步骤S5);其中,在所述最优化问题中,一个体素的全局TSDF值基于该体素的最终局部TSDF值得到,一个体素的最终局部TSDF值等于该体素经变换对应的体素的初始局部TSDF值,变量是体素的全局TSDF值和变换的参数,代价函数与下列因素相关:特定体素的全局TSDF值与该体素经变换对应的体素的初始局部TSDF值的差的平方的加权和,加权和的权重等于特定体素经变换对应的体素的对应组的权重。

在步骤S1中,获得三维空间中体素的初始局部截断有向距离函数TSDF值,每个初始局部TSDF值对应于多个深度图中的一个深度图。

具体地说,三维空间被均匀地划分为若干体素,可以认为体素是三维空间的基本单元。由于基于一组深度图来重建三维对象,所以三维重建对象方法的输入是一组深度图。这组深度图是由多个相机拍摄得到的,每个相机对应于一个深度图。又由于输入不包括相机的参数,所以需要基于深度图来估计对应的相机的参数,并进而得到相关体素的初始局部TSDF值。

另外,此处应注意在本文中提到的“多个相机”包括处于不同的位置和朝向的物理上的多个相机的情况,也包括同一个相机通过调整位置和/或朝向而形成逻辑上的多个相机的情况,还包括上述两种情况混合的情况。

体素的初始局部TSDF值被定义为基于相机参数在三维空间计算出的体素相对于相机的深度与深度图中该体素对应位置的深度之间的有向距离经截断后的结果。将这样的TSDF值称为初始局部TSDF值。从以上定义可知,一个体素相对于一个相机可以计算出一个上述定义的有向距离,一个体素相对于多个相机可以计算出多个上述定义的有向距离,每个有向距离对应于一个相机。有向距离由于要经过截断操作,所以一个体素可能对应于一个或多个初始局部TSDF值,一个体素对应的初始局部TSDF值的上限是相机/深度图的个数。经截断后,有的体素会没有初始局部TSDF值,这样的体素不再被考虑。也即,在步骤S1中计算得到初始局部TSDF值的体素才会在后续的步骤S2、S3中继续处理。另外,从上述定义可知,每个初始局部TSDF值对应于多个相机中的一个相机,也即对应于多个深度图中的一个深度图。

由于在相机捕获深度图的时候,获取的是对象表面的信息,所以可以理解基于相机参数在三维空间计算出的体素相对于相机的深度是该体素与相机的成像点之间的距离在光轴方向上的投影,而深度图中该体素对应位置的深度是该体素与相机的成像点之间的光线所经过的对象表面上的点与相机的成像点之间的距离在光轴方向上的投影。由于该体素可能相对于对象表面上的该点距离相机更远或更近,所以距离在光轴方向上的投影之差为有向距离。距离在光轴方向上的投影为零,表明该体素与对象表面上的该点重合,也即该体素是对象表面上的点。

理论上,初始局部TSDF值等于零的所有体素构成了对象表面。但是,由于初始局部TSDF的值的计算依赖于相机参数的估计,相机参数的估计值与相机参数的实际值并不一定完全一致,所以初始局部TSDF值并不能直接用来重建三维对象的表面。一种可能的方法是对每个具有初始局部TSDF值的体素的所有初始局部TSDF值求算术平均值,将算术平均值作为该体素的全局TSDF值,然后基于该全局TSDF值和具有该值的体素来重建三维对象的表面。然而,这样产生的问题是固化了初始局部TSDF值与全局TSDF值之间的关系。

由于相机有多个,所以多个相机的参数估计的情况可能存在不同,因此,采用统一的方式将不同相机对应的初始局部TSDF值转换为全局TSDF值显然不够精确。所以本发明着力解决获得准确的全局TSDF值的问题。

另外,经过上述描述,可以理解,步骤S1可通过图2所示的方法实现,以获得初始局部TSDF值。

如图2所示,在步骤S21中,估计与多个深度图对应的多个相机中的每一个相机的相机参数,相机参数包括但不限于相机的位置和朝向。例如,可采用Kinect Fusion中使用的深度图与三维模型之间的匹配算法来进行相机参数估计。当然,可以采用本领域已知的所有适宜的相机参数估计方法实现步骤S21。

在步骤S22中,基于所估计的相机参数,计算体素的一个或多个初始局部TSDF值。

步骤S22可通过图3所示的方法实现。

如图3所示,针对待计算初始局部TSDF值的每一个体素和多个深度图对应的每一个相机,在步骤S31中,基于相机的所估计的相机参数,计算体素相对于该相机的第一深度值。在步骤S32中,确定该体素对应的、该相机关联的深度图中的第二深度值。在步骤S33中,将第一深度值与第二深度值的差值截断后的结果,作为该体素的与该相机对应的初始局部TSDF值。

应注意,计算体素的初始局部TSDF值时体素的范围是三维空间中的预定的估计能够完全涵盖对象的区域。由于初始局部TSDF的计算涉及截断操作,所以经截断后,具有初始局部TSDF值的体素的范围将进一步缩小。通过控制截断的阈值,可以将具有初始局部TSDF值的体素限定到对象的表面附近。截断的阈值举例来说可以是正负5厘米,也即初始局部TSDF值的取值范围可以是[-5,5]。

为了计算方便,还对初始局部TSDF值进行归一化。归一化的阈值即为截断的阈值。

截断保证了体素在对象的表面附近,从后续的说明中还将看出,体素经变换(刚性变换或非刚性变换)会对应于该体素本身或另一体素,为了保证变换前后的体素都处于对象的表面附近,将进一步对体素的初始局部TSDF值进行限制。

具体地,限定体素的初始局部TSDF值的绝对值小于或等于特定阈值α,该特定阈值α属于(0,1)。也就是说,[-α,α]的初始局部TSDF值的体素经变换会对应于其初始局部TSDF值在[-1,1]之间的体素。

此外,如果分别在每个相机关联的坐标系(例如以该相机为原点的坐标系)中计算初始局部TSDF值,则计算得到的体素的初始局部TSDF值对应于多个相机中的一个相机关联的坐标系。可将计算得到的体素的初始局部TSDF值转换到同一坐标系中。例如,将计算得到的体素的初始局部TSDF值转换到第一个相机关联的坐标系中。通过将初始局部TSDF值统一到一个坐标系,可以方便从初始局部TSDF值到最终局部TSDF值的变换以及进而求得全局TSDF值,能够降低计算量,并且能够得到全局最优解而非局部最优解。

当然,也可以直接在全局坐标系中计算体素相对于每个相机的初始局部TSDF值。采用此种方式的好处是可以避免将体素的初始局部TSDF值从各个相机关联的坐标系转换到同一坐标系时产生的精度损失。

本发明的一个重要手段在于对初始局部TSDF值进行分组,然后针对每个分组单独处理,再对各组的结果综合处理。通过这样的方式,可以应对具有很多初始局部TSDF值即数据量很大的情况。

在步骤S2中,按对应的深度图,将初始局部TSDF值分组,至少一组初始局部TSDF值对应于不止一个深度图。

如前所述,每个初始局部TSDF值对应于多个深度图中的一个深度图。因此,可以根据初始局部TSDF值对应于哪个深度图来将初始局部TSDF值分配到不同的组中。每个组可以包括对应于一个或多个深度图的初始局部TSDF值,但是至少有一组的初始局部TSDF值对应于不止一个深度图。对应于同一深度图的所有初始局部TSDF值仅在一个组中。

在步骤S3中,针对每组初始局部TSDF值,得到该组的全局TSDF值。

由于步骤S3所要实现的是从初始局部TSDF值到全局TSDF值的转变,所以与本发明要解决的从初始局部TSDF值到全局TSDF值的转变是完全相同的,只是处理的范围限定于各个分组。因此,步骤S3既可以利用传统的方法实现,也可以利用根据本发明的方法实现。

当采用传统的方法实现步骤S3时,针对每组初始局部TSDF值,计算对应于同一体素的初始局部TSDF值的算术平均值,作为对应于该体素的该组的全局TSDF值。例如,某组初始局部TSDF值对应于三个深度图,那么,该组中对应于体素A的初始局部TSDF值最多有三个A1、A2、A3,计算(A1+A2+A3)/3的值,作为该组的对应于体素A的全局TSDF值。

注意,由于按照对应的深度图将初始局部TSDF值分组,所以同一个体素可能在多个分组中都有对应的初始局部TSDF值,相应地,经过步骤S3,每组的全局TSDF值对应于多个体素,每个体素在多个组中都有可能有对应的全局TSDF值。后文中将介绍步骤S4中如何将步骤S3得到的初步结果进一步处理,以最终获得对体素唯一的最终全局TSDF值。

当采用根据本发明的优选方法实现步骤S3时,针对每组初始局部TSDF值,通过求解最优化问题,得到该组的全局TSDF值。

在跟后文对比时可以注意到,由于实现步骤S3时,处理的是分组内部的初始局部TSDF值,所以可以在最优化问题中不使用权重。而在后文中针对分组后的结果,为了消除分组可能引起的伪边等失真,优选在最优化问题中使用权重。

以下介绍如何通过设计和求解最优化问题来实现从初始局部TSDF值到全局TSDF值的转换。相关的思想同样适用于步骤S3和步骤S4。

如前所述,由于基于估计的相机参数来计算初始局部TSDF值,而不同的深度图对应的不同相机的估计的参数不一定完全准确并且不准确的情况不一定完全相同,所以不适宜以统一的方式对体素的所有初始局部TSDF值进行处理以得到体素的全局TSDF值。事实上,可以认为第一体素的初始局部TSDF值变换(刚性变换或非刚性变换的逆变换)到第二体素处,成为第二体素的最终局部TSDF值。第一体素与第二体素可以相同(零变换),也可以不同(非零变换)。前文中的特定阈值α限定了第二体素的初始局部TSDF的取值范围,从而保证了第二体素的最终局部TSDF值属于[-1,1]。

应注意,刚性变换针对同一相机进行。也就是说,同一相机对应的属于多个第一体素的多个初始局部TSDF值在这些第一体素经过同一个刚性变换的逆变换对应到多个第二体素的同时成为这些第二体素的对应于该相机的多个最终局部TSDF值。所谓刚性是指对应于同一相机的多个初始局部TSDF值经统一的旋转和/或平移变换从第一体素到达第二体素(TSDF值本身不变),这些值所关联的体素之间的相对位置关系在变换前后并没有发生变化。

应注意,非刚性变换针对体素进行。变换的主体是体素,变换的结果是建立了第一体素和第二体素的对应关系、以及第二体素的最终局部TSDF值等于对应的第一体素的初始局部TSDF值。也就是说,一个第一体素的一个初始局部TSDF值在该第一体素经过非刚性变换的逆变换对应到第二体素的同时成为该第二体素的最终局部TSDF值。非刚性是指每个第一体素到达第二体素所经历的变换是彼此独立的,与相机无关,对应于同一相机的多个初始局部TSDF值经各自的非刚性变换的逆变换从第一体素到达第二体素(TSDF值本身不变),这些值所关联的体素之间的相对位置关系在变换前后可以发生变化。相对于刚性变换,采用非刚性变换能够更细致地考虑针对同一相机的多个初始局部TSDF值相关的变换可能也是彼此不同的。因此,非刚性变换相对于刚性变换的好处是进一步提高了体素的最终TSDF值的准确率,进而提高了全局TSDF的准确度和三维重建对象的效果。

经过刚性变换/非刚性变换的修正,抵消了相机参数估计的误差,使得TSDF值与体素的对应关系更加准确。同时,从最终局部TSDF值得到全局TSDF值,就可以进而基于全局TSDF值重建三维对象。

根据本发明的优选实施例,采用设计和求解最优化问题的方式来实现从初始局部TSDF值到最终局部TSDF值涉及的刚性变换/非刚性变换以及从最终局部TSDF值到全局TSDF值的计算。

最优化问题的设计关键在于变量和代价函数的设计。

对于刚性变换来说,在最优化问题中,一个体素的全局TSDF值基于该体素的最终局部TSDF值得到,一个体素的最终局部TSDF值等于该体素经刚性变换对应的体素的初始局部TSDF值,变量是体素的全局TSDF值和刚性变换的参数,代价函数与下列因素相关:体素的全局TSDF值与该体素经刚性变换对应的体素的初始局部TSDF值的差的平方和。

代价函数例如可以设计为体素的全局TSDF值与该体素经刚性变换对应的体素的初始局部TSDF值的差的平方和的总和。前文中提到步骤S1获得初始局部TSDF值时,由于进行了截断、归一化,以及在一些实施例中利用阈值α进一步限定,导致只有部分体素具有初始局部TSDF值,后续步骤将针对这些体素进行。因此,代价函数可以设计为针对这些体素的每一个计算代价项,代价函数是代价项的总和,每个代价项是体素的全局TSDF值与该体素经刚性变换对应的体素的初始局部TSDF值的差的平方和,也即体素的全局TSDF值与该体素的最终局部TSDF值的差的平方和。

这里之所以设计为一个体素的全局TSDF值基于该体素的最终局部TSDF值得到,一个体素的最终局部TSDF值等于该体素经刚性变换对应的体素的初始局部TSDF值,而不是设计为一个体素的全局TSDF值基于该体素的初始局部TSDF值得到,是因为如果按照后者设计,则最优化问题的解会是一个体素的全局TSDF值等于该体素的初始局部TSDF值的算术/加权平均值。通过引入针对一个相机整体的仅涉及平移和旋转的刚性变换,增加了从初始局部TSDF值到最终局部TSDF值的转化,从而使得最优化问题的解更加准确,导致三维重建对象的结果更加准确。

设全局TSDF值为V、深度图个数为n,则各个深度图对应的初始局部TSDF值为V1、V2、……、Vn,各个深度图对应的最终局部TSDF值为V1’、V2’、……、Vn’,深度图的序号为i,i=1,2,……,n。对于V中的体素p,其在Vi′中的对应体素仍为p,而在Vi中的对应体素为Ti(p),其中Ti为优化问题中需要求解的刚性变换。

如前文所述,体素经截断、归一化而具有初始局部TSDF值,即要求Vi(p)的值位于[-1,1]区间。此处还需要求Vi(Ti(p))∈[-1,1]。由于Vi与Vi′之间不会进行剧烈的变换,也就是说,体素p与体素Ti(p)之间的距离不会很远,所以定义集合Pi:Pi={p|Vi(p)∈[-α,α]},使得能够保证Vi(Ti(p))∈[-1,1]。

也就是说,计算代价函数时,针对属于集合Pi的体素p计算代价项的总和,每个代价项是体素p在V中的全局TSDF值与体素p经刚性变换对应的Vi中的体素Ti(p)的初始局部TSDF值之差的平方和,平方求和是因为体素p可能具有多个最终局部TSDF值,从而对应有多个体素Ti(p)的初始局部TSDF值。

所以代价函数可以表示为:

求解最优化问题,也就是求解最小化上述代价函数的最终全局TSDF值和刚性变换参数的最优值。

此处体素的一个全局TSDF值是强调一个体素最终只具有一个全局TSDF值,而这样的体素的范围是集合Pi。

最优化问题可以通过迭代的高斯牛顿(Gauss-Newton)方法求解或者通过针对体素的全局TSDF值和刚性变换的参数分别计算来迭代求解。

但无论哪种求解方式,都涉及迭代,因此,需要设定迭代的初始值。

在最优化问题中,体素的全局TSDF值的初始值等于该体素的全部初始局部TSDF值的加权平均值。此处的加权一方面可以为算术平均,另一方面也可以根据相机与体素的距离计算权重。

刚性变换的参数的初始值使得该体素经刚性变换对应的体素是该体素本身。一个体素可能具有多个初始局部TSDF值,如果该体素经刚性变换对应到该体素本身,则这个体素的初始化的最终局部TSDF值也具有多个,每个对应于一个相机。

例如,刚性变换Ti(p)=Ri*p+ti,其中Ri是旋转矩阵,可初始化为单位阵,ti为平移向量,可初始化为零向量。

对于非刚性变换来说,在最优化问题中,一个体素的全局TSDF值基于该体素的最终局部TSDF值得到,一个体素的最终局部TSDF值等于该体素经非刚性变换对应的体素的初始局部TSDF值,变量是体素的全局TSDF值和非刚性变换的参数,代价函数与下列因素相关:特定体素的全局TSDF值与该体素经非刚性变换对应的体素的初始局部TSDF值的差的平方和、特定体素经历的非刚性变换的偏移度量的总和。

前文提到体素要符合特定阈值条件,即限定体素的初始局部TSDF值的绝对值小于或等于特定阈值α,该特定阈值α属于(0,1)。如果这样的体素不是太多,则可以基于全部这样体素设计代价函数,最优化问题可解。此时,特定体素是符合特定阈值条件的所有体素。如果这样的体素较多,则基于全部这样体素设计代价函数时,最优化问题可能会不能解。在这种情况下,可以通过对符合特定阈值条件的所有体素进行采样并基于采样体素设计代价函数来使得最优化问题可解。非采样体素的非刚性变换的参数可以根据采样体素的非刚性变换的参数确定。此时,特定体素是符合特定阈值条件的所有体素采样后得到的采样体素。在优选的实施例中,采样为均匀采样。

代价函数例如可以设计为与下列因素相关:特定体素的全局TSDF值与该体素经非刚性变换对应的体素的初始局部TSDF值的差的平方和(第一代价项)、特定体素经历的非刚性变换的偏移度量的总和(第二代价项)。

代价函数可以设计为第一代价项与第二代价项之和,其中第一代价项和第二代价项数值差别较大,可将第二代价项与平衡因子相乘后再与第一代价项求和。

第一代价项是特定体素的全局TSDF值与该体素经非刚性变换对应的体素的初始局部TSDF值的差的平方和,也即特定体素的全局TSDF值与该体素的最终局部TSDF值的差的平方和。这里的平方和中的求和包括两个层面的求和,一方面特定体素不唯一,多个特定体素的相关值需要求和,另一方面,每个特定体素都可能具有多个最终局部TSDF值,所以每个特定体素的相关值也需要求和。

第二代价项是特定体素经历的非刚性变换的偏移度量的总和。在第二体素经非刚性变换对应第一体素的情况下,上述偏移度量指的是第一体素相对于第二体素的偏移的模的平方。由于同一第二体素可能具有多个最终局部TSDF值,所以该第二体素可能经由多种非刚性变换对应于多个第一体素,此时该第二体素的多个最终局部TSDF值等于该多个第一体素的初始局部TSDF值。因此,相应地,偏移度量,即多个第一体素相对于第二体素的偏移,也存在多个,故而需要进行偏移度量的求和运算。并且,存在多个第二体素,所以还需要对多个第二体素的偏移度量进行求和。可见,特定体素经历的非刚性变换的偏移度量的总和是所有特定体素经历的所有非刚性变换的偏移度量的总和。如上文所述,特定体素是符合特定阈值条件的所有体素或者特定体素是符合特定阈值条件的所有体素采样后得到的采样体素。下文中将以采样体素为例,对代价项进行进一步说明。

另外,代价函数的目的是为了解最优化问题,当代价函数仅基于采样体素时,可以根据采样体素经历的非刚性变换的偏移得到非采样体素经历的非刚性变换的偏移。这样,代价函数仅基于采样体素从而最优化问题可解并且求解计算量减少求解速度快,同时仍能获得非采样体素的全局TSDF值。例如,非采样体素经历的非刚性变换的偏移可以根据采样体素经历的非刚性变换的偏移通过三维内插获得。在一个实施例中,非采样体素经历的非刚性变换的偏移根据与该非采样体素距离近的采样体素经历的非刚性变换的偏移通过三维内插获得。在另一个实施例中,非采样体素经历的非刚性变换的偏移根据与该非采样体素对应于同一相机的采样体素经历的非刚性变换的偏移通过三维内插获得。在又一个实施例中,非采样体素经历的非刚性变换的偏移根据与该非采样体素对应于同一相机的且与该非采样体素距离近的采样体素经历的非刚性变换的偏移通过三维内插获得。注意:三维内插偏移后得到的偏移量可能没有将特定体素对应于体素位置,而是对应于体素位置之间的亚体素位置。在这种情况下,可以通过将三维坐标四舍五入来从亚体素位置迁移到体素位置,从而将特定体素对应于体素位置处的体素。

这里之所以设计为一个体素的全局TSDF值基于该体素的最终局部TSDF值得到,一个体素的最终局部TSDF值等于该体素经非刚性变换对应的体素的初始局部TSDF值,而不是设计为一个体素的全局TSDF值基于该体素的初始局部TSDF值得到,是因为如果按照后者设计,则最优化问题的解会是一个体素的全局TSDF值等于该体素的初始局部TSDF值的算术/加权平均值。通过引入非刚性变换,增加了从初始局部TSDF值到最终局部TSDF值的转化,从而使得最优化问题的解更加准确,导致三维重建对象的结果更加准确。

下面结合公式进一步解释代价函数的设计。

设全局TSDF值为V、深度图个数为n,则各个深度图对应的初始局部TSDF值为V1、V2、……、Vn,各个深度图对应的最终局部TSDF值为V1’、V2’、……、Vn’,深度图的序号为i,i=1,2,……,n。对于V中的体素p,其在Vi′中的对应体素仍为p,而在Vi中的对应体素为Ci(p),其中Ci为优化问题中需要求解的非刚性变换。

定义采样体素的集合,记作Di={di,j},其中j=1,2,…,mi,mi为Vi中采样体素的总数。

将采样体素经历的非刚性变换定义为:Ci(di,j)=di,j+si,j,其中,si,j为采样体素映射结果(采样体素经非刚性变换对应的体素位置)与采样体素原始位置之间的位置变化向量,即偏移。而非采样体素的映射结果根据采样体素的偏移进行三维线性内插得到。以根据所有采样体素的非刚性变换的偏移计算采样体素的非刚性变换的偏移为例,其中wi,j(p)为线性内插系数,可以根据非采样体素p与采样体素之间的位置关系(如距离)求得。

如前文所述,体素经截断、归一化而具有初始局部TSDF值,即要求Vi(p)的值位于[-1,1]区间。此处还需要求Vi(Ci(p))∈[-1,1]。由于Vi与Vi′之间不会进行剧烈的变换,也就是说,体素p与体素Ci(p)之间的距离不会很远,所以定义集合Pi:Pi={p|Vi(p)∈[-α,α]},使得能够保证Vi(Ci(p))∈[-1,1]。

也就是说,计算代价函数时,针对属于集合Pi的体素p计算第一代价项和第二代价项的总和,每个第一代价项是体素p在V中的全局TSDF值与体素p经非刚性变换对应的Vi中的体素Ci(p)的初始局部TSDF值之差的平方和,平方求和是因为体素p可能具有多个最终局部TSDF值,从而对应有多个体素Ci(p)的初始局部TSDF值,并且体素p本身也存在多个。

所以代价函数的第一代价项的求和可以表示为:

本发明中引入代价函数的第二代价项,以保证Vi与Vi′之间不会进行剧烈的变换,同时也避免所有相关体素都映射到同一个点的极端情况。

代价函数的第二代价项的求和可以表示为:

综合上述两个方面的因素,定义待优化的代价函数为:

其中λ为前后两项的平衡因子。

求解最优化问题,也就是求解最小化上述代价函数的最终全局TSDF值和非刚性变换参数的最优值。

此处体素的一个全局TSDF值是强调一个体素最终只具有一个全局TSDF值,而这样的体素的范围是集合Pi。

最优化问题可以通过迭代的高斯牛顿(Gauss-Newton)方法求解或者通过针对体素的全局TSDF值和刚性变换的参数分别计算来迭代求解。

但无论哪种求解方式,都涉及迭代,因此,需要设定迭代的初始值。

在最优化问题中,体素的全局TSDF值的初始值等于该体素的全部初始局部TSDF值的加权平均值。此处的加权一方面可以为算术平均,另一方面也可以根据相机与体素的距离计算权重。

体素的非刚性变换的参数的初始值使得该体素经非刚性变换对应的体素是该体素本身。一个体素可能具有多个初始局部TSDF值,如果该体素经非刚性变换对应到该体素本身,则这个体素的初始化的最终局部TSDF值也具有多个,每个对应于一个相机。

以上介绍了刚性变换和非刚性变换情况下,设计和求解最优化问题的方法。通过上述方法,可以以解最优化问题的方式实现步骤S3。

在步骤S4中,将所得到的各组的全局TSDF值作为初始局部TSDF值,求解最优化问题,以得到最终全局TSDF值。

也就是说,将所得到的各组的全局TSDF值作为初始局部TSDF值,再次进行从初始局部TSDF值到最终全局TSDF值的转换。只不过,在步骤S4中,只能采用求解最优化问题的方式。求解最优化问题的具体方法与上面针对刚性变换和非刚性变换两种情况进行的说明一致,不再赘述。

此处介绍步骤S4的一种优选实施方式。

由于之前进行了分组,所以这种人为的分割可能会导致最终三维重建的对象表面存在伪边,伪边是由于分组导致的。因此,在优选实施方式中,引入权重来克服由于分组而产生的伪边问题。

具体地,在最优化问题中,仍然是:一个体素的全局TSDF值基于该体素的最终局部TSDF值得到,一个体素的最终局部TSDF值等于该体素经变换对应的体素的初始局部TSDF值,变量是体素的全局TSDF值和变换的参数。与之前说明的最优化问题不同的是,在优选实施方式中,代价函数与下列因素相关:特定体素的全局TSDF值与该体素经变换对应的体素的初始局部TSDF值的差的平方的加权和,加权和的权重等于特定体素经变换对应的体素的对应组的权重。

应注意,在下文中出现的字母标记,除非特别指明,与之前说明的刚性变换和非刚性变换情况的最优化问题中的含义相同,如有特别指明之处,以此处指明的为准。

前面的刚性变换情况下的代价函数可以表示为:

在优选实施方式中,刚性变换情况下的代价函数可以表示为:

前面的非刚性变换情况下的代价函数可以表示为:

在优选实施方式中,非刚性变换情况下的代价函数可以表示为:

E=Ec+λEr,此处刚性变换和非刚性变换统一写作:Ti(p)。对于刚性变换来说,Er=0。

设全局TSDF值为V、按照对应的深度图将初始局部TSDF值划分为n组,即V1,V2,…,Vn,各初始局部TSDF值对应的体素的权重为W1,W2,…,Wn,变换后最终局部TSDF值为V1′,V2′,…,Vn′。组序号为i,i=1,2,……,n。对于V中的体素p,其在Vi′中的对应体素仍为p,而在Vi中的对应体素为Ti(p)(刚性变换或非刚性变换),其中Ti为优化问题中需要求解的变换。

可见,主要的修改是引入了权重Wi(Ti(p))。权重随着迭代过程而变化。特定体素p的权重等于特定体素经变换对应的体素Ti(p)的对应组的权重,而对应的体素的对应组的权重即为上述W1,W2,…,Wn,一个体素的权重(W1,W2,…,Wn)取决于组,同一体素对应于不同组具有不同的权重,对应于同一组的不同体素具有相同的权重。特定体素的权重等于该特定体素在该组中经变换对应的体素的初始局部TSDF值的个数。在如此计算权重的情况下,可以认为权重等于该特定体素在该组中经变换对应的体素的对应于深度图的权重之和,该特定体素在该组中经变换对应的体素的对应于深度图的权重在该特定体素在该组中经变换对应的体素对应于深度图有初始局部TSDF值时等于1,否则等于0。可替换地,特定体素的权重等于该特定体素在该组中经变换对应的体素的对应于深度图的权重之和,该特定体素在该组中经变换对应的体素的对应于深度图的权重与该特定体素在该组中经变换对应的体素相对于该深度图对应相机的深度值相关。例如,该特定体素在该组中经变换对应的体素相对于深度图对应相机的深度值越大,该特定体素在该组中经变换对应的体素的对应于该深度图的权重越小。再比如,该特定体素在该组中经变换对应的体素的对应于深度图的权重反比于该特定体素在该组中经变换对应的体素相对于该深度图对应相机的深度值。

在一个优选的实施例中,可以采用如下方式简化计算:在第(k+1)轮迭代过程中,使用代替将待优化的代价函数简化为:

此时待优化的代价函数为非线性最小二乘的形式,可以通过高斯牛顿(Gauss-Newton)方法求解。

在某些情况下,可能初始局部TSDF值过多,以至于经过一次分组操作不足以有效地降低数据量,此时可以在步骤S4中再次分组。

将所得到的各组的全局TSDF值作为初始局部TSDF值,按对应的深度图再次分组,至少一组初始局部TSDF值对应于不止一个首次分组对应的深度图;针对每组初始局部TSDF值,得到该组的全局TSDF值;将所得到的各组的全局TSDF值作为初始局部TSDF值,求解最优化问题,以得到最终全局TSDF值。

在步骤S4中获得属于集合Pi的所有体素p的最终全局TSDF值之后,就可以基于此重建对象了。

在步骤S5中,基于所得到的最终全局TSDF值,三维重建所述对象。

例如,可利用移动立方体(marching cube)算法,基于所得到的最终全局TSDF值,三维重建所述对象的表面。移动立方体算法为本领域已知的算法,在此不再赘述。

下面,将参照图4描述根据本发明的实施例的三维重建对象的设备。

图4示出了根据本发明的实施例的三维重建对象的设备的结构方框图。如图4所示,根据本发明的三维重建对象设备400包括:获得装置41,被配置为:获得三维空间中体素的初始局部截断有向距离函数TSDF值,每个初始局部TSDF值对应于多个深度图中的一个深度图;分组装置42,被配置为:按对应的深度图,将初始局部TSDF值分组,至少一组初始局部TSDF值对应于不止一个深度图;组全局TSDF值获取装置43,被配置为:针对每组初始局部TSDF值,得到该组的全局TSDF值;求解装置44,被配置为:将所得到的各组的全局TSDF值作为初始局部TSDF值,求解最优化问题,以得到最终全局TSDF值;以及重建装置45,被配置为:基于所得到的最终全局TSDF值,三维重建所述对象;其中,在所述最优化问题中,一个体素的全局TSDF值基于该体素的最终局部TSDF值得到,一个体素的最终局部TSDF值等于该体素经变换对应的体素的初始局部TSDF值,变量是体素的全局TSDF值和变换的参数,代价函数与下列因素相关:特定体素的全局TSDF值与该体素经变换对应的体素的初始局部TSDF值的差的平方的加权和,加权和的权重等于特定体素经变换对应的体素的对应组的权重。

在一个实施例中,所述变换包括刚性变换。

在一个实施例中,所述变换包括非刚性变换,代价函数还与下列因素相关:特定体素经历的非刚性变换的偏移度量的总和。

在一个实施例中,所述组全局TSDF值获取装置43被进一步配置为:针对每组初始局部TSDF值,通过求解最优化问题,来得到该组的全局TSDF值。

在一个实施例中,所述组全局TSDF值获取装置43被进一步配置为:针对每组初始局部TSDF值,计算对应于同一体素的初始局部TSDF值的算术平均值,作为对应于该体素的该组的全局TSDF值。

在一个实施例中,所述求解装置44被进一步配置为:将所得到的各组的全局TSDF值作为初始局部TSDF值,按对应的深度图再次分组,至少一组初始局部TSDF值对应于不止一个首次分组对应的深度图;针对每组初始局部TSDF值,得到该组的全局TSDF值;将所得到的各组的全局TSDF值作为初始局部TSDF值,求解最优化问题,以得到最终全局TSDF值。

在一个实施例中,在所述最优化问题中,每个特定体素初始具有特定于组的权重,权重等于该特定体素在该组中经变换对应的体素的初始局部TSDF值的个数或者权重等于该特定体素在该组中经变换对应的体素的对应于深度图的权重之和,该特定体素在该组中经变换对应的体素的对应于深度图的权重与该特定体素在该组中经变换对应的体素相对于该深度图对应相机的深度值相关。

在一个实施例中,所述获得装置41还包括:归一化单元,被配置为:将计算得到的体素的初始局部TSDF值归一化。

在一个实施例中,体素的初始局部TSDF值的绝对值小于或等于特定阈值,该特定阈值属于(0,1)。

在一个实施例中,特定体素是符合特定阈值条件的所有体素。

在一个实施例中,特定体素是符合特定阈值条件的所有体素采样后得到的采样体素。

由于在根据本发明的三维重建对象设备400中所包括的各个装置、单元中的处理分别与上面描述的三维重建对象方法中所包括的各个步骤中的处理类似,因此为了简洁起见,在此省略这些装置、单元的详细描述。

此外,这里尚需指出的是,上述设备中各个组成装置、单元可以通过软件、固件、硬件或其组合的方式进行配置。配置可使用的具体手段或方式为本领域技术人员所熟知,在此不再赘述。在通过软件或固件实现的情况下,从存储介质或网络向具有专用硬件结构的计算机(例如图5所示的通用计算机500)安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等。

图5示出了可用于实施根据本发明的实施例的方法和设备的计算机的示意性框图。

在图5中,中央处理单元(CPU)501根据只读存储器(ROM)502中存储的程序或从存储部分508加载到随机存取存储器(RAM)503的程序执行各种处理。在RAM 503中,还根据需要存储当CPU 501执行各种处理等等时所需的数据。CPU 501、ROM 502和RAM 503经由总线504彼此连接。输入/输出接口505也连接到总线504。

下述部件连接到输入/输出接口505:输入部分506(包括键盘、鼠标等等)、输出部分507(包括显示器,比如阴极射线管(CRT)、液晶显示器(LCD)等,和扬声器等)、存储部分508(包括硬盘等)、通信部分509(包括网络接口卡比如LAN卡、调制解调器等)。通信部分509经由网络比如因特网执行通信处理。根据需要,驱动器510也可连接到输入/输出接口505。可拆卸介质511比如磁盘、光盘、磁光盘、半导体存储器等等可以根据需要被安装在驱动器510上,使得从中读出的计算机程序根据需要被安装到存储部分508中。

在通过软件实现上述系列处理的情况下,从网络比如因特网或存储介质比如可拆卸介质511安装构成软件的程序。

本领域的技术人员应当理解,这种存储介质不局限于图5所示的其中存储有程序、与设备相分离地分发以向用户提供程序的可拆卸介质511。可拆卸介质511的例子包含磁盘(包含软盘(注册商标))、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD)(注册商标))和半导体存储器。或者,存储介质可以是ROM 502、存储部分508中包含的硬盘等等,其中存有程序,并且与包含它们的设备一起被分发给用户。

本发明还提出一种存储有机器可读取的指令代码的程序产品。所述指令代码由机器读取并执行时,可执行上述根据本发明的实施例的方法。

相应地,用于承载上述存储有机器可读取的指令代码的程序产品的存储介质也包括在本发明的公开中。所述存储介质包括但不限于软盘、光盘、磁光盘、存储卡、存储棒等等。

在上面对本发明具体实施例的描述中,针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。

应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。

此外,本发明的方法不限于按照说明书中描述的时间顺序来执行,也可以按照其他的时间顺序地、并行地或独立地执行。因此,本说明书中描述的方法的执行顺序不对本发明的技术范围构成限制。

尽管上面已经通过对本发明的具体实施例的描述对本发明进行了披露,但是,应该理解,上述的所有实施例和示例均是示例性的,而非限制性的。本领域的技术人员可在所附权利要求的精神和范围内设计对本发明的各种修改、改进或者等同物。这些修改、改进或者等同物也应当被认为包括在本发明的保护范围内。

附记

1.一种对象的三维重建方法,包括:

获得三维空间中体素的初始局部截断有向距离函数TSDF值,每个初始局部TSDF值对应于多个深度图中的一个深度图;

按对应的深度图,将初始局部TSDF值分组,至少一组初始局部TSDF值对应于不止一个深度图;

针对每组初始局部TSDF值,得到该组的全局TSDF值;

将所得到的各组的全局TSDF值作为初始局部TSDF值,求解最优化问题,以得到最终全局TSDF值;以及

基于所得到的最终全局TSDF值,三维重建所述对象;

其中,在所述最优化问题中,一个体素的全局TSDF值基于该体素的最终局部TSDF值得到,一个体素的最终局部TSDF值等于该体素经变换对应的体素的初始局部TSDF值,变量是体素的全局TSDF值和变换的参数,代价函数与下列因素相关:特定体素的全局TSDF值与该体素经变换对应的体素的初始局部TSDF值的差的平方的加权和,加权和的权重等于特定体素经变换对应的体素的对应组的权重。

2.如附记1所述的方法,其中,所述变换包括刚性变换。

3.如附记1所述的方法,其中,所述变换包括非刚性变换,代价函数还与下列因素相关:特定体素经历的非刚性变换的偏移度量的总和。

4.如附记1所述的方法,其中,针对每组初始局部TSDF值,得到该组的全局TSDF值包括:针对每组初始局部TSDF值,通过求解最优化问题,得到该组的全局TSDF值。

5.如附记1所述的方法,其中,针对每组初始局部TSDF值,得到该组的全局TSDF值包括:针对每组初始局部TSDF值,计算对应于同一体素的初始局部TSDF值的算术平均值,作为对应于该体素的该组的全局TSDF值。

6.如附记1所述的方法,其中,所述将所得到的各组的全局TSDF值作为初始局部TSDF值,求解最优化问题,以得到最终全局TSDF值包括:

将所得到的各组的全局TSDF值作为初始局部TSDF值,按对应的深度图再次分组,至少一组初始局部TSDF值对应于不止一个首次分组对应的深度图;

针对每组初始局部TSDF值,得到该组的全局TSDF值;

将所得到的各组的全局TSDF值作为初始局部TSDF值,求解最优化问题,以得到最终全局TSDF值。

7.如附记1所述的方法,其中,在所述最优化问题中,每个特定体素初始具有特定于组的权重,权重等于该特定体素在该组中经变换对应的体素的初始局部TSDF值的个数或者权重等于该特定体素在该组中经变换对应的体素的对应于深度图的权重之和,该特定体素在该组中经变换对应的体素的对应于深度图的权重与该特定体素在该组中经变换对应的体素相对于该深度图对应相机的深度值相关。

8.如附记1所述的方法,其中,获得三维空间中体素的初始局部截断有向距离函数TSDF值包括:

将计算得到的体素的初始局部TSDF值归一化。

9.如附记8所述的方法,其中,体素的初始局部TSDF值的绝对值小于或等于特定阈值,该特定阈值属于(0,1)。

10.如附记9所述的方法,其中,特定体素是符合特定阈值条件的所有体素采样后得到的采样体素。

11.一种对象的三维重建设备,包括:

获得装置,被配置为:获得三维空间中体素的初始局部截断有向距离函数TSDF值,每个初始局部TSDF值对应于多个深度图中的一个深度图;

分组装置,被配置为:按对应的深度图,将初始局部TSDF值分组,至少一组初始局部TSDF值对应于不止一个深度图;

组全局TSDF值获取装置,被配置为:针对每组初始局部TSDF值,得到该组的全局TSDF值;

求解装置,被配置为:将所得到的各组的全局TSDF值作为初始局部TSDF值,求解最优化问题,以得到最终全局TSDF值;以及

重建装置,被配置为:基于所得到的最终全局TSDF值,三维重建所述对象;

其中,在所述最优化问题中,一个体素的全局TSDF值基于该体素的最终局部TSDF值得到,一个体素的最终局部TSDF值等于该体素经变换对应的体素的初始局部TSDF值,变量是体素的全局TSDF值和变换的参数,代价函数与下列因素相关:特定体素的全局TSDF值与该体素经变换对应的体素的初始局部TSDF值的差的平方的加权和,加权和的权重等于特定体素经变换对应的体素的对应组的权重。

12.如附记11所述的设备,其中,所述变换包括刚性变换。

13.如附记11所述的设备,其中,所述变换包括非刚性变换,代价函数还与下列因素相关:特定体素经历的非刚性变换的偏移度量的总和。

14.如附记11所述的设备,其中,所述组全局TSDF值获取装置被进一步配置为:针对每组初始局部TSDF值,通过求解最优化问题,得到该组的全局TSDF值。

15.如附记11所述的设备,其中,所述组全局TSDF值获取装置被进一步配置为:针对每组初始局部TSDF值,计算对应于同一体素的初始局部TSDF值的算术平均值,作为对应于该体素的该组的全局TSDF值。

16.如附记11所述的设备,其中,所述求解装置被进一步配置为:

将所得到的各组的全局TSDF值作为初始局部TSDF值,按对应的深度图再次分组,至少一组初始局部TSDF值对应于不止一个首次分组对应的深度图;

针对每组初始局部TSDF值,得到该组的全局TSDF值;

将所得到的各组的全局TSDF值作为初始局部TSDF值,求解最优化问题,以得到最终全局TSDF值。

17.如附记11所述的设备,其中,在所述最优化问题中,每个特定体素初始具有特定于组的权重,权重等于该特定体素在该组中经变换对应的体素的初始局部TSDF值的个数或者权重等于该特定体素在该组中经变换对应的体素的对应于深度图的权重之和,该特定体素在该组中经变换对应的体素的对应于深度图的权重与该特定体素在该组中经变换对应的体素相对于该深度图对应相机的深度值相关。

18.如附记11所述的设备,其中,所述获得装置还包括:归一化单元,被配置为:将计算得到的体素的初始局部TSDF值归一化。

19.如附记18所述的设备,其中,体素的初始局部TSDF值的绝对值小于或等于特定阈值,该特定阈值属于(0,1)。

20.如附记19所述的设备,其中,特定体素是符合特定阈值条件的所有体素采样后得到的采样体素。

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