2020.10.03读 Robust 6D Object Pose Estimation by Learning RGB_D Features
Robust 6D Object Pose Estimation by Learning RGB_D Features
1. 背景信息
- 输入RGBD图像
- 作者认为他的方法最大的亮点是:**创新性地提出了一个离散连续公式,用来处理对称目标物体的旋转歧义性。**最终的实验结果也确实说明了,本文的方法在对称物体上的表现明显优于其他方法。在以前看的morefusion方法中,他们用了一个warm-up的机制来处理对称目标问题的局部最优问题,即:先忽略对称性进行优化,再考虑对称性进行优化,避免落入局部最小。
- 作者认为旋转和平移应该分离处理,反对联合优化它们。作者也做了实验,如果共享处理网络的话,性能确实会下降。
-
why算法鲁棒?
特征提取上:提取RGB特征,在光照变化、物体外观变化方面具有鲁棒性
平移预测:基于RANSAC的投票,在遮挡、混乱方面具有鲁棒性
旋转回归:局部区域分类和约束残差回归,比单纯回归要鲁棒
2.方法
大体思路是这样的:
旋转预测
在SO(3)中均匀采样(下面会提到,本文中用了三种采样方法),称为锚点,这些锚点覆盖整个SO(3)空间。
给定groundtruth的rotation,网络会预测各个锚点与之的偏差。
预测各个锚点的不确定性分数,取不确定分数最小的那个锚点和偏差作为最终的输出结果。
平移预测
网络对每个点都回归了一个指向目标中心的单元向量,再用基于RANSAC的投票集成这些向量得到最后的结果。
2.1旋转
1. 损失函数与densefusion中相同:
2. 旋转锚点的选取
作者提出了三种在SO(3)上的子组,分别称为四面体组(N=12), 八面体组(N=24), 二十面体组(N=60), 其中N是旋转数量。具体这个子组与N的关系作者也没仔细说明。
3. 对称物体的局部最优解问题
初始化旋转预测们 with 旋转锚点
R
i
h
a
t
R_{i}^{hat}
Rihat which 覆盖了整个SO(3)空间
其中
R
i
R_{i}
Ri是旋转预测,
R
i
h
a
t
R_{i}^{hat}
Rihat是旋转锚点,
d
e
l
a
t
R
i
delatR_{i}
delatRi是旋转偏差。
我理解的是:代替直接预测旋转矩阵,预测旋转矩阵与锚点矩阵之间的旋转偏差,可以约束旋转预测在锚点局部,每个锚点响应一个局部区域。这样的话,可以避免陷入局部最小。
4. 对每个锚点预测一个不确定性分数
s
i
g
m
a
i
sigma_{i}
sigmai与训练收敛之后预测的旋转向量
R
i
R_{i}
Ri与groundtruth旋转矩阵
R
b
o
l
a
n
g
R^{bolang}
Rbolang之间的距离(作者没有说明整个距离怎么定义的)成正比。
在推理阶段,拥有最小不确定性分数那个锚点的预测结果作为最终输出的结果。
5. 正则化ShapeMatch-Loss的条件概率:
对于每个预测
R
i
R_{i}
Ri, 定义:
其中,d是目标直径,
L
i
L_{i}
Li是ShapeMatch-Loss of
R
i
R_{i}
Ri.
最大化这个条件概率,等价于最小化它的负对数:
再加上它的正则项,以限制
d
e
l
t
a
R
i
deltaR_{i}
deltaRi的范围:
注意:这个正则项中的<>没有搞明白是什么意思,作者在文章中也没有明确说明,所以这里实际上并没有理解。我个人理解,这里的<>可能是表示一种距离。
6. 作者对于旋转预测的总结
将一个连续回归问题重新表示为一个联合分类和残差回归问题,以便对多个小区域进行分来求解,避免算法陷入局部最优,这是本文的亮点。但是作者对于这方面的解释并不是那么详细,包括条件概率的公式也没有解释到位。
2.2平移
假设目标物体的中心:
对于每个点,网络都预测一个指向目标物体中心的向量v:
因为这种预测有误差,随机选择两个点,预测得到的两个向量v所在的两条直线并不一定有交点。
选择这两条线段中较短那一条的中点,记为h:
这样可以使得(h-p)向量和预测的那个向量尽可能同向。这解释不清啊,h和p本来就在向量v所在的直线上。
Final estimate is set to the point closest to all the lines defined by the inliers of the hypothesis with highest voting score.
在训练的时候,损失可以表示为
L
t
L_{t}
Lt
3. 实验
3.1评估指标
ADD:
ADD-S:
3.2 总体损失函数
3.3 消融实验
可以发现RANSAC投票可以提升3.22%的准确度;
local geoemtry应该是指在网络中加入depth信息,提升了4.16%的准确度;
20面体60个锚点,可以达到最高92.77%;
如果预测旋转和平移不分离,会从92.7%下降到91.89%;
如果不用正则项, 网络性能显著下降到84.71%;
锚点数越少,效果越差。
3.4 LINEMOD数据集上的效果
发现2D的方法竟然可以做的这么高。
3.5 YCB数据集上的效果
只能说勉强效果还可以。
3.6 在对称物体上的效果对比
左下角图,简直惊艳。
3.7运行速度
速度并不出众。
4.读后感
1.这篇文章在网络上并没有过多介绍,所遵循的独立设计网络给R和t也并不是创新之处。反而以往的方法中处理点云都是用PointNet,这篇文章用的EdgeConv以前没有见过,应该关注或者阅读一下相关方法。
2.这篇文章最大的亮点是将SO(3)均匀分成若干个小区域,每个区域都用一个旋转锚点表示,网络预测目标旋转相对于各个锚点的旋转偏差,并且还预测一个不确定分数,取不确定分数最小那个锚点及其预测结果作为最终的输出结果。这种将连续回归问题,重新表达成分类问题和回归问题的结合,以约束旋转预测在锚点局部,每个锚点响应一个局部区域。这样的话,可以避免陷入局部最小。
3. 文章的中的平移预测的正则化公式没有看懂
4. 文章中遵循的大致思路就是预测offset而不是直接预测那个结果,这是算法更容易学的(YOLOff中讲到的)
5. 文章的实验效果在不对称物体上与其他方法相差不显著,在对称物体上明显优于其他方法。但是文章’没有将其与morefusion这样的多视角方法进行比较,有点像有核国家与只有步枪的国家比武的味道,赢得并不那么光荣。