13

我正在为 iPhone 开发一个增强现实应用程序,该应用程序涉及一个处理器密集型对象识别算法(以 100% 的速度推动 CPU,它可能每秒可以通过 5 帧),并努力节省电池电量并让整件事不那么“紧张”我试图想出一种方法,只在用户实际移动相机时才运行该对象识别器。

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

这样就剩下分析实际视频输入并检测其中的运动的选项。我让 OpenCV 正常工作并尝试运行他们的金字塔形 Lucas-Kanade 光流算法,该算法运行良好,但似乎与我的对象识别器一样占用大量处理器 - 如果我降低深度级别/下采样,我可以将其提高到可接受的帧速率图像/跟踪更少的点,但准确性会受到影响,它开始错过一些大动作并触发小握手。

所以我的问题是,如果我只想检测相机运动的整体幅度,是否还有另一种比 Lucas-Kanade 更快的光流算法?我不需要跟踪单个对象,我什至不需要知道相机正在移动的方向,我真正需要的只是一种方法来输入两帧视频并让它告诉我它们相距多远。

4

2 回答 2

4

这里有一个使用 FAST 角点检测的开源(免费供私人使用)项目: http ://www.hatzlaha.co.il/150842/FAST-Corner-V2

它对于对象检测可能非常有用,并且经过了严格的优化以达到漂亮的非抖动结果。

- 编辑 -

现在还有一个 Lucas-Kanade 光流项目 - http://www.success-ware.com/150842/Lucas-Kanade-Detection-for-the-iPhone 你可以下载源代码,有一个链接到AppStore 也是如此,因此您可以使用它,看看它是否满足您的需求。

高温下,

奥德。

于 2011-01-10T23:41:19.680 回答
3

为什么不使用加速度计/陀螺仪运动感应和极低分辨率图像跟踪器的组合呢?每种方法似乎都被完全不同的用户动作所迷惑。

于 2010-12-09T01:07:17.280 回答