导读:AR技术飞速发展,被广泛应用于游戏、医疗、旅游、电商等行业。那么对于AR系统的整体设计和应用是如何操作的呢?商汤泰坦公开课第006期联合“SLAM技术及应用”暑期学校与研讨会共同推出“移动增强现实系统的设计与应用案例解析”&“AR应用开发”线上公开课。由浙江大学-商汤三维视觉联合实验室章国锋教授和商汤科技研究总监盛崇山对AR系统的设计和应用进行了整体的解读。
AR系统整体框架包括“输入数据—三维注册—虚实融合”三大部分。
第
1
则
-THE FIRST-
输入信息
输入的数据不同,处理的方式也会有很大的区别。目前,可输入的数据十分多样化,例如:
IMU 数据
•Time stamp
•Acceleration
•Angular velocity
图像数据、深度数据
•Time stamp
•Exposure time
•RGB
•Depth
校正数据
•Camera 校正参数 (Pinhole Model)
•Projection: fx fy cx, cy
•Distortion: k1, k2, k3, k4
IMU 校正参数
•Bias, Scale, Misalignment
•Noise, Bias noise
外参
•Rotation, Translation
•Time offset
第
2
则
-THE SECOND-
三维注册与重建
三维注册与重建是AR系统的基础组件。
三维注册不仅包括恢复相机相对于场景的位姿,而且还包括对物体的识别和位姿恢复。前者一般采用SLAM技术,包含相机跟踪、地图构建和更新、回路检测和闭合、重定位等模块。
三维重建具体包含物体和场景的三维重建,对于实现高品质的AR效果来说非常重要。
关键词
SLAM
具体来说,SLAM技术中的相机跟踪,一般包括特征提取与匹配,以及相机位姿估计。为了实时性的需要,特征跟踪一般要放在前台线程。
但是如果有IMU数据的话,情况将会有所不同。我们可以直接通过积分得到位姿,特征提取与匹配可以放到后台线程执行,以相对较低的频率(如10Hz) 矫正IMU和相机的状态。
地图的创建和更新一般需要实现以下功能:
加入新的关键帧或删除旧的关键帧
优化关键帧的位姿和地图点的三维
三角化出新的三维点云
保证比较频繁、快速的地图优化局部优化:
局部优化:滑动窗口:优化当前帧相邻关键帧和三维点
全局优化:更好地消除累积误差
5. 在线删除关键帧和三维点,避免系统资源开销太大
一般用词袋技术或者在线建词汇树或KD-Tree的方式进行回路检测和闭合。我们可以检测当前帧的图像是不是跟之前的某一帧图像(一般是关键帧)存在相同的内容,检测到回路之后,再通过集束调整或位姿图优化来消除误差累积,实现回路的闭合。
跟踪难免会失败,当跟踪失败之后需要快速地恢复相机的位姿,也就是要进行重定位。常见的策略有:
PTAM :通过度量当前帧和关键帧的缩略图的相似度来进行重定位
ORB-SLAM :通过提取 ORB 特征并借助预先构建词袋字典树来进行快速的候选帧选取和特征匹配
基于深度学习的重定位 :对光照变化有更好的容忍度
关键词
三维物体识别与跟踪
根据物体的类型不同,可以分为平面标志物和三维物体的识别与跟踪。一般需要进行特征提取,然后进行特征匹配:
特征点法
• 二进制描述子代替 SIFT 描述子
• 近似最近邻匹配方法 如 k d 树 加速匹配
纹理较丰富的三维物体
•借助特征点匹配来建立所提取的特征点与数据库中的特征点(有三维位置)的对应关系
弱纹理物体
• 利用颜色先验模型来计算跟踪对象的前景背景的概率图,进而利用前背景的区域性先验信息估算出跟踪对象的区域信息。
根据不同的物体类型,所采用的算法也会有差别:
物体检测识别
• 平面标志的检测识别:图像检索技术( 词袋技术、 VLAD)
• 三维物体:纹理丰富 (词袋技术 )、 纹理较弱(深度学习)
物体位姿估计与跟踪
• 纹理丰富的三维物体:特征点匹配得到2D-3D点匹配 通过 PnP 计算相对位姿
• 缺乏纹理的三维物体:物体识别估计初始位姿迭代优化目标函数(对齐三维物体投影边和图像边缘)跟踪求解
• 平面标志物:单应性矩阵分解得到位姿
关键词
三维重建
三维重建包括多平面重建和稠密几何重建。多平面重建适用于简单的水平和垂直平面的重建,采用稀疏点云即可完成。
而对于复杂的情况,则需要稠密几何重建,包括运用多视图实时深度估计、在线渐增式稠密三维点云拓展以及在线稠密网格结构生成。
第
3
则
-THE THIRD-
虚实融合
为了使虚拟物体模能够和真实场景无缝的融合,我们需要进行光照估计、真实感绘制、遮挡处理以及阴影投射等处理。
关键词
光照估计
根据场景的平均亮度计算环境光来更好的测算场景亮度。
对于全局光估计,则需要计算出用于表达全局光信息的球谐系数,然后根据球谐系数来估计光照亮度信息
关键词
遮挡信息处理
基于三维重建的遮挡处理需要绘制三维重建出的网格深度;绘制场景中的其他用于增强现实的虚拟模型。对于人像抠图的遮挡处理则更加复杂,不仅需要人像抠图还需要人的深度估计。
关键词
阴影绘制
平面阴影投射需要把虚拟物体绘制到shadow map中。绘制物体放置所在的虚拟平面,采用shadow map算法,阴影内的输出阴影颜色,阴影外的采用全透明绘制。
复杂阴影投射则稍有不同,把虚拟物体绘制到shadow map中,绘制重建出的网格,采用shadow map算法,阴影内的输出阴影颜色,阴影外的采用全透明绘制。
目前,AR+教育,AR+游戏、AR+旅游、AR+工业已经全面“开花”,推动多种行业发展。
第
4
则
-THE FOURTH-
SenseTime SenseAR
以商汤科技为核心,联合若干战略合作伙伴推出的SenseAR 开发平台致力于提供一整套 AR 解决方案,包括 AR 底层驱动引擎、AR 内容创作工具链和 AR 硬件装置推荐,为各行各业的商家和用户提供 AR 服务,促进AR生态的发展,从而让更多用户享受到AR为生活和工作带来的便利。
可以实现以下基本功能:
运动跟踪:让手机可以理解和跟踪它相对于现实世界的位置。
环境理解:让手机可以检测各类表面(例如地面、咖啡桌或墙壁等水平、垂直和倾斜表面)的大小和位置。
光照估计:让手机可以估测环境当前的光照条件。
三维重建:稠密网格实时重建,遮挡碰撞。
人物:手势等。
其他:图像识别跟踪、多人互动等。
利用该平台进行6DOF跟踪&平面检测流程如下:
平台结构如下:
其中最为重要的是SDK(包括:C/Java/Unity3D版本。)SDK封装了Camera、IMU数据的获取,支持RGB、RGBD、IMU、多视频流等。ARServer内部采用多算法框架,根据SDK端的配置,启动相关的算法。以下为SDK结构:
关键词
SenseTime SenseAR功能案例
课上列举出图像识别与跟踪、手势识别与跟踪、稠密网格实时重建、多人互动&AR云四种功能案例。
具体以图像识别与跟踪为例,SenseAR平台提供图像识别与跟踪功能,借助该功能可以构建在用户环境中响应2D图像的AR应用。开发者只需要提供一组参考图像,在相机预览中检测到图像时,SenseAR会实时输出这些图像的物理位置,利用这些信息可以添加自定义的AR效果。
其中数据载入三种方式:
图片
pattern文件
spk包文件
算法配置:
识别列表:
SenseTime SenseAR应用开发成本低,并且集成到了Unity3D的ARFoundation中 ,不需要额外的开发就能支持SenseAR支持的平台;融合 AI 技术, 不仅能提供可靠的 6DoF 跟踪定位和三维结构恢复, 而且能对人体、物体和场景进行检测、识别和理解,深度满足各种 AI+AR 应用的需求。
如果你想要进行更多AR领域开发,欢迎使用SenseAR开发者网站:
http://openar.sensetime.com
全部课件
http://www.cad.zju.edu.cn/home/gfzhang/download/2019-SLAM-Summer-School-slides.zip
商汤泰坦公开课
关注我们 不再迷路
▼点击阅读原文 即可发表你的评论!