现在我拥有的是 3D 点集以及相机的投影参数。给定通过使用相机和变换相机(通过旋转和平移)从 3D 点投影的两个 2D 点集,应该有一种直观的方法来估计相机运动......我阅读了 Zisserman 的书“Muliple view Geometry in计算机视觉”,但我仍然没有得到解决方案..
有什么提示吗,在这种情况下如何估计刚体运动?
谢谢!!
现在我拥有的是 3D 点集以及相机的投影参数。给定通过使用相机和变换相机(通过旋转和平移)从 3D 点投影的两个 2D 点集,应该有一种直观的方法来估计相机运动......我阅读了 Zisserman 的书“Muliple view Geometry in计算机视觉”,但我仍然没有得到解决方案..
有什么提示吗,在这种情况下如何估计刚体运动?
谢谢!!
您正在寻找的是 PnP 问题的解决方案。OpenCV 有一个名为solvePnP的函数。需要明确的是,要使其工作,您需要世界空间中的点位置、相机矩阵以及图像平面上的点投影。然后它会根据您选择的想法告诉您相机或点的旋转和平移。
除了前面的答案,Eigen 还实现了 Umeyama 的方法,用于估计两组 3d 点之间的刚性变换。您可以使用它来获得初始估计,然后使用优化算法对其进行优化,并考虑 3d 点在图像上的投影。例如,您可以尝试最小化第一张图像上的 2d 点和 3d 点的投影之间的重投影误差,然后您使用之前估计的变换将它们从一个相机的参考系带到另一个相机的参考系。您可以通过两种方式执行此操作,使用变换及其逆变换,并尝试最小化双向重投影误差。我推荐 Andrew Howard 的论文“自主地面机器人的立体视觉里程计”,