传统的6d位姿估计fangfa1_李飞飞团队最新论文:基于anchor关键点的类别级物体6D位姿跟踪...

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

干货第一时间送达

c94126ea608a826988a5a0da61f500a7.png

简介

作者提出了一种基于RGB-D的深度学习方法6PACK,能够实时的跟踪已知类别物体。通过学习用少量的3D关键点来简洁地表示一个物体,基于这些关键点,通过关键点匹配来估计物体在帧与帧之间的运动。这些关键点使用无监督端到端学习来实现有效的跟踪。实验表明该方法显著优于现有方法,并支持机器人执行简单的基于视觉的闭环操作任务。

问题的提出

在机器人抓取任务中,实时跟踪物体6D位姿的能力影响抓取任务的实施。现有的6D跟踪方法大部分是基于物体的三维模型进行的,有较高的准确性和鲁棒性。然而在现实环境中,很难获得物体的三维模型,所以作者提出开发一种类别级模型,能够跟踪特定类别从未见过的物体。

创新点

1、这种方法不需要已知物体的三维模型。相反,它通过新的anchor机制,类似于2D对象检测中使用的proposals方法,来避免定义和估计绝对6D位姿。2、这些anchor为生成3D关键点提供了基础。与以往需要手动标注关键点的方法不同,提出了一种无监督学习方法,该方法可以发现最优的3D关键点集进行跟踪。3、这些关键点用于简洁的表示物体,可以有效地估计相邻两帧之间位姿的差异。这种基于关键点的表示方法可以实现鲁棒的实时6D姿态跟踪。

核心思想

作者提出的模型使用RGB-D图像,基于之前位姿周围采样的anchors(红点),来鲁棒地检测和跟踪一组基于3D类别的关键点(黄色)。然后利用连续两帧中预测的关键点,通过最小二乘优化求解点集对齐的问题,计算出6D物体的位姿变化:

437daeedd5a4d705e89d21d2aae61e51.png

问题的定义

将类别级物体6D位姿跟踪定义为:物体在连续时间t−1和t之间的位姿变化问题。初始位姿是针对相同类别的所有目标物体定义的标准框架相对于相机框架的平移和旋转。例如,对于类别“相机”,将框架放置在物体的质心处,x轴指向相机物镜的方向,y轴指向上方。将3D关键点定义为:在整个时间序列中几何和语义上一致的点。给定两个连续的输入帧,需要从两帧中预测匹配的关键点列表。基于刚体假设的基础,利用最小二乘优化来解决点集对齐问题,从而得到位姿的变化∆p。

模型

首先在预测物体实例的周围剪裁一个放大的体积,将其归一化为一个单元;在体积块上生成anchor网格;之后使用DenseFusion计算M个点的几何与颜色融合特征;根据距离将它们平均池化成N个anchor特征;注意力机制网络使用anchor特征来选择最接近质心的点;用质心生成一组有序的关键点。将这种关键点生成方法应用在前一帧和当前帧,得到两组有序的关键点来计算帧间的位姿变化。6ea9dad38692bcca2e2f31d4836b19b3.png6-PACK算法在预测位姿周围生成anchor网格的过程中使用了注意力机制。每个点用RGB-D点单独特征的距离加权和来表示体积。使用anchor信息在新的RGB-D框架中找到物体的粗略质心,并指导对其周围关键点的后续搜索,这比在无约束的三维空间中搜索关键点效率更高。 

实验与结果

作者采用的数据集是NOCS-REAL275,包含六个类别。通过对比三个模型的baseline来评估作者的方法。NOCS:类别级物体6D位姿估计sota。ICP:Open3D中中实现的标准点对面ICP算法。KeypointNet:直接在三维空间中生成3D关键点。308fbc2f6eeee0c3f12d14b6cca21584.png1)6-PACK指标5°/5cm比NOCS高出15%以上,指标IoU25高出12%。说明与使用所有输入像素作为关键点的NOCS相比,6-PACK能够检测出最适合类别级6D跟踪的3D关键点。实验结果如下图所示:83acdd49b9d8f6a4f97fd9e9e774b1df.png其中,前两列为NOCS和6-PACK的定性对比,后两列为关键点匹配的结果。2)6-PACK所有指标都优于KeypointNet,KeypointNet经常跟丢。作者的方法避免了丢失物体的轨迹(IoU25>94%),基于anchor的注意力机制提高了整体的跟踪性能。3)为了检验不同方法的鲁棒性和稳定性,作者计算了没有前x帧的平均性能。这样就能测量出初始位姿对性能的影响(接近初始位姿的帧很容易跟踪)。如下图,除了NOCS之外,所有方法的性能都有所下降,因为NOCS是位姿估计方法,而不是位姿跟踪方法。在整个过程中,6-PACK的性能比NOCS高出10%以上,并在初始帧100后停止下降。bf9c5ed76245ceb8d9712b346b4784aa.png4)作者在机器人上进行了实时测试,超过60%的试验中,成功地跟踪了目标(目标在可视范围内),而没有丢失。

论文地址:https://arxiv.org/abs/1910.10750v1

代码链接:https://sites.google.com/view/6PACKtracking

上述内容,如有侵犯版权,请联系作者,会自行删文。

推荐阅读

吐血整理|3D视觉系统化学习路线

那些精贵的3D视觉系统学习资源总结(附书籍、网址与视频教程)

超全的3D视觉数据集汇总

大盘点|6D姿态估计算法汇总(上)

大盘点|6D姿态估计算法汇总(下)

机器人抓取汇总|涉及目标检测、分割、姿态识别、抓取点检测、路径规划

汇总|3D点云目标检测算法

汇总|3D人脸重建算法那些年,我们一起刷过的计算机视觉比赛总结|深度学习实现缺陷检测深度学习在3-D环境重建中的应用汇总|医学图像分析领域论文大盘点|OCR算法汇总

重磅!3DCVer-知识星球和学术交流群已成立

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导,550+的星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款690610f30159eac89aa20c2314a83f70.png

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

欢迎加入我们公众号读者群一起和同行交流,目前有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别等微信群,请扫描下面微信号加群,备注:”研究方向+学校/公司+昵称“,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进去相关微信群。原创投稿也请联系。

adc857a3e08ea6ed30fa0edacd879f96.png▲长按加群或投稿

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/533794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c语言的程序结构语序,第3章 C语序结构.doc

第3章 C语序结构第三章 基本语句本章要求:1.表达式语句,空语句,复合语句2.数据的输入与输出,输入,输出函数的调用C语句概述C程序的执行部分是由语句组成的。 程序的功能也是由执行语句实现的。3.1 赋值语句赋值语句: 是由赋值表达式再加上分号构成的表达…

安卓system镜像分区_玩机爱好者想要的PT分区到底是什么?可以使现有的安卓系统更快!...

小编第一次看见PT分区这个词。就比较好奇他到底是什么神仙技术。今天,小编给大家科普一下,可能小编理解的也不是特别准确,请各位谅解!! 欢迎关注小编。各位玩机爱好者总是沉浸在各种ROM包、第三发Rec,以及各…

计算器软件C语言课程设计实验报告,c简单计算器实验报告_相关文章专题_写写帮文库...

时间:2019-05-15 12:55:15 作者:admin计算器实验报告班级: 07计本(1)班姓名: 王林学号: 20706031047指导老师: 韩静一、 需求分析(1)制作一个计算器界面工程,有数字运算符等键,输入表…

python求和1到100_python等差数列求和公式前 100 项的和实例

python等差数列求和公式前 100 项的和实例 最近跑去学了下python,一个很简单的题,结果发现数学公示忘了,在不用for循环的情况下居然有些懵,记录为下.. 题:等差数列可以定义为每一项与它的前一项的差等于一个常数,可以用…

android mqtt详解_Android mqtt入门 Android studio(转)

Android mqtt入门 Android studio2018年04月09日 14:02:30 hbw020 阅读数:1564分享 mqtt简单使用介绍:1、as创建工程2、官网下载mqtt支持包放入lib文件,点击打开链接,https://repo.eclipse.org/content/repositories/paho-release…

jupyter kernel_新乡联通案例分享:Jupyter开发环境配置的常用技巧

Jupyter开发环境配置的常用技巧新乡联通网管中心 邢少华Python开发环境中,大部分人使用的是Jupyter,在Jupyter中有几个令人困扰的问题:1. Jupyter的默认打开目录如何修改2. Jupyter默认使用的浏览器如何修改3. 好用的Jupyter插件如何安装4.…

东北大学c语言及程序设计,东大20秋学期《C语言及程序设计》在线平时作业1参考...

20秋学期《C语言及程序设计》在线平时作业1( j- V: Z* f0 i V& k% b, S. ?/ _8 ~1.[单选题] 在C语言中,引用数组元素时,其数组下标的数据类型允许是()。2 6 g, p1 C$ P; B$ _( J附件是答案,核对题目下载4 m1 F; D: R* q; AA.整型常量- _…

mac安装ipython_Mac下安装ipython与jupyter

IPython从Python发展而来,更倾向于科学计算。互联网数据分析更喜欢用。首先切换root用户:sudo su -pip3自动安装ipythonMacBook-Pro:~ root# pip3 install ipython自动安装完成后建立软连接,方便使用MacBook-Pro:bin root# ln -s /Library/Fr…

二叉树 中序遍历 python_LeetCode 105 树 从前序与中序遍历序列构造二叉树(Medium)

17(105) 从前序与中序遍历序列构造二叉树(Medium)描述根据一棵树的前序遍历与中序遍历构造二叉树。注意: 你可以假设树中没有重复的元素。示例例如,给出前序遍历 preorder [3,9,20,15,7] 中序遍历 inorder [9,3,15,20,7]返回如下的二叉树:3/ 9 20/ 1…

c语言删除双向链表重复元素,求一个双向链表的建立,插入删除的c语言程序完整版的,借鉴一下思想,再多说一下就是能运行的那种...

最佳答案//链表的操作编辑//线性表的双向链表存储结构typedef struct DuLNode{ElemType data;struct DuLNode *prior,*next;}DuLNode,*DuLinkList;////带头结点的双向循环链表的基本操作void InitList(DuLinkList L){ /* 产生空的双向循环链表L */L(DuLinkList)malloc(sizeof(D…

华为p10和p10plus区别_华为p10和p10plus哪个好 华为p10与p10plus区别对比【图文】

华为p10与p10plus是华为在2017年的首发旗舰手机,作为颜值与配置都很亮眼的华为p10与p10plus自然成了大众的焦点,当然也就避不可免的用来对比。究竟华为p10和p10plus哪个好?下面小编就来给大家讲讲华为p10与p10plus的区别对比。华为P10与P10 Plus区别对比…

python数学圆周率_Python编程超简单方法算圆周率

我们都知道,圆周率是3.1415926也就是π,但你有没有想过,圆周率是怎么算出来的呢? 这个是德国数学家莱布尼兹发明的算圆周率的方法,公式为:π4(1-1/31/51/71/9-1/11……),其中,分母每…

计算payload长度c语言,C语言0长度数组(可变数组/柔性数组)详解

1 零长度数组概念众所周知, GNU/GCC 在标准的 C/C 基础上做了有实用性的扩展, 零长度数组(Arrays of Length Zero) 就是其中一个知名的扩展.多数情况下, 其应用在变长数组中, 其定义如下struct Packet{ int state; int len; char cData[0]; //这里的0长结构体就为变长结构体提供…

iphone主屏幕动态壁纸_iPhone8怎么设置动态壁纸?iPhone8动态壁纸设置教程

iPhone8怎么设置动态壁纸?朋友们平时想把一些拍摄的动态图片设置iPhone8壁纸,该怎么设置呢?估计有 不少朋友还不知道如何设置, 在这里我就来为大家介绍一下iPhone8设置动态壁纸的教程,一起来看一看吧!iPhone8动态壁纸设置教程首先打开iPhon…

python封装介绍_谈python3的封装

这章给大家介绍,如何封装一个简单的python库首先创建一个以下型式的文件结构rootFile/setup.pyexample_package/__init__.pyexample_module.pyexample_package2/__init__.pyexample_module.py其中的两个__init__.py可以是一个空文件,但是它是导入package…

go语言调用c 的头文件 so,golang 学习(10): 使用go语言调用c语言的so动态库-Go语言中文社区...

一、前言最近在学习go,因为需要调用c语言打包成的so动态库里面的方法,避免自己再去造轮子,所以想直接使用golang调用so,但是参考了其他博客大佬写的,我每一步原封不动的写下来,结果都是一堆错误&#xff0c…

log nginx 客户端请求大小_Nginx日志分析和参数详解

本文档主要介绍Nginx设置日志参数的作用,以及Nginx日志常用分析命令基本大纲:1.Nginx日志记录格式的介绍2.Nginx日志参数详解3.Web服务流量名词介绍4.Nginx日志常用分析命令示范一:Nginx日志记录格式的介绍log_format用来设置日志的记录格式&…

python函数的封装调用_Python封装一个函数来打印到变量

如果我有一个包含大量打印语句的函数: 即. def funA(): print "Hi" print "There" print "Friend" print "!" 我想做的是这样的事情 def main(): ##funA() does not print to screen here a getPrint(funA()) ##where get…

android 开机动画 渐变,[Parallax Animation]实现知乎 Android 客户端启动页视差滚动效果...

前言Parallax Scrolling (视差滚动),是一种常见的动画效果。视差一词来源于天文学,但在日常生活中也有它的身影。在疾驰的动车上看风景时,会发现越是离得近的,相对运动速度越快,而远处的山川河流只是缓慢的移动着&…

js访问对方手机文件夹_求JS大神帮我写个利用JS来实现手机端和PC端访问自动选择样式文件代码...

展开全部现在比较流行的办法是 一个网站2套代码,一套是手机一套pc,在网站首页开e68a84e8a2ad3231313335323631343130323136353331333363353735头写上一段识别各浏览器的判断方法,根据结果引入不同的样式详细判断如下:var browser{…