BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Andrii Zhuravlov-Galchenko 关注 1 他的粉丝 ,译者 姚佳灵 关注 0 他的粉丝 发布于 2018年6月5日. 估计阅读时间: 18 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

本文要点

  • 尽管很多人认为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。

价格:免费版、经典版 —— 一次性付款:$499,云 —— 每月$99,专业版用于商业用途

视频演示链接: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。

价格:免费版、专业版:一次性付费$499,专业版订阅:每年$599,企业版。

视频演示链接: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

免费版 经典版 – 一次性支付$499 云 – 每月$99 用于商业用途的专业版

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

免费版 专业版- 一次性支付$499 专业版订户- 每年$599 企业版

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账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT