【51CTO.com快译】近年来,增强现实(augmented reality,AR)生态系统得到了蓬勃发展。如果您是一名CTO或产品开发经理的话,那么现在是时候考虑如何对当前的软件产品添加AR元素了。当然,在开始添加之前,您需要考虑一些技术方面的问题。
虽说市面上对于AR应用的需求,预计会在未来的三到五年内会有所飙升,但是实际上,如何选取合适的SDK,则完全取决于您手头项目的特定需求。在此,我为您总结了12款优秀的增强现实类SDK,希望能够给您的AR应用开发项目提供帮助。
什么是增强现实类SDK?
增强现实类SDK(即:软件开发工具包,请参见)是针对开发和创建AR应用和体验,提供相关支持的核心技术与软件引擎。AR SDK的作用是将数字内容与现实世界的元素相融合。由于SDK的功能是最终支持AR应用的各项功能,因此我们需要根据实际项目的具体要求,来选择正确的平台。
AR SDK与诸如内容渲染、AR跟踪和场景识别等应用组件有关。其中:内容渲染是指将数字信息和3D对象叠加到现实世界的物体上;AR跟踪是让应用程序“长眼睛”;而场景识别元素则充当的是应用程序的“中枢神经系统”。每个AR SDK都有自己独特的属性,它们能够在不同的方面让AR开发人员以***方式的识别、渲染和跟踪应用。
1. ARKit
2017年,Apple发布了iOS 11,ARKit随后推出了AR技术史上***震撼性的产品。ARKit是一款独特的框架,它能够让品牌商和开发人员为兼容iPhone和iPad的设备(必须配备A9或更高版本的处理器),设计和创建出***的体验。与大多数AR SDK类似,ARKit SDK在功能上通过将数字信息和3D对象融入现实世界的物体上,从而增强设备的展示效果。
在合适的Apple设备上,ARKit通过利用VIO(视觉惯性里程计,Visual–Inertial Odometry),来无缝精确地跟踪周围环境。VIO能够让Core Motion数据(请参见)与相机传感器数据相结合,并为应用程序提供检测水平面(如:地板和桌子)和垂直平面(如:墙壁)的功能。
凭借该功能,ARKit能够准确地理解特定场景的动态状况和构成元素,并以上下文相关的方式,提供放置3D对象和叠加数字信息的能力(例如,由于ARKit能够区分地板和桌子,因此它知道酒是放在桌子上,而不是在地板上。如果您正在使用ARKit来开发AR应用的话,那么请参见我们为您准备的关键元素指南--https://mozenix.com/2017/09/20/5-ways-develop-killer-arkit-app/。
另外,开发人员还可以将ARKit与Unity、Unreal Engine和SceneKit等第三方3D引擎相结合,以创建出各种应用程序。
ARKit提供以下功能:
- SLAM(同步定位和映射,simultaneous localization and mapping--https://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping )跟踪和传感器融合
- 环境照明评估
- 比例评估
- 基于基本边界的垂直和水平面估计
- 稳定且快速的运动跟踪
2. ARCore
ARCore是Google专有的AR SDK。与ARKit类似,它能够让开发人员在与Google兼容的智能手机和平板电脑上构建并运行AR应用。ARCore最显著的功能之一便是:它还能够支持iOS设备,并且为开发人员提供了对两类平台用户的独特访问能力。ARCore通过如下三个重要功能,让开发人员能够将现实世界与虚拟世界相融合:
- 照明评估:评估真实世界的照明条件
- 环境理解:检测垂直、水平和倾斜表面的大小和位置
- 运动跟踪:了解手机相对于周围环境的位置
整个ARCore产品主要是围绕着两个关键要素构建的:实时跟踪和设备位置的计算,以及虚拟对象与现实环境的集成。这使得企业和品牌商能够开发出丰富的、沉浸式的、且支持移动的AR体验。因此,它能将3D对象、文本和数字信息直接投射到周围的现实环境中。
ARCore可免费供开发人员使用,能够支持包括Samsung Galaxy和Google Pixel等一系列Android(和iOS)智能手机和平板电脑。如果您对于如何使用ARCore开发AR应用感兴趣的话,请参见。
3. Vuforia
这款AR SDK能够让开发人员快速地构建出高保真的、以移动为中心的,沉浸式的AR体验。Vuforia SDK利用计算机视觉技术,实时地识别并跟踪图像目标与3D对象。此功能可以让AR开发者定位和放置与现实环境相关的虚拟对象,包括:3D模型和其他内容。3D模型和数字信息在被叠加到真实世界的场景之中后,便可实现AR设备与环境的关联。
Vuforia的AR SDK能够支持包括:3D多目标配置、无标记图像目标、以及被称为“VuMark”的基准标记等各种3D和2D目标。Vuforia SDK的其他功能还包括:使用虚拟按钮进行本地化的遮挡检测,在运行中开发和校准目标集,进而对目标图像进行选择。
通过Unity游戏引擎的扩展,Vuforia提供了Java、C++、Objective C++和.NET的API(应用编程接口)。就此方面而言,Vuforia SDK能够支持iOS和Android的原生开发、以及在Unity中轻松地将AR应用和原型开发在两类平台上相互移植。因此,它为那些需要开发出同时支持iOS和Android平台应用的企业,提供了很好的选择,并且***限度地降低了商业和技术上的风险。他们也就可以在尽可能短的时间内,无缝地为各种类型的目标移动设备,开发出不同的AR应用。
4. Wikitude
Wikitude是专为移动AR应用和原型而开发的SDK。该公司于2008年成立于奥地利的萨尔茨堡。在Wikitude SDK的推出之初,该平台旨在:让AR开发人员能够通过Wikitude World Browser应用,来创建以位置为核心的AR体验。2012年,Wikitude重新定位了其核心技术产品,并推出了具有地理定位功能、跟踪和图像识别功能的Wikitude SDK,而且这些功能全都被直接嵌入到了其核心平台。
如今,Wikitude SDK是该公司的核心产品。它向开发人员承诺能够在最短的时间内构建出沉浸式的移动AR体验。另外,Wikitude SDK的功能还包括:3D模型渲染、基于位置的AR、以及视频叠加等。该公司后续也推出了SLAM技术(同步定位和映射),以协助无标记物体的跟踪与识别、以及无标记的瞬时追踪。
Wikitude SDK可以运行在多种平台之上,并支持Windows操作系统、iOS、Android和许多HUD(heads up display,平视显示)。Wikitude声称是***款为跨平台移动AR与智能眼镜设备开发的,完全专注于基于位置方式的SDK。
5. EasyAR
EasyAR SDK为企业和开发人员提供了EasyAR SDK Basic和EasyAR SDK Pro两种定价产品。其中,Basic版为开发人员提供了AR的API、工作流和AR的兼容性;而全新的Pro版则增加了更多的独家功能。对于那些希望自己的AR应用能够支持Android的Java API、iOS的Swift API、以及Windows操作系统的开发人员而言,Basic版是免费的。另外,Basic版支持包括视频播放、透明视频播放、QR(二维)码扫描和全面Unity集成等额外的功能。
EasyAR Pro版的核心功能,主要包括:SLAM(包含Monocular的实时6 DOF摄像机姿态跟踪和完全移动兼容性),3D对象跟踪(根据实时纹理识别,来跟踪常见3D对象的功能),屏幕录制(提供简单有效的方式来记录AR内容),平面图像跟踪(实时跟踪和识别平面图像的能力),与所有主流移动AR相集成的简洁API平台与内容,交互支持沉浸式AR内容,以及针对多种类型目标的同步检测和跟踪等方面的增值功能。另外,EasyAR网站也具有大量实用的信息,方便您在最短时间内构建并运行自己的AR应用。它的问答链接为:https://answers.easyar.com/,而社区链接则是:https://forum.easyar.com/。
6. Kudan
在日本东京和英国布里斯托尔设有办事处的Kudan AR SDK,是一款专为AR开发人员设计的平台。作为“一站式”的平台,它支持各种基于标记和无标记的位置和跟踪需求。Kudan SDK的核心引擎完全采用C++进行开发,拥有组装式开发和定制优化的架构,能够提供最快且***大的操作性能,而不会对内存的占用产生任何负面影响。因此,Kudan AR SDK可以被使用在从支持专业的HUD到集成芯片组等一系列开发场景中。因此,它可以调整数据的大小、速度和灵敏度,以满足特定AR项目的特殊需求。
Kudan AR SDK拥有原生平台的API,能够对Objective C(iOS)、Java(Android)和Unity游戏引擎提供跨平台的支持。同时,Kudan SDK也支持基于标记和无标记跟踪,这对于需要在无标记初始化的情况下,创建功能的AR开发人员来说是非常有用的。
该公司的目标是通过创建人工感知(Artificial Perception,AP)类型的算法,来加速虚拟化(包括增强、虚拟和混合现实的各个方面)和机器人相关技术(汽车、无人机和机器人)的演变。也就是说,通过Kudan开发出的相当于人眼的机器算法,能够将AI(人工智能)与AP相结合,让机器能够像人类那样感知周围世界,并与周围世界进行互动。
7. Onirix
Onirix号称能够轻松地实现移动AR的开发,并能为开发人员提供快速且直观的体验。其Onirix Studio能够让企业和品牌商在每个新的AR项目中开发、托管和发布各种可视化元素。Onirix平台的主要功能是:根据位置、路线、寻路、3D模型、以及其他信息,添加特定的兴趣点。基于云平台,Onirix为每个项目分配***的资源和性能,进而为移动用户提供***的体验感受。另外,Onirix AR SDK能与其原生的iOS和Android应用相紧密集成。
Onirix SDK的开发旨在与支持AR的智能手机和平板电脑进行交互。SDK为基于Unity、iOS和Android平台的应用快速开发,提供各种工具和调用库。通过弥补REST API的不足,它让现有的数据集能够轻松地体验并融入新的AR应用。在持续更新各种支持组件和兼容设备的相关文档方面,Onirix团队做得也是非常出色的。其技术支持和配套文档涉及到iOS、Android、ARKit和ARCore、Magic Leap和HoloLens(全息透镜)等方面。如果您对Microsoft HoloLens的应用开发或原型感兴趣的话,请参见我们准备的指南。
8. MaxST
MaxST AR SDK提供了全面的跨平台AR引擎,它方便了品牌商和开发人员构建出AR体验和应用程序。具有一定价格竞争力的MaxST平台,能够保障AR应用开发的速度与易用性。MaxST AR SDK能够提供的具体功能包括:即时跟踪(提供识别水平与垂直平面,以及叠加相关内容的能力)、可视化SLAM(使用智能手机相机创建周围区域的“虚拟地图”)、对象跟踪(将可视化SLAM创建的地图文件予以导入的能力)、图像跟踪(叠加3D内容、视频和图像)、标记跟踪(为内容的叠加提供8192个标记点)、以及QR与条形码的扫描功能。
MaxST AR SDK还提供了在诸如Mac OS、iOS、Android、Windows和Unity 3D等主流平台上进行跨平台开发的功能。该平台还兼容各种HUD和智能眼镜产品,如:Epson MOVERIO BT- 300,350和ODG R-7。
9. Pikkart AR SDK
Pikkart SDK能够让开发人员在“计算成本低廉”的设备上,快速地创建具有轻量级、易用性、且健壮的AR应用,并能够实现检测和跟踪。Pikkart AR SDK拥有四种核心定价机制。它的免费版本为开发人员提供了***数量的本地标记、1个演示应用程序(在iOS或Android上都可以运行)、以及20个基于云的标记。其299欧元版本能够让开发人员在享用免费版所有功能的基础上,添加了电子邮件支持,并提供使用平台的***效果和帮助指导。云识别和云API是两个更高层次的版本,它们每月都是收费99欧元,分别提供包括:***数据库、1500个云标记、电子邮件支持和云识别等功能。
Pikkart SDK号称能够使开发人员在几分钟内,在设备上创建出深度沉浸式的AR体验。该平台包含适用于iOS和Android的原生插件,也集成了现有的Unity和Xamarin项目。Pikkart SDK还允许开发人员添加具有地理定位的AR标记,以便开发出集成式的导航服务。
10. DeepAR
DeepAR AR SDK最初是为了让开发人员通过iOS、Android、HTML5和Unity,来构建出高质量、移动优化的、具有Facebook和Snapchat风格的3D面部头像、面具和特效。轻量级的DeepAR SDK,可以被快速地集成到现有应用项目之中,以支持各种镜头、效果、模糊和滤镜,进而创建出深度沉浸式的、面向消费者的AR应用和原型。
DeepAR平台通过将不同的数据模型与复杂的3D机器学习相结合,实现了面部特征检测等功能。通过极其精确和快速的面部检测,DeepAR SDK能够结合下巴、眼睛和鼻子的识别,以近60帧/秒的速度辨析出超过68个面部特征点。经过优化后的平台,也能够兼容各种的智能手机和平板电脑,提供多张面孔的实时检测服务。
另外,DeepAR利用专有的深度学习和神经网络模型,还能够实时地检测诸如:愤怒、厌恶、恐惧、欢乐、悲伤、惊讶和中立等人类主要情绪。如果您对此感兴趣的话,请参见。
11. Lumin(Magic Leap)
Magic Leap是2010年创立的一家美国初创公司。迄今为止,该公司已从谷歌和阿里巴巴等投资人那里筹集了超过14亿美元的资金。2016年12月,Magic Leap被福布斯估值为45亿美元。2018年Magic Leap One被正式推出,并向美国AR开发者开放。Magic Leap One HUD通过“将数字光场(light field)投射到用户的眼睛里”,以实现将3D计算机所生成的图像,叠加到现实世界的物体上。
Magic Leap One为Unity开发人员提供了各种组件,它包含一系列可供参考与使用的样板示例。其AR SDK被称为“Lumin SDK”。Lumin SDK包含有一个模拟器,可以仿真SDK的各种功能,而无需事先购买HUD。Unity Package能够与Magic Leap Zero Iteration和Magic Leap Remote相兼容,进而实现快速的构建和运行。
Lumin SDK的技术预览版是针对Unity 2018.1开发的。针对Magic Leap的Lumin OS,它在构建窗口下方提供了一个新的平台。此外,它还提供可用于创建原生类插件的完整C/C++工具链、调试器和构建打包系统。
12. MixedReality Toolkit(HoloLens)
由许多组件和脚本所组成的MixedReality Toolkit,旨在加速针对那些Microsoft HoloLens和其他基于Windows Mixed Reality(混合现实)耳机类AR应用的开发。***版本的MixedReality Toolkit具有扩展功能,能够支持除了Microsoft自家Mixed Reality系列产品之外的各种虚拟和AR平台。
Mixed Reality Toolkit vNext包含有许多API,可被用来加速开发各种兼容设备的Mixed Reality项目,其中包括:
- Microsoft HoloLens
- 微软沉浸式耳机 (IHMD)
- Steam VR( HTC Vive / Oculus Rift )
- OpenXR平台
在开始使用MixedReality Toolkit开发应用之前,您需要准备好:Windows 10 FCU (fall creators update)、Unity 3D和Visual Studio 2017 (用于代码编辑,开发和部署通用Windows平台的应用程序包)。
结论
随着技术的日益复杂,各种SDK的功能会得到了迅速扩展,而与AR相关的商业机会也呈指数级增长。如果您还没有决定好为下一个AR项目采用哪一款SDK的话,请花点时间进行基于ROI的计算,进而分析一下项目的各种商业元素吧。
原文标题:12 Best Augmented Reality SDKs,作者:Michael Romilly
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】