与ARCore和ARKit相比,Vuforia有哪些限制?

27

我是一个增强现实领域的初学者,正在开发使用智能手机创建建筑物平面图、房间布局等精确测量应用程序。因此,我在研究可用于此目的的最佳AR SDK。有关将Vuforia与ARCore和ARKit进行比较的文章并不多。

请建议使用最佳的SDK,以及每个SDK的优缺点。

3个回答

82

更新日期:2023年7月14日

简而言之


前言

在回答您的问题之前,我想指出任何增强现实(AR)框架都会因为具备丰富的场景理解功能和多种类型的锚点而受益匪浅。不同类型的锚点的丰富性不仅可以根据特定情景安全地连接3D模型,甚至可以使用真实的人体作为距离测量的起点(我指的是ARBodyAnchor)。此外,任何框架的无可争议的优势是提供高质量的32位深度数据用于场景重建和遮挡。事实上,几乎任何AR框架的新功能都是对AR体验质量的贡献。同样,硬件部分也是如此 - 苹果的新U1和R1芯片提升了AR体验的质量。苹果最近推出了Vision Pro头戴设备(与微软HoloLens竞争对手),它允许您通过手势、凝视和语音命令与AR场景进行交互。

我们正处于新的“空间计算”时代。



什么是什么

Google ARCore允许您构建适用于Android和iOS的应用程序。使用Apple ARKit和RealityKit,您可以构建适用于visionOS和iOS的应用程序。 PTC Vuforia旨在创建适用于Android、iOS和通用Windows平台的应用程序。

Vuforia的一个关键特点是,如果其运行的硬件支持,它将使用ARCore/ARKit技术(也称为平台硬件和软件启用器)。否则,Vuforia将使用自己的AR技术和引擎,即无依赖硬件的软件解决方案。实际上,使用Vuforia Engine创建的AR体验将尝试使用最先进的技术,并根据设备上可用的内容向下工作。

在开发Android OEM智能手机时,您可能会遇到一个不愉快的问题:来自不同制造商的设备需要传感器校准才能观察相同的AR体验。幸运的是,苹果设备没有这样的缺点,因为所有在那里使用的传感器都在相同条件下进行了校准。

让我先把最重要的事情放在第一位。



enter image description here enter image description here

Google ARCore

ARCore于2018年3月发布。ARCore基于三个主要的基本概念运动跟踪环境理解光照估计。ARCore允许一个支持的移动设备使用一种称为并发里程计和地图绘制的特殊技术,在6自由度(6DoF)中跟踪其相对于世界的位置和方向。并发里程计和地图绘制帮助我们检测水平、垂直和倾斜跟踪表面的大小和位置。运动跟踪通过来自RGB摄像头每秒60帧的光学数据,结合陀螺仪和加速度计每秒1000帧的惯性数据,以及来自ToF传感器每秒60帧的深度数据,能够稳健地工作。当然,ARKit、Vuforia和其他AR库的操作方式几乎相同。

当你在真实环境中移动手机时,ARCore会跟踪周围的空间,以了解智能手机相对于世界坐标的位置。在跟踪阶段,ARCore会“播种”所谓的特征点。这些特征点可以通过RGB摄像头看到,并且ARCore使用它们来计算手机的位置变化。然后,视觉数据必须与惯性测量单元(IMU)的测量结果结合起来,以估计ArCamera随时间的位置和方向。如果手机没有配备ToF传感器,ARCore会寻找一组特征点的聚类,这些特征点似乎位于水平、垂直或倾斜的表面上,并将这些表面作为平面提供给您的应用程序(我们称之为平面检测技术)。在检测过程之后,您可以使用这些平面在场景中放置3D对象。带有分配着色器的虚拟几何体将由ARCore的伴侣——Sceneform渲染,支持实时物理渲染引擎(也称为PBR)Filament
尽管如上所述,目前Sceneform存储库已被归档,并且不再由Google积极维护。最后发布的官方版本是Sceneform 1.17.1。这听起来可能有些奇怪,但ARCore团队成员表示“没有直接替代Sceneform库,ARCore开发人员可以自由使用任何带有Android AR应用程序的3D游戏库。然而,有一个非官方的Sceneform + SceneView分支,因此它是归档的Sceneform框架的延续(最后一个版本是Sceneform 1.21)。
ARCore的环境理解功能使您能够以真实地与现实世界融合的方式放置具有正确深度遮挡的3D对象。例如,您可以使用深度命中测试和ArAnchors将虚拟咖啡杯放在桌子上。
ARCore还可以定义真实环境的照明参数,并为您提供给定相机图像的平均强度和颜色校正。这些数据使您能够在与周围环境相同条件下照亮虚拟场景,大大增加了逼真感。
当前的ARCore版本包含了重要的API,如原始深度API完整深度API地理空间API光照估计场景语义APIVulkan渲染(除了OpenGL)、地形锚点API电子图像稳定化增强人脸增强图像即时放置365天云锚点录制和回放以及多人游戏支持。ARCore工具包中一个有价值的补充是Android模拟器,它可以让您在虚拟设备上运行和调试AR应用程序。
在ARCore 1.31中,Google工程师将16位深度通道中的每个灰度映射到1毫米的距离。因此,他们成功覆盖了65,536毫米(2^16)的距离。这个表格介绍了原始深度API和完全深度API之间的差异:
Full Depth API (v1.31+) 原始深度API (v1.24+) 完全深度API (v1.18+) 精确度 差 良好 差 覆盖范围 所有像素 非所有像素 所有像素 距离 0到65.5米 0.5到5.0米 0到8.2米


ARCore比ARKit更早。你还记得2014年发布的Project Tango吗?粗略地说,ARCore只是Tango SDK的重写版。但苹果明智地收购了FlyBy Media、Faceshift、MetaIO、Camerai和Vrvana,不仅迎头赶上,而且显著超越了谷歌。可以说竞争对AR行业总是有益的。
最新版本的ARCore支持OpenGL ES加速,并与Unity、Unreal和Web应用程序集成。目前,在安卓平台上,用于AR体验的最强大和能效最高的芯片组包括MediaTek Dimensity 9200(4纳米)、Snapdragon 8 Gen 2(4纳米)、Exynos 2200(4纳米)和Google Tensor G2(5纳米)。
平台特定的开发方向包括:Android(Kotlin/Java)、Android NDK(C)和Unity(AR Foundation)。
ARCore的价格是免费。
ARCore的优点: - 支持iToF和深度API - 快速平面检测 - 远距离精确度 - Android Studio中的ARCore模拟器 - 地理空间锚定
ARCore的缺点: - AR头戴设备仍在开发中 - 云锚点托管在线 - 缺乏本地渲染引擎 - 不支持外部摄像头 - 快速耗电手机的电池




enter image description here enter image description here

Apple ARKit
ARKit于2017年6月发布。与竞争对手一样,ARKit也使用了特殊的技术进行跟踪,但其名称为“视觉惯性测距”。VIO用于非常精确地跟踪设备周围的世界。VIO与ARCore中的COM非常相似。ARKit中也有类似的基本概念:“世界跟踪”,“场景理解”(包括四个阶段:“平面检测”,“射线投射”,“光照估计”,“场景重建”),以及借助ARKit的伙伴“SceneKit”框架进行渲染,实际上自2012年以来就是苹果的3D游戏引擎,“RealityKit”框架专门为AR而设计,使用Swift从头开始编写(于2019年发布),以及具有2D引擎的“SpriteKit”框架(自2013年起)。
VIO将RGB传感器数据与Core-Motion数据(IMU)以及LiDAR数据融合在一起,其中RGB传感器数据的帧率为60fps,Core-Motion数据的帧率为1000fps。此外,需要注意的是,由于CPU和GPU的巨大负担,会对iPhone的电池造成很高的能量消耗,因此电池会很快耗尽。对于Android设备也是如此。
ARKit具有一些有用的方法来实现稳定的跟踪和准确的测量。在其工具库中,您可以找到易于使用的功能,用于保存和检索ARWorldMaps。世界地图是“持久性”和“多用户AR体验”的不可或缺的“门户”,它允许您返回到同样的环境中,该环境中填充了在您的应用程序变得非活动之前选择的相同的3D内容。同时支持前置和后置摄像头捕捉以及协作会话的支持也非常出色。
玩家们有个好消息:多达6人可以同时玩同一个增强现实游戏,这要归功于MultipeerConnectivity框架。对于3D几何图形,你可以使用由Pixar开发和支持的全新USDZ文件格式。USDZ是一个很好的选择,适用于复杂的3D模型,具有多个PBR着色器、物理效果、动画和空间音效。此外,你还可以使用以下3D格式来进行ARKit开发。

ARKit还可以帮助您执行People and Objects Occlusion技术(基于alphadepth通道的分割),LiDAR场景重建身体运动捕捉跟踪垂直和水平平面检测图像检测3D对象检测3D对象扫描4K HDR视频捕捉和由ARKit提供支持的RoomPlan扫描。通过人和物体遮挡工具,您的AR内容可以逼真地穿过和在真实世界实体的前后,使AR体验更加沉浸式。还为您提供利用机器学习算法的逼真反射面部跟踪体验,可同时追踪最多3张人脸。

使用ARKit和iBeacons,您可以帮助一个支持iBeacon的应用程序知道它所在的房间,并显示适合该房间的正确的3D内容。在使用ARKit时,您应该充分利用ARAnchor类及其所有子类。
要创建ARKit 7.0应用程序,您需要macOS Sonoma、Xcode 15和运行iOS 17或visionOS的设备。ARKit是与Metal框架进行GPU加速的理想选择。不要忘记ARKit与Unity和Unreal紧密集成。目前,用于AR体验的最强大和能效最高的芯片组是Apple M2(5纳米)和A16 Bionic(4纳米)。 ARKit价格:免费
ARKit 优点 ARKit 缺点
支持 LiDAR 和深度 API 受操作系统和芯片限制
Xcode 中的 visionOS 模拟器 ARAnchors 不会自动更新
支持 WorldMaps、AirTags 和 iBeacon Xcode 中没有 iOS 模拟器
支持 Vision Pro 头戴设备 不支持外部摄像头
地理空间锚定 快速耗尽手机或头戴设备的电池




enter image description here enter image description here

Apple visionOS + RealityKit

RealityKitvisionOS是通往空间计算世界的大门——这是移动设备之后的下一个级别。 RealityKit在2019年的WWDC上推出。它是一个用于开发visionOS、iOS和macOS应用程序的高级框架。它支持一种现代的Entity-Component-System范式,使您能够更有效地实现非AR和AR体验。RealityKit的AR功能(如跟踪系统和场景理解意识)完全基于ARKit。坦率地说,在这里没有必要列出RealityKit的所有功能,因为您可以在this SO post中阅读相关内容。

测量质量被认为是高的,当HQ硬件和软件部分相互关联时。这就是为什么使用运行visionOS和基于RealityKit的软件的Vision Pro头戴式耳机将为您在大型房间中提供预期水平的测量质量。Vision Pro头戴式耳机配有12个摄像头和5个传感器,可以完美跟踪环境,并使用手势和语音命令与3D模型进行交互。RealityKit与NearbyInteraction API和最近更新的CoreLocation框架的结合,为您提供了一个有价值的工具包,用于准确测量。
在visionOS中,手势有两种不同的方法。人们主要可以使用眼睛和手来与应用程序进行交互。在“间接手势”中,一个人看着一个模型,然后通过用手指点击拇指来选择它,例如(这是十几种可能的手势之一)。在“直接手势”中,用户的手指直接与3D空间中的模型进行交互。顺便说一下,visionOS实时识别和跟踪每只手上的26个骨骼关节。

enter image description here


注意RealityKit的卫星 - Reality Composer Pro应用程序是Xcode的一部分。它直观的用户界面非常适合快速进行AR场景的原型设计。在Reality Composer Pro中构建的场景可以使用ILM的MaterialX添加锚点、行为和模型。Reality Composer Pro还提供了一个免费下载的库,其中包含可下载的3D资源。您可以将您的作品导出为usdz文件或轻量级.reality文件,以获得AR Quick Look体验。
RealityKit价格:免费。
RealityKit 优点 RealityKit 缺点
Xcode 中的 visionOS 模拟器 对 CPU/GPU 的使用较为密集
支持 Vision Pro 头戴设备 仅适用于 iOS 13+ 和 macOS 10.15+
多线程渲染 Xcode 中无 iOS 模拟器
支持 Reality Composer Pro 场景 会快速耗尽手机或头戴设备的电池
自动更新跟踪目标 不支持外部摄像头




descr descr

PTC Vuforia

2015年10月,PTC以6500万美元从高通收购了Vuforia。需要注意的是,高通在2010年推出了Vuforia。所以Vuforia是增强现实家族中的姐姐。大姐姐正在看着你们,伙计们!;)

2016年11月,Unity Technologies和PTC宣布战略合作,简化增强现实开发。自那时以来,他们一起合作将Vuforia AR平台的新功能集成到Unity游戏引擎中。Vuforia可以与Unity、MS Visual Studio、Apple Xcode和Android Studio等开发环境一起使用。它支持各种智能手机、平板电脑和AR智能眼镜,如HoloLens和Magic Leap 2。

Vuforia Engine的Visual-Inertial Simultaneous Localization And Mapping(VISLAM)是一种实现无标记增强现实体验的算法。VISLAM结合了视觉惯性测距(VIO)和同时定位与地图构建(SLAM)的优势。

Vuforia Engine拥有与最新版本的ARKit相同的主要功能,但它还具备自己的工具,例如基于深度学习的模型目标和iOS的外部摄像头支持,以及用于ARCore的新实验性API和对行业最新AR眼镜的支持。与ARKit和ARCore相比,Vuforia的主要优势在于它拥有更广泛的支持设备列表,并支持为基于英特尔的Windows设备(包括Microsoft Surface和HoloLens)开发通用Windows平台应用程序。Vuforia有独立版本和直接嵌入Unity的版本。

enter image description here

Vuforia Fusion

Vuforia Fusion是一套旨在在各种设备上提供最佳增强现实(AR)体验的技术。它的设计目标是解决增强现实启用技术(如相机、传感器、芯片组和软件框架)中的碎片化问题。使用Vuforia Fusion,您的应用程序将自动提供最佳的体验,无需额外工作。

Vuforia Fusion具有以下功能:

  • Advanced Model Targets 360 | 由人工智能驱动的识别技术。
  • 更大范围的目标无需先验信息 | 适用于约4,000平方米的空间。
  • 基于机器学习的模型目标 | 可以通过形状即时识别对象。
  • 条码扫描器 | 用于读取QR码和条形码的API。
  • 运行时3D指南视图 | 在Unity中创建运行时指南视图。
  • Web API模型目标 | 使用Web API生成模型目标。
  • 图像目标 | 将AR内容放置在平面物体上的最简单方法。
  • 多目标 | 适用于具有平面表面和多个侧面的物体。
  • 圆柱目标 | 将AR内容放置在具有圆柱形状的物体上。
  • 地面平面 | 可以将内容放置在地板和桌面表面上。
  • VuMarks | 允许识别并向一系列物体添加内容。
  • 物体目标 | 用于扫描物体。
  • 静态和自适应模式 | 适用于静止和移动的物体。
  • 模拟播放模式 | 允许“走进”或围绕3D模型。
  • AR会话记录器 | 可以在位置上记录AR体验。
  • 当然,还有Vuforia引擎区域目标

Vuforia Engine区域目标使开发人员能够将整个空间(例如工厂车间或零售店)用作增强现实目标。使用支持的设备,如Matterport Pro2 3D相机,开发人员可以对所需位置进行详细的3D扫描。一旦扫描生成3D模型,可以使用Vuforia Area Target Generator将其转换为区域目标。然后可以将该目标导入Unity。

遮挡管理是构建逼真增强现实体验的关键功能之一。当使用遮挡管理时,Vuforia Engine可以检测和跟踪目标,即使它们部分隐藏在日常障碍物(如手)后面。特殊的遮挡处理使应用程序能够显示图形,就像它们出现在实际物体内部一样。

Vuforia API 允许使用“静态”或“自适应”模式。当真实世界的模型保持静止,例如大型工业机器时,实施“静态”API 将使用较少的处理能力。这为这些模型提供了更持久和更高性能的体验。对于不会静止的对象,“自适应”API 允许持续强大的体验。
Vuforia 支持 iOS 设备的 Metal 加速。此外,您还可以在项目中使用 Vuforia 示例。例如:Vuforia 核心示例库包含使用 Vuforia 功能的各种场景,包括一个预配置的对象识别场景,您可以将其用作对象识别应用的参考和起点。
以下是优缺点。
Vuforia优点 Vuforia缺点
支持Android、iOS和UWP 价格不合理
支持多种设备 开发者文档质量差
外部摄像头支持 PTC将商业与政治混为一谈
网络摄像头/模拟器播放模式 不支持地理跟踪
圆柱体目标支持 在Unity中潜力有限




descr

结论:

与ARCore和ARKit相比,使用PTC Vuforia进行开发没有重大限制。Vuforia是一款优秀的老产品,它支持更多苹果和安卓设备(甚至那些不受官方支持的设备),并且支持多种最新型号的智能眼镜和增强现实头盔。

但在我看来,ARKit、RoomPlan和Reality Family工具包(RealityKit、AR Quick Look、Reality Composer Pro、iOS Reality Composer和Reality Converter)具有一些额外的有用的最新功能,而Vuforia和ARCore只有部分功能。 ARKit和RealityKit在房间内的短距离测量精度方面比任何ARCore兼容设备都要好,而且无需进行校准。这得益于Vision Pro硬件或某些iOS设备中的LiDAR dToF扫描仪。 ARCore则使用带有原始深度API的iToF相机或Depth from Motion算法。iToF和LiDAR都可以在场景理解阶段为现实世界表面创建高质量的虚拟网格,并使用OcclusionMaterial进行测量和碰撞。这个网格已经准备好进行测量和碰撞。借助iToF和dToF传感器,框架可以立即检测到非平面表面和没有任何跟踪特征的表面,例如光线不足的房间中的无纹理白墙。

如果您使用iBeacon工具、ARWorldMaps和对GPS的支持,将有助于提高跟踪质量并消除随时间累积的许多跟踪错误。而ARKit与Vision和CoreML框架的紧密集成,对AR工具集的稳定性做出了巨大贡献。与Apple Maps的集成使得ARKit能够在室外以目前最高的精度放置GPS位置锚点。ARCore也使用地理空间锚点,从Google Earth和Street View图像中获取地理数据,这些图像是借助Google Trekker创建的。

Vuforia的测量准确性在很大程度上取决于您正在开发的平台。Vuforia的一些功能是建立在跟踪引擎(ARKit或ARCore)之上的。甚至流行的Vuforia Chalk应用程序也使用了ARKit定位跟踪器。然而,让我们看看在不久的将来,当这些公司各自拥有自己发展起来的空间计算生态系统时,苹果、谷歌、PTC和微软将为我们提供什么硬件和技术。


Vuforia Ground Plane基本上就是ARKit / ARCore。 - ina
1
仍然不准确。Ground Plane 是支持设备上的 ARkit/ARCore。ARKit 仅适用于 iPhone 6s 及更高版本,但 Ground Plane 的适用范围更广。Vuforia 可让您进行更强大的集成。 - ina
@ArGeo,在我的iOS应用中,用户将通过验证他们的面部与相机卷来访问他们的数据。安装应用程序后,新用户将在应用程序中注册。我如何在Swift中使用ARKit和MLKit?目前,我可以使用用户照片为特定人创建.mlmodel并将其添加到我的项目中。但是,我如何为稍后注册的用户执行此操作?应该从macOS机器处理.mlmodel并通过API将其发送到应用程序吗?是否有一种简单的方法来验证用户的脸以识别其名称标签身份?提前致谢。 - Jamshed Alam
1
Vuforia中的区域目标非常适合将Lidar扫描匹配到其所扫描的房间。我能否使用iPad的点云扫描在Reality Kit上以1比1的比例实现与Vuforia相同的功能? - skynard
这些SDK在同时多用户情况下的扩展能力有没有进行比较呢?为了了解它们的有效性,正如原问题所问,我认为了解每个应用在特定移动设备硬件上的限制是很重要的。类似于对所有SDK共同使用的应用进行最大音量或性能测试的方式。 - ashah
显示剩余5条评论

3

非常有用的信息。但是我想根据使用ARCore和ARkit的经验添加几点。关于映射,ARCore可以管理比ARkit更大的地图。与ARkit相比,ARcore跟踪更多的特征点。 另一个观点是,ARKit更好地区分水平和垂直表面的检测,而ARcore则不如。


2
AR KIT和AR CORE是最佳选择。这些库是由操作系统(Android/Apple设备)的开发社区开发的,因此您可以获得最新的更新以及对设备的最新技术进步和支持。
因此,如果您计划在AR领域工作更长时间,您需要坚持使用这两个库(仅是我的意见)。我已经长时间使用过Vuforia。它教会了我AR的基础知识,并创建了许多不同的应用程序。但在某个层面上,它有一些限制,其中最主要的是价格,这导致了某些限制。相比之下,AR Foundation / AR Core / AR Kit是免费且更稳定、稍微灵活一些。
您可以探索AR-FOUNDATION:这是Unity的一个惊人的包,您只需要编写一次代码,它就会使用ARCORE和ARKIT将其导出到Android和IOS。
Vuforia的功能:https://library.vuforia.com/getting-started/vuforia-features AR Foundation的功能:https://unity.com/unity/features/arfoundation[![Screen shot from ARfoundation website]1]1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接