打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
基于深度学习的六维物体位姿估计和追踪:从实例级到类别级
userphoto

2022.09.16 湖南

关注



简介
什么是六维物体位姿?其核心思想是更好的去定义一个物体的位置和朝向。
 
对于一个已知物体,如下图所示展示了一个瓶子,这个瓶子可以在它的模型里建立一个它自身的坐标系,用右边的O-XYZ表示,在实际的相机中看到这个物体的时候,物体换了另外一个地方和朝向,这个过程中涉及到把物体从它自身的参考系搬运到相机坐标系或者世界坐标系的过程,这个过程涉及到三维的平移和三维的旋转。

也就是说,在这个过程中如果想要表示物体在相机坐标系中的位置,我们需要一个3自由度的平移,同时需要一个3自由度的旋转。这6个自由度刻画了物体在我们正常世界中的一个刚性运动。
 
图1
 
 
上述估计有什么应用?第一个应用是在元宇宙相关的技术中,AR增强现实是元宇宙中沉浸体验的途径或主要窗口。
 
在这里举两个例子,左上角有一台咖啡机,如果对这个咖啡机,手里拿一个ipad,它时刻有一个位姿估计的算法,告诉你咖啡机在当前这个iPad的相机坐标系的位置和朝向是什么,你就能精准的把它上面的一些按钮和功能渲染上去。

这个能够用作E-learning用于演示或者视觉引领,同时手机上有各种大量的AR游戏都需要我们对现实生活当中的比如桌子平面的位置、一定物体屏幕前空间的朝向进行估计,我们就可以把新的物体渲染到上面去,产生一些娱乐效果。
 
图2
 
第二个应用场景:六维位姿用于机器人操纵
 
六维位姿估计的源头其实在机器人学中。我们想象我们传统的机器人手抓取一个物体,怎么做这个问题呢?我们可以在一个已知物体上对它的抓取点进行标注,如果知道抓取点在哪里就可以直接把机械臂的夹爪运动到相应的位置,这个标注只能在物体自身的CAD模型上。

当物体在现实世界中时,需要弄清楚现在这个抓取点在哪里,然后把夹爪运动到相应的位置。

现在的抓取点在哪里实际就是把物体的六维位姿当做一个变换,乘到物体模型上标注的抓取点上,这样就把抓取点搬运到了相机坐标系,或者进一步的相机坐标系到世界坐标系的相对变换可以把抓取点的位置变换到世界坐标系。
 
一旦这个完成了,就可以进行运动规划,让夹爪运动到抓取点进行抓取。同时这只是单帧的位姿估计,我们在机器人对物体进行实时操控的时候,比如打开门,这个门目前开多少度,我们要实时追踪当前位姿,这样就能从视觉信号提取当前状态信息,做一个所谓的闭环控制。

位姿的连续实时追踪能让我们更好的从视觉信号反馈机器人操纵进行的闭环控制,这是六维状态追踪在机器人中的应用。
 
图3
 
第三个应用:六维位姿用于人类物体交互
 
这个问题既是一个视觉问题,又是一个机器人问题。人类怎么操纵日常中的物体?

从视觉角度理解是一种对人类活动的理解和监控,物体在你手里从哪拿到哪,搬运一个椅子,是出现危险,对婴幼儿,对老年人除了人体的位姿姿态的估计以外,物体的位姿也很重要。

同时对应人、手位姿的序列,将其轨迹提取出来还可以用于机器人学中的模仿学习,人怎么抓取物体,人在抓取物体的时候怎么抓握运动过程中位姿怎么变化,这些都可以用于机器人的模仿学习。
 
图4
 
以上是机器人位姿估计的三个主要应用,当然还有更多,就介绍这些。今天我们关注的是如何使用深度的神经网络来进行六维位姿估计和追踪。
 
六维物体位姿


我们注意到,对于已知的物体,比如这里的瓶子,神经网络输出的是它在输入图像中的三维平移和三维旋转。

三维平移其实是非常好理解的,只能沿X方向、Y方向和Z方向进行运动,这三个是唯三的独立的维度。旋转为什么是三个自由度?同时该怎么预测旋转比预测平移更加tricky?下面我们介绍一下如何去预测旋转或一个朝向。
 
图5
 

旋转

什么是旋转?在大一的线性代数里应该都学过正交矩阵,正交矩阵的特点是如果我们用R来代表一个正交矩阵,则
。正交矩阵的行与行之间是正交的,其点积是0。

同一行和自己的点积是1,也就是说它的长度是1,列也是一样的。我们知道旋转矩阵是一类特殊的正交矩阵,怎么特殊呢?就是它的
,也就是说它的行列式是正。

那么大家如果还能回忆起线性代数的知识的话,这叫所有的正交矩阵的行列式的值只能是+1和-1,这个值其实它具有更深刻的几个含义:+1意味着这样的一个正交矩阵就是一个旋转,-1意味着这个正交矩阵不但旋转了这个物体,还对它进行了一个镜像操作。左手和右手并不是差一个旋转,而是差一个镜像。

那么我们关注的物体的刚体的在现实世界当中的运动不包含镜像,这个是做不到的,只能做到旋转。所以我们关心的旋转问题就是只关心行列式为+1的正交矩阵,这些就是3*3的空间中的旋转矩阵。

所有三维空间中的旋转矩阵构成了一个群
,S代表Special特别的,指的是其行列式值为正,O代表Orthogonal正交。这是我们做六维物体位姿估计,特别是旋转估计时经常用的。
 
那么我们怎么直观的理解三维旋转呢?我们可以先看一下什么叫二维旋转。二维旋转只能在图像平面旋转,其转轴垂直于图像表面,z轴只有一个自由度。

三维旋转可以发现在空间找出3个独立的主轴,先绕一个转,再绕第二个转,再绕第三个转,这也是三维旋转拥有3个自由度的原因。
图6
 
那么我们这里讲到了下一个概念,就是旋转矩阵的不同表示。我们刚刚介绍了
矩阵的表示有9个矩阵元素。

这里存在的问题:为什么三维旋转只有3个自由度,却要用9个数字表示?其实这9个数字中只有3个是独立的。如果想用神经网络预测旋转的话,是不是要预测9个数字呢?

如果想直接用神经网络预测旋转矩阵,还要满足各行各列相互垂直,单位长度是1,听起来这是比较困难的。
 

实例级六维物体位姿估计

估计的物体根据CAD模型是已知的,可以看到位姿的估计是很依赖于物体本身的CAD模型。

如果没有这个物体,比如随便给一个东西,你都不知道它的中心是怎么定义的,你也不知道它的正面是什么,那么你就根本不可能谈在世界坐标系中这个东西目前的朝向是什么,你连正面都没有定义,怎么定义朝向。

所以,实例级的六维物体位姿估计自然要求你必须知道每一个要估计物体的朝向和中心是怎么定义的,我才能谈它现在在哪,面向的方向。
 
由于我都知道这个物体,所以它的大小也是已知的,那么我们发现其实从一个单张的RGB图片,不需要深度图就可以估计它的全部的六维位姿。

虽然没有深度,但是由于知道物体的大小,所以它在图片中的大小其实给了深度的信息,因为近大远小,知道物体真实的大小,它在图片中的大小其实在已知相机内参的情况下就唯一给定了它的深度。

所以不需要深度图就可以对已知的物体进行六维位姿估计。
图7
 
假设有一个已知实例的小数据集,比如有十个物体以及它们的CAD模型,我不能预测超过这10个物体以外的物体。

但是这种不能向新的物体泛化的约束使得我们的位姿估计算法在真实世界当中对各种物体进行估计造成了很大的限制,这是主要的限制。
 

类别级的六维物体位姿估计

类别级六维物体位姿:我希望能够对一个物体的类别定义它的位姿,在测试时不需要见过这个物体,甚至不需要物体的CAD模型,就能直接的说它的朝向和位置。

比如下图的马克杯,可以说把马克杯的把手那面冲着我,并不需要知道这个马克杯是什么,但我就可以谈论你把它的把手的方向冲着我,这是因为所有的马克杯都有把手,将所有马克杯的把手朝向同一个方向。

这样就定义了马克杯把手朝向的参考系,这样的参考系可以让我们即使没有见过这个类别的某一个实例,我们可以直接的说出它目前的朝向是什么。
 
 
图8
 
 
这个idea是在2019年CVPR中的论文“Normalized object coordinate space for category-level 6D object pose and size estimation”第一次把它使用到了六维位姿估计中,能够同时做六维位姿估计和三维物体大小估计。
 

基于类别的六维物体追踪

我们已经有单帧的预测方式了,那能不能够从时序的序列当中进行一个追踪。这就是我们ICCV2021发表的论文CAPTRA:category-level pose tracking for rigid and articulated objects from points clouds。
 
输入的是深度点云,给它第一帧的pose,这个pose可能含有噪声,我们希望我们能够得到一个关于时序非常平滑的一个位姿追踪。
 
图9
 
先看一个这个工作的结果,如果想进行一个实时的闭环控制,那么也需要一个实时的位姿追踪,光有单帧的是不够的,因为帧与帧之间的位姿可能是不连续的,有的地方有错,就会影响决策,所以需要一个连续的更加精准的时序追踪。
 
图10
 
这是我们的一个demo,左边是我们预测的,右边是之前的算法做的一个类别级的位姿追踪,可以看到我们的方法在四个物体上都进行了精准的追踪,整体都能追踪。右边的结果会有跑飞的情况。
 
图11
 
结果:几乎可以做到完美追踪,所有物体在训练中都没有见过。
 
图12
 
在合成数据上直接可以测试在真实数据上,左边在已有数据集上拿出来一个序列,右边是在家里录的一个剪刀序列。
 
图13
 
还可以用它做机器人的闭环控制,开关抽屉,这些都是一些demo。
 
图14
 
核心问题就是我们要把t帧的预测位姿加上修正量得到t+1帧的pose的预测,这个过程可以循环往复。
 
图15
 
第一次把预测做到端到端,具体方式我们简单的说一下。
 
图16
 
从第t+1帧预测第t帧叫做pose canonicalization。有第t+1帧的点云,也有第t帧的每个part的pose,那么如何预测第t+1帧的pose呢?

从视觉上改变t+1帧的点云,把第t帧的点云和第t帧的pose的逆乘到第t+1帧的点云上,这个就叫canonicalization。

这样做的好处是part的residual都很小,使得我们的输入状态是对齐的,都在一个小范围内运动。
 
图17
 
结果:我们的方法鲁棒性强,精度高。每一帧加入噪声的结果也仍具有鲁棒性。
 
图18
 
图19
 
图20

结论

1.六维位姿估计是计算机视觉和机器人学甚至是图形学的重要任务。

2.类别级六维物体位姿估计对于实例级位姿估计是一个重要的泛化。

3.能够在新的物体上进行估计和追踪类别级位姿,将能够复现未来AR和机器人学应用的发展。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
空间点位的位置与姿态表示
OpenGL学习脚印: 理解坐标系及坐标变换(下)
三維旋轉矩陣實用算法
关于Opengl各种矩阵变换(MVPW)的自我理解
关于“平移与旋转”的对话
三维变换与投影
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服