2020 Google开发者大会关于ARCore讯息都在这里


    Google 开发者大会 (Google Developer Summit) 是谷歌面向开发者展示最新产品和平台的年度盛会。2020 Google 开发者大会于 11 月 16 日 至 21 日举行,这是谷歌首次以全线上大会的形式与中国开发者相聚。
    本次大会以“代码不止”为主题,介绍了相关产品更新以及一系列面向本地开发者的技术支持内容,旨在赋能开发者高效创新、持续不断地创造愉悦的产品体验。
    
    目前AR已经从只是畅想发展到今天的技术相对成熟的状态,应用也不断推陈出新。加上5G的带动,越来越多的AR体验走进生活,被更多人了解和使用。
    随着科技的不断演进,人机交互的方式也不断变更。摄像头成为了数字世界的眼睛,能看懂并感知这个世界,再结合IMU、GPS算力集成及深度学习后,AR技术开始在最需要的位置和时空中无缝联结,并响应现实世界。
    AR提供了一种体验信息以及获得答案的新方法,吸引了人们的注意力,最终帮助推动了用户行动起来。无论是应用的下载、互动,还是应用内购买,都看到了显著的提升。
    此次大会与AR/VR相关重点集中在ARCore的讲解与介绍,谷歌软件工程总监王启文(Leon Wang)、大中华区AR/VR负责人熊子青、Google 技术布道师周克忠与Google 软件工程师Eric Turner围绕ARcore从多个角度进行了主题分享。
    ARCore新增功能上线:更方便的设置、更真实的交互
    AR作为一种视觉沉浸式媒介,能够吸引人们的注意力,是一种体验信息的新方式,并最终推动用户的行动。而谷歌发布于2018年的ARCore是AR开发者平台,提供了简单而强大的工具,为Android和iOS用户创造有效的AR体验。目前已被应用在7亿台设备和成千上万款app上,并且已获得一系列更新。
    整体上,ARCore能被适用于多种场景,离不开以下几个核心功能:
    
    1、运动追踪。用来帮助用户实现虚拟现实的映射关系。
    2、环境理解。对现实环境中的平面信息进行评估,利用特征点来估算位置、大小以及朝向 。
    3、光估测。ARCore可以分析估算当前环境中的光照信息,对渲染的虚拟内容进行光照色彩的校正,使其与手机摄像头拍到的真实画面结合得更加自然。
    
    另外ARCore还有许多延伸的功能: 1、增强面部识别。提供了高精度468点的3D Mesh。可以精准地追踪脸部细微表情,不需要深度传感器,而是运用机器学习(ML)中的深度学习,以达到这样的功能。同时支持安卓及IOS用户。
    2、环境光HDR。要让虚拟物品看起来更逼真,更融入实景,其中最重要的功能之一就是要有正确的光照呈现。运用了ARCore所提供的360度全景光照信息,图中的虚拟小火箭,就可以有了对应的反光及影子。 
    3、Scene Viewer场景观测器。让开发者可以直接在网页上向用户提供方便、好用的3D内容及AR浏览功能。
    4、Agumented Image增强图像。可以检测手机拍摄到的图像信息,并与预先设置在数据库中的图像进行匹配。可精确匹配包括移动中的图像,或是同时检测多个图像。 
    5、云锚点。为安卓和iOS用户创建共享的跨平台体验。就如同图中的案例,从两个人到数百人,都可以在各自的设备上一起种花、浇灌。
    
    11月16日,谷歌软件工程总监王启文(Leon Wang)发表了关于“ARCore为用户创造有效的AR体验”的主题演讲,介绍了Google热门的AR开发工具ARCore的新增功能。
    新增功能如下:
    迅速放置API(Instant Placement API)
    
    一般来说,用户在空间中放置过AR对象时,需要先用手机扫描周围的环境,完成3D表面检测。但这个过程将耗费一些时间和精力。实际上,在大多数情况下,我们不需要知道AR对象确切的3D位置也可以正确地呈现它。
    借助迅速放置API和几行代码,开发人员可让用户将AR对象锚定到2D图像中,而不需要确切知道AR对象具体的3D位置。如果需要更精确的比例,可以针对3D位置进行三角测量。
    景深应用API(Depth API)
    
    景深API可以从单个RGB相机生成地图。原理是通过不同角度拍摄多张图像,并在移动手机时进行比较,以估计到每个像素的距离。尽管只有一个RGB相机,但是添加了景深传感器(如飞行时间传感器)会让景深地图效果更好。
    景深可以通过多种方式增强AR真实感,“遮挡”是其中一种景深应用,即隐藏数字物体在现实世界中被遮挡的部分,从而使它们看上去像是在现实场景中真实存在。
    
    另一种是“表面交互”,即在设备中的世界里,添加3D层面的计算,可以实现与现实物品表面的交互,比如创意AR对象,并在其表面设计反弹和飞溅的动作。此功能可以用于开发新的交互式游戏机制,使玩家能够躲在真实物体的后面。Snapchat的Dancing Hotdog和Undersea World Lens效果都使用了景深。
    
    持久云锚点Persistent Cloud Anchors API
    
    Cloud Anchors API可用于与多个用户共享AR对象。在相同物理空间中的不同位置同时查看这些对象并与之交互,AR内容也因此可使用更长时间。
    
    这相当于一个“保存按钮”,人们可以基于相同的AR体验进行创作并进行反复修改。比如,Sybo和iDreamSky的Mark应用采用了该功能,人们可以在现实世界中与朋友一起创建、发现和共享AR艺术。
    AR技术大神讲解ARCore深度API运作方式
    Google 技术布道师周克忠与Google 软件工程师Eric Turner主要针对了ARCore 核心功能中的深度API技术进行演讲。ARCore 1.18 中发布的深度 API,赋能数以亿计的 Android 设备,在只是使用一个 RGB 摄像头的情况下,生成深度图。
    以“使用深度 API 提升 AR 的真实性”为主题演讲的前半部分,周克忠介绍了ARCore的最新功能,包括深度API是什么,它可以解决什么问题等;后半部分,Eric介绍了ARCore如何实现深度API。
    一、深度API是什么?它可以解决什么问题?
    之前Google大中华区AR/VR负责人熊子青也曾讲述,ARCore是Google为安卓平台制作的AR开发平台,目前在全球支持超过5亿台设备。其核心能力是运动追踪、环境理解和光估测。现在已经有很多APP使用ARCore制作出各种各样的丰富体验。
    
    通过ARCore制作的应用看上去很逼真,但是实际体验上,这些虚拟内容看起来好像他们就是手机膜一样被贴到手机屏幕上,他们并不是真的在现实世界里面,这里缺少的就是遮挡,会破坏ARCore应用的真实感。 深度API的加入,可以解决虚拟对象缺乏真实感的问题,能够消除违和感。
     二、如何实现遮挡?
    
    首先我们需要定义深度。如图C点是摄像机的位置,Z轴是摄像机的主轴,A点表示一个现实的物体,从C到A的深度则被定义为线段CA在Z轴的投影。此为场景物体的深度轴。 根据深度信息,智能手机就能够渲染虚拟物体。在着色渲染器里面计算每一个像素点的时候,我们将当前像素点的深度值,和之前在这个像素点所渲染过的颜色的深度值进行对比。 如果之前的像素点深度值更低,那么就意味着它更近;相反,则更远。就这样便可以实现基于深度的遮挡效果。
    三、除了遮挡,深度API增强真实感的其他方式
    
    1.AR光标。在AR应用里面,用户可以把定点的光标贴合深度API生成的网格,此时光标就变成了在现实世界存在的AR光标。目的是更好地帮助用户理解现在所看到、所对准的具体位置,以及这个位置的形状。 
    2.物理交互。比如如图所示,将一个虚拟物体丢到健身自行车上面,让AR物体和真实世界的物体发生物理碰撞,进行物理模拟。 
    3.表面交互。通过让AR角色识别真实物体表面的高低起伏,从而做出更加真实的前进路线,甚至可以绕开障碍物。
    
    周克忠还介绍了目前团队发表的论文《Depth Lab:Real-time 3D Interaction with Depth Maps for Mobile Augmented Reality》(UIST,2020),论文主要关于如何从深度信息实现以上功能,以及深度信息可以开启怎样的应用场景。 
    四、如何实现复杂的用法? 团队利用了三种辅助数据结构来帮助计算。 第一种数据结构就是一个深度数组,可以在屏幕上进行局部坐标的深度信息查询。 第二种是深度网格,可以用来和真实物体的表面进行交互。注意这里是平面坐标系的网格,毕竟世界坐标系的网格运算量过大,一般手机无法承载。 第三种是深度贴图,对GPU能处理的每一个像素都提供对应的深度值。 这三种结构在Depth Lab(深度API应用程序)都有提供代码,是一个开源项目,提供给开发者进行自主设计。 
    五、关于局部、表面和密集深度贴图的方法 通过使用深度数组,用户可以查询局部点的信息,以及这个点周围局部区域的深度信息。
    
    局部深度用法中,只通过某些点的深度估测值,可以用于测量、3D资源的放置和碰撞检测。也可以配合多点的深度,实现简单的AR角色障碍规避。比如说通过深度信息查询环境中一个点与另一个点的实际距离。
    
    表面深度用法,是基于深度信息快速构建屏幕空间的网格模型,利用游戏引擎进行网格交互。表面深度算法让我们可以在3D网格上面实现光照、物理效果、阴影等功能。 密集深度用法,即通过在深度贴图上直接进行操作,以实现复杂的逐帧像素特效。由于深度贴图上的每个像素都有深度值,使得计算量特别大。一般的屏幕空间网格,其实是经过相当的简化后的网格,而ARCore把计算量移到了GPU上,减小了手机的计算负担。
    
    第二部分里,在周克忠介绍深度API实际运作方式的基础上,Eric通过具体例子进行了补充。 
    六、深度API原理剖析
    
    一般而言,手机需要配备特殊的深度硬件才能实现深度识别,比如ToF深度传感器。但实际上,现阶段的ARCore并不需要特殊设备,只需要有摄像头,就可以实现深度API功能。
    
    如图,左边是手机相机拍摄的原始图像,右边是深度API为此场景生成的深度。用户可以近距离观察单车,也可以远距离观察远处的门和走廊,分别对应的颜色是红色和蓝色,表示近处和远处。
    这意味着无论AR应用在做什么,它都可以获取整个场景中的每个帧的深度信息。根据相机的运动生成深度信息,如蓝色帧为远处,红色帧为近处,这些帧会被最后的相机画面帧(黑色)引用为立体匹配关键帧。过去的帧与当前的帧之间的基线,可用来估算场景的立体深度。 但Eric提到,基于用户自然移动的规则,团队为此添加了一些限制。因此与传统的并行立体匹配相比,设计基于自然移动的深度API则存在一些挑战。
    传统的并行立体匹配可以全面控制相机之间的相对位置。而在典型AR应用中,对于随机相机移动,团队无法控制相机的位置,即用户在进行自由移动时,相机可能在任何方向。 而目前,ARCore深度API添加了智能图像处理功能,以确保整个图像都具有准确的深度。除此之外,还能够补偿速度匹配错误、运动模糊、自动聚集聚焦变化或自然移动导致的小于正常基线的问题等。
    深度API的完整流程是: 实时图像-形成关键帧池-筛选出关键帧-根据智能算法剔除无效关键帧-立体匹配-使关键帧平滑-调用深度API-实现渲染遮挡。 其亮点在于,即使是一面空白无特征的墙,ARCore的深度API仍然能够生成正确表示该空白墙的深度图像。 其原理是,如图所示,白墙是黄色帧,箱子是橙色帧。在图二的中间,可以看到伪色深度图像,正确呈现了场景中的物体的远近位置。而图三则是以点云代替颜色,进行了侧面视角观察,但同样能以垂直点表示墙面、水平点表示箱子,准确判断出墙和箱子的相对距离。 演讲的最后,周克忠总结,实现深度API最大的难点是怎么扩展这个能力。为装备到数以亿计的安卓设备上而设计深度API的时候,一方面我们需要尽可能的让它的结果精确,另外我们需要尽量去减少它的计算量,以尽量支持更多的已有设备。 而近年来,Google一直在进行深度API的优化,以减少它的计算量。
    不止于此,ARCore已具有丰富的应用场景
    总体上,王启文将ARCore的核心功能进行了详细介绍,周克忠和Eric剖析了ARCore最受瞩目的深度API的运作原理。有了底层技术支撑,ARCore也被广泛应用在丰富的场景中,并受YouTube、美图、滴滴等多个企业青睐。
    此前,王启文在演讲上还介绍了中国地区ARCore的应用情况。在此基础上,大中华区AR/VR负责人熊子青补充ARCore应用案例,她以“ARCore新近更新及应用实例”为主题,从AR近期发展、ARCore进程、2020新近更新三个方面介绍了ARCore产品动态。
    关于中国地区的应用案例,王启文介绍了包括美图、滴滴、有道少儿词典的中国开发者如何使用ARCore提高产品的性能和体验。
    美图公司利用ARCore的增强面孔API(Augmented Faces API)构建了100多个自拍滤镜,就是现在我们在BeautyPlus上可以体验到的AR特效,用户可以拍摄照片和视频与朋友分享。
    增强面孔API(Augmented Faces API)从2D图像中生成3D网格,可追踪嘴部动作、眨眼、点头和一些复杂的细节。
    滴滴的ARCore导航功能帮助乘客在火车站、商场和机场等大型公共区域找到司机。滴滴地图中加入了AR路标,15%的用户使用AR来引导他们找到订单司机,80%的用户给出好评。
    有道少儿词典应用使用AR来帮助孩子们以一种有趣和吸引人的方式学习新单词。该应用将“三角龙Triceratops ”等单词与其3D模型在AR中配对,父母可以把AR画面录制或拍照,方便日后成为孩子们可参考的学习材料。
    关于更丰富的应用场景的应用,熊子青介绍了目前AR技术主要应用在学习、娱乐、出行、社交等场景,以此阐明AR技术正帮助将人们的生活变得更便利、更有趣。
    例如,在Google search中,设计了许多3D模型,老虎、狮子,甚至是数学公式,让用户在搜寻时能360度观看,也可以用AR方式投射到家中,立体化地了解信息。疫情期间,获得了全球使用者的广大回响。
    关于Google lens智慧镜头应用,用户打开摄像头就可以识别花草、文字、电视、地标、菜单。
    在YouTube中的应用。用户可以一边看美妆博主示范化妆方式,一边可以使用AR功能进行实时试妆。
    Google Map中也应用了AR户型导航。用户可以看到方向指示牌和导览提示,仿佛一个专属的私人导游。该应用是目前GoogleAR应用中使用者最多的应用之一。
    随着手机的普及,营销媒介也发展出基于手机相机的新应用。运用AR将人们带入沉浸式体验,将人们带入品牌世界。Google display network中,Google推出了3D Swirl营销工具,该营销应用在今年下半年正式完成了beta测试版,并且已经看到了用户参与度及品牌影响力的显著提升。
    5G实践前沿。随着5G商用化,ARCore与LG Uplus合作,在韩国首尔进行了AR+5G的实践尝试。在首尔地铁站布建了AR艺术长廊和展示车厢,5G加持能够克服地铁站人多信号差的缺陷,人们能够顺畅地体验到丰富的AR艺术内容。
    昌德宫。联合国教科文组织世界遗产站点。Google与SK Telecom和文化遗产管理局合作,创建了全球首个5G赋能的AR文旅体验。AR导览由一个活化的石狮子带领,游客可以穿越到朝鲜王朝,体验传统习俗和体会朝鲜贵族生活。
    总结
    通过2020 Google 开发者大会,我们看到了谷歌基于算法API方面对于ARCore的进一步升级。让手机会“看”、能“懂”的需求已经随着机器学习、深度API的更新进程不再是困扰AR体验的拦路虎。
    值得一体的是,谷歌正加大力度将人工智能算法整合到ARCore底层,以确保尽可能多的支持市场上参差不齐的手机品类。应用方面,谷歌ARCore采用广撒网的方式,与国内出行、教育、医疗、文化等领域的领先企业进行合作,通过催生越来越多的AR应用场景的诞生,随着量变到质变的转换,爆款AR应用的诞生值得期待。