0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Cloud Anchors如何实现多用户共享同一个AR场景?

fFU3_vrtuoluo 来源:未知 作者:胡薇 2018-05-14 17:28 次阅读

在今年的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体验, AndroidiOS用户都能通过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应该对同时共享的用户人数会有限制。另一方面是要做到真正的ARMMO需要构建与现实环境1:1的AR地图,只有ARCore的cloud anchors只能看做局部的小地图,构建大范围的、多人共享、可持久更新的AR地图目前仍然是行业内的难点。”

Cloud Anchors目前会有什么缺陷?

毫无疑问,Cloud Anchors对于开发者和用户都是一个很重要的功能,该功能很有可能让AR MMO游戏成为现实,该功能也是AR社交的一个补充,但现在看来,该功能尚存在一些难点和缺陷需要解决。

地板和地毯会给特征点的识别、追踪带来难度吗? 张竹云认为:“缺少纹理的表面会给追踪带来困难,但实际上大多数地板和地毯都是有丰富细节的。”

光照、角度会影响特征点的采集,进而影响多用户交互体验吗?王强表示:“这是多用户共享的一个最大的难点,就是怎么得到不同用户相对的位置和姿态信息。光照变化、用户的观察角度、距离变化都会对视觉匹配算法的性能带来影响。”

“利用cloud anchors建立与用户图像的匹配,对于室内场景来说比较简单解决一些,室外场景下可能会需要面对白天到晚上这种光照变化更剧烈的挑战。近年来室内不同角度、角度和位置的图像匹配算法已经有长足的进步。对于室外场景下,国内外很多AR相关的公司都在做这方面的解决方案,相信这个问题也会逐步得到解决。”目前ARCore的匹配是在服务器端完成的,相对在本地实现无需过多考虑手机计算性能带来的限制。”

多用户数据上传,有可能导致云端服务器压力过大吗?王强认为,“视觉计算它本身的计算量通常是非常大的,比如说特征提取和计算特征描述子。这个不仅对服务器传输带宽压力大,对于算法的压力也很大。但谷歌之前在Tango的开发过程中,应该积累了大量的算法相关经验,在优化算法速度和性能这方面相对比较有优势。”

“但谷歌之前开发过Tango,在这方面应该有积累了大量的经验,这方面应该比较有优势,针对数据量做算法的优化,另一方面,用户与云端的通信不一定需要传输图像这种非常耗费带宽的资源,可以在本地先进行特征提取和描述子计算,然后只将描述子这种较小的东西上传到云端进行匹配,从而能减少访问服务器的压力。”

用户数据上传到云端,会不会导致数据外泄?对此王强认为问题不大,“其实谷歌也意识到这个问题,对于数据的传输、存储、访问都是有一些限制的。例如谷歌在ARCore文档中提到,创建cloud anchors中上传的原始视觉信息在7天后销毁,用来与云端匹配计算相对位置的视觉特征描述子也不会在云端存储。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Ar
    Ar
    +关注

    关注

    24

    文章

    4967

    浏览量

    167519
  • iOS
    iOS
    +关注

    关注

    8

    文章

    3329

    浏览量

    149215

原文标题:多人AR大势所趋!技术大牛深度解析ARCORE 1.2

文章出处:【微信号:vrtuoluo,微信公众号:VR陀螺】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    采用同一个触发源和双重采样有什么区别?有什么好处呢?

    采用同一个触发源和双重采样有什么区别?有什么好处?假如两通道采样,方式是采用双重采样,宁外
    发表于 04-10 06:29

    一个进程内多次使用open打开同一个文件,可以吗?

    当一个进程内多次使用 open 打开同一个文件时,每次都会得到一个新的文件描述符(file descriptor)。
    的头像 发表于 02-27 13:54 374次阅读

    苹果多用户共享体验头戴设备专利公布

    苹果公司公布了一项名为“用于共享体验的光学组件”的专利。该专利描述了一种可头戴式设备,它能与其光学组件协同操作,从而为多个用户提供共享体验和内容享受。
    的头像 发表于 02-25 17:04 358次阅读

    苹果Vision Pro头显仅供个人使用,不设多用户账户

    苹果公司最新推出的Vision Pro头显备受关注,它内置有独特的访客模式,这使得设备可以邀请他人共享视觉盛宴,然而大多数消费者更为关心的是其多用户账户的操作性。
    的头像 发表于 02-01 10:48 421次阅读

    多用户同时上网无需担忧!4G家用路由器畅享高效网络体验

    4G家用路由器具有更稳定的网络信号、支持多用户同时连接、安装和使用方便、良好的网络覆盖范围和较高的网络速率等特点,可让您告别网络困扰,畅享高速网络服务。
    的头像 发表于 01-23 16:52 205次阅读

    同一个芯片不同封装的原因

    同一个芯片的不同封装可能是为了满足不同的应用需求和设计要求。不同的封装可以影响芯片的功耗、散热性能、引脚数量和布局等方面。
    的头像 发表于 12-18 18:15 599次阅读

    请问设备上有两颗mcu可以使用同一个晶振吗?

    我按到很多设计用同一个晶振,也有分开用的,请问分开和不分开有什么优缺点
    发表于 10-26 06:28

    同一个定时器的两通道怎样设置为不同的PWM模式?

    同一个定时器的两通道怎样设置为不同的PWM模式
    发表于 10-17 06:13

    BMCV相关接口输入和输出可以使同一个bm_image吗?

    BMCV相关接口,输入和输出可以使同一个bm_image吗?
    发表于 09-19 06:16

    失灵保护跳闸回路和母差保护跳闸是同一个回路吗?

    失灵保护跳闸回路和母差保护跳闸是同一个回路吗? 失灵保护跳闸回路和母差保护跳闸不是同一个回路。这两个回路在电力系统中都起到重要的保护作用,但它们的原理、应用场景、触发条件等方面都有所不同。 首先
    的头像 发表于 09-15 15:06 1191次阅读

    Arm Keil Studio Cloud用户指南

    Arm Keil Studio Cloud免费使用的、基于浏览器的集成开发环境 (IDE)用于评估和开发嵌入式,物联网和机器学习软件Cortex-M设备。为您的代码提供云托管的工作空间,全面
    发表于 08-02 08:34

    两个网络IP地址是否在同一个段中的判断方法

    我们知道IP地址是由“网络号+子网号+主机号”组成,判断两个IP地址是否在同一个网段主要看“网络号”,如果网络号一样,那么他们就在同一个网段,否则就不在一个网段。
    的头像 发表于 06-02 14:31 1.1w次阅读
    两个网络IP地址是否在<b class='flag-5'>同一个</b>段中的判断方法

    安科瑞ADF400L-4H多用户电能表

    安科瑞ADF400L-4H(2S)Y模块化多用户电能表-安科瑞 缪凯伦 1 概述 安科瑞多用户电能表,通过模块组合的方式大可实现12路三相或36路单相的直接接入测量或12路三相互感器接入测量、直接
    的头像 发表于 05-29 10:48 386次阅读
    安科瑞ADF400L-4H<b class='flag-5'>多用户</b>电能表

    这个是什么情况?不能第二次启动同一个线程?

    这段时间遇到奇怪的问题,就是同一个线程,先执行rt_thread_delete把其删除,然后又重新启动这个线程,竟然无法重启启动该线程,试了好几遍。 tid1 = rt_thread_create
    发表于 05-17 14:16

    LittleFS如何在不关闭并重新打开同一个文件的情况下连续读取同一个文件的值?

    - pixel information for LED Array } f.close(); f.open() 函数似乎需要些时间。我的问题是,如何在不关闭并重新打开同一个文件的情况下连续读取同一个
    发表于 05-16 07:46