快速、非常轻量级的摄像机运动检测算法?

13
我正在为iPhone开发增强现实应用程序,该应用程序涉及非常需要处理器算法的对象识别(将CPU推到100%,每秒最多可以处理5帧),为节省电池电量并使整个过程不那么“抖动”,我正在尝试想出一种方法,仅在用户实际移动相机时运行该对象识别器。
我的第一个想法是简单地使用iPhone的加速度计/陀螺仪,但在测试中,我发现很多人会以足够一致的态度和速度移动iPhone,以至于无法确定它是否仍在运动。
因此,剩下的选择是分析实际视频并检测其中的运动。 我已经使用了OpenCV并尝试运行其金字塔Lucas-Kanade光流算法,虽然效果还不错,但几乎与我的对象识别器一样需要占用大量处理器资源-如果我减少深度级别/降低图像采样率/跟踪较少的点,我可以将其帧率达到可接受的水平,但准确性会降低,并开始错过一些大运动并触发小的手震动。
因此,我的问题是,是否有比Lucas-Kanade更快的其他光流算法,如果我只想检测相机运动的总体大小? 我不需要跟踪单个对象,我甚至不需要知道相机移动的方向,我真正需要的只是一种方法来提供两帧视频并让它告诉我它们之间的距离。

1
请查看取景器对准 - Adi Shavit
1个回答

3
为什么不使用加速度计/陀螺仪运动感应和非常低分辨率的图像跟踪器的组合呢?每种方法似乎都会受到完全不同的用户动作的干扰。

有趣的想法...问题在于它们能够检测到的运动范围是否实际上会重叠,或者是否会有某些类型的运动,两个设备都无法可靠地捕捉到,而不会引起大量的抖动干扰。我会尝试一下并很快汇报,谢谢! - Ertebolle
这证明了这是获胜的策略,尽管需要对OpenCV的L-K代码进行一些额外的改进,并进行非常轻量级的附加图像检查才能使其良好运行 - 谢谢! - Ertebolle
1
@Ertebolle,你有没有你的东西的示例代码可以让我开始使用?先谢谢了。 - Sandeep Singh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接