为用户打造更加逼真和有沉浸感的AR体验
目前关于到为用户打造更加逼真和有沉浸感的AR体验这一类的信息是很多小伙伴们都非常关心的,很多人也是经常在搜索关于为用户打造更加逼真和有沉浸感的AR体验方面的信息,那么既然现在大家都想要知道此类的信息,小编就收集了一些相关的信息分享给大家。
Google ARCore 1.18 近期发布重大更新,通过 Depth API(深度 API)解决了一直横亘在开发者面前的深度理解和遮挡难题。
Depth API 仅凭设备的 RGB 摄像头就可以创建深度图。应用深度图提供的深度信息,虚拟物体能够准确地出现在现实物体的之前或之后,从而与现实场景真正融合,为用户打造更加逼真和有沉浸感的 AR 体验。
本文将从技术角度带你了解 Depth API 的算法和具体原理,并且手把手教你 Depth API 开发流程,让你的应用也能在深度理解上实现技术飞跃。
我们可以通过下面的例子来感受一下 Depth API 的能力:下面两张图是虚拟的 “安卓小人” 和真实的木箱的组合。左图中没有 Depth API,虚拟的 “安卓小人” 如贴纸般重叠在与木箱上层,画面露馅了。右图用了 Depth API,虚拟物体被真实物体合理遮挡,这样看起来才够真。
在用户移动手机的过程中,这个 depth-from-motion 算法记录多个从不同角度拍摄的图像,对比这些图像,从而估算出场景中每个像素的距离。如果设备还搭载 ToF 等主动深度传感器,那些数据会被自动融入计算出来的深度信息中。这样会提升现有深度图能力,这样即使不移动相机镜头,设备也能很好地理解“深度”。同时在一些缺少纹理的表面上,比如白墙,或者包含运动的人或物的动态场景里,搭载主动深度传感器(TOF)也解决了之前的“理解无能”问题。
下图左边展示了一幅静态场景,里面有辆自行车挂在走廊的墙壁,右边是基于当前的相机图片所创建的深度图的可视化表示。
深度图格式
* 每一张深度图都表示为 ArImage
ARCore 使用 Depth16 格式的深度图,其中最高三个位始终设置为 000.
深度图的每个像素值是由无符号 16 位整数表示,其中 13 个最低位表示从相机的图像平面,沿着相机的光轴,到估算表面的距离。该距离以毫米为单位。
· 对运动的要求
Depth API 需要使用 ARCore 的运动跟踪功能。如果设备有主动深度传感器也会一并使用。depth-from-motion 算法实际上会将一对相机图像作为静态场景的两次观测结果。如果这个环境中的某一部分移动了,例如有人在镜头前运动,那么该场景的静态部分将会有估算准确的深度值,但是运动的部分则不会。
对于没有搭载主动深度传感器的设备,想要让 Depth API 更好地工作,用户需要至少移动自己的设备几厘米。
确保深度值的准确估算
深度值的取值范围是 0 到 8 米。当被测物体距摄像镜头的距离在 0.5-5 米之间时能够获取最佳准确率的深度值。随着到摄像头距离的增加,误差会呈二次方增长。
如果没有主动深度传感器,Depth API 就只能通过 RGB 色彩信息来执行深度估算任务。但是像白墙这种少有纹理甚至没有纹理的表面将无法被关到精准的深度值。
假设 A 是真实物体表面上的一点,通过光路投射到深度图上,所对应的点以 a 来表示。在深度图中,a 这一点的深度值与 CA 投影到主光轴(principal axis)的长度相同。这个值也可以被理解为A 在 Z 轴的坐标,在以相机位置 C 为原点的坐标系里。在使用 Depth API 时要注意,我们所要了解深度值不是线段 CA 本身的长度,而是其投影的长度。
下一步,启用 Depth API
了解了 Depth API 的强大,你是不是也迫不及待想要动手实践了呢?接下来我们将手把手教你如何为 Depth API 设置开发环境。尝试在示例应用中,使用遮挡功能并且可视化深度图。跟着小编一步步操作吧。
· 前期准备工作
1. 使用 Android Studio 3.1 版本、 Android 7.0 (API level 24)或更高版本
2. 支持 Depth API 的 Android 设备。具体请查阅支持设备列表
3. 了解 Android 开发的基础原理。更多信息请参考初学者第一个应用开发指南
4. 对 Depth API 有基础了解。如果你是第一次接触 Depth API, 需要读完上文。
打开示例项目
本示例基于 OpenGL。OpenGL 是一个用于渲染 2D、3D 矢量图形的跨语言、跨平台 API。在开始以下步骤前,请再次回顾启用 ARCore 的相关内容。
运行示例项目
Depth API 示例应用可以将虚拟的 “安卓小人” 放置在真实的环境中,你可以开关 “遮挡” 功能,切换查看差异。
* 注意 :当你运行 Android Emulator 时,Depth API 将不能使用。若想检测你的设备是否能支持 Depth API, 请查阅支持设备列表。
请确保你的设备已连接到开发机器,并在 Android Studio 集成开发环境中点击 Run(运行)。
接下来,将你的设备勾选为部署目标,最后点击 OK 确定。如果未安装 Google Play Survices for AR,或者应用版本过旧,系统会自动要求你进行安装或升级。点击 CONTINUE(继续) 从手机的默认应用商店中安装。
启用 Depth
在你首次运行应用或放置 “安卓小人” 时,屏幕上会弹出对话框,提示你启用 Depth。这个对话框只会在首次启用时弹出,点击 Enable (启用),就能实现遮挡功能了。
切换 “遮挡功能” ,展示可视化深度图
如下图所示,点击图中右上角的齿轮图标。屏幕中心会弹出一个对话框。你可以勾选 Enable depth (启用 Depth)、Show depth map(显示可视化深度图)来启用或停用相应功能。
以上就是 ARCore Depth API 技术的入门级课程。如果你对此技术感兴趣,并想深入学习进而应用到自己的 App 上,请持续关注 “谷歌开发者” 公众号,打开菜单开发技术-ARCore,我们将为你奉上 AR 技术相关的一系列新鲜资讯。
ARCore 技术直播分享来了!
本周末 7/18 日,将有一场 ARCore 技术的直播分享,由滴滴 AR 导航高级算法工程师为你深入解析 ARCore 的核心技术及开发应用的技巧,从产品架构、开发流程、用户体验等多方面,和你一起探讨开发 AR 应用的心得体会。
免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!
-
合创汽车试驾预约,快速通道开启豪华体验。即刻预约,享受专属试驾服务,感受智能科技与极致设计的完美融合。...浏览全文>>
-
零跑C16试驾全攻略:零跑C16是一款集智能、空间与性价比于一身的中型SUV。试驾前建议关注其智能座舱系统,支持...浏览全文>>
-
万象汽车试驾,轻松搞定试驾。只需几步,即可预约专属试驾体验。登录官网或APP,选择心仪车型,填写基本信息,...浏览全文>>
-
试驾极氪001前,新手需做好以下准备:首先,提前预约试驾时间,了解车型配置与功能;其次,检查驾驶证、身份证...浏览全文>>
-
职业教育的传承与价值,需在时代发展的逻辑中发展,在技术进步的潮流中进步。二十载的光阴更迭,坚守是优路教...浏览全文>>
-
试驾五菱凯捷可以通过以下几种常见途径进行:1 到店预约试驾 消费者可以前往当地的五菱4S店或授权经销商,...浏览全文>>
-
大力牛魔王试驾全攻略试驾一款新车,尤其是像“大力牛魔王”这样充满科技感的电动车型,需要提前做好充分准备...浏览全文>>
-
想要快速锁定北汽雷驰的试驾名额,您可以采取以下步骤:首先,提前了解北汽雷驰的试驾活动安排。通常品牌会在...浏览全文>>
-
试驾零跑汽车零跑C01,感受其带来的豪华驾乘与卓越性能。这款车型以科技感和舒适性为核心卖点,为用户带来全新...浏览全文>>
-
试驾小鹏P7+是一次令人愉悦的体验,从踏入4S店的那一刻起,就感受到无微不至的服务。工作人员热情迎接,并详细...浏览全文>>
- 合创汽车试驾预约,快速通道开启豪华体验
- 北汽雷驰试驾预约如何快速锁定试驾名额?
- 坦克试驾,开启完美驾驭之旅
- 零跑汽车试驾,如何在4S店快速预约?
- 昌河北斗星X5试驾,简单几步,开启完美试驾之旅
- 大众预约试驾如何快速锁定试驾名额?
- 试驾奔驰迈巴赫S级预约流程
- 极氪007试驾预约预约流程
- 试驾极氪009怎么预约
- 试驾深蓝S05的流程是什么
- 极狐 阿尔法S(ARCFOX αS)试驾,从咨询到试驾的完整体验
- 奔驰预约试驾,轻松几步,畅享豪华驾乘
- 奇瑞新能源试驾,体验极致驾驶乐趣
- 试驾本田雅阁,轻松搞定试驾流程
- Polestar极星试驾,从咨询到试驾的完整体验
- 北汽雷驰预约试驾需要哪些条件
- 捷途旅行者预约试驾,开启完美驾驭之旅
- 荣威预约试驾全攻略
- 山西二本综合院校排名及分数线一览表
- 300分能上的公办专科大学排名一览表