您的位置:首页 > 移动开发 > Objective-C

Coordinates-Based Disentangled Pose Network for Real-Time RGB-Based 6-DoF Object Pose Estimation笔记

2020-01-14 07:35 801 查看

文章目录

  • 3.2 Dynamic Zoom In
  • 3.3 Continuous Coordinates Regression
  • 3.4 Analysis on Translation
  • 3.5 Scale-invariant Translation Estimation
  • 3.6 Training Strategy
  • 小结

  • 首先这篇文章是一个使用RGB图片进行6d姿态估计的一个方法。

    1. 摘要

    现有的方法:

    • 使用深度网络,直接回归rotation和translation
    • 建立2D-3D之间的关系,然后使用PnP解决(需要三维模型,在三维模型上预定义一些点或者其他信息)
      作者认为rotation和translation有着显著区别,所以应该差别对待。所以提出了CDPN,来分开预测rotation和translation,可以很好的处理缺乏纹理以及遮挡物体。

    2. Introduction

    贡献:

    • 第一个将间接的通过PnP-based方法预测rotation和使用直接回归的方法估计object pose的方法。
    • Dynamic Zoo In
    • 为了达到实时的要求,在rotation估计上提出了2阶段 object-level 坐标估计,并提出了MCC损失
    • 提出了SITE来估计 translation。
    • 在LINEMOD数据集上得到了很好的效果,并且达到了30ms per image,可以做到实时。

    3. 方法

    3.1 框架

    rotation

    作者采用coord-based的方法来估计rotation,因为这种 dense correspondence 在面对 遮挡和clutter的时候鲁棒。为了建立2d和3d的关系,首先需要提取exact object region,就是进行目标检测,得到被检测物体所在的大致位置。
    其实这个网络作者并没有说明是什么网络,原因是因为,作者不想受特定检测网络的限制,所以想出了一个方法来确保这一点(具体方法请看后面的部分),网络只需要满足:

    • 足够快,轻量级(满足实时监测的需求)
    • 输出(检测出的区域)需要是一个固定大小的目标区域(可以resize)

    translation

    至于translation,不是直接回归,而是使用了SITE(Scale Invariant Translation Estimation)从检测到的目标区域来进行预测,具体可以看后面的章节。这两部分网络合起来就构成了CDPN网络。

    3.2 Dynamic Zoom In

    因为物体的size会因为和相机距离的变化而不断改变,作者为了避免这个问题,将检测到的物体缩放到一个固定的尺寸。
    前面也说到了,作者想了一个方法来确保这个方法不受特定的网络限制,这个方法就是:自己模拟目标检测的结果
    详细说来就是,考虑目标检测的结果(也就是bbox框出来的区域)相对于ground truth可能存在的偏差:

    • 中心点的偏差
    • 还有就是box尺寸的偏差
      然后从一个分布中,随机采样偏差值,将这些扰动和ground truth结合,,然后再resize到固定尺寸作为输出,用这个来代替目标检测的结果,从而避免了受特定目标检测网络的限制。这个分布如下:

      xy就是bbox中心点的坐标,s是宽和高中的最大值,保证宽高比不变。
      有几点好处,都是论文中列举的,我在这里搬运一下:
    • 有了这个扰动,让pose estimation 更加鲁棒
    • 提高了系统的可拓展性,整个系统可以根据需求自由的选择detector(更快的还是更精确地)
    • 可以为pose estimation 提供更多的训练样本,来提高效果。
    • 让后续的PnP算法和RANSAC算法所耗费的时间不变

    3.3 Continuous Coordinates Regression

    Coordinates-Confidence Map

    在估计rotation的时候,其实是先估计一个坐标图,还有一个confidence图。

    • confidence图指明了这个像素是否属于这个目标。
    • 坐标图是这个物体坐标系下的的三维坐标,这个坐标的ground truth是根据已知cad模型计算出来的。
      这里作者并没有使用额外的分支,使用的是一支,直接输出(HW4)的map,因为作者认为他们有一些关系。

    Masked Coordinates-Confidence Loss

    作者这里指出有些文章是使用分类来算坐标(NOCS其实也是分类,文章中证明分类效果要好于回归),这里是使用回归,如果是分类的话可以直接给背景分一个单独的类,计算loss的时候比较好处理,这里使用回归,无法定义背景的ground truth,所以需要这个confidence map。

    • 圆圈代表 Hadamard product,其实就是矩阵对应位置值相乘
    • 带~的代表的是预测值

      这个loss其实比较好理解,就是坐标的loss和confidence map的loss。

    Building 2D-3D Correspondences


    这个其实就是计算6d pose中的 translation,也就是这个物体所处的二维空间的位置。带波浪的,还有cu,cv是原图上的bbox的尺寸还有bbox中心点的坐标,ci,cj是目标检测的结果,也就是坐标图(reszie后)的中心点的坐标。这个计算的是坐标图上的一点ij在原图上的位置。

    • 个人觉得两个S的位置写反了(经作者证实确实写反了)
    • 个人觉得Sx 和Sy并不是坐标图的尺寸,因为图片可能进行了padding,应该是用最大边乘ratio算出来的。

    有了上面的东西,计算6d pose就很简单了,使用PnP算法和RANSAC算法

    3.4 Analysis on Translation

    作者只是用上面的内容进行实验,发现在rotation的预测上,取得了出色的效果,但是在Translation上效果不佳,证明了这个方法更适合估计rotation。
    作者分析了原因。这一部分的分析可以在附加材料中找到。

    • 在作者的方法中,每一个像素都通过网络预测出一个3d坐标
    • 这个坐标通过PnP算法可以得到translation
    • 然后实验发现主要的影响因素是scale误差。
      为了避免这个误差,所以作者打算直接学习出translation,而不是通过计算。
      translation这个参数是物体的位置和size,和相机的距离还有相机的方向相关。根据前人经验,直接回归T是精度较高的,所以就这么做了。

    3.5 Scale-invariant Translation Estimation

    之前的工作是从整张图直接回归,作者这里是使用检测出的结果来回归。(看到这里我心里想的就是回归出检测结果的小图的T,然后使用前面的变换关系就可以得到完整图像中的T,后面作者给出的方法也确实是这样。其实方法很简单,但是可以找出问题所在是很不容易的。)

    其中,大写的O和C分别代表,在原图中,物体的中心和bbox的中心坐标,wh是原图的size,r代表DZI中的resize ratio。f是相机内参。

    3.6 Training Strategy

    训练过程是先训练rotation这一支,然后训练translation的head,最后一起训练。

    小结

    这个思想还是很有参考价值的,但是还是实例级的,个人认为可以改进为类别级的,尝试用这个思想去估计没见过的物体。

    • 点赞
    • 收藏
    • 分享
    • 文章举报
    NaN轲 发布了9 篇原创文章 · 获赞 0 · 访问量 321 私信 关注
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: 
    相关文章推荐