作者:Bowen Wen, Jonathan Tremblay, Valts Blukis, Stephen Tyree, Thomas Muller, Alex Evans, Dieter Fox, Jan Kautz, Stan Birchfield
来源:arXiv:2303.14158v1 [cs.CV] 24 Mar 2023
原文:https://arxiv.org/pdf/2303.14158.pdf
代码、数据和视频:
https://bundlesdf.github.io/
系列文章目录:
上一篇:
https://blog.csdn.net/xzs1210652636?spm=1000.2115.3001.5343
下一篇:
我们提出了一种近乎实时 (10Hz) 的方法,用于从单目 RGBD 视频序列中对未知物体进行 6-DoF 跟踪,同时对物体进行神经 3D 重建。 我们的方法适用于任意刚性物体,即使在视觉纹理基本不存在的情况下也是如此。 假定对象仅在第一帧中被分割。 不需要其他信息,并且不对交互代理做出任何假设。 我们方法的关键是神经对象场,它与姿势图优化过程同时学习,以便将信息稳健地积累到一致的 3D 表示中,同时捕获几何和外观。 自动维护一个动态的 posed 内存帧池,以促进这些线程之间的通信。 我们的方法可以处理具有较大姿势变化、部分和完全遮挡、无纹理表面和镜面高光的具有挑战性的序列。 我们在 HO3D、YCBInEOAT 和 BEHAVE 数据集上展示了结果,表明我们的方法明显优于现有方法。 项目页面:https://bundlesdf.github.io/
计算机视觉中的两个基本(且密切相关)问题是 6-DoF(“自由度”)姿态跟踪和从单目 RGBD 视频中对未知对象进行 3D 重建。 解决这些问题将在增强现实 [34]、机器人操作 [22、70]、从演示中学习 [71] 和从模拟到真实的传输 [1、15] 等领域开启广泛的应用。
先前的努力通常分别考虑这两个问题。 例如,神经场景表示在从真实数据创建高质量 3D 对象模型方面取得了巨大成功 [3、40、44、59、68、81]。 然而,这些方法假设已知的相机姿势和/或地面实况对象掩码。 此外,通过动态移动的相机捕捉静态物体会阻止完整的 3D 重建(例如,如果放在桌子上,则永远看不到物体的底部)。 另一方面,实例级 6-DoF 对象姿态估计和跟踪方法通常需要预先对测试对象进行纹理化 3D 模型 [24、28、66、72、73] 进行预训练和/或在线模板匹配。 虽然类别级方法可以泛化到同一类别中的新对象实例 [7,27,62,67,74],但它们很难处理分布外的对象实例和看不见的对象类别。
为了克服这些限制,在本文中,我们建议共同解决这两个问题。 我们的方法假设对象是刚性的,并且它需要在视频的第一帧中使用 2D 对象掩码。 除了这两个要求外,对象可以在整个视频中自由移动,甚至可以进行严重的遮挡。 我们的方法在精神上类似于对象级 SLAM [35、36、50–52、64、85] 中的先前工作,但我们放宽了许多常见的假设,使我们能够处理遮挡、镜面反射、缺乏视觉纹理和几何线索 , 和突然的物体运动。 我们方法的关键是一个在线姿势图优化过程,一个用于重建 3D 形状和外观的并发神经对象场,以及一个促进两个过程之间通信的内存池。 我们的方法的稳健性在图 1 中突出显示。
我们的贡献可以总结如下:
• 一种用于因果 6-DoF 姿态跟踪和新型未知动态对象 3D 重建的新型方法。 这种方法利用了一种新颖的并发跟踪和神经重建过程的协同设计,这些过程近乎实时地在线运行,同时大大减少了跟踪漂移。
• 我们引入混合SDF 表示来处理由动态以对象为中心的设置中的独特挑战引起的不确定自由空间,例如嘈杂的分割和来自交互的外部遮挡。
• 对三个公共基准的实验展示了针对领先方法的最先进性能。
6-DoF目标姿态估计和跟踪。 6-DoF 对象姿态估计推断相机框架中目标对象的 3D 平移和 3D 旋转。 最先进的方法通常需要实例级或类别级对象 CAD 模型进行离线训练或在线模板匹配 [24,25,60,67],这会阻止它们应用于新的未知对象。 尽管最近的几项工作 [32,45,58] 放宽了假设并旨在快速推广到新的看不见的物体,但它们仍然需要预先捕获测试物体的姿势参考视图,这在我们的设置中没有假设。 除了单帧姿态估计,6-DoF 对象姿态跟踪利用时间信息来估计整个视频中的每帧对象姿态。 类似于它们的单帧对应方法,这些方法做出不同级别的假设,例如对相同对象的训练和测试 [28、38、54、63、69、72] 或对相同类别的对象进行预训练 [30、38 , 65]。 BundleTrack [69] 与我们的设置最接近,将姿势跟踪立即推广到新的未知物体。 然而,不同的是,我们使用新颖的神经表示进行跟踪和重建的共同设计不仅会导致更强大的跟踪,如实验中所验证的那样(第 4 节),而且还可以实现额外的形状输出,这在 [69] 中是不可能的。
同时定位和映射。 SLAM 解决了与这项工作中解决的问题类似的问题,但重点是参照大的静态环境跟踪摄像机的姿势[41, 56, 61, 85]。动态 SLAM 方法通常通过帧模型迭代最近点 (ICP) 结合颜色 [33,49,50,77]、概率数据关联 [55] 或 3D 水平集似然最大化 [48] 来跟踪动态对象。 通过将观察到的 RGBD 数据与新跟踪的姿势进行聚合,同时即时重建模型。 相比之下,我们的方法利用了一种新颖的神经对象场表示,允许自动即时融合 [10],同时动态纠正历史跟踪的姿势以保持多视图一致性。 我们专注于以对象为中心的设置,包括动态场景,其中通常缺乏纹理或几何线索,并且交互代理经常引入严重的遮挡——传统 SLAM 中很少发生的困难。 与对象级 SLAM [35、36、51、52、64] 中研究的静态场景相比,动态交互还允许观察对象的不同面以进行更完整的 3D 重建。
对象重建。 使用基于学习的方法 [26、40、80] 广泛研究了从图像中检索 3D 网格。 随着神经场景表示的最新进展,可以重建高质量的 3D 模型 [3,40,44,59,68,81],尽管这些方法中的大多数都假设已知的相机姿势或地面实况分割并且通常专注于静态场景 具有丰富的纹理或几何线索。 特别是,[47] 提出了一种具有类似目标的半自动方法,但使用手动对象姿势注释来检索对象的纹理模型。 相比之下,我们的方法是全自动的,并且对视频流进行因果操作。 另一项研究利用人手或身体先验来解决对象尺度模糊或通过接触/碰撞约束改进对象姿势估计[4,6,16,18,21,23,31,76,79,84]。 相比之下,我们不假设交互代理的具体知识,这使我们能够概括出截然不同的交互形式和场景,从人手、人体到机器人手臂,如实验所示。 这也消除了不完美的人手/身体姿势估计的另一个可能的错误来源。
我们的方法的概述如图 2 所示。给定一个单眼 RGBD 输入视频,以及仅在第一帧中感兴趣的对象的分割掩码,我们的方法通过后续帧跟踪对象的 6-DoF 姿态,并重建对象的带纹理的 3D 模型。 所有处理都是因果关系(无法访问未来的帧)假设对象是刚性的,但不需要特定数量的纹理——我们的方法适用于无纹理对象。 此外,不需要对象的实例级 CAD 模型,也不需要类别级先验(例如,预先对同一对象类别进行训练)。
为了为后续的在线姿态图优化提供一个好的初始猜测,我们计算了当前帧 和前一帧 之间的粗略目标姿态估计 。首先,通过利用与对象无关的视频分割网络 [8],在 中分割对象区域。 选择这种分割方法是因为它不需要任何关于对象或交互代理(例如人手)的知识,因此允许我们的框架应用于广泛的场景和对象。
和 之间的 RGB 特征对应是通过基于变换器的特征匹配网络 [57] 建立的,该网络是在大量互联网照片 [29] 上进行预训练的。 与深度一起,识别的对应关系由基于 RANSAC 的姿态估计器 [11] 使用最小二乘法 [2] 过滤。 然后选择最大化内点数量的姿势假设作为当前帧的粗略姿势估计。
为了减轻可能导致长期跟踪漂移的灾难性遗忘,保留有关过去帧的信息非常重要。 先前工作采用的一种常见方法是将每个提出的观察结果融合到一个明确的全局模型中 [43、50、53]。 然后使用融合的全局模型与后续新帧进行比较以进行姿势估计(帧到模型匹配)。 然而,至少出于两个原因,这种方法对于这项工作中考虑的具有挑战性的场景来说太脆弱了。 首先,在融合到全局模型中时,姿势估计中的任何缺陷都会累积,从而在估计后续帧的姿势时造成额外的错误。 当对象上的纹理或几何线索不足,或者此信息在框架中不可见时,经常会出现此类错误。 此类错误会随着时间的推移而累积,并且是不可逆转的。 其次,在长期完全遮挡的情况下,大的运动变化使得全局模型和再现帧观察之间的配准变得困难和次优。
相反,我们引入了一个关键帧内存池 ,用于存储信息量最大的历史观察结果。 为了构建内存池,自动添加第一帧 ,从而为新的未知对象设置规范坐标系。 对于每个新帧,其粗略姿态 通过与内存池中的现有帧进行比较来更新,如第 3.3 节所述,以产生更新后的姿态 。 只有当其视点(由 描述)被认为足以丰富池中的多视图多样性同时保持池紧凑时,才将框架添加到 。
更具体地说,将 与池中所有现有记忆帧的姿势进行比较。 由于平面内物体旋转不提供额外信息,因此这种比较考虑了旋转测地线距离,同时忽略了围绕相机光轴的旋转。 忽略这种差异允许系统在空间中更稀疏地分配内存帧,同时保持相似数量的多视图一致性信息。与以前的工作(如[69])相比,当选择相同数量的内存帧参与在线姿势图优化时,这种技巧能够联合优化更广泛的姿势范围。
给定一个新帧 及其粗略姿态估计 (第 3.1 节),我们从内存池中选择(不超过)个记忆帧的子集来参与在线姿态图优化。 对应于新帧的优化位姿成为输出估计位姿 。此步骤在 CUDA 中实现,用于近乎实时的处理,使其足够快以应用于每个新帧,从而在整个视频中跟踪对象时产生更准确的姿势估计。
如下所述(第 3.4 节),神经对象场也用于协助此优化过程。 内存池中的每一帧都与一个二进制标志 相关联,指示该特定帧的姿势是否受益于由神经对象字段更新。 当一个帧第一次被添加到内存池时,。 该标志在随后的在线更新中保持不变,直到帧的姿势已被神经对象场更新,此时它永远设置为 。
在更新新帧 的姿势的同时,为在线姿势图优化选择的帧子集的所有姿势也被更新到内存池中,只要它们的标志设置为 。 那些标志设置为 的帧将继续由更可靠的神经对象场过程(Neural Object Field process)更新,但它们不再被在线姿势图优化修改。
选择内存帧的子集。 为了提高效率,我们限制参与位姿图优化的记忆帧数不超过 。 在视频的早期,当 ,不需要选择,使用内存池中的所有帧。 当内存池的大小增长到大于 时,应用选择过程以最大化多视图一致性信息。 之前的努力是通过穷举搜索成对特征对应关系和求解生成树 [41] 来选择关键帧,这对于实时处理来说过于耗时,或者仅基于固定时间间隔 [53],在我们以对象为中心的环境中效率较低。 因此,我们建议通过利用当前帧的粗略姿态估计 (在第 3.1 节中获得)来有效地选择记忆帧的子集 。 具体来说,对于内存池中的每一帧 ,我们首先计算点法线贴图并计算这些法线与新帧相机视图中的光线方向之间的点积,以测试它们的可见性。 如果新帧 中的点云可见性比率高于阈值(所有实验均为 0.1),我们通过计算 和 之间的旋转测地线距离来进一步测量与 的观看重叠,同时忽略面内旋转(如上所述)。 最后,我们选择具有最大观看重叠(最小距离)的个记忆帧与 一起参与位姿图优化。 因此,。
优化。 在姿势图 中,节点由 和上面选择的记忆帧子集组成:,因此 。目标是找到最小化位姿图总损失的最佳位姿:
其中 和 是成对边缘损失 [69],是额外的一元损失。标量因子都是根据经验设定为1。损失
测量RGBD特征对应的欧氏距离,其中表示帧中的物体姿势,是Huber损失[19],用于稳健性。帧和之间的对应关系集是由第3.1节中介绍的同一网络检测的,为了提高效率,我们在这里并行地运行批量推理。损失
通过重投影关联测量像素级的点到面距离,其中从转换到,表示与相关的对图像的视角投影映射、 表示通过查找像素位置的深度图像的反投影映射,表示通过查找在像素位置关联的法线图。最后,单项损失
L s ( t ) = ∑ p ∈ I t ρ ( ∣ Ω ( ξ t − 1 ( π D − 1 ( p ) ) ) ∣ ) ( 4 ) \mathcal {L}_s(t)=\sum \limits _{p\in I_t}\rho \big ( \left | \Omega (\xi _t^{-1}(\pi _{D}^{-1}(p))) \right | \big ) (4) Ls(t)=p∈It∑ρ( Ω(ξt−1(πD−1(p))) )(4)
衡量当前帧与神经隐含形状的点到点的距离 形状的点对点距离,其中表示神经对象的有符号距离函数。符号的距离函数。将在第3.4节讨论。神经对象场 在这个步骤中,权重被冻结。在这个步骤中,神经对象场的权重被冻结。只有在神经对象场的初始训练收敛之后,才会考虑到这种单项损失。
姿态被表示为相机姿态对物体的反转,使用李代数进行参数化,将初始帧的坐标框架固定为锚点。我们通过高斯-牛顿算法解决整个姿势图的优化问题,并进行迭代再加权。对应于的优化姿势成为其更新的姿势。对于其余被选中的存储帧,它们在存储池中的优化姿势也会被更新,以纠正视频中早期计算的可能错误,除非如前所述,。
我们的方法的一个关键是学习以物体为中心的神经签名距离场,在调整记忆帧的姿势的同时,学习物体的多视图一致的三维形状和外观。它是按视频学习的,不需要预先训练,就能普及到新的未知物体。这个神经物体场在一个独立的线程中与在线姿势跟踪并行训练。在每个训练期开始时,神经对象场从池中消耗所有的记忆帧(连同它们的姿势)并开始学习。当训练收敛时,优化后的姿势被更新到内存池中,以帮助随后的在线姿势图优化,每次都会获取这些更新的内存帧姿势,以减轻跟踪漂移。学到的SDF也被更新到随后的在线姿势图中,以计算第3.3节所述的单项损失。然后,通过从存储池中抓取新的存储帧,重复神经物场的训练过程。
物质领域的代表。 受[82]的启发,我们用两个函数表示物体。首先,几何函数将一个三维点作为输入,并输出一个有符号的距离值。第二,外观函数从几何网络中获取中间特征向量,一个点法线,和一个视图方向,并输出颜色。在实践中,我们在转发到网络之前对 x x x应用多分辨率哈希编码[39]。物场中一个点的法线可以通过在有符号的距离场上取一阶导数得出,我们通过利用PyTorch[46]中的自动微分来实现。对于这两个方向的 n n n和 d d d,我们通过一组固定的低阶球面谐波系数(在我们的例子中为2阶)来嵌入它们,以防止过度拟合,这可能会阻碍物体姿势的更新(如上所述,表示为相机姿势相对于物体的反演),特别是旋转。
隐含的物体表面是通过取有符号距离场的零级集得到的: S = x ∈ R 3 ∣ Ω ( x ) = 0 S= x∈\mathbb{R}^3| Ω(x) = 0 S=x∈R3∣Ω(x)=0 。与[37]相比,在我们的设置中,SDF对象表示 Ω Ω Ω有两个主要的好处。首先,当与我们的高效射线采样与深度引导的截断相结合时(如下所述),它能使训练在几秒钟内迅速收敛,以便进行在线跟踪。其次,由法线引导的隐式正则化鼓励平滑和准确的表面提取。这不仅提供了一个令人满意的物体形状重建,作为我们的最终目标之一,而且还为在线姿势图的优化提供了更准确的帧-模型损失。
渲染。 给定一个内存帧的物体姿态 ξ ξ ξ,通过发射穿过像素的射线来渲染图像。沿着射线的不同位置对三维点进行采样:
x i ( r ) = o ( r ) + t i d ( r ) , ( 5 ) x_i(r) = o(r)+t_i d(r), (5) xi(r)=o(r)+tid(r),(5)
其中 o ( r ) o(r) o(r)和 d ( r ) d(r) d(r)分别是射线原点(相机焦点)和射线方向,两者都取决于 ξ ξ ξ; t i ∈ R + t_i∈\mathbb{R}_+ ti∈R+制约着沿射线的位置。
一条射线 r r r的颜色 c c c被近表面区域整合:
c ( r ) = ∫ z ( r ) − λ z ( r ) + 0.5 λ w ( x i ) Φ ( f Ω ( x i ) , n ( x i ) , d ( x i ) ) d t , ( 6 ) c(r)=\int _{z(r)-\lambda }^{z(r)+0.5\lambda } w(x_i)\Phi (f_{\Omega (x_i)},n(x_i),d(x_i))\,dt, (6) c(r)=∫z(r)−λz(r)+0.5λw(xi)Φ(fΩ(xi),n(xi),d(xi))dt,(6)
w ( x i ) = 1 1 + e − α Ω ( x i ) 1 1 + e α Ω ( x i ) , ( 7 ) w(x_i)= \frac {1}{1+e^{-\alpha \Omega (x_i)}}\frac {1}{1+e^{\alpha \Omega (x_i)}}, (7) w(xi)=1+e−αΩ(xi)11+eαΩ(xi)1,(7)
其中 w ( x i ) w(x_i) w(xi)是钟形概率密度函数[68],它取决于点到隐含物体表面的距离,即签名距离 Ω ( x i ) Ω(x_i) Ω(xi)。 α α α(设置为常数)调整了概率密度分布的软度。概率在表面交汇处达到局部最大值。 z ( r ) z(r) z(r)是深度图像中射线的深度值。 λ λ λ是截断距离。在公式(6)中,我们忽略了距离表面超过 λ λ λ的空旷空间的贡献,以减少神经场中空空间的过度拟合,从而改善姿势更新。然后,我们只整合到 0.5 λ 0.5λ 0.5λ的穿透距离,以建立自我排斥的模型[68]。直接使用深度读数 z ( r ) z(r) z(r)来指导积分的另一种方法是,从 Ω ( x i ) Ω(x_i) Ω(xi)推断出零交叉面。然而,我们发现与使用深度相比,这需要更密集的点采样和更慢的训练收敛。
高效的分层射线取样。 为了有效地进行渲染,我们在训练前通过天真地合并摆放的记忆帧的点云来构建一个Octree表示[12]。然后,我们沿射线进行分层采样。具体来说,我们首先对占用体素(图3中的灰色方框)为界的 N N N个点进行均匀采样,终点为 z ( r ) + 0.5 λ z(r)+0.5λ z(r)+0.5λ。一个定制的CUDA内核被实现,以跳过对中间未占用体素的采样。额外的样本被分配到表面周围以获得更高的重建质量: 我们从以深度读数为中心的正态分布中抽取个点样本,而不是基于SDF预测的重要性采样,这需要通过网络进行多次前向传递[37,68]。这导致了的总样本,而不需要查询更昂贵的多分辨率哈希编码或网络。
混合SDF建模。 由于不完善的分割和外部遮挡,我们提出了一个混合签名距离模型。具体来说,我们将空间划分为三个区域来学习SDF(见图3):
L u = 1 ∣ X u ∣ ∑ x ∈ X u ( Ω ( x ) − ϵ ) 2 . ( 8 ) \mathcal {L}_{\textit {u}}=\frac {1}{|\mathcal {X}_{\textit {u}}|}\sum _{x\in \mathcal {X}_{\textit {u}}} (\Omega (x)-\epsilon )^2. (8) Lu=∣Xu∣1x∈Xu∑(Ω(x)−ϵ)2.(8)
L e = 1 ∣ X e ∣ ∑ x ∈ X e ∣ Ω ( x ) − λ ∣ . ( 9 ) \mathcal {L}_{\textit {e}}=\frac {1}{|\mathcal {X}_{\textit {e}}|}\sum _{x\in \mathcal {X}_{\textit {e}}} | \Omega (x)-\lambda |. (9) Le=∣Xe∣1x∈Xe∑∣Ω(x)−λ∣.(9)
L surf = 1 ∣ X surf ∣ ∑ x ∈ X surf ( Ω ( x ) + d x − d D ) 2 , ( 10 ) \mathcal {L}_{\textit {surf}}=\frac {1}{|\mathcal {X}_{\textit {surf}}|}\sum _{x\in \mathcal {X}_{\textit {surf}}}\left (\Omega (x) +d_x - d_D \right )^2, (10) Lsurf=∣Xsurf∣1x∈Xsurf∑(Ω(x)+dx−dD)2,(10)
训练。 可训练的参数包括多分辨率哈希编码器, Ω Ω Ω, Φ Φ Φ,以及物体在切线空间的姿势更新,其参数为Lie Algebra,其中我们将第一个记忆帧的姿势冻结为锚点。训练损失是:
L = w u L u + w e L e + w surf L surf + w c L c + w eik L eik , ( 11 ) \begin {aligned} \mathcal {L}=&w_{\textit {u}}\mathcal {L}_{\textit {u}}\!+\!w_{\textit {e}}\mathcal {L}_{\textit {e}}\!+\!w_{\textit {surf}}\mathcal {L}_{\textit {surf}}\!+\!w_{c}\mathcal {L}_{c}\!+\!w_{\textit {eik}}\mathcal {L}_{\textit {eik}}, \end {aligned} (11) L=wuLu+weLe+wsurfLsurf+wcLc+weikLeik,(11)
其中 L c \mathcal {L}_{c} Lc是 近表面空间 \textit{近表面空间} 近表面空间的SDF的Eikonal正则化[13]:
L eik = 1 ∣ X surface ∣ ∑ x ∈ X surface ( ∥ ∇ Ω ( x ) ∥ 2 − 1 ) 2 . ( 13 ) \mathcal {L}_{\textit {eik}}=\frac {1}{|\mathcal {X}_{\textit {surface}}|}\sum _{x\in \mathcal {X}_{\textit {surface}}} ( \left \|\nabla \Omega (x)\right \|_2-1 )^2. (13) Leik=∣Xsurface∣1x∈Xsurface∑(∥∇Ω(x)∥2−1)2.(13)
与[68]不同的是,我们不进行掩码监督,因为预测的掩码往往是来自网络的噪声,这需要地面真理掩码作为输入。
为了评估我们的方法,我们考虑了三个真实世界的数据集,它们具有截然不同的互动形式和动态场景。关于野外应用和静态场景的结果,见项目页面。
HO3D [14]: 该数据集包含人手与 YCB 物体交互的 RGBD 视频[5],由英特尔 RealSense 摄像头近距离拍摄。地面实况由多视角注册自动生成。我们采用了最新版本的 HO-3D_v3,并在官方评估集上进行了测试。测试结果包括 4 个不同的物体、13 个视频序列和共计 20428 个帧。
YCBInEOAT [72]: 该数据集包含一个双臂机器人操纵 YCB 物体[5]的以自我为中心的 RGBD 视频,视频由 Azure Kinect 摄像机在中距离拍摄。操纵有三种类型:(1) 单臂拾放,(2) 手内操纵,(3) 双臂交替拾放。虽然该数据集最初是为了评估依赖 CAD 模型的姿势估计方法而开发的,但我们并没有为评估方法提供任何物体先验知识。该数据集共有 5 个不同的对象、9 个视频和 7449 个帧。
BEHAVE [4]: 该数据集包含人体与物体互动的 RGBD 视频,由 Azure Kinect 摄像头的预校准多视角系统远距离捕捉。不过,我们的评估仅限于单视角设置,因为在单视角设置中经常会出现严重遮挡。我们在官方测试分割上进行评估,但不包括可变形物体。这将产生 16 个不同的对象、70 个视频/场景和 107982 个帧。
我们分别对姿态估计和形状重建进行评估。对于 6-DoF 物体姿态,我们使用地面实况物体几何图形计算 ADD 和 ADD-S 指标[17,69,75]的曲线下面积(AUC)百分比。对于三维形状重建,我们计算最终重建的网格与地面实况网格在每个视频的第一幅图像所定义的标准坐标帧中的倒角距离。更多详情请参见附录。
我们将 DROID-SLAM (RGBD) [61]、NICE-SLAM [85]、KinectFusion [43]、BundleTrack [69] 和 SDF-2-SDF [53]与它们的开源实现和最佳调整参数进行了比较。此外,我们还包括了他们排行榜上的基线结果。请注意,[20, 42]等方法侧重于可变形物体,根 6-DoF 跟踪和融合通常基于[43],而我们侧重于动态移动的刚性物体。因此,我们省略了对它们的比较。每种评估方法的输入都是 RGBD 视频和第一帧表示感兴趣物体的遮罩。为了进行公平比较,我们在比较方法中增加了与我们的框架相同的视频分割掩码,重点关注 6-DoF 物体姿态跟踪和三维重建性能。在跟踪失败的情况下,不会重新初始化,以测试长期跟踪的鲁棒性。
DROID-SLAM [61]、NICE-SLAM [85] 和 KinectFusion [43] 最初是为相机姿态跟踪和场景重建而提出的。在给定分割图像时,它们以对象为中心运行。由于 DROIDSLAM [61] 和 BundleTrack [69] 无法重建物体网格,因此我们使用 TSDF Fusion [9, 83] 来增强这些方法,以进行形状重建评估。对于 NICESLAM [85] 和我们的方法,我们只使用第一帧的点云来初始化神经体的边界(为了保持因果处理,我们不能访问未来帧)。
HO3D 的定量结果见表 1 和图 5。1 和图 5。我们的方法在 6-DoF 姿态跟踪和三维重建方面都远远优于比较方法。对于 DROID-SLAM[61]、NICE-SLAM[85]和 KinectFusion[43],在以物体为中心的环境中工作时,可用于跟踪的纹理或几何(纯平面或圆柱形物体表面)线索明显较少,导致性能较差。图 5 显示了跟踪误差与时间的关系,以研究长期跟踪漂移。虽然 BundleTrack [69] 与我们的方法实现了类似的低平移误差,但在旋转估计方面却很吃力。相比之下,我们的方法在整个视频中都能保持较低的跟踪误差。我们在附录中提供了每个视频的量化结果。
图 4 显示了三种最具竞争力方法的定性结果示例。尽管存在多种挑战,如严重的手部遮挡、自遮挡、中间观测的纹理线索很少以及强烈的光照反射,我们的方法仍能沿着视频进行精确跟踪,并获得质量更高的三维物体重建。值得注意的是,我们预测的姿势有时比地面实况更准确,而地面实况是通过多摄像机多视角注册并利用手部先验进行标注的。
YCBInEOAT 的定量结果见表 2。2. 该数据集从以自我为中心的视角捕捉机械臂与物体之间的交互,由于相机视角受限和机械臂的严重遮挡,该数据集面临着挑战。为完整起见,本表还包括 [69] 中的其他基线方法1。星号(∗)表示的这些方法的结果是从 [69] 中复制的。请注意,对于(非星号)BundleTrack,为了公平比较,我们使用与我们相同的分割掩码重新运行了算法,并使用 TSDF Fusion 进行了增强,以评估重构效果(与表 1 相同)。由于 MaskFusion* [50] 和 TEASER++* [78] 的性能相对较差,我们省略了它们的重新运行。
我们的方法在三维重建中的 ADD-S 指标和倒角距离方面创下了新的基准记录,同时在 ADD 指标方面取得了与之前最先进方法相当的性能。特别是,虽然 BundleTrack [69] 实现了有竞争力的物体姿态跟踪,但却没有获得令人满意的三维重建结果。这证明了我们在跟踪和重建方面共同设计的优势。
BEHAVE 的定量结果见表 3。3. 更详细的结果请参阅补充材料。在我们不利用人体先验的单视角和零镜头传输设置中,该数据集表现出极大的挑战性。例如,(i) 当人体携带物体并远离摄像机时,存在长期的完全遮挡;(ii) 由于人随意摆动物体,经常出现严重的运动模糊和突然位移;(iii) 物体性质各异,大小不一;(iv) 视频拍摄距离摄像机较远,难以进行深度感应。因此,对这一基准的评估将边界推向了更困难的设置。尽管存在这些挑战,我们的方法仍然能够在大多数情况下进行长期稳健跟踪,而且性能明显优于以前的方法。
鉴于 HO3D 数据集的姿势注释更为精确,我们在该数据集上研究了我们的设计方案的有效性。结果如表 4 所示。4. 由于没有缓解跟踪漂移的机制,我们的无内存设计性能大幅下降。对于 Ours-GPG,即使计算量相近,但由于手工制作的损失,它在纹理或几何线索较少的物体或观测数据上也很吃力。除了物体姿态跟踪外,Ours w/o memory、Ours w/o NOF 和 Ours-GPG 都缺少三维物体重建模块。我们的不含混合 SDF 算法忽略了轮廓信息,而且在纠正记忆帧的姿态时,可能会受到假阳性分割的影响。这些都会导致姿态跟踪不够稳定,最终的三维重建噪声更大。在计算预算相同的情况下,未使用紧凑内存池的方案会导致姿态图优化和神经对象场学习过程中姿态覆盖范围不足,这在第 3.2 节中已经提到。
我们提出了一种从单目 RGBD 视频中进行 6-DoF 物体跟踪和 3D 重建的新方法。我们的方法只需要对初始帧中的物体进行分割。我们的方法利用两个并行线程,分别执行在线图形姿态优化和神经对象场表示,能够处理快速运动、部分遮挡和竞争遮挡、缺乏纹理和镜面高光等具有挑战性的情况。在几个数据集上,我们展示了与现有方法相比最先进的结果。未来的工作将致力于利用形状先验来重建未见的部分。
在粗姿态初始化过程中,如果没有直接的前一帧可与之比较(如分割检测缺失,或物体完全遮挡后再次出现),当前帧将与记忆帧进行比较。选择与当前帧有 10 个以上特征对应关系的记忆帧作为新的参考帧,进行粗姿态初始化。以下步骤保持不变。
对于在线姿势图优化,为了提高效率,我们限制了最大参与内存帧数 K = 10。计算 Lp 时,我们会剔除距离大于 1 厘米或法线角度大于 20◦ 的相应点。高斯-牛顿优化法迭代 7 步。
在神经对象场学习中,我们将对象归一化为[-1, 1]的神经体积边界,其中比例计算为初始帧点云维度的 1.5 倍。神经体的坐标系基于第一帧居中的点云。几何网络 Ω 由两层 MLP 组成,隐维度为 64,除最后一层外均采用 ReLU 激活。中间几何特征 f Ω ( − ) f_{Ω(-)} fΩ(−) 的维数为 16。最后一层的偏置初始化为 0.1,以便在训练开始时预测出较小的正 SDF。外观网络 Φ 由三层 MLP 组成,隐藏维度为 64,采用 ReLU 激活,但最后一层除外,我们采用 sigmoid 激活将颜色预测映射到 [0, 1]。对于 Octree 光线追踪,最小体素尺寸设置为 2 厘米。为了提高效率,我们将多分辨率哈希编码器 [39] 简化为 4 级,特征向量从 16 到 128 不等。每个级别的特征维度设为 2。哈希表大小设为 2 22 2^{22} 222。在每次迭代中,射线批量大小为 2048。对于分层点采样,N 和 N′ 分别设置为 128 和 64。截断距离 λ 设为 1 厘米。对于不确定的自由空间,ϵ 设为 0.001。在训练损耗中, w u w_u wu = 100, w e w_e we = 1, w s u r f w_{surf} wsurf = 1000, w c w_c wc = 100, w e i k w_{eik} weik = 0.1. 我们用 PyTorch [46] 和 Adam 优化器来实现。初始学习率为 0.01,线性衰减率为 0.1。神经对象场训练在一个单独的线程中并发运行,每次训练收敛(300 步)后定期与内存池交换数据,从而进行充分的姿态细化。第一个训练期从内存池中有 10 个内存帧时开始。训练收敛后,它会将数据返回内存池,并抓取上一次训练期间新添加到内存池中的内存帧,重复训练过程。下一次训练将重复使用最新更新帧的姿势。但对于其他可训练参数,如果在上一次训练中存在任何次最佳值,特别是由于姿态噪声,重复使用它们的权重往往会陷入局部最小值。因此,我们要为新的训练期重新初始化网络权重。与重新使用之前的网络权重相比,这需要类似的步骤来完善新添加的记忆帧的姿势。
所有实验均在配备英特尔 i9-10980XE CPU 和一个英伟达 RTX 3090 GPU 的标准台式机上进行。我们的方法由两个同时运行的线程组成。在线跟踪线程以约 10.2 Hz 的速度处理帧,其中视频分割平均耗时 18 毫秒,粗匹配耗时 24 毫秒,姿势图平均耗时 56 毫秒。同时,神经对象场线程在后台运行,每轮训练平均耗时 6.7 秒,训练结束后与主线程交换数据。在相同硬件上,竞争方法 DROID-SLAM [61] 和 BundleTrack [69] 的运行速度分别为 6.1 Hz 和 11.2 Hz。
为了进行评估,我们将姿态估计和形状重建分离开来,以便分别处理。对于 6-DoF 物体姿态评估,我们计算 ADD 和 ADD-S 指标的曲线下面积(AUC)百分比:
其中 是物体模型。由于定义坐标系的方法无法获取新的未知物体的 CAD 模型,因此我们使用第一幅图像中的地面真实姿态来定义每段视频的标准坐标帧,以评估姿态。
在三维形状重建评估方面,我们使用以下对称公式报告了最终重建网格与地面实况网格之间的倒角距离结果:
在我们的方法中,网格可以通过在神经对象场的零级集上应用行进立方来提取。对于所有方法,我们都使用相同的分辨率(5 毫米)对点进行取样评估。由于大多数视频都无法覆盖物体周围的完整视图,因此我们通过渲染测试(由地面实况网格和姿态给出)来剔除在视频中不可见的地面实况网格面。
图 6(HO3D)、图 7(YCBInEOAT)和图 8(BEHAVE)显示了所有三个数据集的 ADD-S 和 ADD 的恢复曲线。每幅图都显示了相应数据集所有视频的结果。可以看出,在几乎所有数据集上,我们的方法的曲线下面积(AUC)都超过了其他方法。
所有三个数据集的每段视频定量结果列于表5(HO3D)、表6(YCBInEOAT)和表 7-10(BEHAVE)。7-10(BEHAVE)。可以看出,我们的方法在 HO3D 的几乎所有视频、YCBInEOAT 的半数以上视频和 BEHAVE 的绝大多数视频上都表现最佳。请注意,每个表格的最后一行(“平均值”)已包含在主论文中。
图 9 和图 10(HO3D)、图 11(YCBInEOAT)以及图 12 和图 13(BEHAVE)展示了定性结果。我们鼓励读者观看补充视频。
有关 BEHAVE 单视角设置的详细信息。 正如论文中提到的,BEHAVE 数据集是由一个预先校准过的多摄像头系统拍摄的,该系统有四个摄像头。由于我们的方法只需要单目输入,为了公平评估,我们在单目输入上运行所有方法。也就是说,对于每个场景,我们只将其中一台摄像机捕捉到的视频输入到这些方法中。
虽然从理论上讲,我们可以将每种方法运行四次,即每个摄像机运行一次,但这将耗费过多的时间,而可能带来的启示却微乎其微。此外,由于场景的每个角落都只有四个摄像头,因此在几个摄像头的视角中(包括视频开始时),物体往往会被人类严重遮挡。由于初始化时物体的可见度非常有限,使用这样的摄像机无法获得有意义的跟踪评估结果。
相反,我们决定从每个场景的四台摄像机中自动选择一台进行评估。更具体地说,我们在每个场景的整个序列中选择遮挡最少的视频。为此,我们使用地面实况信息将地面实况物体遮挡与渲染物体遮挡进行比较,从而计算出每个摄像机视频中物体的平均可见度比。这项工作在评估前对所有视频进行离线处理。如图 12 和图 13 所示,尽管严重遮挡仍会经常出现,这给评估带来了挑战,但所有方法都会使用选定的单视角视频进行评估。
下面我们将讨论我们的方法在各种挑战下的稳健性。我们鼓励读者观看我们的补充视频,以便更全面地了解该系统。
缺乏纹理或几何线索。 在以物体为中心的动态设置中,物体本身经常会提供纹理或几何线索。例如,在图 9 中,蓝色投影仪上的大片区域缺乏纹理,这对那些严重依赖光学流(DROID-SLAM [61])、关键点匹配(BundleTrack [69])或光度损失(NICE-SLAM [85])的方法提出了挑战。此外,大面积的圆柱表面也几乎没有几何线索可利用,会给那些依赖于点到面匹配的方法(SDF2SDF [53]、BundleTrack [69]、KinectFusion [43])造成旋转模糊。相比之下,由于姿势图优化和神经对象场的协同作用,我们的方法对这些挑战具有很强的鲁棒性。更多此类挑战的例子可参见图 10、图 12 和图 13。
遮挡物。 在动态物体设置中,遮挡包括自遮挡和交互代理(如人手、人体、机械臂)引入的外部遮挡。例如,在图 10 中,"肉罐 "在极度旋转后,有时只显示出一个平面(第 2 列),造成严重的自闭塞。在其他观察结果中,人手引入的外部遮挡(第 4 列)也对比较方法提出了挑战。图 9、图 12、图 13 和图 11 提供了更多此类挑战的例子。可以看出,我们的方法对这两种情况都很稳健,并能在整个视频中凭借记忆机制保持精确跟踪,而对比方法却很难做到这一点。
镜面反射。 由于物体表面的光滑度、材质和复杂的环境光,可能会出现镜面反射,这给那些主要依靠光流(DROID-SLAM [61])、关键点匹配(BundleTrack [69])或光度损失(NICESLAM [85])的方法带来了挑战。如图 9、图 10、图 12 和图 11 所示,尽管在金属或高度光滑的表面上存在镜面反射,我们的方法仍能在整个视频中保持精确跟踪,而对比方法则变得脆弱。
突然运动和运动模糊。 图 14 展示了一个由于人类自由摆动盒子而导致物体突然运动的例子。除了大位移下的 6-DoF 姿势跟踪面临挑战外,它还会导致 RGB 运动模糊,从而给关键点匹配和神经对象场学习带来额外的挑战。然而,我们的方法在这些不利条件下表现出了鲁棒性,甚至比地面实况得出的姿势更准确。
噪声分割。 图 15 和图 16 展示了视频分割网络的噪声掩码(紫色)示例,包括假阳性和假阴性预测。假阴性分割导致忽略纹理丰富的区域,加剧了纹理缺乏的问题。假阳性分割会引入交互代理的可变形部分或不想要的场景背景,从而导致多视图中的不一致性。然而,我们的下游模块对分割噪声具有鲁棒性,并能保持精确的跟踪。
噪声深度。 如图 17 所示,在我们的设置中,噪声深度来自两个方面。首先,消费级 RGBD 相机具有可观察到的传感噪声。尤其是在 BEHAVE [4] 和 YCBInEOAT [72] 数据集中,图像是在距离摄像头较远的地方捕获的,这对深度感应提出了挑战。其次,由于分割存在噪声,假阳性预测包括深度点云中不需要的背景区域。在图 17(左)中,当使用地面实况姿态对每帧深度点云进行天真融合时,结果非常杂乱,这意味着深度感应和分割存在噪声。然而,尽管存在这些噪声,我们同时进行的姿态跟踪和重建仍能生成高质量的网格,如右图所示。
虽然我们的方法对各种挑战条件都很稳健,但当多种挑战同时出现时,它就会失败。例如,在图 18 中,严重遮挡、分割错误、纹理和几何线索的缺乏共同导致跟踪失败。当物体再次出现时,恢复的姿势会受到对称几何的影响。此外,我们的方法需要深度模式,这就限制了它在深度感应失效的某些类型物体(如透明物体)上的应用。最后,我们的方法假设物体是刚性的。在未来的工作中,我们有兴趣同时对刚性和非刚性物体进行推广。