雷锋网按:本文作者为阿里巴巴天猫互动技术专家蒋佳忆,此前他在《如何评价苹果在 2017 WWDC 上发布的 ARKit?》一文中分析了 ARKit 具备的技术优势和不足。在这篇文章中,作者详细讨论了一些目前行业较关心的话题,如 Google 的 Tango 会如何,ARCore 和 ARKit 的对比,以及 AR 还有哪些技术需要攻克等等。雷锋网获权首发。
距离ARcore发布已经过了一周,作为行业参与者肯定第一时间关注,基本各大媒体关于技术相关的问题已经说的比较清楚了,这里也不再深入谈技术,还是从行业发展的角度来说说目前比较热门的问题,
2014 年 Google 为 Project Tango 打造了一款手机原型机,能对周围环境进行 3D 建模
其实 Tango 面世已经有很长一段时间,目前市面上可以看到的已经有联想和华硕两款手机了,而如果 ARCore 不出现的话,理论上年底应该会有第三或者第四个品牌推出 Tango 手机,但是现在应该都不会有了。
究其原因,抛开 Google 内部斗争这些因素不谈,如果关注 Tango 的同行应该都知道,Tango 的应用生态在最近一年多的时间里几乎没有太大的变化,两款手机的预装 APP 也几乎都是手机厂商或者 Google 自己开发的,当然大佬们并不是没有努力过,各种开发者大赛或者行业应用主题大赛也都有举办,很可惜大部分停留的 DEMO 的状态。
这其实并不是 Tango 本身不够好,而是新款硬件推广的成本实在太高。硬件等内容,内容看硬件的死循环一直无法打破,哪怕是非常专注于行业服务的 B 端应用,愿意为此买单的大客户依然不多。
另外,从 Google 整体宣传的策略来看,至少在之前,移动端的 VR 还是核心业务, 尽管每一次大型的开发者大会都会有 Tango 的身影和新的消息,但是 Daydream 的关注度远远超过 Tango。何况 Google 自己的 Pixel 没有搭载 Tango,或多或说也说明 Google 对 Tango 的态度。而这时,ARKit 出现,Google 也确实失去了很好的先机,如果还是力挺陷入死循环的 Tango,那么很可能会越来越陷入被动,所以这个时候 Google 只能革命自己,推出面对全安卓平台的 ARCore。
但是从 AR 的能力来说,,硬件方面,Tango 确实具备比较完整的 AR 能力,稍微转化一下形态,那么同样的硬件模组去支持一个 AR 眼镜对 Google 来说也不是非常难的事情;软件方面,同样在 Tracking 中只依赖于单目的算法,目前的 ARCore 也确实继承了一部分 Tango 的架构或者思路,甚至有部分人认为ARCore 只是注释掉了 Tango 底层算法中深度相机那部分(肯定不会这么简单),所以我个人不认为 Tango 会被放弃,只是不会做为主力的产品而转为底层的能力服务 Google 的其他业务。
紧随苹果之后,Google 推出 ARCore
这个是大部分人最关心的问题,但是我个人觉得其实比较起来意义不大,只要手机目前的系统还是 iOS 和安卓对立的局面,那么安卓就一定需要一个 AR 底层的算法支持,这件事情只有两种公司可以解决,一个是控制着系统的 Google,一个是手机厂商自己。因为底层的空间定位算法非常依赖于硬件的校准和标定,任何软件公司想越过 Google 去支持整个安卓平台,尤其还需能够得到大部分手机厂商的配合去标定 IMU 和摄像头的参数,这需要和 OEM 厂商有长期合作的关系,而这几乎是不可能的。在 ARCore 发布之前,确实有一些手机厂商在自研算法,也有一些手机厂商已经与 Google 对接中,但是从进度和可推广的能力来说,Google 确实是首选,所以安卓的 AR 能力依靠 Google 这是目前最理想的方式。
很多人强调 ARCore 的功能几乎完全复制了 ARKit,但是我个人觉得这并不能说明 Google 在技术或创新能力上弱于苹果,从两方面的原因看 Google 必须这样做。
第一,从硬件的控制力来说,百花齐放的安卓硬件是 Google 控制不了的,而 AR 的底层能力有很大一部分在于硬件,所以在无法确定的硬件设备上,Google 几乎没有可能给出多于 ARKit 的功能,这也是首发的安卓手机除了 Google 自己的 Pixel 就只有 S8 的原因;
第二,ARKit 在发布短短几个月的时间里确实爆发了强大吸引力,各种类型的应用层出不穷,如果未来安卓系统想要无缝的对接 iOS 上的AR应用,那么类似甚至相同的功能和接口可以极大的减少 AR应用的迁移成本,保证在AR应用发展初期安卓平台不会被落下。基于以上两点原因,ARCore 和 ARKit 的相似几乎是必然会发生的事情。
ARKit 掀起了开发者的内容创作热情
那么回到区别这一点,因为硬件环境和算法架构的不同,两者肯定在体验和细微的功能上会有所区别,比如图像的分辨率、刷新率,或者光源感知算法的效果以及尺度收敛的速度和精度等,这些细微功能的不同可能源自硬件的区别,也可能源自算法中特征提取方式的区别或 IMU 融合方式的区别,但是我相信作为两家引领行业发展的公司,既然会拿出来面对大众,一定已经保证了基本的体验不会太差。
具体到两者算法架构来说,基于 VIO 架构的 ARKit 更加侧重于定位本身,比较轻量,在小范围场景内使用不会有明显的飘移感,目前测试来看尽管可以返回每一帧的 3D 点,但是并不是很稳定,也不算准确,只是用于平面拟合使用,其实目前已经可以在现有 API 的基础上开发出多平面识别的功能,但是这会非常依赖于画面中的特征点。整体看 ARKit 使用更加流畅,帧率也较高,对于用户来说体验是非常好的。
基于原 Tango 架构的 ARCore 在定位之外,会比较注重三维重建的部分,毕竟Tango本身已经依靠深度摄像头实现了实时的三维重建,ARCore 输出的 3D 点至少也是半稠密的。所以从功能来说,ARCore 在未来的想象力会更大一些,不过这也不是没有代价的,ARCore 的计算量也会更大一些,所以流畅性会有所欠缺,帧率也低于 ARKit,不过定位的精度可能会优于 ARKit(还有待进一步的测试),并且具备重定位的功能。
当然一定要分高下的话,单从体验来说,暂时我会更看好苹果一些,因为苹果可以完全控制自己后续的手机的硬件配置,这就导致为了覆盖率的 Google 在体验上很难不有所牺牲,更难保证每一款安卓手机的效果都那么一致,比如联想和华硕两款 Tango 手机的体验就不一致,这方面比较类似 iOS 和安卓的区别。
可以确定的一点是,随着 ARCore 的发布,AR 功能已经有能力覆盖整个移动端,所以 AR 已经开始正式面对 C 端用户,甚至比 VR 更容易被大众所接触,后续可以预见到的是,两类公司一定会开始积极拥抱 AR:
第一,目前国内的手机厂商几乎全都是安卓系统,所以肯定会开始与 Google 接触或开发自身的 AR 底层能力,这个过程可能会持续半年到一年,部分有实力的厂商会支持到今年甚至去年发布的旗舰手机以保证足够的覆盖率。至少明年各大厂的旗舰手机一定会包含 AR 能力,已知的至少已经有华为、华硕、LG等,Google 自称的1亿台设备肯定是有底气的。
第二,国内各行业的应用生态大佬会开始着手开发和 AR 功能相关的产品,包含泛娱乐、电商、社交等多个领域。其实目前除了微信比较有克制力以外,各大应用或多或少都已经包含了和 AR 相关的产品,AR 扫也好,人脸的互动也好,LBS 定位也好,大众已经开始逐渐接受虚实结合的交互方式。
初步猜测明年这个时候会有 30% 的用户手机具备 AR 能力,两年后会达到 50% 甚至更高,同时这些都是使用高端手机的有消费能力的用户,是各类公司重点关注的,而到时候 AR 应用生态一定会比现在有所好转。具备想象力的玩法和应用一旦受到热捧,那么肯定会被作为某个功能产品融入目前的各类超级 APP中。
类似 BAT 这种级别的公司,目前虽然都对 AR 有所表示,但是 AR 并不是其核心业务或产品。我个人虽然看好 AR,但也承认手机端的 AR 和 PC 端上的互联网,或智能移动端的 APP 相比还不在一个量级上。所以只要明年能够看准 AR 应用的大趋势,在功能和产品上不被竞争对手超越太多,那么超级 APP 对应的大公司之间在 AR 方面就不会有大的差距,当然业务本身的差距不在比较范围内。
而对一些中小型的公司来说,AR 可能会更值得关注,因为 AR 有机会影响移动端的流量分配,一时成为热门的话,对刚起步的 APP 来说是非常重要的,而明年的 AR 产品会非常有可能制造热点话题或玩法。对于那些主打 AR 的应用来说,不论是游戏,或者是社交,明年都会有更好的环境和发展。
这个问题在知乎上有很多人私信问我,类似的问题还有目前想从事 AR 相关的工作应该如何入手?这里仔细回答一下。
首先是算法方面,可以比较明确的说,任何对硬件没有控制力的公司,想从底层去统一 AR 都是几乎不可能的,这不仅仅是一个技术的问题。尽管 ARkit 和 ARCore 目前在功能上还有不足,比如很多人提到的识别、2D/3D跟踪、语义分析等等,这些后续都有可延拓的空间,但是两家 SDK 为了开发者尽可能简单的入手,开放的 AP I也相对非常直接,而以上这几个功能除了识别比较独立之外,其余都需要和底层算法有相对深入的耦合,这就导致想在这两家 SDK 上增加功能变的非常困难。
当然不排除 Google 未来会开源 ARCore,这样至少安卓端的 AR 算法还有很多可以做的事情。而相对独立的识别算法一直是人工智能领域最重点研究的问题,不论是图像、物体还是人脸,都是热门的大方向,从事相关研究的人也比较多,当下竞争激烈。
如果抛开手机端来说,高通和部分芯片厂商同样看到了 AR 的发展潜力,基于 GPU、DSP 或 FPGA 等特定计算单元的空间定位算法芯片或硬件模组已经有一些比较不错的成果,更不用说最近大热的人工智能芯片,所以未来的 AR 眼镜公司也不一定会投入人力去做很多底层算法的事情,因为不和芯片做对接的纯算法也是几乎不可能得到好的体验。能耗、帧率、性能优化等等事情都必须在芯片层面的基础上去做,这个从 HoloLens 和 其余眼镜的区别来看已经比较明显了。
总的来说,AR 算法本身就是一个软硬结合的研发工作,我不能说小公司完全没有机会,但是难度会非常高,而大公司有资源和人力去投入这没有什么问题,在 AR 未来相对较长的发展历程来说,确实不能一直等硬件公司来满足业务需求,偏重业务型的公司可以凭借自身的研发能力作出好的产品,硬件公司肯定会反向跟进,这对 AR 行业来说这是一个良性循环。
其次是引擎方面,这个看似不是一个很值得分析的方面,目前支持 AR 的第一引擎毫无疑问是 Unity,几乎市面上 80% 的 DEMO 都是用 Unity 开发的,并且所有算法 SDK 在推出的第一时间都会包含 Unity 的版本。但是这是从完全的 AR 应用角度来说,所谓完全的 AR 应用即是以 AR 为核心交互的应用,这里大部分是游戏,少部分是一些行业的初级应用。这并不是全部的需求,还有很多大型的 AP P都需要 AR 的功能,但这些大型 APP 不可能使用 Unity这么庞大的引擎,至少在 5G 和更大容量的手机存储标准没有普及前是不可能的。
大家开发 AR 内容最熟悉的引擎
对此有两种解决办法,第一个是使用轻量化的 Native 3D 渲染引擎,并且这个引擎需要和市面上的主流 AR SDK 对接良好,这是目前几乎大部分的大型 APP 的解决方案,市面上所有可以看到的具备 AR 功能的大型 APP 几乎底层都有一个自研的 3D 引擎。这是一个比较浪费人力的工作,每一家的引擎都或多或少有一些区别,都是独立研发的(目前市面上 3D 引擎开发非常抢手),所以一个轻量化的,可嵌入大型APP,并且可以对接所有 AR SDK 的 Native 3D 引擎是目前比较稀缺的。
第二个解决方案就是 Web AR,相比 Native 引擎来说,Web AR 具备良好的开放性,不需要更新任何的客户端代码,也就没有大家头疼的发版问题(尤其在 iOS 封禁了热更新之后),所有工作都可以在 Web 端解决,这非常适合一些更新迭代很快并且交互定制型很强的 AR 产品,比如 AR 扫一扫的营销需求。
ARKit 和 ARCore 都已经在 github 上有了 Web AR 的版本,同时国内外一些知名的 Web 内核也开始增加 AR 的相关功能,苹果和 Google 未来也会支持 WebRTC (即 Web端可以访问调用摄像头和语音设备的技术),这些都表明业界非常看好 Web AR 的便利性和发展。
不过 Web AR 目前也存在一些问题,Web 3D 渲染的性能和覆盖率目前和 Native 引擎还有一定差距,Web 端和底层算法的对接及同步目前还需要一定的优化,体验距离完全 Native 的方式还有差距(WebRTC 可以优化这类问题,但是目前还没有普及),Web AR 方面人才稀缺,并且未来前景很好,很可能成为AR 发展的核心技术之一,不论是公司还是个人都值得大力投入。
如何交互,或许比技术问题更难以解决
然后是产品和交互方面,这个看似不是一个技术问题,但却是目前最难解决的问题。在当下 AR 底层技术刚刚发展起来还不成熟的时候,交互和产品的设计都依赖于了解 AR 技术背后的原理,比如想引导用户对世界坐标系初始化,那么交互设计自身就需要理解为什么单目算法需要一个初始化的过程以及到底需要如何初始化,如果没有这个过程可能会带来怎样的后果。再比如如何引导用户在空间移动,这个是之前图形界面完全不存在的方式,交互设计师要明白用户手持手机在空间中移动这本身就是 AR 世界里最重要的一种交互方式。
而在产品层面,产品设计需要思考 AR 到底带来的区别有哪些,如何连接人和物,如何连接人和空间,连接之后要给予用户哪些刺激让用户持续的互动,目前的算法对空间的理解到了哪种程度,如何最大化的展现给用户虚实结合的效果,手持手机的时间最好控制在多久的范围内等等这些问题。
相比于算法或技术来说,以上这些问题目前还没有一个好的答案,苹果在这方面已经做出了相关的一些工作,给交互设计和产品设计的建议已经发布出来,这是非常好的开端,当然要很好解决这些问题,不仅仅是技术人员的投入,产品经理和交互设计师,甚至视觉设计师可能都需要参与一起探索。
Blippar 推出了一款 AR 扫描引擎应用
最后也是最关键的,一直在限制 AR 应用生态发展的核心问题,即真实世界的数据化和 3D 化程度不足。众所周知目前深度学习大热, 但是绝大部分的识别算法除了网络结构或参数本身的调优之外,最依靠的就是训练数据本身,不论是物体识别算法,还是基于语义的空间感知算法,如果没有海量的数据进行训练,那么后续的功能改进都是空谈。
知名 AR 工具 Blippar 之前一直在尝试达到万物可扫的效果,而且似乎确实某种程度上实现了,但是它选择了牺牲认知事物的粒度,当用户扫描一双鞋子的时候其实并不是想知道这是鞋子,可能更想了解的是这是哪一款鞋子,而如果算法需要识别到这么细致的程度,则必须依赖几乎每一双鞋子的训练数据,这方面当下还没有好的数据获得方式,或者说从数据采集到标注数据的整个流程目前还不是很清晰。国内在数据采集标准方面比较理想的解决方案是众包平台,之前很火的人工智能音箱大部分是通过众包平台来获得语音的训练数据,但是众包平台水平参差不齐,也很难保证数据的标准和一致性,这个问题还需要很长时间的优化发展才可能帮助 AR 算法更好的理解世界。
内容问题,更直接的说即 3D 模型问题,因为 AR 带来的是全 3D 的世界,而之前图形界面对应的核心内容是文字、图片、视频等,这些内容目前没有一个好的方式放置在 3D 世界中,或者换句话说,如果仅仅是把 2D 世界的内容移植到 3D 世界,对用户来说并不是一件很有意义的事情。
那么想呈现一个好的 AR 体验,3D 模型的供给就是基础中的基础,目前除了游戏或电影领域有大量的人工 3D 建模师以外,在其他领域几乎很少,之前国内知名的几个电商平台都发布过商品 3D 化的计划,但是目前线上可以看到的 3D 产品依然很少,也侧面说明 3D 化工作的难度。
AR 毕竟不单单是一个游戏工具,除了游戏外,想真正作为一个基础工具解决实际需求,那么必须有更快捷的方式来生产 3D 模型。说到这里这自然会让人想到三维重建,当下三维重建的硬件和软件都有很多,但是都还没有达到足够成熟的状态,或者说足够便利的程度,除了成本相对较高外,三维重建的流程还没有标准化,不同算法和硬件对于三维重建的对象和操作人员的技术也有一些要求,这就导致三维重建目前还是一个学习成本较高的工作,还需要一段时间的发展和普及。
基本热门的问题就是以上这些,从 AR 行业来看,我认为 ARCore 的发布代表 AR 技术全面进入 C 端,后续会是内容和技术互相促进,更新迭代的时期。在 AR 眼镜到来之前,手机端是一个不得不做,并且值得做好的平台,希望 Google 和苹果可以保持良性竞争的关系,为大众带来体验更好的技术,同时也希望开发者们可以喜欢 AR,带来更多有价值的 AR 应用。
相关文章: