PnP、P3P算法已经相对比较成熟,影响最后结果的主要是点的分布是否均匀,需要寻找Best view selection。
1 后方交会(resection)
模块:位于初始化之后,三角化之前
目的:恢复相机相对于世界坐标系的位姿
算法:PnP (Perspective-n-Point) ,是3D到2D
计算前提:有位姿的6个未知参数,需要至少3对点才能求出唯一解
2 Best view selection
view的选择
- 不但会影响pose估计的质量
- 还会影响后续的三角化的精度和完整性
SFM以往的选择方案:
- 只按照可视点的数量
- 按照三角化点数与可视点数比值的大小
colmap提出了一种打分机制筛选:
- 宗旨:view视图中的可视点越多、分布越均匀,打分越高。
- 方法:打分金字塔,分三级网格,打分基数为2、22、23
- e.g.图score=66 = 2 * 1 + 22 * 4+23 * 6,即
- 一级网格中所有点只在1个格中
- 二级网格所有点分布在4个网格
- 三级网格中分布在6个网格
- e.g.图score=66 = 2 * 1 + 22 * 4+23 * 6,即
论文实验三种方法的对比,可以看到这个打分机制还是行之有效的:
3 PnP
很多博客和讲解都忽略了一些符号定义的解释,让人看起来云里雾里的。