构建增强现实移动应用程序的六款顶级工具

阅读数:1045 2018 年 6 月 4 日

本文要点

  • 尽管很多人认为 AR 只是一种用于娱乐的技术,事实上,它在多个行业(如医疗保健、电子商务、建筑等等)有着广泛的应用。
  • AR 应用程序分为两大类:基于标记的应用程序和基于位置的应用程序。基于标记的应用程序利用预定义标记触发在图像顶部显示的 AR 叠加层。基于位置的应用程序利用 GPS、加速度计或罗盘信息在实际对象上方显示 AR 对象。
  • 选择 AR SDK,需要考虑的最重要的标准是:成本、支持的平台、对图像识别和跟踪的支持、对 Unity 的支持、对 OpenSceneGraph 的支持、GPS 等等。
  • 本文提供了一个有用的表格,总结了 6 种广泛使用的 AR 工具包的所有主要特性和功能

增强现实已经成为数字世界的新趋势,在Pokemon Go把它带入普通移动用户的生活引发热潮后,您就很难再碰到一个对此不熟悉的人了。尽管很多人认为 AR 只是一种用于娱乐的技术,但是,事实上,它在多个行业(如医疗保健电子商务建筑等等)有着广泛的应用。本文准备打破这种刻板的印象。

AR 的潜力是无边的,各个品牌都已经在其业务中利用该技术以提供全新的用户体验。公司实施 AR 来创建产品演示互动广告,并向客户提供实时信息。事实证明,当人们接触产品或与产品互动时,由于情感纽带的建立,他们购买产品的可能性更大。

根据Statista的预测,增强现实和虚拟现实的市场预计于 2021 年达到 2150 亿美元的规模。作为一个有着巨大潜力的快速增长的市场,AR 既吸引了像谷歌、苹果、脸书等巨头,也吸引了小型公司。



本文旨在通过对最流行的和有用的可用 AR 开发工具包(SDK)的总结,帮助开发人员创建他们的第一个 AR 应用程序。此外,我们列举了您在构建增强现实应用程序时必须注意的标准。

现在有哪些类型的增强现实应用程序?

在开始开发增强现实应用程序前,您必须在两个大类中做出选择,即:基于位置(location)的应用程序和基于标记(marker)的应用程序。接下来,我们简要讨论两者之间的差异。

基于标记的应用程序

基于标记的应用程序建立于图像识别的基础之上。它们使用黑白标记作为触发器来显示 AR 内容。要看到增强的组件,您必须把摄像机指向您周围的任何一个标记位置。一旦设备识别出标记,应用程序就在该标记上叠加数字信息,然后,您就可以看到增强对象了。

当您构建一个基于标记的应用程序,需要事先提供图像或它们的描述符,以简化分析摄像机数据时搜索它们的过程。换句话说,这些对象已经在您的应用程序中硬编码了,因此,它们更容易被检测到。这也就难怪,大多数 AR 应用程序都是基于标记的。它们在广告中特别流行。

基于位置的应用程序

基于位置的应用程序不使用标签进行工作。通过 GPS、加速度计或数字罗盘,它们可以检测到用户的位置,然后在真实物理位置的上方叠加增强现实对象。最著名的基于位置的应用程序是 Pokemon Go。

这些应用程序可以根据用户的位置向他们发送通知,以给他们提供跟给定位置有关的新增 AR 内容。比如,应用程序可以推荐附近最好的酒吧,并显示如何到达那里。作为一个额外的例子,应用程序可以利用 GPS,帮助您在巨大的停车场找到您的车

选择增强现实 SDK 的主要标准有哪些?

选择开发工具时,很容易因可用工具的数量而感到沮丧。为了选择最适合项目的 SDK,您应该确保所选的工具支持您的应用程序所需的全部功能。下面,我们详细说明要考虑的要点。

价格

定价是区分 AR SDK 的第一个显著特征。对那些第一次尝试 AR 开发的人来讲,最好的选项是免费的开源 AR SDK,它们对贡献是开放的,可以根据开发者的提议扩展新的特性。

在大多数情况下,付费 SDK 提供了若干定价方案,具体取决于用户的需求。一般而言,免费定价层级可能具备的特性很有限,并且被认为是完整产品的“演示版”。构建一个大型、有动态内容的复杂应用程序很可能需要商业许可证。因此,请做好付费的准备。

平台

如果您计划为 iOS 或安卓系统开发应用程序,那么在选择增强现实工具包时,不会有任何问题,因为几乎所有的工具包都支持它们。与此同时,与 Windows 或 macOS 兼容的工具的选择范围相当小。但是,您可以利用支持通用 Windows 平台(Universal Windows Platform,简称 UWP)的增强现实开发工具为使用 Windows 系统的计算机或智能手机构建您的应用程序。

图像识别

对于任何 AR 应用程序而言,该功能都是必备的,因为它能识别物体、位置和图像。为此,智能手机和其他设备将机器视觉和摄像机以及人工智能软件一起使用,以跟踪图像,这些图像随后可以和动画、声音、HTML 内容进行叠加。

3D 识别和跟踪

3D 图像识别和跟踪是任何 AR SDK 最有价值的功能之一。由于该跟踪功能,应用程序能够“理解”和增强大型建筑(如机场、车站、购物中心等等)中用户周围的大空间。支持它的应用程序识别像盒子、杯子、圆筒、玩具等 3 维物体。

目前,该技术常用于手机游戏和电子商务。

Unity 支持

Unity 被认为是全球最流行和最强大的游戏引擎。虽然它通常用于开发电脑游戏,但是,它也可以用来制作拥有强大效果的 AR 应用程序。无论您是准备创造最尖端的体验,还是使用新技术来扩展更传统的想法,像 Unity 这样多用途的工具可以让这两者都实现。

OpenSceneGraph 支持

OpenSceneGraph是开源 3D 图形工具包(应用程序编程接口)。应用程序开发人员能够将其用于电脑游戏、增强现实及虚拟现实、科学可视化和建模领域。

云支持与本地存储的比较

开发 AR 手机应用程序时,您必须决定用户数据存储在本地还是在云中。该决定主要是根据您准备创建的标记数量来定的。如果您计划在您的应用程序中添加大量标记,就要考虑把所有这些数据存在云中,否则,应用程序将占用设备的大量存储空间。此外,了解您的应用程序要用到的标记数量也很重要,因为有些增强现实 SDK 支持只一百个标记,而另一些支持数千个标记。

另一方面,在本地存储标记(即设备上)允许用户离线运行您的增强现实应用程序,这也许很方便,因为这样的话能够不总要求有 Wi-Fi 或移动数据环境。

GPS 支持(地理位置)

如果您打算创建基于位置的 AR 应用程序,那么地理位置是 AR 工具必须支持的基本功能。GPS 可用于像 Pokemon Go 这样的 AR 游戏,也可以在应用程序中用于在某些附近位置叠加数据(比如寻找最近的餐馆)。

SLAM 支持

SLAM代表 Simultaneous Localization and Mapping,意为同时进行定位和映射。它是一种算法,用于映射用户所在位置的环境,以及跟踪其所有的移动。包含该功能的 AR 应用程序可以记住某些环境中物理对象的位置,并根据它们的位置和用户的移动位置定位虚拟对象。SLAM 具有巨大的潜力,能够用于很多类型的应用程序,而不仅仅是 AR 应用程序。该技术的主要优点是,它能在室内使用,而 GPS 只能在室外使用。

用于移动应用程序增强现实的六大SDK

一旦得知您可能需要 SDK 来创建增强现实应用程序的所有功能时,您可以看看下面的列表,表中例举了市场上流行的六款工具。我们认为这些工具包根据它们提供的功能集来看是最相关和适当的,并且物有所值。其中有几个是免费的。

Vuforia



Vuforia是增强现实应用程序开发的领先门户,它具有范围广泛的功能集。Vuforia 增强现实 SDK:

  • 识别包括盒子、圆筒、玩具以及图像在内的多个对象。
  • 支持文本识别,包括大约 10 万个词组或自定义词汇表。
  • 允许创建定制的 VuMarks,看起来比一个典型的二维码更好。
  • 允许使用其智能地形功能创建任意环境的 3D 几何地图。
  • 把静态图像转换成全动态视频,可以在目标表面上直接播放。
  • 提供 Unity 插件。
  • 支持云和本地存储。

支持的平台包括:iOS、安卓、通用 Windows 平台、Unity。

价格:免费版、经典版 —— 一次性付款:49999,专业版用于商业用途

视频演示链接:https://youtu.be/NhJydpMkpug

ARToolKit



ARToolKit是一种创建增强现实应用程序的开源工具。尽管它是免费的库,但是,它提供了相当丰富的功能集用于跟踪,其中包括:

  • 支持 Unity3D 和 OpenSceneGraph。
  • 支持单镜头和双镜头摄像机。
  • GPS 和罗盘支持创建基于位置的 AR 应用程序。
  • 可以创建实时 AR 应用程序。
  • 集成智能眼镜。
  • 支持多语种。
  • 自动摄像机校准。

支持的平台:安卓、iOS、Linux、Windows、Mac OS 和智能眼镜。

价格:免费

谷歌 ARCore



拥有 2 百万安卓活跃用户的谷歌不可能错过给开发人员在其操作系统上创建 AR 应用程序的机会。谷歌 ARCore由此问世。

该工具包可用于 Java/OpenGL、Unity 和 Unreal。它提供以下功能:

  • 运动跟踪。ARCore 可以通过摄像机确定设备的位置和方向,并在房间内找出特征点。这有助于准确地放置虚拟对象。
  • 理解环境。由于其能够检测水平表面,您可以把虚拟对象放置在桌上或地板上。该功能也被用于运动跟踪。
  • 光线评估。该技术允许您的应用程序与环境的照明相匹配,以及照亮虚拟对象,让它们在所处的空间中显得很自然。借助智能光线跟踪,开发人员现在可以创建非常真实的对象。

支持的设备:目前有 Google Pixel、Pixel XL、Pixel 2、Pixel 2 XL、三星 Galaxy s7 和 S8+、三星 A5 到 A8 系列、三星 Note8、Asus Zenfone AR、华为 P20、OnePlus。ARCore 设计用于安卓 7.0 以上的版本。

价格:免费

视频演示链接:https://youtu.be/hz5sojXanNw

苹果 ARKit



伴随 iOS 11,苹果公司推出了自己的ARKit,并在 2017 年 6 月举行的苹果全球开发者大会上发布。以下是苹果 iOS 增强现实 SDK 的功能:

  • 视觉惯性测量(Visual Inertial Odometry,简称 VIO)允许准确地跟踪环境,无需任何额外的校准。
  • 强大的面部跟踪功能可以轻松地应用面部特效或创建 3D 角色的面部表情。
  • 跟踪环境的光照水平,以在虚拟对象上应用正确数量的光照量。
  • 检测如桌面和地板的水平面、垂直和不规则形状的表面。
  • 检测 2D 对象,并允许开发人员和它们进行交互。
  • 集成了像 Unity 和 Unreal Engine 这样的第三方工具。

适用以下设备:iPhone 6s 和 6s+、iPhone 7 和 7+、iPhone SE、iPad Pro(9.7、10.5 或 12.9)的第一代或第二代产品、iPad(2017)、iPhone 8 和 8+、iPhone X。

价格:免费

MAXST



MAXST 有两个可用 SDK:用于图像跟踪的 2D SDK 和用于环境识别的 3D SDK。以下是 3D SDK 的功能列表:

  • MAXST 视觉同步定位(Visual Simultaneous Localization )和映射功能用于跟踪和映射环境。当您在跟踪周围环境时,地图会随着摄像机的移动,自动延伸到第一视图之外。也可以保存地图以备后用。
  • 保存用视觉同步定位和映射创建的文件以便在您喜欢的任何地方呈现 3D 对象,从而创建更逼真的 AR 体验。
  • 二维码和条码扫描。
  • 扩展的图像跟踪和多目标跟踪。您可以跟踪目标,只要摄像机可以看得到,而且也可以同时跟踪最多 3 个图像。
  • 跟踪对象,并且根据与表面的关系放置数字对象。
  • Unity 插件集成。

支持的平台:安卓、iOS、Mac OS 和 Windows。

价格:免费版、专业版:一次性付费 499599,企业版。

视频演示链接:https://youtu.be/hz5sojXanNw

WiKitude

Wikitude最近推出了它的 SDK7,包括对同步定位和映射的支持。该工具目前提供以下功能:

  • 3D 识别和跟踪。
  • 图像识别和跟踪。
  • 云识别(允许使用托管在云中的数千张目标图像)。
  • 基于位置的服务。
  • 智能眼镜的集成。
  • 与包括 Unity 在内的外部插件集成。

支持的平台:安卓、iOS、智能眼镜(目前有谷歌智能眼镜Epson Moverio BT – 200Vuzix M100)。

价格:专业版—— 每个应用程序每年€2490,专业 3D 版本——每个应用程序每年€2990、云——每个应用程序每年€4490,企业版。

AR SDK 对比表

我们决定把刚才提到的 AR 工具的主要特征和功能做成一张表,以便您可以快速对它们进行比较。

AR SDK

最适合:

支持的平台

价格

Vuforia

基于标记的应用程序

iOS 安卓 通用 Windows 平台 Unity

免费版 经典版 – 一次性支付 49999 用于商业用途的专业版

ARToolKit

基于位置的应用程序

安卓 iOS Linux Windows Mac OS 智能眼镜

免费

谷歌 ARCore

基于标记的应用程序

谷歌 Pixel Pixel XL Pixel 2 Pixel 2 XL 三星 Galaxy S8 三星 S9

免费

苹果 ARKit

基于标记的应用程序

iPhone 6s 及以上 iPad Pro (9.7, 10.5 or 12.9)

免费

MAXST

基于标记的应用程序

安卓 iOS Mac OS Windows

免费版 专业版 - 一次性支付 499599 企业版

Wikitude

基于标记的应用程序

安卓 iOS 智能眼镜 (目前包括:  谷歌 Glass,  Epson Moverio BT-200 和 Vuzix M100)

专业版 –每个应用程序每年 €2490 专业 3D 版 – 每年每个应用程序€2990 云 – 每年每个应用程序€4490 企业版

结语

无需赘言,增强现实技术是趋势。每个新 AR 应用程序的发布都会很令人兴奋。因此,精明的开发人员正试图掌握该技术,并推出他们自己的 AR 应用程序。

现在,开发人员可以选择广泛的 AR 工具包来创建基于标记和基于位置的应用程序。要做的第一步是选择最符合他们要求的增强现实 SDK。通过本文,您可以轻松比较图像和 3D 识别、存储可能性、Unity 和 SLAM 支持等功能,以便于开发团队轻松地为他们未来的应用程序选择最佳工具包。

我们希望本文能促进您使用上面所列的工具并创建自己的 AR 应用程序!

作者简介

Andrii Zhuravlov-Galchenko 是 GBKSOFT 移动开发部门的负责人。他拥有 10 多年的开发经验,喜欢混合不同的技术,如 web、计算机视觉和移动开发。Andrii 总是在关注新技术,并热衷创新,并尝试把这两样都带进他的每一个项目中。作为一个团队负责人,他总是乐于帮助解决任何类型的问题。

阅读英文原文:Six Top Tools to Build Augmented Reality Mobile Apps

感谢张卫滨对本文的审校。

收藏

评论

微博

发表评论

注册/登录 InfoQ 发表评论