我是一个增强现实领域的初学者,正在开发使用智能手机创建建筑物平面图、房间布局等精确测量应用程序。因此,我在研究可用于此目的的最佳AR SDK。有关将Vuforia与ARCore和ARKit进行比较的文章并不多。
请建议使用最佳的SDK,以及每个SDK的优缺点。
我是一个增强现实领域的初学者,正在开发使用智能手机创建建筑物平面图、房间布局等精确测量应用程序。因此,我在研究可用于此目的的最佳AR SDK。有关将Vuforia与ARCore和ARKit进行比较的文章并不多。
请建议使用最佳的SDK,以及每个SDK的优缺点。
更新日期: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体验。幸运的是,苹果设备没有这样的缺点,因为所有在那里使用的传感器都在相同条件下进行了校准。
让我先把最重要的事情放在第一位。
ARCore于2018年3月发布。ARCore基于三个主要的基本概念: 运动跟踪
,环境理解
和光照估计
。ARCore允许一个支持的移动设备使用一种称为并发里程计和地图绘制的特殊技术,在6自由度(6DoF)中跟踪其相对于世界的位置和方向。并发里程计和地图绘制帮助我们检测水平、垂直和倾斜跟踪表面的大小和位置。运动跟踪通过来自RGB摄像头每秒60帧的光学数据,结合陀螺仪和加速度计每秒1000帧的惯性数据,以及来自ToF传感器每秒60帧的深度数据,能够稳健地工作。当然,ARKit、Vuforia和其他AR库的操作方式几乎相同。
完整深度API
、地理空间API、光照估计
、场景语义API、Vulkan渲染
(除了OpenGL)、地形锚点API、电子图像稳定化
、增强人脸
、增强图像
、即时放置
、365天云锚点、录制和回放
以及多人游戏支持
。ARCore工具包中一个有价值的补充是Android模拟器,它可以让您在虚拟设备上运行和调试AR应用程序。
ARKit还可以帮助您执行People and Objects Occlusion技术(基于alpha和depth通道的分割),LiDAR场景重建
,身体运动捕捉跟踪
,垂直和水平平面检测
,图像检测
,3D对象检测
,3D对象扫描
,4K HDR视频捕捉
和由ARKit提供支持的RoomPlan扫描
。通过人和物体遮挡工具,您的AR内容可以逼真地穿过和在真实世界实体的前后,使AR体验更加沉浸式。还为您提供利用机器学习算法的逼真反射
和面部跟踪体验
,可同时追踪最多3张人脸。
ARKit 优点 | ARKit 缺点 |
---|---|
支持 LiDAR 和深度 API | 受操作系统和芯片限制 |
Xcode 中的 visionOS 模拟器 | ARAnchors 不会自动更新 |
支持 WorldMaps、AirTags 和 iBeacon | Xcode 中没有 iOS 模拟器 |
支持 Vision Pro 头戴设备 | 不支持外部摄像头 |
地理空间锚定 | 快速耗尽手机或头戴设备的电池 |
RealityKit
和visionOS
是通往空间计算世界的大门——这是移动设备之后的下一个级别。 RealityKit
在2019年的WWDC上推出。它是一个用于开发visionOS、iOS和macOS应用程序的高级框架。它支持一种现代的Entity-Component-System范式,使您能够更有效地实现非AR和AR体验。RealityKit的AR功能(如跟踪系统和场景理解意识)完全基于ARKit。坦率地说,在这里没有必要列出RealityKit的所有功能,因为您可以在this SO post中阅读相关内容。
RealityKit 优点 | RealityKit 缺点 |
---|---|
Xcode 中的 visionOS 模拟器 | 对 CPU/GPU 的使用较为密集 |
支持 Vision Pro 头戴设备 | 仅适用于 iOS 13+ 和 macOS 10.15+ |
多线程渲染 | Xcode 中无 iOS 模拟器 |
支持 Reality Composer Pro 场景 | 会快速耗尽手机或头戴设备的电池 |
自动更新跟踪目标 | 不支持外部摄像头 |
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的版本。Vuforia Fusion是一套旨在在各种设备上提供最佳增强现实(AR)体验的技术。它的设计目标是解决增强现实启用技术(如相机、传感器、芯片组和软件框架)中的碎片化问题。使用Vuforia Fusion,您的应用程序将自动提供最佳的体验,无需额外工作。
Vuforia Fusion具有以下功能:
Vuforia Engine区域目标使开发人员能够将整个空间(例如工厂车间或零售店)用作增强现实目标。使用支持的设备,如Matterport Pro2
3D相机,开发人员可以对所需位置进行详细的3D扫描。一旦扫描生成3D模型,可以使用Vuforia Area Target Generator将其转换为区域目标。然后可以将该目标导入Unity。
遮挡管理
是构建逼真增强现实体验的关键功能之一。当使用遮挡管理时,Vuforia Engine可以检测和跟踪目标,即使它们部分隐藏在日常障碍物(如手)后面。特殊的遮挡处理使应用程序能够显示图形,就像它们出现在实际物体内部一样。
Vuforia优点 | Vuforia缺点 |
---|---|
支持Android、iOS和UWP | 价格不合理 |
支持多种设备 | 开发者文档质量差 |
外部摄像头支持 | PTC将商业与政治混为一谈 |
网络摄像头/模拟器播放模式 | 不支持地理跟踪 |
圆柱体目标支持 | 在Unity中潜力有限 |
与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和微软将为我们提供什么硬件和技术。
非常有用的信息。但是我想根据使用ARCore和ARkit的经验添加几点。关于映射,ARCore可以管理比ARkit更大的地图。与ARkit相比,ARcore跟踪更多的特征点。 另一个观点是,ARKit更好地区分水平和垂直表面的检测,而ARcore则不如。