4个视图中的6个点的三角测量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了4个视图中的6个点的三角测量相关的知识,希望对你有一定的参考价值。

我有一个对象的4个不同视图,每个视图都有相应的K和M摄像机矩阵(内部和外部参数)。

我有6个3D点,我在每个2D视图上标记(所以24个2d点)。

我想要做的是将这些2D点反投影到3D并在空间中获得我的6个3D点。

大多数论文都展示了当你有2个视图及其矩阵时如何做到这一点。但是,我有4个观点。我在Python中使用OpenCV。

作为第一种方法,也许我可以使用2个视图的所有组合进行三角测量,因此我得到4choose2 = 6组3D点,然后我对所有三角测量进行平均。

有更好的方法更合适吗?你认为我应该使用OpenCV以外的东西吗? (它仍然必须是Python)

答案

我看到了两个解决方案。

1.分析解决方案

如果进行数学运算,您会发现每个2D到3D的对应关系都会为三角测量系统增加2个方程式。通过6个视图,您将获得一个包含12个方程和3个未知数的系统。这应该是最有效的实现,但是当预期有噪声输入时可能不稳定。

2.三角测量+优化

使用经典的2-View三角测量计算估计的3D点。使用非线性优化来计算最小化所有6个视图的重投影错误的3D点。这是我推荐的解决方案,因为它应该是稳定的,并且所有内容都已在OpenCV中实现。

以上是关于4个视图中的6个点的三角测量的主要内容,如果未能解决你的问题,请参考以下文章

数三角形

数三角形

4.复杂一点的查询

如何根据不同的屏幕尺寸测量和布局视图

三角测量 3D 算法

在CAD中第一角视图和第三角视图有啥区别啊?