Computer vision 4个视图中6个点的三角剖分

Computer vision 4个视图中6个点的三角剖分,computer-vision,opencv3.0,triangulation,vision,Computer Vision,Opencv3.0,Triangulation,Vision,我有4个不同的对象视图,每个视图都有相应的K和M摄影机矩阵(内部和外部参数) 我在每个二维视图上标记了6个三维点(24个二维点) 我正试图做的是将这些2D点反向投影到3D,并在空间中获得我的6个3D点 大多数论文都展示了当你有两个视图和它们的矩阵时如何去做。 然而,我有4种观点。我正在Python中使用OpenCV 作为第一种方法,也许我可以使用2个视图的所有组合进行三角剖分,所以我得到4个选择2=6组3D点,然后我对所有三角剖分进行平均 是否有更好的方法更可取? 你认为我应该使用OpenCV以

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

我在每个二维视图上标记了6个三维点(24个二维点)

我正试图做的是将这些2D点反向投影到3D,并在空间中获得我的6个3D点

大多数论文都展示了当你有两个视图和它们的矩阵时如何去做。 然而,我有4种观点。我正在Python中使用OpenCV

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

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

我看到了两种解决您问题的方法

1。解析解

如果进行计算,您会发现每个二维到三维的对应会向三角测量系统添加两个方程。在6个视图中,您将得到一个包含12个方程和3个未知数的系统。这应该是最有效的实现,但在预期噪声输入时可能不稳定

2。三角化+优化


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

对于第二种方法,您是否有可能引用此函数?不,你可以用这个,但这还不够。您需要对多个摄影机和点进行优化。这里的关键词是束平差。我得到了投影矩阵和相应的点,我认为这个方法是我答案的第一个解更合适。您可以尝试一下,这应该是一个很好的起点。OpenCV的
cvTriangulatePoints()
只支持两视图三角剖分。流浪汉少校:我加了一个