新闻  |   论坛  |   博客  |   在线研讨会
CVPR2023 | 如何设计一个更快更鲁棒的P3P求解器?(3)
计算机视觉工坊 | 2023-08-19 19:55:21    阅读:144   发布文章

5 实验5.1 消融实验

本文提取直线的几种方法对比

图片图片

直接法速度最快,但伴随矩阵法最稳定。实践中推荐用伴随矩阵法。

5.2 与SOTA方法对比5.2.1 数值稳定性

图片图4:高斯核平滑直方图,在无噪声数据上运行 100,000 次运行的旋转和平移误差之和。测量估计和GT之间误差的 L1 范数。

可以看到所有方法的都是数值稳定的。Nakano(rp)表示带root polishing(利用Gauss-Newton方法优化根),该方法更多的分布在小误差范围。

图片表2:误差的平均值、中位数和最大值。粗体表示最好的结果

本文提出的求解器在均值误差和最大误差上的性能最好,而Nakano(rp)求解器在中值误差上的性能最好。请注意,基于四次的求解器包含的失败案例,在此实验中是删除了的。

5.2.2 解的对比

图片表3:与SOTA求解器对比

本文的求解器优于现有的方法。对于几乎所有的试验,都能找到好的解和GT,没有重复或错误的解。基于四次方程的Ke等人和Kneip等人的方法有很多重复解和错误解。因为他们用了四次方程的所有4个根(忽略虚部)来找到可能的估计,提高找到GT的可能性是可以的,但会损失其效率,因为实践中每个假设需要用RANSAC进行评估。Nakano求解器用的虚部阈值过滤不必要的复根,但结果没有本文的方法好。Ke等人与Kneip等人的方法也能够用类似的阈值过滤四次方程的根,从而减少重复和错误解。

5.2.3 运行时间对比

图片表4:平均运行时间对比,次尝试,每个尝试100次

基于三次方程的求解器比基于四次方程的要更高效,所提出的求解器比SOTA方法快15.4%,加速主要原因有两个:

  • 基于相对位置和判别式的分析,可以快速选择三次方程的稳定根,根据判别式的符号可以避免没必要的计算。
  • 从退化圆锥曲线中恢复直线的方法比Persson等人的方法更高效。 本文用C++复现的Nakano方法比原始的MATLAB实现慢,可能是用了不同的矩阵计算库导致的。
5.3 失败案例分析

Persson等人的方法在没有解的情况下,其判别式非常接近于0。这是因为判别式为0对应于图3中的(d)-(h)这些临界情况,由于浮点数的舍入误差和数值不稳定性,这些情况下很难恢复运动参数。本文发现大多数失败案例是(d)和(f)的情形,(e)(g)(h)很少发生。

与危险圆柱的关系

图片图5:危险圆柱是指三个3D点A,B,C为圆形环绕点的圆柱,其轴垂直于ABC平面

之前有工作指出,如果光心位于危险圆柱的表面,则P3P问题的解不稳定。本文发现危险圆柱会导致判别式,即对应于图3中的临界情形。

5 总结

本文重新审视了 P3P 问题,特别是研究了基于两个圆锥曲线相交的解法,类似于 Persson 和 Nordberg的方法。通过分析可能的解的集合并明确枚举极端情况,能够设计一个快速稳定的 P3P 算法。实验表明,与以前的方法相比,本文的求解器更鲁棒且更快。

局限性

本文的方法基于研究两个圆锥曲线的实交点。然而,P3P 问题是特殊的,因为解应该是正实数。三次方程可能有更多的约束,不幸的是,本文没有发现一个很好的方法来做到这一点。请注意,式(4) 和 (5) 可以用同伦延拓来求解,该方法擅长解决大规模平方系统。但对于 P3P 问题,本文发现它不如当前基本上闭式的求解器有效。


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客