点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

作者丨paopaoslam

来源丨泡泡机器人SLAM

标题:BundleTrack: 6D Pose Tracking for Novel Objects

without Instance or Category-Level 3D Models

作者:  Bowen Wen,Kostas Bekris

机构:Rutgers University

来源:IROS 2021

编译 : Tom

审核:zhuhu

摘要

大家好,今天为大家带来的文章是 BundleTrack: 6D Pose Tracking for Novel Objects without Instance or Category-Level 3D Models

跟踪RGBD视频中物体的6D姿态对机器人操作很重要。然而,大多数先前的工作通常假设目标对象的CAD 模型,至少类别级别,可用于离线训练或在线测试阶段模板匹配。这项工作提出BundleTrack,一个通用的新对象的 6D 姿态跟踪框架,它不依赖于实例或类别级别的 3D 模型。它结合了最新视频分割和鲁棒特征提取的深度学习,以及具有记忆功能的姿势图优化实现时空一致性。这使得它能进行长期、低漂移在各种具有挑战性的场景下的6D姿态跟踪,测试了包括重大遮挡和物体运动的场景。在2个公开数据集上的大量实验表明,BundleTrack显着优于最先进的类别级别6D 跟踪或动态SLAM 方法。比较时反对依赖于对象实例 CAD 的最新方法模型,尽管提出了可比的性能方法的信息需求减少。一个高效的在 CUDA 中的实现提供了实时性能。整个框架运行速度达10Hz。

论文:https://arxiv.org/pdf/2108.00516.pdf

代码: https://github.com/wenbowen123/BundleTrack

视频: https://www.youtube.com/watch?v=0UorLR0ADd4

背景与贡献

本文有以下贡献:

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

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

3.首次将具有记忆功能的位姿图优化引入6D物体姿态跟踪。除了相邻帧的匹配还能够借助带记忆功能的历史帧解决特征匹配不足和跟踪漂移问题。以MaskFusion为例的tracking-via-reconstruction方法经常因为任何一帧微小错误的姿态估计进行错误的全局模型构建融合,进而继续影响接下来的全局模型到观测点云的匹配,造成不可逆转的跟踪漂移。而BundleTrack则不存在此类问题。

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

问题设置

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

算法流程

A. 方法总览

当前观察到的 RGB-D视频流首先送到视频分割模块对目标物体提取ROI。分割后的图片被裁剪、调整大小并发送到关键点检测网络来计算关键点和特征描述符。一种数据关联过程包括特征匹配和以 RANSAC 的方式进行修剪识别特征对应。基于这些特征匹配,当前帧与前一相邻帧之间进行初步粗略匹配。该比配可以用闭式求解,然后用于提供粗略两个帧之间的转换估计Tt~。在接下来的位姿图优化中,Tt~ 讲用于初始化当前节点。为了确定位姿图中的其余节点,我们从历史保留的关键帧内存池中选择不超过K个关键帧参与位姿图优化。选择 K 而不用所有历史帧是为了平衡效率与准确性权衡。姿态图边包括稀疏特征和稠密点到平面的投影残差,所有这些在 GPU 上并行计算。姿势图优化步骤在线输出当前时间戳优化后姿态。通过检查当前帧优化后的姿态的视角,如果它来自新的视角,那么它将会存储在内存池中,以备将来用作关键帧参与位姿图优化。

B. 视频分割

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

C. 特征点检测,匹配和局部配准

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

D. 对参与位姿图的关键帧选取

前面的局部配准仅仅得到当前帧的粗略姿态估计,接下来在姿态图优化步骤中对 Tt~  进行细化。参与优化的关键帧数为了效率,限制为

BundleTrack:无需实例或类级别3D模型的6D姿态跟踪算法(IROS2021)相关推荐

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

    视频地址:在公众号「3D视觉工坊」,后台回复「谷歌X实习生」,即可直接下载. 最近,谷歌X的实习生Bowen Wen新开源了用于6D物体姿态跟踪的代码BundleTrack,该工作已经被今年的IEEE ...

  2. 3D手势姿态跟踪算法:手机端实时检测,多个手势同时捕捉

    就在不久前,Google 人工智能实验室宣布,他们在「实时手部跟踪」方面取得了新的进展,并将这项新技术运用在了 MediaPipe 中,这也是 AI 计算机视觉任务的一大突破.这一技术不光可以在手机上 ...

  3. 5秒手机猫片也能重建猫咪3D模型,Meta提出新算法为变形物体建模 | CVPR 2022

    晓查 发自 凹非寺 量子位 | 公众号 QbitAI 众所周知,猫是一种液体. 这也给CVer带来了极大的烦恼:如何从2D视频中准确地对一只猫进行3D重建? 在很多情况下,3D重建模型得到的真是一滩液 ...

  4. Meidapipe 3D手势姿态跟踪算法,手机端实时检测 ,多个手势同时捕捉

    Ubuntu安装MediaPipe 1. github下载Meidapipe代码 2. [安装Bazel](https://docs.bazel.build/versions/master/insta ...

  5. ICCV 2021 Oral | 基于点云的类级别刚体与带关节物体位姿追踪

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 导  读 本文是计算机视觉领域顶级会议 ICCV入选论文<基于点云的类级别刚体与带关节物体位姿追 ...

  6. ResNet也能用在3D模型上了,清华「计图」团队新研究已开源

    鱼羊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 用AI处理二维图像,离不开卷积神经网络(CNN)这个地基. 不过,面对三维模型,CNN就没有那么得劲了. 主要原因是,3D模型通常采用网格数 ...

  7. Unfolder for mac(3D模型展开工具)

    Unfolder for mac版是Mac平台上的一款3D模型展开工具,Unfolder Mac可以导入3D模型,然后软件就会根据自己的算法或者通过你的单击2D视图或3D视图中的边缘轻松地拆分和接合面 ...

  8. 实例分割综述(单阶段/两阶段/实时分割算法汇总)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 简介 目标检测或定位是数字图像从粗到细的一个渐进过程.它不仅提供了图像对象的类,还提供了已分类图像中对 ...

  9. mask rcnn算法分析_实例分割综述(单阶段/两阶段/实时分割算法汇总)

    作者:Danny明泽 来源:公众号@3D视觉工坊 链接:实例分割综述(单阶段/两阶段/实时分割算法汇总) 简介 目标检测或定位是数字图像从粗到细的一个渐进过程.它不仅提供了图像对象的类,还提供了已分类 ...

最新文章

  1. python基础教程:对象之间的交互
  2. linux下交叉编译libusb的方法及编译一个使用了libusb库的test程序的方法
  3. 面试一位硕士海龟前端小姐姐有感
  4. apache 隐藏php版本,PHP+Apache环境中怎么隐藏Apache版本
  5. linux mysql提示1045_linux mysql ERROR 1045
  6. 七种主流平面板式介绍
  7. python电脑下载了怎么用-利用Python下载:You-Get的安装及使用方法
  8. java异常的捕获和处理
  9. Java设计模式百例 - 原型模式
  10. java注解拦截_轻松实现java拦截器+自定义注解
  11. 谷歌雅虎新闻大战-两种路线的PK
  12. 基于JAVA城市湖泊信息管理系统计算机毕业设计源码+系统+lw文档+部署
  13. 关于四叶玫瑰花数的问题
  14. ppt密码忘记了怎样能打开文档,ppt权限密码如何解开?
  15. PYNQ官方镜像配置
  16. tabIndex的用途
  17. vim如何与外界复制粘贴
  18. 常垒·会客厅:医保局时代下的医院智能数据大变革
  19. UINO优锘科技:数字孪生6大概念超强解析
  20. rabbitmq-plugins enable rabbitmq_web_stomp

热门文章

  1. Linux意外之rpm的删除与恢复
  2. 如何下载DELL服务器VMware ESXi镜像
  3. Sping WebSocket SockJS使用
  4. 【大数据技术干货】阿里云伏羲(fuxi)调度器FuxiMaster功能简介(一) 多租户(QuotaGroup)管理...
  5. 为你的组织设计自己的障碍消除流程
  6. 关于sql中case when的用法
  7. 运营商级网络地址转换(LSN/CGN)方案介绍
  8. vim批量转文件编码
  9. 解决.NET 4.0下无法直接运行.NET 2.0程序的问题
  10. Excel 2007 (Excel.Application) Workbooks.Add 出现内存不够的解决办法