我是靠谱客的博主 潇洒雪糕,最近开发中收集的这篇文章主要介绍pnp之 Epnp,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Epnp 算法可以说在计算精度和计算成本上,已经是state of art 的算法了。

参考 :

【1】 https://blog.csdn.net/liu502617169/article/details/90403283

【2】这个有epnp的原理详解,包括icp:

https://blog.csdn.net/qq_30356613/article/details/80588134

 

【3】这个包括orb中epnp求解部分的代码详解:

https://zhuanlan.zhihu.com/p/149017276

【4】 这个包括 epnp 和 DLT 的时间对比

https://zhuanlan.zhihu.com/p/59070440

 

问题:怎么解释 orb PnPsolver::SetRansacParameters  中的操作;可以详见博客3中的 1,RANSAC参数设置 部分, 但是还是没解释清楚;

具体的可以参考这篇:https://www.cnblogs.com/xrwang/archive/2011/03/09/ransac-1.html

 

是翻译的wiki上的内容,描述了ransac的过程,以及变种。还有,说明的参数的设置。

P  :希望最后得到的模型,随机取n个点,都是内点的概率。我们自己设定的。越大说明我们要求越高;

K: ransac迭代次数,通过公式计算出来的。这里的计算结果是,假设点可以被重复选到。

此外还需要自己设定: 拟合模型所需的最小点数 n ; 判断点是否为外点的阈值; 以及,如何判断该拟合的模型是否是满意的,要自己定一个内点数量的阈值;还有 w,即:当前提供的数据中,内点率是多少?这个要自己设定。

 

update

orb中重定位时候Epnp计算姿态的过程大致为:

1. 对于每个闭环候选帧设置 ransac的参数:包括 p w n 等等

2. 对于每一个候选帧进行ransac迭代计算Epnp

3. 每次迭代选取四个点,然后Epnp 计算 pose; 针对计算结果,计算内点数量;记录内点最多的模型,并返回。

4. 然后根据ransac的结果,进行pose 优化,并计算内点数量,满足阈值,则返回,判定重定位成功。

重点的,Epnp的计算思路:

1. 确定4个控制点,然后将n个3D点的世界坐标用4个控制点表示;

2. 计算4个控制点坐标的camera系坐标,这样就可以得到n个3D点的camera系坐标;

3. 然后利用ICP计算pose

最后

以上就是潇洒雪糕为你收集整理的pnp之 Epnp的全部内容,希望文章能够帮你解决pnp之 Epnp所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部