关键词:三维位置、三维朝向、物体坐标系、世界坐标系、相机坐标系、成像坐标系、像素坐标系、三维模型、3D坐标值、2D像素点、投影点、物体中心点、关键点、旋转R、平移t、PnP

如何“感性”地理解物体的6D姿态估计任务?
答:

 三维世界中,比如我们开车行驶在道路上,我们不仅需要关注前方是否有车辆,而且更在意前方车辆的状态,或者说姿态,
是正在转弯,还是正在驶向自己,或是远离自己。其实这就是一个物体的6D姿态估计任务。物体就是前方车辆,其在当前时刻,
并在我方视角下,它的三维空间位置和三维朝向就是我们关注的任务。我们可以根据当前时刻下,前方车辆的实时状态
(位置+朝向),来调整自己下一步的操作,是减速,还是转弯,或是正常行驶等。在计算机视觉中,我方视角就是相机的镜头,那么在当前时刻下,如何正确地估计出相机中目标物体的6D姿态
(三维空间位置和三维朝向),将是一个重要的问题,这就是物体的6D姿态估计任务。有了准确的物体6D姿态信息,
会极大帮助我们解决其他后续任务。所以说,物体的6D姿态估计任务是计算机视觉中一项基本且重要的任务,其在自动驾驶,
虚拟现实、机器人抓取等领域都有着重大应用。由于世界上的所有物体,我们都可以建立它的三维模型,即以物体中心点为坐标原点,建立一个三维坐标系,那么我们就能
得到物体所有部位点在自身坐标系下的3D坐标值。由于物体是刚体,所以物体在自身坐标系下的3D坐标值永远是不会变的,
进而它在物体坐标系下的三维位置和三维朝向也不会变。但物体在相机系下的三维位置和三维朝向时时刻刻都在发生变化,
因为相机的移动就表示相机坐标系的移动变化,那么物体在相机系下的3D坐标值就会变化。比如我们开车行驶在道路上,
前方车辆在我们的视角下,三维位置和朝向时时刻刻发生变化,因为我方视角是移动变化的,
但其在它自身坐标系下的三维位置和朝向是永远不变的,这一点很重要。
(这里面需要区别物体姿态和相机姿态:物体姿态是估计当前帧坐标系,相对物体自身坐标系,物体在这两个坐标系之间的变换关系。
而相机姿态是,当前帧坐标系相对前一帧坐标系,物体在这两个坐标系之间的变换。此时的物体姿态估计就是相机的姿态估计。)由于在6D姿态估计任务中,我们知道物体在自身坐标系下三维模型,就知道了它在自身坐标系下的三维位置和朝向。
如果我们能知道物体从它自身坐标系变换到相机系下,所发生的R和t为多大,我们就能准确知道物体当前时刻在相机系下的
三维位置和朝向是怎样的了。比如物体在自身坐标系下,朝向是正南方,我们通过R的值,可以估计出其在相机系下,
朝向应该是东北方。物体在自身坐标系下的中心点位置为(0,0,0),通过t的值,我们能估计出它在相机系下的三维位置为
(1,2,3)。所以说,准确地估计出物体在相机系下的R和t,就能让机器自己知道它眼前的物体所处的位置和朝向。
在自动驾驶中,对于我们行车前的前方车辆,我们只要估计出它从自身坐标系变换到相机系下,发生的R和t为多大,
就能判断出它的三维位置和朝向,从而解决我方车辆自动做接下来的操作。(物体所有部位点,在自身坐标系下,有一组坐标值;在中间坐标系下,有一组值;在相机系下,也有一组值。
中间坐标系和相机坐标系,基相同,但原点不同;中间坐标系和物体自身坐标系,原点相同,但基不同。因此,
两组坐标值在中间坐标系和物体自身坐标系之间发生的变换,就是旋转R。
两组坐标值在中间坐标系和相机坐标系之间发生的变换,就是平移t。由于物体中心点在自身坐标系下的坐标为(0,0,0),
那么其在相机系下的3D坐标值就是平移t)。(pnp的算法原理是找到若干匹配的点对,一是知道这些关键点在物体3维模型下的3D坐标值,
二是知道这些关键点在相机系下的2D像素点,那么便可以求得这些关键点在相机系下的3D坐标值,
知道了点在不同坐标系下的坐标值,从而就能知道旋转矩阵R和平移t,将物体从物体坐标系变换到相机坐标系。
后面可以再通过RANSAC优化算法,使得预测结果更加准确)

如何“理性”地理解物体的6D姿态估计任务?
答:

首先,以物体中心或者质心为坐标原点,建立物体自身坐标系,记作坐标系1。由于是一个物体,
那么这个物体上所有的点在这个坐标系下,都会有一个坐标。同理,我们用相机拍摄物体时,在拍摄当前图片时刻,
我们以相机光心为坐标原点,建立了另一个坐标系,记作坐标系2。 其次,我们将坐标系2进行空间平移,
使得坐标系2的原点平移到目标物体的中心处,记作一个新的坐标系Q。我们知道,
坐标系1和Q差距在于绕物体中心处进行了旋转,坐标系Q和2在于坐标原点存在空间平移。那么我们如何描述目标物体在坐标系2下的位姿呢?我们通过图片中的物体,提取目标物体表面的一些特征点,这些点和坐标系1下物体表面的点存在匹配关系。
比如匹配了物体表面的三个点A,B,C。以A为例,我们知道,A在坐标系1下会有一个坐标,A在坐标系Q下也有一个坐标,
这两个坐标存在什么关系呢?或者说,是通过什么来变换呢?此时,我们需要借助向量来形象化理解,将点A看成向量a,
对于坐标系1和Q来说,向量a都是从坐标原点指向点A,那么此时向量a在坐标系1下的坐标,
就是物体表面A点在坐标系1下的坐标,两者值是相等的。而向量a在坐标系Q下的坐标,就是物体表面A点在坐标系Q下的坐标。
两者的坐标变换,是通过引入向量a在两组不同基下的表示,进行转换的。再通过等式变换,就引出了旋转矩阵R。
(推导见高博第三讲)
我们可以知道旋转矩阵R的物理意义,就是将物体表面点A在坐标系1下的坐标,变换到点A在坐标系Q下的坐标。
由点A扩展到整个物体上所有点,那么旋转矩阵R作用就是,将目标物体表面上的所有点的坐标由坐标系1变换到坐标系Q下了,
即将目标物体由坐标系1变换到坐标系Q。此时还没有结束,因为我们需要求得是目标物体所有点在坐标2下的坐标,由于目标物体在坐标系Q下的坐标,
我们已经全部求出来了,又由于坐标系Q和2只存在原点位置不同,构成的坐标系的基都是相同的,所以,
在目标物体坐标系2下的坐标,和目标物体在坐标系1下的坐标相比,就只存在一个空间平移t,
t就是坐标系Q和坐标系2两者原点的空间位移。(我们在计算两者距离时,应当将坐标系2的原点看成(0,0,0),而此时坐标系Q的原点位置就是其在坐标系2下的坐标,
假设为(2,3,4),拿坐标系Q的原点坐标(2,3,4)减去坐标系2的原点坐标(0,0,0),便得到空间平移量t,即为(2,3,4)。
注意,目标物体在坐标系Q下的坐标,仍然是将坐标系Q的原点看成是(0,0,0),而不是看成(2,3,4)。)那么我们将目标物体所有点在坐标系Q下的坐标,加上这个空间平移量,便得到目标物体所有点在坐标系2下的坐标了。
由于我们不方便用多个特征点的形式,来共同描述目标物体在坐标系2下的坐标,我们就把目标物体从坐标系1到坐标系2下,
所发生的的空间旋转矩阵R和空间平移t来作为描述目标物体在坐标系2下的6D位姿。原始物体所在世界系到相机系的RT变换:即求目标物体表面上所有3D点,这些点在自身坐标系下的3D坐标,变换到,
这些点在当前相机系下的3D坐标,两者所需要的的旋转变换R和平移量t。
(坐标变换公式:空间向量(刚体)在不同基下的坐标,坐标之间的变换,就是旋转变换)3D物体的位姿,也即相机系下,物体的空间位置(x,y,z)和姿态(可用与坐标轴的3个角度a,b,c,或者3x3旋转矩阵,
或者四元数表示)(是相对于自己定义的物体标准姿态的旋转),是6自由度

学习思路:
1)首先了解基础知识:了解物体6Dpose的物理意义,多种表示李代数欧拉角四元数等,用PnP求解6Dpose的原理等;
2)其次,阅读综述论文,看业界为了求解6D姿态用了哪些方法,传统的以及深度学习的,可以只看摘要和前沿;再次,挑选几篇代表性、前沿、开源的代码,实际复现测试,分析优缺点;
3)最后,结合自身项目,确定输入数据是纯RGB,还是RGB-D,还是Lidar点云,有没有对应的3D模型,对于速度或者精度要求多高,是不是只针对实例级别物体等,选择最接近的某个算法,在其上面改进;

如何理解物体的6D位姿估计任务?相关推荐

  1. 刚体6D位姿估计方法综述

    本文同步于微信公众号:3D视觉前沿,欢迎大家关注. 1 引言 刚体的6D位姿估计,是指估计相机坐标系下物体的6D位姿,即3D位置和3D姿态,此时原始物体本身的坐标系可以看作是世界坐标系,也即得到原始物 ...

  2. 盘点类别级物体6D位姿估计

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 学习3D视觉核心技术,扫描查看介绍,3天内无条件退款 圈里有高质量教程资料.可答疑解惑.助你高效解决问 ...

  3. 三维向量变化为角度_物体的三维识别与6D位姿估计:PPF系列论文介绍(四)

    作者:仲夏夜之星 Date:2020-04-14 来源:物体的三维识别与6D位姿估计:PPF系列论文介绍(四) 文章"3D Pose Estimation of Daily ObjectsU ...

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

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 简介 作者提出了一种基于RGB-D的深度学习方法6PACK,能够实时的跟踪已知类别物体.通过学习用少量 ...

  5. 物体6D位姿估计方法总结

    物体6D位姿估计方法总结 在抓取中,6D物体位姿常常是被需要的,能够帮助机器人获得目标物体的位置和方位. 方法分类: ①. 基于对应的方法 找到输入数据与存在的完整3D物体模型之间的对应关系.有两种实 ...

  6. 论文笔记,物体六自由度位姿估计,DenseFusion: 6D Object Pose Estimation by Iterative Dense Fusion

    论文笔记,物体六自由度位姿估计,DenseFusion: 6D Object Pose Estimation by Iterative Dense Fusion 链接 摘要 1,引言 2,模型 2.1 ...

  7. 物体的三维识别与6D位姿估计:PPF系列论文介绍(一)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 学习3D视觉核心技术,扫描查看介绍,3天内无条件退款 圈里有高质量教程资料.可答疑解惑.助你高效解决问 ...

  8. 传统的6d位姿估计fangfa1_基于改进的点对特征的6D位姿估计

    来源:公众号|计算机视觉工坊(系投稿) 作者:仲夏夜之星 「3D视觉工坊」技术交流群已经成立,目前大约有12000人,方向主要涉及3D视觉.CV&深度学习.SLAM.三维重建.点云后处理.自动 ...

  9. 基于改进的点对特征的6D位姿估计

    论文题目:6D Pose Estimation using an Improved Method based on Point Pair Features 作者:Joel Vidal, Chyi-Ye ...

最新文章

  1. pyinstaller打包py文件生成的exe出现闪退问题
  2. python使用正则验证电子邮件_如何使用正则表达式验证电子邮件地址?
  3. 《电脑报》:中国“人肉搜索第一案”幕后之谜
  4. 【codevs1368】【BZOJ1034】泡泡堂BNB,贪心思路
  5. 用户空间和内核空间通讯之【Netlink 中】
  6. Redis基础(十一)——缓存穿透和缓存雪崩
  7. 【jQuery笔记Part1】12-jQuery元素的角标
  8. 为何手机厂商如此热衷 5G?
  9. java毕业设计会员刷卡积分管理系统mybatis+源码+调试部署+系统+数据库+lw
  10. git因commit的记录太大导致push失败解决方法
  11. c语言:从键盘输入两个正整数,求其最大公约数和最小公倍数
  12. Mysql 当前月每天累计统计,Mysql 本月第一天
  13. 简单控件学习——Lable/HyperLink
  14. Windows防火墙开关及入站规则
  15. 中国传媒发展十大趋势
  16. SSM框架中 出现的406 (Not Acceptable)
  17. 安装SolidWorks显示服务器,SolidWorks 映像管理安装详解
  18. 基于GeoHash算法的地理位置检索
  19. log4jdbc-log4j2浅析(sqlfx客户端采集日志的来源)-java 输出sql执行时间
  20. 【labview】图表时间轴(数据+时间戳) +源程序

热门文章

  1. 网络工程与机房等精华指引贴
  2. 如何彻底禁用VS 2008的智能感知功能
  3. 通用分页存储过程(转自邹建)
  4. 手机的秘密--按几个键就知道
  5. 20张图助你了解JVM运行时数据区,你还觉得枯燥吗?
  6. 业务高峰期不小心拔掉了服务器电源!!
  7. 我用Redis实现了一个轻量级的搜索引擎!
  8. 一口气说出 过滤器 和 拦截器 6个区别,别再傻傻分不清了
  9. 你必须会的 JDK 动态代理和 CGLIB 动态代理
  10. 想读Spring源码?先从这篇「 极简教程」开始