Truncated Signed Distance Function_Experiments on Voxel Size

摘要

  实时三维重建是当前研究的热门话题。几种流行的方法基于截断的带符号距离函数(TSDF),这是一种体积场景表示,允许对从不同视点获取的多个深度图像进行集成。为了更深入地了解TSDF,我们讨论了它的参数,对体素大小对重建精度的影响进行了实验,并得出了实用的建议。

1 介绍

  实时精确的3D重建在娱乐,虚拟现实,增强现实和机器人技术方面有很多应用。微软低成本RGB-D相机Kinect[5]的推出使每个人都可以使用3D感应技术。因此,它也促了3D重建及其应用的研究和商业活动。几种流行且广泛使用的方法,如KinectFusion[4,6],Kintinious[11,10],点云库(PCL)[12]或KinFu Large Scale[1]中KinectFusion的开源实现基于截断的有符号距离函数(TSDF)。
  TSDF是用于整合具有若干益处的深度图像的场景的体积表示,例如,时间和空间的效率,不确定性的表示或增量更新[2]。它也非常适用于数据并行算法,即用于GPU上的实现。所获得的加速促进了高帧率的实时处理。
  已经对孔填充进行了一些研究以产生更自然的重建,这部分是使用TSDF方法自动完成的[2],并且可以以节能的方式完成[7]。然而,就我们的知识而言,没有仔细研究具有多个对象的场景以及关于对象大小和分辨率的其他重要问题。例如:到哪一点,一个真正的洞被重建成一个洞?与摄像机位置和方向相比:重建是否受到距离或角度的影响?从特定方向看到的物体的左边界或右边界是否存在问题?世界网格中使用的体素大小对重建有何影响?
  在本文中,我们分析了距离,物体大小和角度对相机观察方向的影响。我们将结合几种世界网格体素大小来看。
  此篇文章的结构如下。第2节详细描述了TSDF。显示了在感测环境之后如何从深度图生成该函数以及如何在给定TSDF的情况下计算3D重建。第3节描述了为改进结果而需要考虑的参数和算法选项。在第4节中,我们描述了实验并讨论了我们的结果。第5节总结了本文。

2 TSDF

  符号距离函数(SDF)被提出用于从多个深度图像重构三维模型[2]。d维环境表示为具有相同大小的体素的d维网格。体素x的位置由其中心定义。对于每个体素,有两个相关值。首先, s d f i ( x ) sdf_i(x) sdfi(x)是体素中心与当前测量方向上最近的物体表面之间的符号距离。在对象(自由空间)前面,值被定义为正数。在表面后面(在物体内)距离是负的。其次,每个体素都有一个权重 w i ( x ) w_i(x) wi(x)来评估相应 s d f i ( x ) sdf_i(x) sdfi(x)的不确定性。下标i表示第i个观察。图1a和下面的等式精确地定义了 s d f i ( x ) sdf_i(x) sdfi(x)

s d f i ( x ) = d e p t h i ( p i c ( x ) ) − c a m z ( x ) ( 1 ) sdf_i(x) = depth_i(pic(x)) - cam_z(x) \qquad(1) sdfi(x)=depthi(pic(x))camz(x)(1)

p i c ( x ) pic(x) pic(x)是体素中心x在深度图像上的投影。因此, d e p t h i ( p i c ( x ) ) depth_i(pic(x)) depthi(pic(x))是摄像机与观察光线交叉x上最近的物体表面点p之间的测量深度。因此, c a m z ( x ) cam_z(x) camz(x)是体素和相机之间沿光轴的距离。因此, s d f i ( x ) sdf_i(x) sdfi(x)也是沿光轴的距离。
图1
图1. 2D TSDF示例。(a)固体物体(绿色),具有视野的摄像机,光轴和光线(蓝色),以及TSDF网格(看不见的体素是白色的,其他看颜色条)。体素x的带符号距离值由对应表面点p的深度和体素的相机距离 c a m z ( x ) cam_z(x) camz(x)确定。(b)1D TSDF沿光线通过p采样,t=1000 mm。物体表面处于零交叉。
  在[4,6]中,SDF被截断为±t。这是有益的,因为大的距离值与表面重建无关,并且可以利用值范围的限制来占用内存。 s d f i ( x ) sdf_i(x) sdfi(x)的截断变体由 t s d f i ( x ) tsdf_i(x) tsdfi(x)表示。

t s d f i ( x ) = m a x ( − 1 , m i n ( 1 , s d f i ( z ) t ) ) ( 2 ) tsdf_i(x) = max(-1, min(1, \frac{sdf_i(z)}{t})) \qquad(2) tsdfi(x)=max(1,min(1,tsdfi(z)))(2)

在图1a中,体素网格的 t s d f i ( x ) tsdf_i(x) tsdfi(x)由颜色编码。图1b显示了沿观察射线采样的TSDF。
  如上所述,可以在一个TSDF中组合多个观测值,以整合来自不同视点的信息,以提高准确度或添加表面缺失的斑块。这通过加权求和来完成,通常通过TSDF的迭代更新。 T S D F i ( x ) TSDF_i(x) TSDFi(x)表示 1 ≤ j ≤ i 1≤j≤i 1ji的所有观测值 t s d f j ( x ) tsdf_j(x) tsdfj(x)的集成。 W i ( x ) W_i(x) Wi(x)评估 T S D F i ( x ) TSDF_i(x) TSDFi(x)的不确定性。通过对网格中的所有体素x应用以下更新步骤来集成新观察。用 T S D F 0 ( x ) = 0 TSDF_0(x)=0 TSDF0(x)=0 W 0 ( x ) = 0 W_0(x)=0 W0(x)=0初始化网格。

T S D F i ( x ) = W i − 1 ( x ) T S D F i − 1 ( x ) + w i ( x ) t s d f i ( x ) W i − 1 ( x ) + w i ( x ) ( 3 ) TSDF_i(x) = \frac{W_{i-1}(x)TSDF_{i-1}(x) + w_i(x)tsdf_i(x)}{W_{i-1}(x) + w_i(x)} \qquad(3) TSDFi(x)=Wi1(x)+wi(x)Wi1(x)TSDFi1(x)+wi(x)tsdfi(x)(3)
W i ( x ) = W i − 1 ( x ) + w i ( x ) ( 4 ) W_i(x) = W_{i-1}(x) + w_i(x) \qquad(4) Wi(x)=Wi1(x)+wi(x)(4)

对于所有更新的体素,大多数方法将不确定性权重设置为 w i ( x ) = 1 w_i(x)=1 wi(x)=1,并且对于摄像机视野外的所有体素,将不确定性权重设置为 w i ( x ) = 0 w_i(x)=0 wi(x)=0[4,6,12,9]。这简单地平均了测量的TSDF观测值随时间的变化。
  对于表面重建,人们可以将TSDF视为水平集。要找到对象表面,您需要查找零级别。这通常通过从给定摄像机视角进行光线投射来完成。对于每个考虑的光线,逐步读取TSDF,直到有符号切换。然后对周围TSDF值的信息进行插值以估计沿着射线的零交叉的重新确定的点。该点作为对象表面点返回。

3 参数和算法选择

  TSDF表示需要选择几个参数。
  网格体积大小决定了TSDF网格的尺寸,即,要在像mm这样的物理单位中重建的场景的最大尺寸。在实践中,它受GPU上可用的随机存取存储器的限制。然而,之前的一些工作建议通过在摄像机的视野离开网格[11,10,1,8]时移动TSDF网格来克服这种限制。在恒定的存储器占用空间中,网格尺寸随着体素尺寸的增加而增加,但是以重建精度为代价。
  体素尺寸v是一个关键参数,因为它会影响记忆要求和表面重建精度。如果固定3D网格的尺寸,则加倍体素尺寸意味着将体素数量减少到八分之一。这与内存占用量的减少相关。此外,它降低了更新TSDF和光线跟踪的计算成本。相反,增加的体素尺寸有助于增加场景体积而不需要更多存储器或增加计算成本。然而,体素大小的增加伴随着可表示细节水平的降低。降低了重建精度。因此,值得考虑特定应用的最佳体素大小。在第4章我们进行实验以评估该参数对精度的影响。
  距离表示和截断距离t,即,距离值的编码 T S D F i ( x ) TSDF_i(x) TSDFi(x)对于重建精度至关重要。直观地说,应该有尽可能多的量化步骤,以最小化由舍入引起的信息损失并保持 T S D F i ( x ) TSDF_i(x) TSDFi(x)的准确性。特别地,这在零水平附近是重要的,因为 T S D F i ( x ) TSDF_i(x) TSDFi(x)的0值用于表面估计。所以浮点数是合适的。就内存占用而言,每个体素使用两个字节的整数是有益的,如PCL的实现[12]。但是,这里选择的t影响了重建精度。两字节整数具有65536个量化步长来表示距离,即-32768和32767之间的整数值。使用固定点数编码和给定截断距离t,范围±t中的有符号距离映射到±32767。因此,有符号距离的量化步长为 t 32767 \frac{t}{32767} 32767t,即量化误差与t成正比,较低的t应该更好。例如,当t=1000mm时,编码每个距离约为0.03mm的倍数,而对于t=10mm,它将舍入到0.0003mm的倍数。另一方面,t应大于长度d·v和噪声水平。对体素对角线参数的详细分析超出了范围,但将在未来的工作中得到解决。
  在参数旁边有一些变异的算法选项。
  TSDF更新,即在一个TSDF中集成多个观测值可以以不同的方式完成。上面,我们介绍了经典的等加权和更新。最近,[3]提出基于测量的不确定性为每个体素单独选择 w i ( x ) w_i(x) wi(x)。作者模型 w i ( x ) w_i(x) wi(x)取决于相应的深度值,因为使用的Kinect传感器提供的深度估计在近距离内更准确。他们进一步提出了两种修改更新方法,并评估了它们对模型重建精度的好处。他们的TSDF更新变体(其考虑了传感硬件的特性)优于所提出的实验中的经典更新步骤。
  表面重建通过射线追踪完成。您从光线上的一个点开始尽可能接近相机,但是在TSDF体积中。从这里你可以选择一个单独选择的步长到下一个光点,依此类推。您必须决定是否查看与光线点相关的体素x的值 t s d f i ( x ) tsdf_i(x) tsdfi(x),或者是否从周围的体素中插入TSDF值。您还必须决定插值方法。在PCL[12]和[4]等其他作品中,使用了三线性插值。在从正位置到负位置的两个射线点之间检测到零交叉后,您可以通过所选插值计算表面点。您还可以决定是否在计算一个曲面点后停止光线跟踪,以仅重建从相机看到的曲面点。

4 实验和讨论

  在本节中,我们进行了几个旨在更深入理解TSDF的实验,即在网格中空间离散化对重建精度的影响。为了关注这些影响,我们创建了合成的深度图,它不受噪声或其他测量误差的影响。合成数据的另一个优点是可以获得完美的真实值。出于简单说明的目的,使用2D TSDF网格进行实验,即我们有一维深度图和二维表面。所有的实验都证明了测量深度的结果。多个深度图的集成超出了范围,将在未来的工作中得到解决。我们将重建精度分解为两个组件,并在专门的实验中进行调查。

4.1 深度误差

  在该实验中,我们计算合成深度图的每个像素的深度误差 e d e_d ed和从TSDF重建的相应深度。合成深度图包含垂直于光轴的平面物体表面(见图2a)。我们将物体放置在摄像机位置前方800毫米处,并以0.1毫米的步长从该位置移动直到3100毫米的距离。摄像机如图1a所示放置,光轴穿过TSDF网格的中间并与其中一个轴对齐。在所有实验中,世界网格的大小固定为4096毫米宽度和高度。
图2
图2.深度实验。(a)平面物体及其变化。(b)不同体素尺寸的绝对深度误差:标准偏差(红色),最大值和最小值(蓝色),t = 255 mm。
  图2b示出了对于几个体素尺寸v的测试视野的绝对深度误差的平均值,标准偏差,最小值和最大值。很明显,绝对深度误差随着体素尺寸而增加。但是,平均误差增加的速度慢于体素大小。而对于v=2mm(1.9%),平均误差为0.04mm,对于v=128mm(0.7%),平均误差为0.97mm。最大和最小误差有类似的效果。
  此外,观察误差的空间分布可以观察到最严重的误差发生在视野的边界上(见图3a),而物体距离似乎对重建精度没有影响。为了研究网格轴和光线之间角度的影响,我们计算沿每条观察光线的绝对误差的平均值。结果如图3b所示。这里显而易见的是,在视野的边界上误差至少大两个数量级,并且v越高越好。边界处的高误差是由三线性插值引起的人为误差。我们用于实验的KinectFusion的PCL实现[12]没有注意到插入中涉及的一些TSDF体素x可能是看不见的这一事实。对于这些体素, t s d f i ( x ) = 0 tsdf_i(x)=0 tsdfi(x)=0来自初始化。没有感知这些体素,因此你不能指望在那里有一个表面,对于看到的具有TSDF值为0的体素x都是如此。随着体素尺寸的增加,这个误差变得明显,因为更多的重建3D点是受此问题的影响,因为插值的影响是一个体素大小。
图3
图3.角度深度误差。(a)跨越TSDF体积的ed图,体素尺寸v为64mm。(b)不同体素大小的光线平均误差v。

4.2 横向误差

  通过该实验,我们研究了体素尺寸v与垂直于光学相机轴的平面物体的长度l的比率如何影响重建精度。 物体在1280毫米至1536毫米的相机距离内移动,其中4个体素的尺寸为64毫米。我们选择了在水平方向上8毫米的步长。物体边界位于观察区域内,距离边界128mm。对于为该实验生成的相同长度的所有物体,我们计算平均值并查看深度误差 d e d_e de和长度 f p fp fp f n fn fn c o r cor cor,它们是被错误地重建,错误地不重建和正确重建的重建对象的长度,以真实物体长度的百分比表示。
  在图4中,您可以断言所有这些长度与 e d e_d ed一起明显受到l和v的比率的影响。同样显而易见的是,对象的平均重建面积太小。
图4
图4.横向深度误差。(a)错误重建的平均长度(fp),错误地不重建(fn)和正确重建(cor)对象的真实物体长度的百分比。(b)与真实物体长度l和体素大小v的比率相关的平均深度误差。体素尺寸v为64毫米。

5 结论

  在本文中,我们详细介绍了TSDF以及参数和算法选项。我们发现,对于PCL的实现,深度误差在4到64mm的体素尺寸上是相同的。由于插值效应,在观察场的边界处误差大2个量级。对于横向误差,物体长度与体素尺寸之比与重建精度之间存在很强的关系,即物体平均值太小。体素尺寸增加的负面影响深度误差低于横向误差。

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值