EasyAR 运动融合

运动跟踪

在了解运动融合之前,请阅读 运动跟踪与EasyAR功能 来了解EasyAR功能与运动跟踪的关系。

什么是 EasyAR 运动融合

EasyAR 运动融合是在存在运动跟踪设备时优化图像和物体跟踪的一种技术。

如果一个设备(手机、眼镜或头显)通过硬件或软件方案可以具有VIO能力,我们称其为运动跟踪设备。这些设备包括但不限于可以运行 EasyAR 运动跟踪 、 ARCore、ARKit、华为 AR Engine的设备,或具有VIO能力的眼镜比如Vision Pro。

EasyAR 运动跟踪可以让图像和物体跟踪摆脱抖动困扰,跟踪稳定,并且可以在离开相机视野之后继续跟踪。

如何使用 EasyAR 运动融合

有无运动融合的场景差异存在于 EasyAR AR Session 以及target上。

创建适用于运动融合的AR Session

手机上,可以使用 Image TrackingObject Tracking 中名字含有 Motion Fusion 的预设来创建运动融合的AR Session,

../_images/image_os4_1.png

手机上,也可以在现有AR Session中,添加 内置Frame Source 中的Motion Tracking Frame Source Group。为了使用运动融合,你需要一组表示运动跟踪设备的 FrameSource ,这通常在不同设备上会运行不同的 frame source。这里我们选中 AR Session (EasyAR) ,通过使用 EasyAR Sense > Motion Tracking > Frame Source : * 来创建一组 frame source ,session使用的 frame source 会在运行时选择。你可以根据具体需求添加不同的 frame source 到session中。

如果你需要在没有运动跟踪能力的设备上跟踪可以退变为普通的跟踪,只需要使用 EasyAR Sense > Image Tracking > Frame Source : Camera Device (Object Sensing) 简单地在frame source组的最后添加一个新的 CameraDeviceFrameSource 即可。

在头显设备上,通常不需要对AR Session进行特殊的修改,因为头显的Frame Source通常都是支持运动跟踪的,运动融合功能可以直接使用。

确保打开Tracker的运动融合开关

比如,在使用 ImageTrackerFrameFilter 时,需要打开 ImageTrackerFrameFilter 上的 Enable Motion Fusion

../_images/image_os4_2.png

运行时可以随时开关这个选项并立即改变Tracker的行为。

Target 限制

使用运动融合的target有两个需要注意的地方,

  1. Target的缩放比例 ( ImageTarget.scaleObjectTarget.scale ,或 TargetController 的输入 ImageTargetController.ImageFileSourceData.ScaleObjectTargetController.ObjFileSourceData.Scale )必须与真实世界中的物体一致。

  2. 目标图像或物体在真实世界中不能移动。

可以参考 ImageTracking_MotionFusion 样例来了解更多详情。