【问题标题】:Detecting/correcting Photo Warping via Point Correspondences通过点对应检测/校正照片翘曲
【发布时间】:2016-12-29 17:04:54
【问题描述】:

我意识到有很多与我所问的相关的蠕虫罐头,但我必须从某个地方开始。基本上,我要问的是:

给定两张使用未知相机拍摄的场景照片,我可以在多大程度上确定照片之间的(相对)翘曲?

以下是 1904 年世界博览会的两张图片。它们是在无线电报塔上的不同高度拍摄的,因此摄像机或多或少是垂直排列的。我的目标是根据这些照片和其他照片创建该区域的模型(在 Blender 中,如果重要的话)。我不是在寻找一个完全自动化的解决方案,例如,我对手动选择点和特征没有任何问题。

在过去的一个月里,我自学了关于射影变换和极线几何的知识。对于一些照片对,我可以通过从点对应中找到基本矩阵 F 来做得很好。但是下面的两个给我带来了问题。我怀疑存在某种扭曲——也许只是纵横比的变化,也许不止于此。

我的流程如下:

  1. 我发现两张照片之间的对应关系(见下方的红色锯齿线)。
  2. 我通过 Matlab(实际上是 Octave)运行点对以找到极点。目前,我正在使用 Peter Kovesi 的 Peter's Functions for Computer Vision
  3. 在 Blender 中,我设置了两个覆盖图像的相机。我根据消失点定位第一台相机。我还确定了消失点的焦距。我使用极点和其中一个点对(下方,演奏台顶部的点)相对于第一个相机定位第二个相机。
  4. 对于每个点对,我从每个相机通过其采样点投射一条光线,并标记该点对中最近的覆盖范围(下方为浅黄色)。 我意识到这会遗漏基本矩阵中的信息 - 见下文。

如您所见,这些点并没有很好地收敛。您从演奏台点水平走得越远,左边的那些就会展开。我猜这显示了相机内在特性的差异。不幸的是,我找不到从点对应派生的 F 中找到内在函数的方法。

最后,我认为我并不关心个人内在函数本身。我真正需要的是一种应用内在函数来“纠正”图像的方法,以便我可以将它们用作叠加层来手动优化模型。

这可能吗?我需要其他信息吗?显然,我几乎没有希望找到有关相机内在函数的任何信息。但是有一些明显的结构信息,例如哪些特征是正交的。我在某处看到了一个提示,消失点可用于进一步完善或升级转换,但我找不到任何具体的内容。

更新 1

我可能已经找到了解决方案,但在我将其作为答案发布之前,我希望有人对该主题有所了解。事实证明,Peter's Functions for Computer Vision 有一个函数可以根据样本点对单应性进行 RANSAC 估计。使用m2 = H*m1,我应该能够在第二张图像上的实际 m2 点之上绘制 m1 -> m2 的映射。

唯一的问题是,我不确定我是否相信我所看到的。即使在使用 F 的极点排列得很好的图像对上,单应性的映射看起来也很糟糕。

我会尝试捕捉一个可以理解的图像,但我的推理有什么问题吗?

【问题讨论】:

  • 您的最终目标是什么?正如您所提到的,有很多东西很难估计,所以最好确切地知道您在寻找什么。
  • @JackMorrison - 是的,我的帖子有点长,但目标隐藏在第三段中。最终目标是制作 1904 年世界博览会(或其中的一部分)的 Blender 模型。近期目标是对齐相机,以便我可以使用叠加的照片作为指导来进行详细建模。为此,我最终需要调整照片,例如,以正确的纵横比和正交性显示对象,以便我可以进行度量重建。我希望这也可能有助于解决一些有问题的图像对,比如上面的两个。
  • 明白了。那么您想手动建模还是使用 Blender 进行 3D 重建?
  • @Jack:如果我理解术语,我想做一个稀疏的 3D 重建(即通过点对应),然后我会手动填写细节。

标签: computer-vision linear-algebra perspectivecamera 3d-reconstruction structure-from-motion


【解决方案1】:

几个答案和建议(排名不分先后):

  1. 只有在 (a) 相机经过纯旋转(无平移)或 (b) 对应点都共面时,单应性才能正确映射点对应关系。
  2. 基本矩阵仅涉及未校准的相机。从未知场景中恢复相机校准参数(内在参数)的过程,称为“自动校准”,是一个相当困难的问题。您需要这些参数(焦距、主点)来正确重建场景。
  3. 如果你有(很多)这个场景的图像,你可以尝试使用 Visual SFM 之类的系统:http://ccwu.me/vsfm/ 它会尝试自动解决 Structure From Motion 问题,包括点匹配、自动校准和稀疏3D 重建。

【讨论】:

  • 你能给我更多关于#2的细节(或指向细节的指针)吗?我确实估计了三个消失点的焦距和主点。我已经在我读过的很多论文中看到了自动校准的描述,但是没有任何东西能让我从基本矩阵中到达那里(或者至少没有足够的细节让我看到如何到达那里)。看起来我可以从“无限单应性”中得到相对投影矩阵,但我也不知道如何到达那里。
  • 对于#1(我在前面的评论中没有足够的空间),我希望单应性可能表明两者之间的失真。例如,如果点在顶部匹配良好但在底部不匹配,则可能涉及剪切。另外,我希望单应性能够在存在纵横比差异的情况下正确映射。
  • 不幸的是,单应性不会告诉你任何事情,因为这些是没有我提到的约束的投影点。
  • 您可以对相机内在函数进行估计,并将基本矩阵转换为基本矩阵,该矩阵与 2 个校准的相机相关。然后可以将基本矩阵分解为旋转和(无标度)平移。如果有比这更多的差异,它们可能无法仅从 2 张图像中恢复。
  • 好的,谢谢。这里还有很多我不明白的地方,但我觉得我已经把这个打死了。我想我会继续阅读。不过,最后一个问题 - 我对这个问题的看法很少(我敢肯定其中一半是我重新加载页面)。有没有更好的方法/地方我可以问这个?也许不同的标签?
猜你喜欢
  • 2015-01-10
  • 2019-12-18
  • 2019-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-05
  • 1970-01-01
  • 2011-10-29
相关资源
最近更新 更多