我正在做一个项目,我想要重建我从相机图像中提取的特征点的三维位置。其想法是:
我在许多论文中看到,RANSAC是一种用于重建的算法,最终的结果是某种点云。我希望能做到这一点。然而,我遇到了一些障碍,我希望你们能帮我解决这些问题。
第一个问题是,我并不真正理解我如何能够使用RANSAC来执行这一点对应。我理解RANSAC是一个适合模型的工具的概念,我只是不知道它是如何用来解决通信问题的。
第二个障碍是,假设我有我的通信信息,如何在所有这些点之间获取某种距离信息。我读过透视投影可以用来解决这个问题,然后我们应该尝试估计基本矩阵。然后做一些数学魔术,才能得到点云。重点是,我不明白基本矩阵中的实际值意味着什么。我知道它给出了两个摄像机的位置之间的数学关系(或者在我的例子中,摄像机移动的视频中有两个帧),并且它利用了极几何。但除此之外,我只是不知道基本矩阵到底包含了什么。这个3x3矩阵是如何捕捉到1台相机相对于另一台相机的6自由度的?我还认为,我提到的“数学魔法”是某种矩阵乘法,但我还没有找到任何信息源来解释它的作用和公式。
因此,我的问题是:你们谁能把我引向正确的方向?到目前为止,我一直在挖掘我所读到的论文的参考文献,但这些也给了我“我们用RANSAC算法解决这个问题”的-line,我更觉得我看错了方向。对这些事情是否有一些很好的解释,也许是用外行人的术语和/或一些插图?简而言之:我应该在哪里寻找,或者在哪里可以找到这个难以捉摸的信息?
谢谢你,Xilconic
PS:查过维基百科,但对我没有多大帮助。还听了“基本矩阵歌”,故事也是一样的。
发布于 2011-03-02 19:43:33
在此基础上编写了我的论文,并在本文中使用了RANSAC算法。
这个主题有更多的东西可以在这里的几段中捕捉到。考虑得到一本优秀的书多视图几何。
障碍1
RANSAC将找到一个模型,在这种情况下,即使存在大量的异常值,也可以找到基本矩阵F。在这种情况下,一些点对应的候选人是很遥远的。这是个离群点。基本上,您只需从随机绘制的点拟合F矩阵。最终,您会发现一些集合,它们一起创建了一个一致的模型。这些是不稳定因素。现在,它们可以用于更准确地估计模型(F)。
在我的论文中有一个简单的例子,有一个线拟合的例子可以让你开始,和一个容易掌握的解释的RANSAC应用于相应的问题。
障碍2
关于F矩阵,最重要的是它将一幅图像中的一个点映射到另一幅图像中的一条线上:
Fx = l‘,其中x是图像中的一个点,l’是另一个图像中的一行。
F矩阵有9个元素,但必须有等级2,而且标度也不重要,因此它只有7个自由度。对于F矩阵的元素,没有简单的解释。
使用点对应的x <-> x‘和F,如果你知道摄像机的内部参数,比如焦距,就可以提取出所描绘的点的世界三维坐标,X。
请注意,当使用连续的电影帧时,相机通常很少移动,并且可能很难计算基本矩阵。不过,这件事是可以解决的。我建议你看看马克·波莱菲斯的作品
发布于 2011-03-02 13:30:15
看看基本矩阵上的维基百科条目中的第一个公式:

这是您试图使用RANSAC解决的“模型”。您有两个x和x'矩阵,它们表示两个图像中所有对应的x,y - x',y'点(第三个坐标一直是数字1)。和一个未知的F 3x3矩阵,你想找出它的值。维基百科条目中RANSAC的伪码算法是一个很好的解释。
那么,基本矩阵是什么呢?一种将图像中的点看作是连接摄像机位置和3D空间中那个点的3D线的方法之一。这条线在两个方向上都延伸到无穷远。如果你用不同的相机观察这条线上的一个3D点,那么在摄像机的图像中,你会看到一条直线穿过它。图像中的点到3D线的转换(实际上是投影)只是一个矩阵运算。将一条3D线投影到2D图像上也是一种矩阵运算。F在一个矩阵中捕获这两个矩阵操作。F也可以用来确定两个相机的相机矩阵,然后再用于三维重建。
也许这个能帮点忙?否则,我从哈特利和齐瑟曼那里学到了很多这方面的知识。
发布于 2011-03-03 21:40:08
使用像5点或8点算法这样的基本矩阵的鲁棒解是一个很好的开端。尽管如此,基本矩阵解决方案可能容易受到异常值的影响,您可能需要一些额外的总体系统来进行实际的3D求解。您可以使用卡尔曼滤波类型的方法(快速,可以在嵌入式系统上实时完成)或捆绑调整(非常准确,但可以更慢)。
一些优秀的SFM软件,您可以使用或从中获得灵感:
VSLAM (由Konolige开发,他是斯坦福大学的教授,也在Willow,OpenCV的乡亲们工作)。可能是我见过的最快的捆绑调整解决方案。
RSLAM (由牛津移动机器人集团开发,显示了一些出色的结果)
https://stackoverflow.com/questions/5154573
复制相似问题