Algorithm 两幅不同图像的点匹配算法

Algorithm 两幅不同图像的点匹配算法,algorithm,sorting,matching,point,stereo-3d,Algorithm,Sorting,Matching,Point,Stereo 3d,我正在寻找一种方法或算法,使我能够从两个不同的图像中识别和配对点集,以实现立体视觉。 附件中的图片展示了我目前的情况:两个摄像头在Y轴上对齐,在X轴上稍微偏移,查看一组点。我能够跟踪并获得两个相机图像(IMG0和IMG1)上这些点的2D位置 因此,我有两个二维坐标列表: L0 = { a0, a1, a2, a3, a4, a5, a6 } L1 = { b0, b1, b2, b3, b4, b5, b6 } 现在,为了进行三角测量以获得每个点的3D位置,我需要知道图像IMG1上的哪个点对

我正在寻找一种方法或算法,使我能够从两个不同的图像中识别和配对点集,以实现立体视觉。

附件中的图片展示了我目前的情况:两个摄像头在Y轴上对齐,在X轴上稍微偏移,查看一组点。我能够跟踪并获得两个相机图像(IMG0和IMG1)上这些点的2D位置

因此,我有两个二维坐标列表:

L0 = { a0, a1, a2, a3, a4, a5, a6 }
L1 = { b0, b1, b2, b3, b4, b5, b6 }
现在,为了进行三角测量以获得每个点的3D位置,我需要知道图像IMG1上的哪个点对应于IMG0上的哪个点。两台摄像机看到的是完全相同的一组点,整体形状相同,但很明显,由于轻微变形以及摄像机在水平方向上的偏移,二维坐标从一个图像到另一个图像不匹配

理想情况下,我正在寻找的点匹配算法将产生如下列表:

List = {a0-b0, a1-b1, a2-b2,...}
列表的顺序并不重要,只要我确定每个点都与第二张图像中的正确点配对

我一直在看几篇介绍立体映射算法的论文,但我没有发现任何与我的问题相关的东西,因为大多数算法都基于重图像特征识别,这不适合我想实时快速处理所有内容的情况。我似乎找到的最接近的解决方案是点匹配算法,但对于我的问题来说,这似乎又一次太重了


非常感谢您的帮助。

首先,您应该确保了解的基本概念,尤其是极线的概念

简而言之:假设你有一个3D点
p
,它在相机
a
的图像中投影到一个2D点
q
。现在您有了第二个摄像头,称之为
B
,您希望在
B
中找到
P
的图像。极线几何学告诉您,给定的
q
P
的图像的可能位置仅限于一条线,称为极线。它还告诉您(以及如何)使用所谓的基本矩阵,从
q
和相机校准计算这条线

对于您的问题,这具有以下含义:

q
成为列表
L0
中的一个点

  • 如果在第二张图像的
    q
    极线上的列表
    L1
    中有一个点,那么这就是
    q
    的正确对应关系
  • 如果极线上有几个点,那么你的问题就无法用给定的信息来解决。在这种情况下,您需要对点在3D中的分布进行启发性假设,因为对于
    q
    与极线上的点的每一对,您都会得到一个可能的3D点
如果您的相机仅沿X轴偏移,并且方向相同(即图像平面平行),那么这是您的幸运日:在这种特殊相机配置中,极线是水平的,即点
(X,y)
极线是具有任意X坐标和Y坐标的所有点的线
Y


请注意,在实践中,由于测量误差和数值问题,您还面临一个问题,即点不可能完全位于极线上

当我在网上搜索时,我能够得到许多相关的链接(大部分是用matlab实现的)。这些点离摄像机有多近?如果点非常靠近摄影机,或者摄影机相距非常远,则点云的形状可能会截然不同,并且可能需要不同的匹配算法。非常感谢。是的,我的相机只沿X轴偏移。因此,假设对于L0中的一个给定点,我想我可以检查L1中所有具有相似Y位置的点(我说相似,因为它不会完全相同,正如您所说,由于潜在的测量误差)。如果线上有更多的点匹配,我可以使用X位置对它们进行排序。我会试一试,但我认为这会管用。这应该管用,但是,正如我所说的:在极线上有不止一个candiate,你需要考虑哪一点在你重建的特定场景中更合理。我会对所有候选点进行三角剖分,然后查看要选择的3D点。如果L1中有多个点位于由L0中的点生成的同一对极线上,我建议创建一个图,其中L0中的每个点都有一个顶点,L1中的每个点都有一个顶点,当一个顶点位于另一个顶点的极线上时,两个顶点之间的边。然后,你可以通过在这个图上运行一个二部最大匹配算法来找到点的最佳匹配。@j_random_hacker:我认为他在L0中的点和在L1中的点一样多,所以你必须引入权重,以便使一个匹配优于另一个匹配。二部最大匹配支持权重,还是严格的组合权重?我不理解你的第一句话对不起——最好的情况是L0和L1具有相同数量的点,因为这样就可以将一个点中的每个点与另一个点中的某个不同点进行匹配。关于第2句:存在加权二部最大匹配。这可能更可取,因为你们可以给更靠近极线的点赋予更高的权重。