Table of Contents

平面跟踪与运动跟踪结合

本篇介绍如何将平面图像跟踪与设备运动跟踪功能相融合,以提升复杂场景下的跟踪稳定性和用户体验。内容包括核心原理、预期效果及潜在问题分析。

基本原理

运动融合(Motion Fusion) 结合平面图像跟踪的位姿数据和设备运动跟踪的位姿数据,实现更鲁棒的位姿估计。以下是其核心流程:

数据同步与互补

  • 视觉跟踪:通过图像特征点匹配计算当前帧的位姿(位置+旋转),但易受遮挡、模糊或快速移动影响。
  • 运动跟踪:利用 IMU 传感器高频输出以及视觉图像的输出获得设备运动数据,但存在累积飘移误差。
  • 融合机制
    • 将视觉跟踪的位姿与设备运动跟踪的位姿进行坐标系对齐。
    • 当目标图像清晰可见、稳定运动时:以视觉跟踪为主。不断地将视觉跟踪位姿送入融合模块进行修正,以减少整个系统的累积漂移。
    • 当目标图像丢失或者在画面中占比过小、快速运动时:此时视觉跟踪失效,以运动跟踪为主。根据当前的运动跟踪位姿进行融合位姿预测。

关键技术点

  • 时间戳对齐:将视觉帧的时间戳与运动跟踪数据对齐,避免因延迟导致抖动。
  • 坐标系对齐:根据视觉跟踪的轨迹和运动跟踪的轨迹进行坐标系对齐。
  • 重定位:图像重新出现时,视觉跟踪接管快速校正可能的累积误差,将虚拟物体“拉回”正确位置。

适用场景与限制

运动融合并不适合所有场景下的使用。有以下情形之一的将 不适用 运动融合功能:

  • 目标设备不支持 ARCore/ARKit 等运动跟踪功能。详细的设备支持列表参考:运动跟踪设备支持
  • 目标图像/平面物体在场景中是动态的,例如拿在手上体验的卡片。

除此之外的场景,使用运动融合将极大的提升平面图像跟踪的用户体验,包括但不限于以下使用情景:

  • 快速运动:用户手持设备快速移动,运动模糊会导致图像跟踪失效。
  • 目标消失:画面离开目标本身或者目标被动态物体(如行人)遮挡时,依然保持整个场景里虚拟内容的呈现。
  • 远离目标:用户手持设备远离导致目标图像在画面中占比过小,依然稳定持续跟踪。
  • 低光照条件:视觉跟踪性能下降,需要维持体验。

效果与预期结果

在场景适用的前提下,使用运动融合将比单纯的使用平面图像跟踪带来更稳定、平滑的用户体验。

理想效果

  • 更稳定的跟踪:虚拟物体不抖动、不跳变。
  • 平滑过渡:视觉跟踪失效时,融合位姿的变化连续自然。
  • 抗干扰能力:目标图像丢失或被遮挡、设备快速运动等情形下,虚拟物体仍能跟随设备运动持续跟踪。

不理想情况与应对

现象 原因 用户感知 解决方案
初始未生效 运动跟踪需要一定时间进行初始化 在初始阶段出现内容消失 一定的 UI 提示,确保系统运动跟踪初始化完成
飘移明显 系统误差累积,且长时间无视觉校正 虚拟物体偏离原位置 引导用户缩短遮挡时间,或增加视觉重定位的提示
性能下降 长时间同时运行两个功能 帧率下降画面卡顿 正常现象,可通过接口关闭运动融合

预期结果验证方法

使用支持的设备在真实场景中测试:

  1. 对准图像,确认虚拟物体稳定。
  2. 用手遮挡图像2秒并移动设备,观察虚拟物体是否平滑移动。
  3. 移开手,确认虚拟物体快速回正且无跳变。

总结与最佳实践

运动融合显著提升了平面图像跟踪在许多场景下的鲁棒性,但需要设备的硬件支持且性能足够。开发者应根据目标用户设备选择性启用该功能,并在低性能设备上提供降级方案。

实时打开/关闭运动融合功能的 API 参考: