Coordinates-Based Disentangled Pose Network for Real-Time RGB-Based 6-DoF Object Pose Estimation笔记
文章目录
首先这篇文章是一个使用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,最后一起训练。
小结
这个思想还是很有参考价值的,但是还是实例级的,个人认为可以改进为类别级的,尝试用这个思想去估计没见过的物体。
- 点赞
- 收藏
- 分享
- 文章举报
- A Twofold Siamese Network for Real-Time Object Tracking 阅读笔记
- A Simple Pooling-Based Design for Real-Time Salient Object Detection------论文理解
- 论文阅读笔记: 2017 cvpr Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
- A Simple Pooling-Based Design for Real-Time Salient Object Detection
- 论文笔记:PVANET: Deep but Lightweight Neural Networks for Real-time Object Detection
- Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields笔记
- DS简记1-Real-time Joint Object Detection and Semantic Segmentation Network for Automated Driving
- Real Time pose estimation of a textured object (solvePnP)
- A Twofold Siamese Network for Real-Time Object Tracking【参考性不强】
- [VINS论文笔记]A General Optimization-based Framework for Global Pose Estimation with Multiple Sensors
- 文献阅读笔记5:Cascaded Pyramid Network for Multi Person Pose Estimation
- 【转载】A Twofold Siamese Network for Real-Time Object Tracking
- 极简笔记 Cascaded Pyramid Network for Multi-Person Pose Estimation
- A Dual-Stage Attention-Based Recurrent Neural Network for Time Series Prediction阅读笔记
- 多尺度R-CNN论文笔记(4): PVANET: Deep but Lightweight Neural Networks for Real-time Object Detection
- 多尺度R-CNN论文笔记(1): A MultiPath Network for Object Detection
- Multi-style Generative Network for Real-time Transfer论文理解
- 论文阅读笔记:You Only Look Once: Unified, Real-Time Object Detection
- tensorfolw配置过程中遇到的一些问题及其解决过程的记录(配置SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real-Time Object Detection for Autonomous Driving)
- 实时语义分割BiSeNet: Bilateral Segmentation Network for Real-time Semantic Segmentation论文解读