【问题标题】:Computer Vision - Figuring out what angle the camera is pointing to as it moves around?计算机视觉 - 找出相机在移动时指向的角度?
【发布时间】:2013-12-18 04:43:15
【问题描述】:

我有时会在我的摩托车头盔上安装摄像机并四处骑行。显然,我稍微动了动头,然后绕过角落等。这是sample, edited video to give you an idea。除了原始原件都将在一个序列中(无剪辑)。

鉴于这样的视频,是否有可能弄清楚/很好地猜测每帧相对于前一帧指向的方向,从而在全局范围内确定每帧指向的方向?

我认为这应该可以使用特征检测(SIFT?)和/或图像稳定中使用的相同类型的东西?但是我没有计算机视觉方面的经验,所以我不确定这是否不可能,以前已经做过,或者是否已经有一个库。因此提出了这个问题。

我有很多 Python 经验以及一些 gstreamer 和 C 经验。开源解决方案更可取,并且“在 linux 上运行”是一项要求。我很想自己编写代码,但我不知道是否已经完成了任何数学/算法(如果有,是什么?)

【问题讨论】:

  • 您可以搜索“运动结构”。不过,这是一个更复杂的问题:它试图重建相机的运动、方向和跟踪特征的深度。
  • 问题太笼统了,可能不适合 Stack Overflow。谷歌搜索“SfM”、“SaM”、“SLAM”等。

标签: video video-processing computer-vision


【解决方案1】:

如果您不想通过运动算法实现完整的结构(这是一项艰巨的任务),我会尝试以下想法:

首先跟踪从一帧到下一帧的兴趣点。 SIFT 或 SURF 可能是一个好的开始。大多数兴趣点不会移动很远,一旦处理了前两帧,您就可以很好地估计每个兴趣点在下一帧中的位置,所以这应该是可能的。

一旦你在两帧之间有了特征对应,每个特征点的运动(大约)是两个分量的总和:一个远离消失点的分量(即自行车的运动方向)和一个分量这对于每个点都是相同的(相机的方向变化)。

从数学上讲,这意味着点 p 在时间 t1 的位置是:

其中 v 是消失点,d 是远离图像中消失点的移动速度(取决于物体与观察者的距离和自行车的速度),m 是相机的运动。那是 2*n 个方程和 4+n 个未知数的 n 个点,这意味着如果您有 4 个或更多点,您可以找到一个(近似)解。

【讨论】:

    猜你喜欢
    • 2015-12-08
    • 1970-01-01
    • 1970-01-01
    • 2018-11-07
    • 2015-09-25
    • 2016-11-03
    • 2011-10-18
    • 2017-08-26
    • 2010-12-04
    相关资源
    最近更新 更多