Vuforia融合

Vuforia Fusion是一套旨在为各种设备提供最佳AR体验的技术。

Fusion解决了支持AR的技术中的碎片问题,包括相机、传感器、芯片组和软件框架,如ARKit、ARCore、Magic Leap和Windows Holography for HoloLens 2。它可以感知底层设备的功能,并将其与Vuforia Engine功能融合,使开发人员能够依靠单个VuforiaEngine API获得最佳AR体验。除了其他Android和iOS设备型号外,Vuforia Fusion还为支持ARKit和ARCore的设备带来了先进的VuforiaEngine功能。

特征

Vuforia Fusion由多个VuforiaEngine功能使用,例如:

  • 设备跟踪–提供六自由度的设备姿势。
  • 图像目标/圆柱体目标/多目标/VuMark/条形码–实现可靠的跟踪。
  • 模型目标–实现对大型对象的可靠跟踪。
  • 区域目标–能够跟踪整个空间。
  • 地平面-允许将虚拟内容放置在环境中的水平平面上。

融合技术优先级

Vuforia Fusion使用的技术的优先级已经过优化,以利用最新的硬件/软件使能技术,同时为开发人员提供尽可能广泛的设备覆盖范围。下图说明了Vuforia引擎如何利用硬件和软件启用码。

上图显示,使用Vuforia引擎创建的AR体验将尝试使用最顶级的技术,并根据设备在运行时可用的功能向下运行。

例如,在启用ARKit的设备上运行的Vuforia应用程序将自动利用ARKit实现依赖于VuforiaFusion的所有功能。运行在旧iOS设备上的相同应用程序(不支持ARKit,但已由Vuforia校准)将自动使用VuforiaVISLAM实现相关功能。

在Android设备上,在支持ARCore的设备上运行的Vuforia应用程序将在开发人员包含ARCore时利用它。如果设备具有所需的传感器且已由Vuforia校准,则不支持ARCore的设备上的相同应用程序将使用Vuforia-VISLAM。

由于增加了对平台使能技术的支持,AR内容、目标和物理对象的坐标比例必须以米为单位。没有适当设置缩放比例的对象可能无法很好地跟踪。

设备

有关支持ARKit或ARCore的设备列表,请参阅苹果ARKit网站谷歌的ARCore页面.

有关与Vuforia Engine一起使用的推荐设备的列表,请参阅Vuforia引擎推荐的设备.

旧设备和过热

为了让开发人员能够访问最广泛的设备,Vuforia引擎支持各种较旧的设备。针对较旧设备的开发人员应该意识到,这些设备有时可能只有长时间维持增强现实体验所需的硬件规格。因此,鼓励针对此类设备的开发人员设计更短的体验。在此类设备上长时间运行增强现实体验可能会导致设备过热并耗尽电池电量。

设备中有几种保护措施,以防止损坏设备或伤害用户。一个这样的保护措施是,CPU和GPU的速度被节流,以避免热量造成永久性损坏。当CPU或GPU被节流时,增强现实体验可能无法按预期运行。例如,增强可能无法充分固定到环境或对象。

Vuforia Engine提供了多种选项来调整视频模式,以延长电池寿命或提高性能。更多信息请访问设备性能优化.

VISLAM行为

视觉-惯性同步定位与映射(VISLAM)是Vuforia实现的一种算法,它结合了视觉-惯性里程计(VIO)和同步定位与绘图(SLAM)的优点。Vuforia VISLAM有几个优点:

  • 它在低特征环境中比基于SLAM的跟踪工作得更好。
  • 它提供了世界范围的估计值(即设备跟踪运动估计值对应于真实世界的运动)。
  • 当跟踪在VIO解决方案中完全丢失时,它提供了恢复的健壮性。

使用地平面时,Vuforia Engine的VISLAM系统将尝试估计摄像机与地平面之间的距离。为了提供流畅的最终用户体验,Vuforia Engine将使用初始提示,根据API提供的离地面的高度来缩放内容。这个提示的默认值是1.4米——成年人手里拿着设备的平均身高。在某些情况下,您可以在应用程序的初始化阶段看到规模估计,当放大被校正为放置在地平面上时的外观尺寸。

当使用VISLAM时,一些只有前卫结构和细线且没有纹理的环境可能表现得不太稳定。此外,通知用户你的应用程序不允许他们做太快的动作;它可以导致增强将其相对位置移动到目标。重新接近目标或重置设备跟踪将纠正增强的位置。

注意:对于针对Android API级别31或更高级别编译的Vuforia项目,必须添加权限android许可。高采样率传感器清单文件以确保VISLAM能够正确运行。使用Vuforia Unity扩展版本10.7或更低版本时,必须手动执行此操作;对于10.8及更高版本,此扩展包含此权限。

融合API

初始化之前,可以启用或禁用Vuforia引擎的Fusion Provider特定配置数据。禁用融合提供程序将设置Vuforia Engine以在VISLAM或SLAM之间选择最佳选项。

如果启用,Vuforia Engine将自动选择最佳的Fusion提供程序。Fusion Provider按上述方式进行优先级排序(首先是平台使能器,其次是VISLAM,然后是SLAM)。如果引擎无法设置平台融合提供商,Vuforia将转而使用基于非平台的融合提供商。

为了团结

使用设置Fusion Provider配置Vuforia应用程序。实例。初始化(FusionProviderOption)。选项可以是PREFER_PLATFORM_FUSION_PROVIDER和VUFORIA_FUSION_ONLY。请参见Unity中的Vuforia引擎生命周期用于应用选项或参考API库有关选项的详细信息。

查询

确定当前活动的Fusion提供程序时,请使用Vuforia运行时间实用程序。获取ActiveFusionProvider()。这将返回FusionProviderType(融合提供商类型)Vuforia引擎正在使用的。返回值在参考图书馆.

如果查询返回PLATFORM_SENSOR_FUSION,则可以设置Fusion提供商选项PREFER_PLATFORM_FUSION_PROVIDER以利用底层平台的跟踪服务,如ARKit、ARCore和Windows全息。

对于本机

使用将Vuforia Fusion Provider配置添加到引擎配置vuEngineConfigSetAddFusion提供程序配置通过在使用平台FusionProvider来自VuFusionProviderConfig。默认值为VU_TRUE。

查询

确定当前活动的Fusion提供程序时,请使用vu平台控制器获取融合提供程序类型()。这将返回VuFusionProviderType(VuFusion提供商类型)Vuforia引擎正在使用的。返回值在参考图书馆.

如果查询返回VU_FUSION_PROVIDER_TYPE_PLATFORM_SENSOR_FUSION,则可以使用vu平台控制器获取融合提供程序平台类型以获得VuFusionProvider平台类型利用底层平台的跟踪服务,如ARKit、ARCore和Windows全息。有关平台功能的更多信息,请参阅使用Vuforia Fusion平台句柄.

持续AR经验

Vuforia Engine为开发人员提供了一个工具集,用于管理和创建在应用程序中断和暂停期间持续的AR会话。通过使用设备跟踪以及其报告的姿势状态,您可以在恢复AR会话后重新跟踪所有Vuforia目标。请参阅持续AR体验的最佳实践第页,了解适用于不同Vuforia Fusion平台的应用程序连续性和设备姿势行为状态的详细信息。

重新定位

重定位允许跟踪系统在短时间故障后恢复跟踪结果,而无需重新启动体验,方法是覆盖跟踪功能期间的小间隙。

为了团结

要确定Vuforia引擎是否正在尝试重新缩放,请参阅目标状态()以及它返回的值。请参见姿势状态和状态信息.

在Vuforia引擎中,重新定位行为在很大程度上取决于会话期间活动的Fusion Provider。

当跟踪丢失并且FusionProviderType()返回VISION_ONLY,如果跟踪系统检测到之前未看到的目标,则会重置自身。在这种情况下,系统开始跟踪新目标,并在看到其他目标时恢复这些目标。

当跟踪丢失并且FusionProviderType()返回SENSOR_FUSIONVISION_ONLY,可能不会出现预期的增强。在这种情况下,目标状态()返回LIMITED。为了帮助系统恢复并继续体验,请指示用户将设备指向以前查看过的目标或位置,具体取决于体验的性质。

对于本机

要确定Vuforia引擎是否正在尝试重新缩放,请参阅vuObservation获取位置信息()函数及其返回的值。请参见姿势状态和状态信息.

在Vuforia引擎中,重缩放行为在会话期间高度依赖于活动的Fusion Provider。

当跟踪丢失并且vu平台控制器获取融合提供程序类型()返回VU_FUSION_PROVIDER_TYPE_VISION_ONLY,如果跟踪系统检测到以前未看到的目标,则会重置自身。在这种情况下,系统开始跟踪新目标,并在看到其他目标时恢复这些目标。

当跟踪丢失并且vu平台控制器获取融合提供程序类型()返回VU_FUSION_PROVIDER_TYPE_SENSOR_FUSIONVU_FUSION_PROVIDER_TYPE_VISION_ONLY,可能不会出现预期的增强。在这种情况下,vuObservation获取位置信息()返回VU_OBSERVATION_POSE_STATUS_LIMITED。为了帮助系统恢复并继续体验,请指示用户将设备指向以前查看过的目标或位置,具体取决于体验的性质。