1

我熟悉两个视图立体,但对 SFM(运动结构)和 MVS(多视图立体)的确切工作原理感到模糊。

假设我有两对立体相机,(A, B)并且(C, D). A我可以使用带有相机的双视图立体计算相机的深度图AB. C同样,我可以使用带有相机的双视图立体计算相机的深度图CD. 基于校准,我可以将深度图A转换为点云,并使用来自相机的颜色值对它们进行着色A。同样,我可以将深度图C转换为点云,并使用来自 camera 的颜色值对它们进行着色C。在一个完美的世界中,当我叠加点云A和点云C时,它应该看起来很完美,没有任何明显的颜色问题,但不幸的是,在现实世界中,什么相机之间会有一些色差A和相机C捕捉空间中的同一点。A我尝试了各种在相机和相机中都可见的点云的颜色平均方法,但无论如何,在仅在相机中可见的点云和在相机和相机中可见C的点云之间会有明显的颜色“接缝” .AAC

但是,这种颜色问题在 SFM 和 MVS 中似乎并不存在。如colmapAliceVisionRealityCapture的结果所示。我已经阅读了多篇关于 SFM/MVS 如何工作的教程,但没有一篇具体解释了它是如何克服颜色问题的。他们中的大多数人专注于解释如何生成深度,以及 SFM 估计内在函数和姿势的情况。有人可以向我解释一下传统的 SFM/MVS 使用什么方法来解决色差?我将不胜感激一个教程/论文的链接,该链接也解释了这一点。

4

1 回答 1

0

这个问题需要分两种不同的场景来解释。

  1. 不准确的 SfM:关于不同视图之间颜色信息不匹配的错误来源之一通常是计算的相机位姿中的小错误。如果不匹配出现在连续视图中,则尤其如此,因为现实世界中的照明很可能没有时间在拍摄图像的时间间隔内发生太大变化。位姿误差不仅影响点云的着色,而且最重要的是深度图估计,这反过来又放大了由于像素深度不准确而导致的点颜色计算误差(最终投影到图像中的错误位置)其他图像)。如果 SfM 准确,效果相同,但深度图估计算法效果不佳。
  2. 光照变化:同一场景的两个视图之间的光线可能因多种原因而不同:光源位置变化、相机曝光变化、大气/环境变化等。根据舞台的不同,有多种处理方法,如 SfM 或MVS。例如,在 SfM 中,这是一个特征匹配问题,一个对光照变化具有鲁棒性的特征提取器在大多数情况下使用基于某种形式的颜色空间梯度的描述符,这会降低效果。在 MVS 中,有几个阶段依赖于视图之间的颜色匹配,但最重要的一个是深度图估计(或任何其他形式的密集匹配)。这是通过使用对光照变化鲁棒的成本度量来解决的;一个流行的例子是零归一化互相关(ZNCC),

回到您要解决的问题,假设上述所有方法对您来说都很好,为了为您的点云获得漂亮的颜色,有两种流行的解决方案:1)从点的所有视图中平均颜色,或者2) 仅选择每个点的“最佳”视图。显然 1 中的问题是生成的颜色会变得模糊,对于 2 来说,选择每个点的视图的方法对于最小化不同视图之间的转换非常重要(并且有很多方法可以做到这一点,但显然是全局方法将是最好的)。

于 2020-02-06T09:40:07.737 回答