【问题标题】:Visual Odometry in opencv (possibly using RGBD)opencv 中的视觉里程计(可能使用 RGBD)
【发布时间】:2014-03-12 11:15:17
【问题描述】:

我正在尝试在 opencv 中实现视觉里程计解决方案,但遇到了一些问题。这是一个相当广泛的问题,所以我提前道歉,但是我有很多问题。

我目前对问题的理解是: 获得一些模型来表示两个连续图像之间的对应关系,即光流或特征匹配。 从这些点对应中获取基本(如果需要,然后是必要的)矩阵。 从中计算 [R|t]。

我知道 openCV 中的 findFundamentalMat 函数,但我认为它只需要 2D 点匹配?在 Scaramuzza 和 Fraundorfers 论文 'Visual Odometry - pt1' 中,他们建议 3-D 到 2-D 对应将是最准确的。

我想我的问题是我可以使用从 kinect 检索到的深度数据,给我 3-D 特征点,在 opencv 中用于给我一个自我运动估计吗?

我还查看了solvePnP,但据我所知,这只解决了单帧(当您知道特征的真实模型空间坐标时,例如使用基准标记) 虽然我确实考虑过如果我在两帧之间跟踪 3D 点,解决第一帧中的透视图,那么在第二帧中具有相同点的应该给我两者之间的转换?

对于这个表述不当的问题,我深表歉意,我还是计算机视觉的新手。如果它是一个雷区,我不会试图回答这个问题,我会很感激任何相关文献或 opencv 里程计教程。谢谢。

【问题讨论】:

    标签: c++ opencv


    【解决方案1】:

    在 opencv\samples\cpp 文件夹中有一个示例 rgbdodometry.cpp。 你见过吗?

    【讨论】:

    • 是的,我打算把它贴上标签,但我的问题已经被淡化了!从阅读相应的论文来看,似乎使用了某种密集的能量最小化方法,这似乎有效,尽管有点慢。我正在尝试实现一个稀疏解决方案,具有特征匹配并比较速度。
    • 好的,对于您的问题的误解,我深表歉意。我测试过的最好的 SLAM 解决方案是 Javier Civera 的 EKF Mono SLAM:webdiis.unizar.es/~jcivera/code/1p-ransac-ekf-monoslam.html,但它不使用深度组件,并在 MATLAB 中实现。该网站上也有该作者的几篇论文。您还可以在现场找到有关 SLAM(包括 RGBD-SLAM)的好资源:openslam.org
    • 感谢您的链接,我想我已经阅读了这方面的论文,但从未找到来源,所以我会尝试一下。希望以后能够回来提出更明确的问题!
    • @AndreySmorodov 你能告诉我如何在opencv样本中执行rgbdodometry.cpp吗?我是 cpp 新手,编译时遇到问题。
    • 源文件第 83-88 行有帮助。你需要设置 vals[] 数组,作为相机矩阵。
    猜你喜欢
    • 1970-01-01
    • 2012-12-21
    • 2017-08-26
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多