我正在开展一个项目,我想重建3D的位置 我从相机图像中提取的特征点。我的想法是:
我在许多论文中都读过RANSAC是一种用于的算法 重建,最终结果是某种点云。我想成为 能做到这一点。但是,我遇到了一些障碍,我希望你们 可以帮助我解决这些问题。
第一个障碍是我真的不明白我将如何使用 RANSAC执行这一点通信。我理解RANSAC的概念 作为一个模型拟合工具,我只是看不出它是如何用于做的 通信解决。
第二个障碍是,假设我有我的通信信息,如何获得 所有这些点之间的某种距离信息。我读过这个 透视投影可以用来解决这个问题,反过来应该尝试 估计基本矩阵。然后做一些数学魔术才能得到 点云。 重点是,我不明白基本矩阵中的实际值是什么 意思。我知道它给出了2的位置之间的数学关系 相机(或者在我的情况下,相机正在移动的视频中有2帧),以及 它利用了极线几何。但除此之外,我只是没有线索 基本矩阵实际上需要什么。这个3x3矩阵是如何捕获的 1台相机相对于另一台相机的6DOF? 另外我认为我提到的'数学魔术'是某种矩阵 乘法,但我没有找到任何信息来源来解释我是什么 它确实和配方是什么。
因此,我的问题是: 你们中的任何人都能指出我正确的方向吗?我一直在挖掘 我到目前为止所阅读的论文的参考文献,但这些也给了我“我们 使用RANSAC算法解决这个问题“-line,我的感觉越来越强烈 朝错误的方向看。 对这些事情有一些很好的解释,也许是外行人的条件和/或 有一些插图? 简而言之:我应该在哪里寻找,或者在哪里可以找到这个难以捉摸的部分 信息?
提前致谢, Xilconic
PS:检查维基百科,但它对我帮助不大。也听了 “基本矩阵之歌”,这是同一个故事。答案 0 :(得分:4)
在此论文中写了my thesis,也在我的论文中使用了RANSAC算法。
此主题的内容多于此处的几段内容。考虑获得优秀的书Multiple View Geometry。
RANSAC将找到一个模型,在这种情况下是基本矩阵 F ,即使存在大量的异常值。在这种情况下,一些点对应候选者是远离的。这是一个异常值。基本上你只是从随机绘制的点中继续拟合 F 矩阵。最终,您会找到一组共同创建一致模型的点。这些是 inliers 。它们现在可用于更准确地估计模型( F )。
在我的论文中有一个简单的例子,其中有一个线条拟合的例子可以帮助您入门,并且可以轻松掌握适用于对应问题的RANSAC解释。
F 矩阵最重要的一点是它将一个图像中的一个点映射到另一个图像中的行:
Fx = l '其中 x 是一张图片中的一个点而 l '是一行另一个。
F 矩阵有9个元素,但必须有rank 2,并且刻度无关紧要,因此它只有7个自由度。 F 矩阵的元素没有简单的解释。
使用点对应 x < - > x '和 F 如果您知道相机内部参数(如焦距),则可以提取所描绘点的世界3D坐标 X 。
请注意,使用连续的电影帧时,相机通常移动很少,可能很难计算基本矩阵。它可以解决。我建议调查Marc Pollefeys'
的作品答案 1 :(得分:2)
查看基本矩阵wikipedia entry中的第一个公式:
这是您尝试使用RANSAC解决的“模型”。您有两个3xn (n>=7)
矩阵 x
和 x'
代表您所有相应的x,y
- x',y'
两个图像中的点(第三个坐标始终只是数字1)。以及您想要查找值的未知3x3
矩阵 F
。 wikipedia entry中RANSAC的伪代码算法是一个很好的解释。
现在,什么是基本矩阵?
考虑图像中的点的一种方式是连接相机位置和3D空间中的点的3D线。该线在两个方向上延伸到无穷大。如果您使用不同的相机查看该线上的3D点,那么在该相机的图像中,您会看到一条直线穿过它。图像中的点到3D线的变换(实际上是投影)仅仅是矩阵运算。将3D线条投影到2D图像上也是矩阵运算。 F
在一个矩阵中捕获这两个矩阵运算。 F
也可用于确定两个相机的camera matrix,然后可用于3D重建。
也许这有点帮助?否则,我从Hartley and Zisserman了解到最多这方面的知识。
答案 2 :(得分:1)