快速,非常轻巧的摄像机运动检测算法? [英] Fast, very lightweight algorithm for camera motion detection?

查看:126
本文介绍了快速,非常轻巧的摄像机运动检测算法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在开发一款适用于iPhone的增强现实应用程序,它包含一个非常耗费处理器的对象识别算法(将CPU推至100%,可以达到每秒5帧),并努力节省电池电量功能并使整个事情变得更少紧张我正试图想出一种只在用户实际移动相机时运行该对象识别器的方法。

I'm working on an augmented reality app for iPhone that involves a very processor-intensive object recognition algorithm (pushing the CPU at 100% it can get through maybe 5 frames per second), and in an effort to both save battery power and make the whole thing less "jittery" I'm trying to come up with a way to only run that object recognizer when the user is actually moving the camera around.

我的第一个想法是简单地使用iPhone的加速度计/陀螺仪,但在测试中我发现人们经常会以足够一致的姿态和速度移动iPhone,以至于没有任何方法可以说明它仍在运动中。

My first thought was to simply use the iPhone's accelerometers / gyroscope, but in testing I found that very often people would move the iPhone at a consistent enough attitude and velocity that there wouldn't be any way to tell that it was still in motion.

这样就可以选择分析实际的视频输入并检测其中的移动。我让OpenCV工作并尝试运行他们的金字塔式Lucas-Kanade光流算法,它运行良好但似乎几乎与我的对象识别器一样处理器密集型 - 如果我降低深度级别/下采样,我可以使其达到可接受的帧率图像/跟踪更少的点,但是精确度会受到影响,它会开始错过一些大的动作并触发小手抖动。

So that left the option of analyzing the actual video feed and detecting movement in that. I got OpenCV working and tried running their pyramidal Lucas-Kanade optical flow algorithm, which works well but seems to be almost as processor-intensive as my object recognizer - I can get it to an acceptable framerate if I lower the depth levels / downsample the image / track fewer points, but then accuracy suffers and it starts to miss some large movements and trigger on small hand-shaking-y ones.

所以我的问题是,是如果我只是想检测相机移动的整体幅度,还有另一种比Lucas-Kanade更快的光流算法吗?我不需要跟踪单个物体,我甚至不需要知道相机移动的方向,我真正需要的是一种方式来提供两帧视频,让它告诉我它们相隔多远。

So my question is, is there another optical flow algorithm that's faster than Lucas-Kanade if I just want to detect the overall magnitude of camera movement? I don't need to track individual objects, I don't even need to know which direction the camera is moving, all I really need is a way to feed something two frames of video and have it tell me how far apart they are.

推荐答案

为什么不使用加速度计/陀螺仪运动感应的组合,以及非常低分辨率的图像跟踪器?每种方法似乎都被完全不同的用户动作所混淆。

Why not use the combo of the accelerometer/gyro motion sensing, and a very low res image tracker? Each method seems to be confused by completely different user motions.

这篇关于快速,非常轻巧的摄像机运动检测算法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆