视频地址:在公众号「3D视觉工坊」,后台回复「谷歌X实习生」,即可直接下载。

谷歌最新开源BundleTrack: 无需任何CAD模型的6D物体姿态跟踪算法_点云

最近,谷歌X的实习生Bowen Wen新开源了用于6D物体姿态跟踪的代码BundleTrack,该工作已经被今年的IEEE/RSJ International Conference on Intelligent Robots and Systems(IROS)录用。其中Bowen Wen为该论文唯一学生作者,此前也是se(3)-TrackNet的第一作者(目前state of art的基于CAD模型的6D姿态跟踪算法),目前为美国Rutgers大学的在读博士,过去几年曾在Facebook Reality Labs, 亚马逊和商汤科技实习。

以下是新开源代码相关的论文、视频、代码、作者个人主页等信息

论文名称:BundleTrack: 6D Pose Tracking for Novel Objects without Instance orCategory-Level 3D Models

论文下载:

​https://arxiv.org/pdf/2108.00516.pdf​

代码链接:

​https://github.com/wenbowen123/BundleTrack​

作者Github主页:

​https://github.com/wenbowen123​ 

贡献

该开源项目主要贡献如下

1.  一个全新的6D物体姿态算法,不需要实例或类级别的CAD模型用于训练或测试阶段。该算法可立即用于新颖物体的6D姿态跟踪

2.  在NOCS数据集上的创下全新记录,将以往的表现从33.3%大幅度提升到87.4%。在YCBInEOAT数据集上也达到了跟目前基于CAD模型的领先方法se(3)-TrackNet相近的表现。特别值得注意的是,与以往state of art的6D物体姿态跟踪方法相比,BundleTrack并不需要类级别的物体进行训练,也不需要测试阶段物体的CAD模型作模板匹配,减少了很多假设。

3.  首次将具有记忆功能的位姿图优化引入6D物体姿态跟踪。除了相邻帧的匹配还能够借助带记忆功能的历史帧解决特征匹配不足和跟踪漂移问题。

4.  高效的CUDA编码,使得本来计算量庞大的位姿优化图能在线实时运行,达到10Hz。足够用于AR/VR,视觉反馈控制操纵,物体级SLAM或动态场景下的 SLAM等。

问题设置

谷歌最新开源BundleTrack: 无需任何CAD模型的6D物体姿态跟踪算法_点云_02

对于需要6D跟踪的物体,该方法不需要任何类级别的CAD模型或者当前物体的CAD模型。所需要的输入只有(1)RGBD视频;(2)初始掩码,用于指定需要跟踪的物体。该掩码可以通过多种途径获得,例如语义分割,3D点云分割聚类,平面移除等等。该方法就能输出跟踪物体在相机前相对初始的6D姿态变换。

方法

谷歌最新开源BundleTrack: 无需任何CAD模型的6D物体姿态跟踪算法_点云_03


1)总览

本文所提出的 BundleTrack 框架的概述如图. 当前观察到的 RGB-D 帧????????和在此期间计算的对象分割掩码最后一个时间戳???????? 1 被传递到一个视频分割网络来计算当前对象掩码????????。基于????????和????????分别为 1 和 ????????中的目标物体区域和???????? 1 被裁剪、调整大小并发送到关键点检测网络来计算关键点和特征描述符。一种数据关联过程包括特征匹配和以 RANSAC 的方式进行异常值修剪识别特征对应。基于这些特征匹配,当前帧与前一相邻帧之间进行初步匹配。该比配可以用闭式求解,然后用于提供粗略估计 T~ ????用于两个帧之间的转换。估计T~ ????用于初始化当前节点 T????作为姿态图优化步骤。为了确定位姿图中的其余节点,选择不超过K个关键帧从内存池中参与优化。选择 K 而不用所有历史帧是为了平衡效率与准确性权衡。姿态图边包括特征和几何对应,在 GPU 上并行计算。鉴于此信息,姿势图步骤在线输出当前时间戳优化后姿态。通过检查当前帧优化后的姿态,如果它来自新的视角,那么它将会存储在内存池中。

2)视频分割

第一步是将对象的图像区域从背景分割。先前的工作MaskFusion 使用 Mask-RCNN 计算视频每一帧中的对象掩码。它对每个新帧独立处理,效率较低并导致不连贯性。为了避免这些限制,这项工作采用了现成的用于视频对象分割的 transductive-VOS 网络,只需要在Davis 2017和Youtube-VOS 数据集上预训练,泛化到我们的测试场景,而不需要任何物体的CAD模型进行训练。虽然当前的实现使用 transductive-VOS,本文所提出的整个框架不依赖于这个特定的网络。如果可以通过更简单的方法计算对象掩码意味着,例如在机械臂操纵场景下,利用前向运动学,计算机械手的位置进行点云过滤操作场景,便可以替代视频分割网络模块,更为简单。

3)特征点检测,匹配和局部配准

局部匹配是在连续的帧????????-1 和 ????????之间 来计算初始粗略姿势 T~ ????。为此,在每个图像上检测到的关键点之间进行匹配用于6D姿态配准。不同于先前的工作 6PACK,它依赖于在类别级别的 3D 模型上学习固定数量的类别级语义关键点,本文中BundleTrack旨在提高泛化能力,而不是局限于于某些实例或者类别。选择 LF-Net进行特征点检测是因为它令人满意性能和推理速度之间的平衡。它只需要对一般2D 图像进行训练,例如此处使用的 ScanNet 数据集 ,并推广到新的场景。

4)对参与位姿图的关键帧选取

前面的局部配准仅仅得到当前帧的粗略姿态估计,接下来在姿态图优化步骤中对 T~ ????进行细化。参与优化的关键帧数为了效率,限制为 ???? <=K,其中 K = 15是实验中使用的数字。当内存池中的关键帧数量 N 大于 K时,我们需要找到具有最大互视率的关键帧集重叠以更好地利用多视图一致性

谷歌最新开源BundleTrack: 无需任何CAD模型的6D物体姿态跟踪算法_bundle_04

5)在线位姿图优化


谷歌最新开源BundleTrack: 无需任何CAD模型的6D物体姿态跟踪算法_3d_05

????1 和 ????2 是平衡 E????和E????。为了本框架对超参数的选择并不敏感,????1 和 ????2 在所有实验中都简单设置为1。为了求解位姿图的最优姿势

谷歌最新开源BundleTrack: 无需任何CAD模型的6D物体姿态跟踪算法_bundle_06

为了更好地采取利用矩阵 J 和 W 的稀疏性,在每个Gauss-Newton step,一个迭代 PCG(预条件共轭Gradient)求解器被利用,其中对角矩阵J???? WJ 用作预处理器。增量姿势每次更新后都会在切线空间中累积更新迭代。整个位姿图优化是在 CUDA 中实现并行计算。

谷歌最新开源BundleTrack: 无需任何CAD模型的6D物体姿态跟踪算法_bundle_07


实验结果

谷歌最新开源BundleTrack: 无需任何CAD模型的6D物体姿态跟踪算法_bundle_08

谷歌最新开源BundleTrack: 无需任何CAD模型的6D物体姿态跟踪算法_bundle_09

谷歌最新开源BundleTrack: 无需任何CAD模型的6D物体姿态跟踪算法_3d_10

谷歌最新开源BundleTrack: 无需任何CAD模型的6D物体姿态跟踪算法_3d_11

本文仅做学术分享,如有侵权,请联系删文。


谷歌最新开源BundleTrack: 无需任何CAD模型的6D物体姿态跟踪算法_bundle_12