4

我正在尝试为 iPhone/iPad 创建一个全景应用程序。

图像拼接位还可以,我使用的是 openCV 库,结果还可以接受。

但我有点坚持开发 UI 以在捕捉全景时帮助用户。

大多数应用程序(甚至在 Android 上)都会为用户提供某种标记,该标记可以平移/旋转与用户相机的移动完全匹配。[我正在使用 iOS 7 - 默认相机的全景功能作为​​初步基准]。

但是,到目前为止,我还远远不够。

我尝试过的: 我尝试过使用加速度计和陀螺仪数据来跟踪标记。使用这种方法 -

  • 我在加速度计数据上应用了 LPF,并使用简单的牛顿力学(具有仔细调整的阻尼因子)来平移屏幕上的标记。这种方法的问题:非常不稳定的数据。标记倾向于在点之间跳跃和摆动。很难区分平稳运动和混蛋。

  • 我尝试在 LPF-ed 陀螺仪和加速度计数据之间使用互补滤波器来转换 blob。这种方法的问题:比第一种方法略好,但仍然很随机。

  • 我也尝试过使用图像处理来计算光流。我正在使用openCV

    goodFeaturesToTrack(firstMat, cornersA, 30, 0.01, 30);
    

    从第一张图像中获取可跟踪点(从相机选择器中采样),然后calcOpticalFlowPyrLK 用于获取这些点在下一张图像中的位置。 这种方法的问题:但是,通过跟踪这些点获得的运动矢量噪声太大,无法准确计算得到的运动方向。

我认为我接下来应该做什么:

  • 也许从加速度计和陀螺仪数据计算 DCT 矩阵,并使用某种算法将一个输出与另一个输出过滤。

  • 研究图像处理算法,使用一些不同的技术(???)。

  • 使用卡尔曼滤波器将加速度计+陀螺仪的状态预测与图像处理模块的状态预测融合。

我需要的帮助:

你能建议一些更简单的方法来完成这项工作吗?

如果没有,您能否强调我的方法中可能存在的任何错误?真的有必要这么复杂吗?

请帮忙。

4

0 回答 0