ARCore之初识
一、了解 VR 、AR和 MR
了解 AR、VR 和 MR- VR:虚拟现实(Virtual Reality),利用计算机生成一种模拟环境,使用户沉浸到该环境中。
- AR:增强现实(Augmented Reality),在现有环境的直接视图中,向其中叠加声音,视频,图形。
- MR:混合现实(Mixed Reality),在虚拟世界、现实世界和用户之间搭起一个交互反馈的信息回路,以增强用户体验的真实感。
二、AR的种类
- 基于计算机视觉的 AR:利用计算机视觉方法建立现实世界与屏幕之间的映射关系,使我们想要绘制的图形或是 3D 模型可以如同依附在现实物体上一般展现在屏幕上。
- 基于地理位置信息的 AR:利用GPS、指南针、陀螺仪和加速度计来实现,例如:《Pokemon Go》、AR导航。
三、AR的使用场景
-
功能性产品:主要考虑
用户痛点
,比如AR导航、AR实景翻译、AR试穿,利用AR建立现实与虚拟世界的连接效果,帮助用户更快更高效解决问题。 -
娱乐性产品:主要考虑
用户体验
,比如AR产品展示、AR互动游戏,需要凭借运动跟踪、虚实融合、虚实交互和模型控制来发挥AR的作用,起到引导、展示和互动的效果。
四、AR的优秀应用
-
Pokemon Go:这是一款同时基于计算机视觉和地理位置信息的 AR 游戏,风靡全球。
Pokemon Go
-
美图秀秀:利用ARCore构建自拍滤镜,增强脸部 API 提供高精度的由 468 个点组成的密集 3D 脸部网格,追踪嘴部动作、眨眼、点头和一些复杂的细节。
滤镜
-
阴阳师:这是一款来自网易公司开发的游戏,通过在现实纸上绘制特定的图形,即可通过摄像头在屏幕上渲染出游戏角色,给用户带来了一定的乐趣性。
阴阳师
-
滴滴导航:利用ARCore的环境理解和运动跟踪功能,确保手机始终识别用户方位,给出正确的路标指导。
导航
五、ARCore的介绍
ARCore 是 Google 的增强现实体验构建平台。 ARCore 利用不同的
API
让您的手机能够感知其环境、理解现实世界并与信息进行交互。ARCore 使用三个主要功能将虚拟内容与通过手机摄像头看到的现实世界整合:
六、ARCore的支持要求
6.1 获得ARCore支持基本要求
-
开发要求
- 同时支持 SDK 和 NDK (已具备)
- Android studio 3.0 或更高版本 (已具备)
- SDK platform 7.0 (API level 24) 或更高版本 (已具备)
- ARCore SDK for Android (不具备,官网下载)
-
运行环境
- Android 7.0 或更高版本 (不完全具备)
- 已安装 ARCore.apk(国内应用商店可下载)
获得ARCore认证(不具备)
-
代码要求
- 添加依赖项
- 执行运行时权限检查:是否支持ARCore
- 执行运行时权限检查:请求摄像头权限
- 执行运行时权限检查:是否安装ARCore.apk
如何获得ARCore认证,先来读一段官方的说明:
认证很重要,因为我们希望用户在使用你的 AR 应用的时候能得到良好的用户体验。这主要关系到
运动追踪的灵敏性
;运动追踪通过结合摄像头的图像
和运动传感器的输入
来决定用户的设备在真实世界的移动。为了认证每一款设备,我们检查
摄像头
,运动传感器
以及设计结构的质量,确保他们的功能达到预期。 另外,设备需要足够强大的CPU
来整合硬件设计,以确保达到优秀的性能
和高效的实时计算能力
。我们一直在与
生产商
合作,确保他们的硬件
和设计
达到这些要求。同时,我们内部也在努力工作确保 ARCore 与我们认证的每一款设备可以良好的集成,为用户提供最好的体验。
简单来说,具体支持认知细则不告诉你们,只允许匹配的机型才支持ARCore,个人认为Google工程师为了ARCore能准确计算,在通过拿到设备的参数进行测试后才能给予认证。
具体支持机型可以在这个页面查询:https://developers.google.com/ar/discover/supported-devices?hl=zh_cn#top_of_page
支持的机型部分截图6.2 获得ARCore更高的水准
- 使用运算能力更强的CPU;
- 支持深度API(带有特殊摄像头和tof传感器的设备更有可能获得更好、更准确的结果,并带来更丰富的体验。);
- 支持多种GPU纹理分辨率-2048x1536、1280x960、480p
七、我们需要面临问题
- 硬件跟不上,无法获得认证(可功能仅开放给手机)
- 学习成本高
- 测试设备机型少
八、2020 Google 开发者大会的更新内容
8.1 延伸功能:
-
增强面部识别
。提供了高精度468点的3D Mesh。可以精准地追踪脸部细微表情,不需要深度传感器,而是运用机器学习(ML)中的深度学习,以达到这样的功能。同时支持安卓及IOS用户。 -
环境光HDR
。要让虚拟物品看起来更逼真,更融入实景,其中最重要的功能之一就是要有正确的光照呈现。运用了ARCore所提供的360度全景光照信息,图中的虚拟小火箭,就可以有了对应的反光及影子。 -
Scene Viewer场景观测器
。让开发者可以直接在网页上向用户提供方便、好用的3D内容及AR浏览功能。 -
Agumented Image增强图像
。可以检测手机拍摄到的图像信息,并与预先设置在数据库中的图像进行匹配。可精确匹配包括移动中的图像,或是同时检测多个图像。 -
云锚点
。为安卓和iOS用户创建共享的跨平台体验。从两个人到数百人,都可以在各自的设备上一起种花、浇灌。
8.2 新增功能:
-
迅速放置API(Instant Placement API)
:借助迅速放置API和几行代码,开发人员可让用户将AR对象锚定到2D图像中,而不需要确切知道AR对象具体的3D位置。如果需要更精确的比例,可以针对3D位置进行三角测量。 -
景深应用API(Depth API)
:景深API可以从单个RGB相机生成地图。原理是通过不同角度拍摄多张图像,并在移动手机时进行比较,以估计到每个像素的距离。尽管只有一个RGB相机,但是添加了景深传感器(如飞行时间传感器)会让景深地图效果更好。 -
持久云锚点(PersistentCloud Anchors API)
:可以让二个人甚至是二百人在同一个虚拟世界共享与互动。全新的持久云锚点则加强了这个功能,让用户将虚拟内容“储存”到任意现实场景中,将了文字、影像信息、或3D人物虚拟内容的和现实世界地点关联起来,永久保存共享。
九、结合ARCore可尝试的功能
9.1 云AR放样
在 2020 Google 开发者大会中,对于ARCore的新增技术的「迅速放置
」和「持久云锚点
」可以与测绘行业能有很大的发展性。
从目前我们所支持的AR放样中,带上联合作业中心的点数据,可以将联合作业+AR放样功能结合成云数据、云放样、云存储
,实现云AR放样功能。
9.2 AR测量
AR测量十、下期预告
一、深度API是什么?它可以解决什么问题?
二、深度API的作用下,如何实现遮挡?
三、除了遮挡,深度API增强真实感的其他方式
四、深度API原理剖析学习
十一、参考文章
- ARCore官网:https://developers.google.com/ar?hl=zh_cn
- AR云 :https://zhuanlan.zhihu.com/p/44079215
- 漫谈AR发展趋势,预见AR未来!:https://zhuanlan.zhihu.com/p/46634743
- 一点关于移动AR产品设计的经验分享:https://zhuanlan.zhihu.com/p/53256714
- https://github.com/hiSirius/Indoor-navigation-techology
- https://github.com/lferruzzi/hellosceneform