多人AR大势所趋!技术大牛深度解析ARCORE 1.2
VR陀螺在今年的Google I/O大会上,Daydream产品经理Nathan Martz 公布了最新的AR软件开发套件ARCore新版本ARCore 1.2,该版本带来了三大重要功能——Cloud Anchors、Augmented Images、SDK Sceneform。
Cloud Anchors功能,允许多用户通过网络连接共享的增强现实(AR)空间,实现多用户的AR体验。
Augmented Images类似于以前的AR扫描和QR码,但之前只能平面识别,此次新增了垂直平面识别,能更准确识别不规则物体表面。例如现在可以识别产品垂直包装面,以AR的方式呈现出包装内的产品。
全新的SDK Sceneform是一个旨在帮助Java开发者快速创建AR场景的新版SDK,无需处理整个3D开发堆栈。
ARCore 1.2 最大的更新是Cloud Anchors功能,除了多用户共享AR体验外,还有一个重要的点是,支持跨设备共享AR体验, Android和iOS用户都能通过Cloud Anchors获得多用户AR体验。
本文将从Cloud Anchors 多用户AR体验的实现原理、功能缺陷以及应用场景方面进行深入的探讨。VR陀螺请到了网易AR游戏《悠梦》的开发者应新港、Directive games的联合创始人张竹云、视+AR高级算法工程师王强对Cloud Anchors进行深度解读。
Cloud Anchors如何实现多用户共享同一个AR场景?
“这个功能其实是一个Cloud Anchors概念,anchor本身对于ARCore是一个非常重要的概念,” 视+AR王强表示,“ARCore中通过AR往现实中放置一个交互虚拟物体,需要通过Anchor指定其空间位置,只不过这个anchor以前是不能够多人共享的。”
什么是Anchors?虚拟物体在现实世界中的固定位置就是Anchors,有了这个锚点,虚拟物体就不会发生偏移,可以很好的贴合在现实环境中。要形成一个Anchors,首先需要一个SLAM系统提供相机的位置,通过相机扫描现实位置放置虚拟物体,虚拟物体的位置就会形成一个anchors,它包括了一个物理位置和一堆视觉特征。
王强补充道:“正因为有Anchors这个概念的存在,所以现在所谓的云Anchors 就很好理解了,用户A首先将本地anchor和anchor周围局部的视觉信息(比如特征点、线等),上传到云端,云端通过处理并生成三维点云信息,生成cloud anchors,同时返回其对应的ID,该ID可以共享给其他用户。其他用户(例如用户B,C等)通过该ID访问已有的cloud anchors,ARCore将本地的视觉信息上传到云端服务器,云端服务器尝试将接收的视觉信息与云端cloud anchor对应的的三维点云进行对齐,从而将多个用户的位置和姿态统一到同一坐标系下。”
Directive games张竹云对Cloud Anchors的原理分析和王强大致相同,“谷歌在ARCore 1.2的更新中加入了所谓多人模式的概念,这个机能是通过“云锚定”(Cloud anchor)来实现的。简单来说,ARcore将捕捉到用于进行运动追踪的特征点,上传并储存到云锚定的服务介质上,对比同一场景下不同用户各自的特征点,系统就可以把内容物体在不同的设备上渲染到空间中相同的位置。”
网易AR游戏应新港则认为:“它应该是通过特征点的共享(还没接入还不太确定),然后再逐渐谈到应用场景,就是它可以实现将虚拟场景的方位与朝向在多台机子上统一,这样很多多人游戏都可以做了。”
Cloud Anchors如何兼容iOS,为什么要兼容iOS?
张竹云分析其原理和安卓设备之间的AR数据交换是相同的,谷歌提供给iOS一套相应的Cloud anchor API,允许iOS 应用将对应的特征点数据上传到云端以分享至其他的设备。
王强的分析也有一定的共同点,他认为谷歌通过针对ARKit做对应的上层封装,对于开发者来说可以避免跨平台的开发带来的问题。由于ARCore在推出之时,功能和接口设计就与ARKit非常类似,因此 ARCore可以相对容易的提供一套封装和接口,从而同时兼容两个系统。
Cloud Anchor 能实现多用户AR交互是让人兴奋的,它还能够兼容iOS是令人惊讶的,但不算意外。
王强补充说道,“虽然此次I/O大会谷歌强调ARCore已经支持1亿台以上的安卓设备,但考虑到市面上安卓设备数量,实际上它的普及速度是偏慢的。目前支持ARCore的机型基本只有少数几个品牌的旗舰级的手机,因此对于AR的用户普及来说,安卓比苹果要低很多的。当谷歌表示Cloud Anchors兼容ARKit的时候大家表示惊讶,但考虑到苹果的AR用户的庞大数量,对于多人AR体验来说,通过上层兼容ARKit也是非常合理的。”
Cloud Anchors可以应用到什么场景?
张竹云、王强、应新港一致认为,多人游戏娱乐和多人协作行业应用是Cloud Anchors 的方向。
当初苹果刚推出AR功能的时候,很多人都认为AR会很快的普及到大部分的用户,因为苹果本身也有软硬件的优势,但最后结果是否定的。由于目前的AR体验并没有足够的元素吸引用户长时间使用,一方面是缺少碰撞和遮挡,缺少真实感,另一方面是缺少社交元素,用户之间没有交流,没有分享渠道,更不能共同参与AR体验,而Cloud Anchors则刚好能解决这个问题。
张竹云对此表示,“多人共享的AR空间可以说是AR未来发展至关重要的功能,只有当AR可以在人和人之间进行分享的时候,他才会真正成为日常生活中主流的,必不可少的工具。出于这个思路,可以说它的应用场景是非常广泛的,从多人协作的行业应用到交互娱乐游戏,都是它的用武之地。”
王强则认为:“互联网爆款大多都涉及社交元素。有了多用户交互之后,游戏、娱乐、工业、教育等各个行业都可以加入多人、社交AR的功能。AR未来的趋势肯定是朝着持久的,多用户的,可以分享的沉浸感更强的AR体验。”
“要实现AR MMO 前还有差距,一方面是参与人数,官方文档虽然没提及,但目前同一cloud anchors应该对同时共享的用户人数会有限制。另一方面是要做到真正的AR MMO需要构建与现实环境1:1的AR地图,只有ARCore的cloud anchors只能看做局部的小地图,构建大范围的、多人共享、可持久更新的AR地图目前仍然是行业内的难点。”
Cloud Anchors目前会有什么缺陷?
毫无疑问,Cloud Anchors对于开发者和用户都是一个很重要的功能,该功能很有可能让AR MMO游戏成为现实,该功能也是AR社交的一个补充,但现在看来,该功能尚存在一些难点和缺陷需要解决。
地板和地毯会给特征点的识别、追踪带来难度吗?张竹云认为:“缺少纹理的表面会给追踪带来困难,但实际上大多数地板和地毯都是有丰富细节的。”
光照、角度会影响特征点的采集,进而影响多用户交互体验吗?王强表示:“这是多用户共享的一个最大的难点,就是怎么得到不同用户相对的位置和姿态信息。光照变化、用户的观察角度、距离变化都会对视觉匹配算法的性能带来影响。”
“利用cloud anchors建立与用户图像的匹配,对于室内场景来说比较简单解决一些,室外场景下可能会需要面对白天到晚上这种光照变化更剧烈的挑战。近年来室内不同角度、角度和位置的图像匹配算法已经有长足的进步。对于室外场景下,国内外很多AR相关的公司都在做这方面的解决方案,相信这个问题也会逐步得到解决。”目前ARCore的匹配是在服务器端完成的,相对在本地实现无需过多考虑手机计算性能带来的限制。”
多用户数据上传,有可能导致云端服务器压力过大吗?王强认为,“视觉计算它本身的计算量通常是非常大的,比如说特征提取和计算特征描述子。这个不仅对服务器传输带宽压力大,对于算法的压力也很大。但谷歌之前在Tango的开发过程中,应该积累了大量的算法相关经验,在优化算法速度和性能这方面相对比较有优势。”
“但谷歌之前开发过Tango,在这方面应该有积累了大量的经验,这方面应该比较有优势,针对数据量做算法的优化,另一方面,用户与云端的通信不一定需要传输图像这种非常耗费带宽的资源,可以在本地先进行特征提取和描述子计算,然后只将描述子这种较小的东西上传到云端进行匹配,从而能减少访问服务器的压力。”
用户数据上传到云端,会不会导致数据外泄?对此王强认为问题不大,“其实谷歌也意识到这个问题,对于数据的传输、存储、访问都是有一些限制的。例如谷歌在ARCore文档中提到,创建cloud anchors中上传的原始视觉信息在7天后销毁,用来与云端匹配计算相对位置的视觉特征描述子也不会在云端存储。”