从玩具到工具 苹果ARKit的进化之路

  • 来源:微型计算机
  • 关键字:苹果,ARKit
  • 发布时间:2018-08-08 13:45

  前段时间,谷歌和苹果都相继发布了自家AR组件的升级版。区别在于,谷歌I/O大会上,ARCore成了一个群众演员,陪衬AI、Android P这帮主角;而苹果的WWDC 2018上,ARKit有专门的舞台,专门的身份,专门的搭档。可见苹果对AR是非常认真的。ARKit升级到2.0版本之后,业内号称这是从玩具到工具的改变。所以这次就来谈谈,ARKit打算以怎样的态度来改变世界。

  去年4月,Facebook在F8大会上推出了AR相机平台Camera Effects,让用户能在相机捕捉的内容中添加各种AR效果,这并没有引起很大的波澜。两个月后,苹果在WWDC 2017上放出一个重磅炸弹—ARKit,这次在业界引起了轰动。开发者们发现,利用这款AR工具包,他们能够非常容易地创建各种AR demo,而不再要考虑什么标记点、深度摄像头,或者专门的开发环境。而对于用户而言,原来iOS 11系统、A9以上处理器的苹果设备,就可以体验ARKit带来的效果。苹果成功压低了AR的门槛,AR再度成为热门话题。

  ARKit怎么工作

  ARKit实际上有两个组成部分:ARKit和SceneKit,两者相辅相成,共同创建出用户能看到的AR效果。要没有SceneKit,ARKit就只能是一个相机程序而已。

  ARKit利用摄像头拍摄实景,SceneKit建立虚拟世界。然后,ARKit将实景画面和虚拟世界的信息叠加,渲染出AR场景。这个过程中,ARKit分析摄像头捕捉到的场景,并在其中寻找水平面来放置虚拟对象;利用摄像头来估算场景中的可见光总亮度,用于给虚拟对象添加符合实际情况的光量。ARKit使用VIO(Visual Inertial Odometry,视觉惯性里程计)来精准追踪现实场景,VIO将摄像头的数据与iOS设备的CoreMotion传感器数据进行融合。这样就能让设备准确知道自己在房间内的动作,而且无需额外校准。

  ARKit将摄像头采集到的视频的每一帧进行处理,采集特征点。其实不论ARKit或者ARCore,采集特征点都是一项基础工作。特征点可以是物体上的一个角,纹理的一个疤,或者是人脸上的一颗痣,总之就是要能够独立或者参与描述对象物体。有了这些特征点,系统就可以在多帧之间追踪场景,获取特征点的位置然后估计3D位姿信息,继而渲染出相应视角下的虚拟世界。苹果A9以上的处理器就能够满足快速识别场景、构建虚拟内容的要求。

  ARKit的进化

  在WWDC 2018上,苹果推出了ARKit的2.0升级版本。升级版的新特性包括:增强面部追踪、增强了渲染能力、增强3D目标检测追踪、增强AR模型和空间结合的稳定性,以及最重要的多人AR实时互动。

  3D目标测追踪增强了对现实物体的检测,能让虚拟和现实的交互更加真实可靠。在发布会上,ARKit对乐高的3D建筑进行了成功识别,但苹果对其识别原理未作进一步解释,我们知道谷歌的ARCore有一个Augmented Image的特性,能够对预先存储的2D图片进行识别,但暂不支持3D物体识别。ARKit是否支持3D物体识别也是个未知数。

  大会上还演示了一个基于AR的3D测量应用Measure。这类应用并非苹果首创,但既然敢拿出来,证明精度也许还不错。从演示视频来看,只要通过摄像头点击选择待测物体的两个端点,就能测量出物体的长宽高等尺寸,进而算出体积。对于平面物体,还可以实现全自动的测量,无需手动定位。所有测量数据会实时显示在物体上方,方便浏览。显然,要达到这样的效果,ARKit在对象检测、实时定位、渲染方面都必须有很高的精度。因此,苹果要展示的并非Measure测量箱子,而是其背后,AR模型和现实空间结合的稳定性。

  在iPhoneX发布会上,苹果公布了基于Face ID的“Animoji”动态表情功能,简单说来就是能让手机里的3D虚拟形象模仿通过iPhone X前置的深度摄像头,模仿用户的表情。在WWDC 2018上,这一功能升级成了“Memoji”,让用户可以自定义3D形象,甚至可以将3D的脸融合到自己的身体和背景上,创造出虚拟和现实并存的用户个性形象。这种“捏脸”的模式,也许会是将来AR/VR用户的“名片”。而增强的面部追踪,也是实现Memoji的基础。

  ARKit 2.0还带有眼球追踪功能,通过iPhone X前置深度摄像头追踪眼球来控制屏幕,还可以用眨眼代替点击操作。有人为此开发了一个demo,从演示视频来看,精确度、稳定性都还不错。其实,早在三星S3上就出现过类似的功能,用眼睛控制屏幕明灭,跟随眼球滚屏等。一些VR盒子也带有这样的操作,通过凝视进入下一级目录。至于用起来感觉怎么样,基本上是体验一次就永久吃灰。而苹果敢亮出来,证明其对用户体验是很有信心的。剩下的事情就交给开发者去思考,这个功能能做出什么花样来。

  可以分享的AR

  业内普遍认为,多用户互动和持续性会话,是AR最急需解决的需求。所谓多用户互动,就是要让多个用户加入到AR场景中,每个用户能从不同的角度看到相同的虚拟对象。而持续性会话,就是要让虚拟对象能够保持在同一位置。例如,在桌子上放了一所虚拟的房子,这时候用户退出了会话。之后用户再次回到会话时,这所房子还在原来的位置上。

  ARKit 2.0解决了这个需求。为了更好地演示其效果,苹果还邀请了乐高创意总监马丁·桑德斯来作为嘉宾。首先在桌子上有一套组装好的乐高建筑,当桑德斯和其同事打开iPad摄像头后,这套建筑玩具在屏幕上就变成了一个新的世界:建筑周围立刻出现了街道、车辆、人物等虚拟形象。作为玩家,可以控制这些人物,可以添加各种新的元素,可以“偷窥”虚拟的建筑内部,甚至可以制造一场“火灾”,然后安排消防车和直升机前去救援。

  这段演示,除了再一次展示了ARKit 2.0在对象检测、定位等方面的实力外,也顺便秀出了多用户互动这个解决方案。至于具体的实现细节,苹果并未透露。据推测应该还是识别乐高3D模型之后,通过VIO进行定位,可以解决多用户相机坐标系统统一的问题。据悉,这种互动是依靠设备间的数据传输,而不会将数据上传到云端,这对于隐私保护也很有好处。

  至于持续性会话,首先还得USDZ文件格式。苹果宣布与皮克斯联合开发了一种新的AR文件格式:Universal Scene Description(USDZ)。这其实是一种未压缩、未加密的zip格式,并且为共享功能进行了优化,它可以快速在多个应用中加载预制的3D模型,能够在iOS生态圈里进行AR共享和交互。USDZ主要面向的不是终端用户,而是内容创作者,他们可以通过日常手段分享、浏览和编辑AR文件。

  既然是一种新的文件格式,怎么推广就是个问题。但苹果显然已经完成了大量的谈判工作。除了皮克斯外,Adobe、Autodesk、Sketchfab、PTC、Quixel等众多应用程序都宣布将支持该格式。苹果自家的程序自然是全力兼容,例如Apple News新闻客户端,今后看新闻大概都会带着AR交互。

  此前,谷歌、Facebook、微软等都在使用glTF格式。USDZ的诞生,也符合苹果的秉性:走自己的路,让别人不得不跟着自己走。苹果和索尼都是特别喜欢树立行业标准的,不论是行业还是用户都已经习惯了。但是这也意味着要想在iOS和Android之间共享AR就会出现壁垒,怎么解决目前并不清楚。

  有了USDZ,多人交互和持续性会话就成为了可能。新用户可以通过读取USDZ加入到AR场景,新的虚拟对象也可以通过USDZ保存,退出后再重新登入,它依然还在。当然苹果在大会上演示的是实时同步的分享互动,是否支持异步分享—也就是让另一个用户在另一个时间来体验—还有待明确。

  各自的难题

  过去几年中,其实不少的创业公司都在做类似ARKit和ARCore的功能。但这个世界强者才有发言权,在苹果和谷歌的夹击里,这些小公司必须转型来适应新的生态。但至少,他们不用再冒着风险建立乱七八糟的AR标准,而是可以把目标和精力都放到内容上面。

  相对于谷歌的ARCore,ARKit有着先天的普及优势。原因在于安卓的生态系统比较碎片化,厂商众多帮派林立,各家硬件标准都不一样,让ARCore很难施展手脚。谷歌目前也只针对三星Galaxy S8和自家的Pixel作了优化,要想普及开来,就必须考虑如何为各式各样的安卓机型的摄像头提供服务,或者要求手机制造商采用特定的部件,而这无疑会增加成本。

  此外,三星S8到今年2月全球共售出3700万部,谷歌Pixel在2017年全年卖出了390万部。它们还得激活并升级了Android N才能使用ARCore。这就意味着,能支持ARCore的硬件实际上少于4000万部。

  反观苹果,对自家设备上的所有硬件和软件都有绝对的控制权,要想校准也容易得多。并且2015年9月以后发布的每一款iPhone和iPad都能支持ARKit。据统计,从2015年10月至2017年6月,苹果卖出了3.81亿部iPhone,今年仅第一季度就卖出了7730万部iPhone,这还没包括iPad的销售数据。因此,能够支持ARKit的设备基数和谷歌完全不在一个数量级,苹果也非常自信地表示,iPhone将会成为最大的AR平台。

  当然,凭借在Tango项目积累的经验,谷歌在用户体验上,也许可以做到不输给苹果。

  共同的难题

  关于AR,我们已经谈了很多,但大多数都是基于期待和幻想。而回到现实,不论是ARKit还是ARCore都面临一个难题:没有杀手级的应用程序。也就是说,用户到底能用AR干什么?

  《PokémonGo》让任天堂赚得眉开眼笑,但AR不应该只能用于游戏体验。当多人交互的AR出现之后,AR应该是一个共享实体世界的“记忆”,它与通信、协作、学习、搜索等相关联,让用户在真实空间里协作、集成和配置3D内容来解决实际问题,不是仅仅像分享一段视频一样,看完就算了。这样,AR才能完成从玩具到工具的进化。目前大部分基于ARKit和ARCore的apps,其用户体验非常有局限性。AR的火爆和“普及”,其实就是让Youtube上的一堆演示视频增加了收视热度而已—说到底,反而让一个视频网站赚了。

  我们有理由相信这种杀手级的AR会先在iOS上出现,因为至少苹果对于AR更加上心。在WWDC 2018上,我们看到了iOS 12、ARKit 2.0、USDZ,也就看到了苹果为建立这个生态圈所做的努力。会上,ARKit的发布顺序排在最前面,介绍时长也相当长,还邀请了乐高和Adobe作为嘉宾。并且,ARKit竟然和iOS、WatchOS这样的系统并列,是唯一一项被赋予了世代编号的软件功能。苹果也许想把ARKit发展成一个独立的平台,或者搭载在某一个AR硬件平台中。带着深度摄像头的iPhone X,可能会是这个硬件平台的先驱。而ARCore在I/O大会上,几乎就是一个群众演员的待遇,当然我们也相信,谷歌正在努力追赶。

  AR曾经火过,但因为技术原因很快衰败。笔者7年前曾关注过AR,如今7年了,AR当年勾绘的蓝图,也终于有了实现的基础。也许,正如苹果CEO库克所说的:“让AR走上正轨需要花费一些时间,但意义深远。”

  文/丹芮静

……
关注读览天下微信, 100万篇深度好文, 等你来看……
阅读完整内容请先登录:
帐户:
密码: