论文笔记:6-DoF Object Pose from Semantic Keypoints

ICRA上的一篇文章,提出了一种检测三维物体关键点检测以及6 DoF位姿估计的方法,可以用于instance- and category-based 的场景。

代码:https://github.com/geopavlakos/object3d/
项目:https://www.seas.upenn.edu/~pavlakos/projects/object3d/
论文:https://arxiv.org/abs/1703.04670

首先采用Faster R-CNN检测得到目标的2D bb, 然后在执行所提出的方法。所使用的网络结构是stacking hourglass,来源于human pose estimation,与cornetNet中的backbone有些类似。网络的输入是RGB图像,输出是一组heatmaps, 每个关键点对应一个heatmap。每个heatmap的真值是一个以关键点真值为中心,方差为1的高斯仿真得到标签图像,目标函数是 L 2 L_2 L2损失。
网络结构

使用stacking hourglass有三个优点:

  1. 可以整合局部和全局信息
  2. stacking提供了一种迭代有效的过程,且对估计值可以求精;
  3. 中间监督可以用作有效的训练策略,尤其是在梯度消失的情况

文章中提到了在检测得到关键点后,直接使用PnP方法的两个问题:

  1. 由于遮挡或背景中的false detection,由网络预测得到的关键点可能被不精确的渲染;
  2. 目标精确的3D模型通常难以获得

文章中提出了一种deformable shape models方法解决这种问题。针对每一类物体,使用对应的3D CAD模型以及标注的关键点,构建可变形模型 S ∈ R 3 × p \boldsymbol{S}\in \mathbb{R}^{3\times p} SR3×p:

S = B 0 + ∑ i = 1 k c i B i \boldsymbol{S} = \boldsymbol{B}_0 + \sum_{i=1}^kc_i\boldsymbol{B}_i S=B0+i=1kciBi

其中 B 0 \boldsymbol{B}_0 B0是一给定3D模型的平均形状, B 1 , … , B k \boldsymbol{B}_1, \dots , \mathbf{B}_k B1,,Bk是由PCA计算得到形状分量。给定图像中检测的关键点,记为 W ∈ R 2 × p \boldsymbol{W}\in \mathbb{R}^{2\times p} WR2×p,优化问题为:
min ⁡ θ 1 2 ∥ ξ ( θ ) D 1 2 ∥ F 2 + λ 2 ∥ c ∥ 2 2 \min_{\theta}\frac{1}{2}\left \| \xi(\theta)\boldsymbol{D}^\frac{1}{2} \right \|^2_F + \frac{\lambda}{2}\left\| \boldsymbol{c} \right\|_2^2 θmin21ξ(θ)D21F2+2λc22

文章中提出了针对弱透视与全透视相机模型下该问题的求解,其中在全透视模型下,使用对关键点网络预测进行的加权。

针对instance-based场景,文章收集了175幅RGB-D图像,手工标注了10个关键点,比较了弱透视、全透视模型与直接使用EPnP方法的位姿估计精度,全透视模型最好、EPnP其次,弱透视最差。弱透视模型用于初始化全透视场景。

instance-based场景下数据集的制作步骤为:

  1. 收集RGB-D数据
  2. Kinect 重建3D模型
  3. 在手工精心设置初始值后,由ICP算法计算每幅图像的位姿精确值
  4. 手工选择10个模型点,并使用计算得到的位姿精确值投影到图像上

class-based 场景使用了PASCAL3D+数据集,不再叙述了。

在6GB TitanX上关键点检测时间低于0.2s,位姿计算时间低于0.1s。

这篇文献还是很有意义的,对于instance-specific 的3D关键点检测中关键点检测以及数据集的制作是有一定的启发的。在精度上,该文献中全透视模型的旋转误差中值与均值分别3.11和3.57。代码由matlab和torch7完成,还没看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值