AR是一个瓶子,这个瓶子可以装天下。
沪江网架构师 李超如是说。
《AR在直播系统中的应用》的学习笔记。
了解VR/AR/MR的概念和特点,了解当前AR技术的发展阶段。
VR/AR/MR介绍
- VR:虚拟现实,可以完全沉浸到该环境中
- AR:增强现实,将虚拟世界与现实世界结合到一起,并能进行互动
- MR:混合现实技术,虚拟环境中引入真实场景
AR技术与现状
- 2017年6月5日,苹果发布ARKit
- Tango,Google眼镜
- AR应用场景
- 游戏
- 电商
- 教育
- 直播
AR核心概念
- 特征点:计算机视觉中的一种关键技术,通常用在人脸识别中。
- 特种点是指图像灰度值发生剧烈变化的点或者在图像边缘上曲率较大的点。像边缘特征点,角点等都是常见的特征点。
- 运动追踪:ARKit使用视觉惯性测距技术获取手机的姿态
- 通过采集对的图像序列进行计算机视觉分析,找出其特征点在连续的图像帧之间的位置变化,再通过设备的运动传感器,最终得到设备的位置和方向。
- 场景理解:平面检测,识别地面,桌子等平面。
- 识别的方法,区域中Y值为0的区域
- 光线评估:估算当前环境的光线强度,使虚拟物更真实。
ARKit运行机制
- ARKit三个核心类
- ARCamera:不停的获取手机拍到的图像
- ARSession:三大概念处理
- ARSCNView:展示
- ARKit虚拟物品
- SCNScene:画布
- SCNNode:虚拟物品
- SCNMaterial:纹理,材质
- ARKit运行机制
- ARConfiguration
- ARFrame:AR帧
- ARAnchor:锚点,控制虚拟物品的位置
ARKit Demo任意门
- Demo演示
ARCore运行机制
- ARCore核心Session类
- 运动跟踪、场景理解、光照评估
- ARCore运行机制
- Session
- OpenGL ES
- GLSurfaceView
- View组件
- Surface、SurfaceTexture、SurfaceView、GLSurfaceView、TextureView等组件
- OpenGL ES
- 矩阵变化
- 什么是EGL
- OpenGL ES API:控制GPU
ARCore与ARKit区别
- 核心算法相同
- ARKit API相对完整,ARCore只关注核心算法
- ARKit可以商用,ARCore只能在有限的机型上测试。
AR在直播系统中的应用
- 视频通话与AR
- 音视频通话的基本原理:采集,编码,传输,解码,渲染。AR在视频通话中的实现与本地的AR应用有着本质的区别。
- 难点:
- AR与非AR客户端如何交互,ARKit和ARCore如何互通?
- AR端无法直接从ARCamera获取视频
- 帧率过高导致传书码流过大
- 设置参数及启动Session
- 获得锚点及设置虚拟物品
- 展望
- 裸3D离我们还很遥远,但通过手机我们可以实现部分黑科技,可以将AR认为是一个瓶子,这个瓶子可以装天下
- 目前AR才刚刚起步,未来可期