我熟悉两个视图立体,但对 SFM(运动结构)和 MVS(多视图立体)的确切工作原理感到模糊。
假设我有两对立体相机,(A, B)
并且(C, D)
. A
我可以使用带有相机的双视图立体计算相机的深度图A
和B
. C
同样,我可以使用带有相机的双视图立体计算相机的深度图C
和D
. 基于校准,我可以将深度图A
转换为点云,并使用来自相机的颜色值对它们进行着色A
。同样,我可以将深度图C
转换为点云,并使用来自 camera 的颜色值对它们进行着色C
。在一个完美的世界中,当我叠加点云A
和点云C
时,它应该看起来很完美,没有任何明显的颜色问题,但不幸的是,在现实世界中,什么相机之间会有一些色差A
和相机C
捕捉空间中的同一点。A
我尝试了各种在相机和相机中都可见的点云的颜色平均方法,但无论如何,在仅在相机中可见的点云和在相机和相机中可见C
的点云之间会有明显的颜色“接缝” .A
A
C
但是,这种颜色问题在 SFM 和 MVS 中似乎并不存在。如colmap、AliceVision和RealityCapture的结果所示。我已经阅读了多篇关于 SFM/MVS 如何工作的教程,但没有一篇具体解释了它是如何克服颜色问题的。他们中的大多数人专注于解释如何生成深度,以及 SFM 估计内在函数和姿势的情况。有人可以向我解释一下传统的 SFM/MVS 使用什么方法来解决色差?我将不胜感激一个教程/论文的链接,该链接也解释了这一点。