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 才刚刚起步,未来可期