首页 文章

重建相应点的3D位置

提问于
浏览
2

我正在开展一个项目,我想重建我从相机图像中提取的特征点的3D位置 . 这个想法是:

  • 进行相机录制(灰度信息,VGA尺寸:640 x 480)

  • 提取相机框架中的要素点(我正在使用SIFT)

  • 来自frame [k-1]的对应特征与来自frame [k]的特征(我打算使用RANSAC,稍后会更多...)

  • 计算/估计这些特征点之间的一些相对距离信息(这将在某些(x,y,z)坐标系中)

我在很多论文中都读到RANSAC是一种用于重建的算法,最终结果是某种点 Cloud . 我希望能够做到这一点 . 但是,我遇到了一些障碍,我希望你们可以帮助我解决这些问题 .

第一个障碍是,我真的不明白我将如何使用RANSAC来执行此点对应 . 我理解RANSAC是一个模型拟合工具的概念,我只是看不出它如何用于做对应解决 .

第二个障碍是,假设我有我的通信信息,如何在所有这些点之间获得某种距离信息 . 我已经读过透视投影可以用来解决这个问题,反过来我应该尝试估计基本矩阵 . 然后做一些数学魔术,以获得点 Cloud . 重点是,我不明白基本矩阵中的实际值是什么意思 . 我知道它给出了2个摄像机的位置之间的数学关系(或者在我的情况下,摄像机正在移动的视频中的2帧),并且它利用了极线几何 . 但除此之外,我只是不知道基本矩阵实际上需要什么 . 这个3x3矩阵如何捕获1个相机的6DOF相对于另一个?另外我认为我所提到的'数学魔术'是某种矩阵乘法,但我没有找到任何信息来源来解释我它的作用和配方是什么 .

因此,我的问题是:你们中的任何人都能指出我正确的方向吗?我一直在深入研究我到目前为止所阅读的论文的参考文献,但这些也给了我“我们使用RANSAC算法解决这个问题”-line,我越来越觉得我看错了方向 . 对这些事情有一些很好的解释,也许是外行人的条款和/或一些插图?简而言之:我应该在哪里寻找或在哪里可以找到这些难以捉摸的信息?

提前谢谢,Xilconic

PS:检查维基百科,但它对我帮助不大 . 还听了'基本矩阵之歌',这是同一个故事 .

3 回答

  • 1

    在此论文中写了my thesis,在我的论文中也使用了RANSAC算法 .

    这个主题还有很多内容,可以在这里的几个段落中找到 . 考虑获得优秀的书Multiple View Geometry .

    Snag 1

    RANSAC将找到一个模型,在这种情况下是基本矩阵 F ,即使存在大量异常值 . 在这种情况下,一些点对应候选者是远离的 . 这是一个异常值 . 基本上你只是从随机绘制的点开始拟合 F 矩阵 . 最终,您会找到一组共同创建一致模型的点 . 这些是内部因素 . 它们现在可用于更准确地估计模型( F ) .

    在我的论文中有一个简单的例子,有一个线条拟合的例子可以帮助你入门,并且一个易于理解的RANSAC解释适用于对应问题 .

    Snag 2

    关于 F 矩阵最重要的是它将一个图像中的一个点映射到另一个图像中的一条线:

    Fx = l '其中 x 是一个图像中的一个点, l '是另一个图像中的一条线 .

    F 矩阵有9个元素,但必须有rank 2,并且刻度无关紧要,因此它只有7个自由度 . 对 F 矩阵的元素没有简单的解释 .

    如果您知道相机内部参数(如焦距),则可以使用点对应 x < - > x '和 F 来提取所描绘点的世界3d坐标 X .

    请注意,使用连续电影帧时,相机通常移动很少,可能很难计算基本矩阵 . 它可以解决 . 我建议调查Marc Pollefeys'的作品

  • 4

    查看基本矩阵wikipedia entry中的第一个公式:

    enter image description here

    这是您尝试使用RANSAC解决的"model" . 你有两个 3xn (n>=7) 矩阵 xx' 代表两个图像中所有相应的 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

    使用类似5点或8点算法的基本矩阵的稳健解决方案肯定是一个良好的开端 . 也就是说,基本矩阵解决方案可能容易受到异常值的影响,您可能需要一些额外的总体系统来进行实际的3D求解 . 您可以使用卡尔曼滤波器类型方法(快速,可以在嵌入式系统上实时完成)或捆绑调整(非常准确但可能更慢) .

    一些很好的SFM软件,您可以使用或从中获取灵感:

    VSLAM(由Konolige开发,他是斯坦福大学的教授,也在Willow Garage工作,OpenCV人员) . 可能是我见过的最快的捆绑调整解决方案 .

    RSLAM(由牛津移动机器人集团开发,显示出一些优异的成果)

相关问题