Fast, very lightweight algorithm for camera motion detection?

丶灬走出姿态 提交于 2019-12-03 03:19:54

问题


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.

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.

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.

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.


回答1:


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.




回答2:


there's an open source (free for private use) project that utilizes FAST corner detection here: http://www.hatzlaha.co.il/150842/FAST-Corner-V2

It could be very useful for object detection, and has undergone serious optimizations to reach beautiful non-jittery results.

-- EDIT --

Now there's a Lucas-Kanade Optical Flow project as well - http://www.success-ware.com/150842/Lucas-Kanade-Detection-for-the-iPhone You can download the source code, and there's a link to the AppStore as well, so you can play around with it and see if it answers your needs.

HTH,

Oded.



来源:https://stackoverflow.com/questions/4393841/fast-very-lightweight-algorithm-for-camera-motion-detection

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!