欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 人文社科 > 生活经验 >内容正文

生活经验

视觉SLAM中PNP求解

发布时间:2023/11/27 生活经验 77 豆豆
生活随笔 收集整理的这篇文章主要介绍了 视觉SLAM中PNP求解 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

PNP(Perspective-n-points)是SLAM中估计位姿的重要方法。已知条件为路标点在相机1中的相机坐标以及投影到相机2中的像素坐标,据此去估计相机1、相机2间的位姿。主要解法包括DLT、P3P、EPNP

P3P

已知A、B、C在相机1坐标系下的坐标,以及在相机2对应的像素坐标,P3P可以根据三角形相似原理计算出在相机2中的相机坐标。
随后对相机1、相机2使用ICP算法即可求出相机间的位姿变换。

P3P存在的问题:
(1)只使用3对点,当匹配的点的数量大于3的时候,很难有效利用信息(RANSAC不行吗?)。
(2)如果3D-2D点间出现误匹配,则该算法失效。

DLT

DLT(direct line transform),构建路标点的世界坐标与归一化坐标间的方程,其中[R |t]包含12个变量,一组匹配点提供2对约束。因此需要6对3D-2D匹配点。通过SVD分解进行求解。

EPNP

需要4对不共面的(对于共面的情况只需要3对)3D-2D匹配点,是目前最有效的PnP求解方法。
在空间中寻找4个不共面的控制点,用他们的权重之和来表示空间中的任意3D点。
  通常选取世界坐标下的四个控制点坐标为Cw=[0,0,0,1]T, [1,0,0,1]T,[0,1,0,1]T,[0,0,1,1]T。可以同时利用N个3D-2D点的匹配关系建立方程。通过计算控制点的相机坐标,线性组合出路标点的相机坐标。其中线性组合的权重通过一个误差约束(控制点在世界坐标中、相机坐标中的欧氏距离相等)获得。随后使用ICP算法求解出相机间的位姿变换。
  EPNP最大的优势为:可以同时利用N对点的匹配信息,获得路标点的相机坐标。
  在ORB_SLAM2中,使用RANSAC+EPNP算法求解出相机间的位姿变换。大致步骤是:使用RANSAC随机选取4组匹配点,然后使用EPNP求解相机位姿,随后计算内点数量。保存内点数量最多的时候对应的R,t。


总结

以上是生活随笔为你收集整理的视觉SLAM中PNP求解的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。