使用OpenCV的视觉测距(aka.Engomotion估计)

时间:2013-01-07 16:33:40

标签: opencv augmented-reality motion-detection

我计划实施具有增强现实功能的应用程序。对于其中一个特征,我需要一个运动估计。只有相机在有固定物体的空间中移动(没有任何东西或只有小部件会移动,因此可能会被忽略)。

所以我搜索并阅读了很多内容并偶然发现OpenCV。维基百科明确指出it could be used for egomotion。但我找不到任何关于它的文件。

  1. 我是否需要自己使用OpenCV的物体检测方法实现运动算法? (我认为它会非常复杂,因为物体会根据它们与相机的距离以不同的速度移动。我还需要考虑旋转。)
  2. 如果是这样,我应该从哪里开始?是否有Kanade–Lucas–Tomasi feature tracker with support for scaling and rotation的好代码示例?
  3. P.S。:我也知道基于标记的框架,如vuforia,但是我想阻止使用标记,因为它限制了可能的视点。

    更新2013-01-08:我了解到Egomotion Estimation被称为视觉测距。所以我更新了标题。

2 个答案:

答案 0 :(得分:4)

您可以根据光流here找到一个很好的单眼视觉测距实现方法。

它是使用emgucv(C#opencv包装器)编码的,但是你会发现没有将它转换回纯opencv的问题。

答案 1 :(得分:2)

Egomotion(或视觉测距)通常基于光流,而OpenCv有一些motion analysis and object tracking functions用于计算光流(与cvGoodFeaturesToTrack()等特征检测器配合使用。)

This example可能有用。

不是一个完整的解决方案,但至少可以让你朝着正确的方向前进。