1

我使用 SfM 创建了一个不规则(非平面)复杂对象的点云。这些 3D 点中的每一个都在多个图像中查看,因此它具有与其关联的多个 (SIFT) 特征。

现在,我想使用 PnP 算法将新图像中检测到的特征与与点云中的 3D 点关联的特征相匹配,从而在一组新的不同图像中求解该对象的姿势。

所以我的问题是:我将哪个描述符与 3D 点相关联以获得最佳结果?

到目前为止,我已经提出了许多可能的解决方案......

  1. 平均与 3D 点关联的所有描述符(取自 SfM 管道)并使用该“平均描述符”在 PnP 中进行匹配。这种方法对我来说似乎有点牵强 - 我对特征描述符(特别是 SIFT)了解不足,无法评论这种方法的优点和缺点。
  2. 将在 SfM 管道期间计算的所有描述符“固定”到其关联的 3D 点。在 PnP 期间,您基本上会有重复的点来匹配(每个描述符一个重复)。这显然是密集的。
  3. 找到特征出现的“中心”视点(来自 SfM 管道),并使用该视图中的描述符进行 PnP 匹配。因此,如果特征出现在以 、 和 度(从表面法线)拍摄的图像中-301040使用10度图像中的描述符。对我来说,这似乎是最有希望的解决方案。

有这样做的标准方法吗?我无法在网上找到任何关于这个问题的研究或建议,所以我真的很好奇是否有最好的解决方案,或者它是否取决于对象/情况。

4

1 回答 1

1

大多数 SLAM 或 SFM 系统中用于匹配的描述符是旋转和尺度不变的(并且在某种程度上,对强度变化具有鲁棒性)。这就是为什么我们首先能够从不同的角度匹配它们。因此,一般来说,尝试全部使用它们、平均它们或使用来自特定图像的那些没有多大意义。如果您的 SFM 中的匹配正确完成,则3d在其任何观察中从点云重投影点的描述符应该非常接近,因此您可以使用其中任何一个1

另外,在我看来,您正试图将2d点与3d点直接匹配。从计算的角度来看,我认为这不是一个好主意,因为通过将2d点与点进行匹配3d,您会丢失图像的空间信息,并且必须以蛮力的方式搜索匹配项。这反过来又会引入噪音。但是,如果您从图像到图像进行匹配,然后将结果传播到 3d 点,您将能够强制执行先验(如果您大致知道自己在哪里,来自 IMU,或者如果你知道你的图像很接近),你可以确定你在图像中寻找匹配的邻域,等等。此外,一旦你计算了你的姿势并对其进行了改进,你将需要添加更多的点, 不?如果您没有进行任何2d/2d匹配,而只是进行匹配,您将如何做到这一点2d/3d

现在,实现方式通常取决于您的应用程序(SFM 的姿势之间有多少共可见性或基线等)。例如,让我们记下您的候选图像I_0,并记下您的 SFM 中的图像I_1, ..., I_n。首先,匹配I_0I_1。现在,假设q_02d 点 fromI_0 已成功匹配到q_1 from I_1,对应于某个 3d 点Q。现在,为了确保一致性,考虑 in 的重投影QI_2并调用它q_2。匹配I_0I_2q_0匹配的点是否I_2 接近q_2? 如果是,则保持 和 之间的匹配2d/3d,依此类推。q_0Q

我没有关于您的数据和应用程序的足够信息,但我认为根据您的限制(实时或非实时等),您可以提出上述的一些变体。无论如何,关键的想法是,正如我之前所说,尝试逐帧匹配,然后传播到 3d 案例。

编辑:感谢您在评论中的澄清。以下是一些想法(请随时纠正我):

  1. s_0 让我们考虑来自的 SIFT 描述符I_0,并记F(s_1,...,s_n)下您的聚合描述符(可以是s_i相应的 SIFT 描述符的平均值或串联I_i等)。然后,当与 匹配s_0 时F,您将只想使用s_i属于具有接近视点的图像的子集I_0(因为30deg您提到的问题,尽管我认为应该是50deg)。这意味着您必须根据s_i查询的姿势为每个分配一个权重I_0。构建时你显然不能这样做F,所以在匹配的时候必须这样做。但是,您对姿势没有很强的先验性(否则,我认为您不需要 PnP)。因此,您无法真正确定此重量。因此,我认为这里有两个结论/选项:

    • SIFT 描述符不适用于该任务。您可以尝试提出一个透视不变的描述符。有一些关于这个主题的文献。

    • 尝试以“关键帧”的形式保留一些视觉信息,就像在许多 SLAM 系统中一样。无论如何保留所有图像是没有意义的,只需在每个区域保留一些分布良好(姿势方面)的图像,然后使用它们将 2d 匹配传播到 3d 案例。

  2. 如果您只在2d查询点和3d 描述符之间匹配而没有任何形式的一致性检查(正如我之前提出的那样),您将引入很多噪音......

tl;博士我会保留一些图像。


1由于您说您从 SFM 管道获得 3d 重建,因此其中一些可能被认为是内点,有些是异常点(由布尔标志表示)。如果它们是异常值,则忽略它们,如果它们是内部值,则它们是匹配和三角剖分的结果,并且它们的位置已被多次细化,因此您可以信任它们的任何描述符。

于 2018-05-27T01:25:48.840 回答