SLAM+AR 技术与应用

一、概述

图像处理领域涉及
AR的技术可以抽象为这么一类技术:

通过图像和其他传感器信息计算摄像机的位置和图像内环境三维结构信息,并结合3D渲染提供更自然的人机交互能力。

如图1所示,位置和结构信息一般包括相机机位(Camera Pose)和点云/3D模型(Point Cloud/Mesh),不同的技术问题,侧重点不同。

图1 AR相关技术关系图
Marker/Markerless Tracking只关注相机机位的跟踪,这也是AR最开始的一类技术,它的技术指标主要要求运算速度快,保障实时性,还有就是跟踪稳定且不易跟丢。Marker一般是一张2D的图片,因此处理相对简单,世界坐标系往往就以Marker所在平面为XY轴平面,以垂直于该面的法向量为Z轴。通过将摄像机图像上的特征点和Marker中的特征点进行匹配,就可以计算出摄像机相对于Marker的位置,如图2所示。

图2 Marker AR原理图
IMU(惯性传感单元)是现代智能手机几乎都配备的元件,通过IMU可以准确获取手机(相机)的旋转维度的变换,但是对于空间位移很难准确衡量,所以IMU经常作为其他技术的辅助,比如SLAM。
SLAM(同时定位并建图),顾名思义,它的目的同时包括了计算Camera Pose和扫描环境三维结构信息,和它非常类似的是SFM(Structure From Motion),二者最大的区别在于SFM常用于3D重建,一般对重建的结构细节以及精细度要求甚高,重建的后结果多是面向用户,对美观度也有一定要求,因此一般只能离线处理;而SLAM应用场景包括AR、机器人控制等等,一般要求实时性,所以扫描的环境结构信息一般相对粗糙,而环境的信息也主要为了辅助自身的定位。SLAM/SFM相比于Marker Tracking的最大区别在于事先并不知道任何三维空间的信息,需要首先从两张二维的图像(有一定的视差)中恢复三维结构(如图3所示),继而不断的跟踪并扩张地图。SLAM建立的3D地图的坐标系是随机的,而后面提到我们做了一个有趣的改进是可以通过一张Marker作为SLAM的初始地图,从而使得SLAM的坐标系可以确定。


图3 从二维图片恢复三维结构
3D Object Tracking,即三维物体跟踪,这个问题既类似于Marker的跟踪也类似于SLAM,Maker Tracking是计算2D的图片相对于的相机的位置,SLAM解决的其中一个问题是在构建好的三维点云中,准确定位到自身的位置并持续跟踪;3D Object Tracking要解决的问题是准确定位到3D物体相对于相机的位置。和Marker Tracking相比,是把跟踪2D的图片升级为跟踪3D的物体,区别在于2D的图片始终位于三维空间中的一个平面上,方便构建点云和世界坐标系。和SLAM相比,SLAM构建好的环境和自己的要定位的环境必须是相对稳定的,而3D物体识别时,背景信息往往是变化的。3D Object Tracking需要的先验知识一般是一个3D模型,这个模型有时候可以通过SLAM或者SFM得到。
Object Segmentation,即物体分割,是在摄像机图片中将指定的物体分割出来或是将前景后景分离开来。这类问题实现方法很多,其中有一类是利用物体3D模型的信息将图片中的物体找到并分离出来,同时还可以准确计算3D物体相对于Camera的位置。这类技术又和3D Object Tracking有相辅相成的作用,比如如果能够对物体先进行分离,那么跟踪就会变得简单些,反之,如果先能够追踪到物体的位置,那么对物体进行分离也相对容易。
在基于单目的摄像头的AR技术中,特征点(Feature)是最通用的一项技术手段,通过匹配不同帧图像之间特征点的对应关系,我们才能够准确计算相机的运动,从而恢复环境三维结构。特征点相关算法很多,在移动端,为了提高计算效率,倾向使用ORB和Freak,比如SLAM中我们就使用了ORB特征,Marker Tracking中我们使用了Freak特征;而类似SIFT这种,匹配精度高,但是运算效率低,一般用于SFM这类技术中。使用特征点的好处在于,特征具有良好的尺度不变形、方向不变形和光照不变形等特性,匹配结果较为鲁棒。光流法(Optical Flow)是相对于特征点的另一类跟踪相机运动的方法,它的基本原理是不去计算特征点以及特征描述子,而是直接使用像素块进行匹配,提高了运算效率,而其缺点是光流法只适合匹配相邻的两帧图像来计算运动变化,它要求光强度守恒(Brightness Consistency),所以无法用于重定位等技术实现。
每项AR技术背后都孕育着一些新型的业务形态,AR业务主要围绕营销互动和实用工具两类展开,如图5所示。最早的Marker Tracking催生了AR互动营销,AR教育等业务的发展,手淘的ARMagic互动平台就是依赖此技术建立起来;SLAM技术支撑了AR实景宝贝,让3D的商品能够更加自然地进入用户的视野;AR捉猫猫也是依靠IMU在AR中的应用才得以铺展开来。更重要的是这些技术潜力还未完全释放,在现有技术体系中我们已经规划了未来一些业务的蓝图:

AR说明书,通过AR的方式展示实际生活、生产环节中一些器械的使用方式或是工作原理。比如家电(洗衣机、电饭煲等)的3D形式的说明书(如图4所示),工厂内一些机器的虚拟操作指南等。这项业务主要依托于3D Object Tracking和SLAM技术。

图4 AR说明书示例图

AR场景互动,在一些线下场景(商场、休闲场所、博物馆等),通过AR的方式完成的更加自然、丰富的互动。比如目前规划的上海星巴克新概念旗舰店,就计划利用AR的方式展示店内的传统机器和传统工艺的历史,让用户能够用AR的方式探索星巴克的历史文化。同时,结合支付、物流等环节,完成一体化的有趣购物体验。

AR直播/AR视频,在直播的场景通过布置一些特殊的“标记”,在直播和视频中叠加更为丰富的互动特效。
AR业务的形式优势不仅仅在于新颖,而是它通过摄像头打通了虚拟和现实世界,也就有了天然的贯通线上和线下的优势,是进行“新零售”的探索一个利器。

图5 AR技术体系和业务关系图

二、SLAM技术

提到SLAM开源项目,自然先想到大名鼎鼎的ORB-SLAM。首先简单介绍下ORB-SLAM2的算法结构。如图6所示,ORB-SLAM2主要分为三个线程,Tracking用于跟踪Camera Pose,LocalMapping用于构建点云地图,Loop Closing用于闭环检测,优化点云位置。Place Recognition,即重定位,是利用BoW(Bag of Words)模型在已经构建好的地图内定位Camera。虽然ORB-SLAM2整体效果在众多开源项目中脱颖而出,但他仍然只是一个实验室产品,距离真正的实用还需要很多工作要做。将该项目移植到移动端后,其性能表现如下:

  1. iPhone7 Plus, 15FPS; Android 三星Note7 1-2FPS
  2. BoW词库大小140M,加载时间8秒,占用内存400+M
  3. 位置跟踪不稳定,存在抖动
  4. 代码存在很多Bug,尤其内存泄露非常严重


图6 ORB-SLAM2

因此,SLAM技术在移动端的应用必须能够突破“硬件资源有限”这个障碍。

2.1 平面检测

SLAM构建出了3D点云地图,并估计出了Camera Pose,然而对于AR应用,还无法确定3D模型的摆放位置。比如我们需要在桌面上摆放一个花瓶,我们还需要知道在3D点云地图中,桌面对应的位置,这就需要上面流程图里提到的平面检测。
转换为一个数学问题描述:在空间中我们有一系列的点P,并给出一个方向向量 D ,求一个法向量平行于D 的平面并使得所有的点距离该平面的距离之和最小。
这是一个非常典型的最小二乘估计问题,因此可以利用已有的数学工具求解,如高斯牛顿,LM算法,SVD分解等等。如果是检测水平面,其中D 是根据重力传感器得到的竖直方向,即平面的法向量方向得以确定;

2.2 Marker+SLAM

SLAM初始化建立的点云世界坐标系是随机的,对于单目SLAM,scale信息是无法确定的,即无法确定点云世界坐标和真实尺寸的比例。在某些情况下,AR应用希望能够和真实的尺寸一一对应,在这种情况下我们提出了利用Marker作为SLAM的初始地图的方法。通过一个事先确定的Marker,建立一个已知scale信息的世界坐标系,在此坐标系的基础上通过SLAM跟踪并扩张地图,那么在叠加3D模型时就可以安装其真实尺寸展示。算法上的区别就在于SLAM首先要去识别Marker,而不是自己去初始化地图,识别Marker的方法也可以借鉴Marker Tracking的相关技术。

三、扩展与思考

SLAM技术是AR算法领域最核心的技术的技术之一,ARKit和ARCore的推出也验证了各大公司对其重视的程度。在SLAM基础上,去完成Marker Tracking或者Object Tracking等工作,也能够大大提高整体跟踪效果。理解AR的技术本质,更有助于理解AR应该如何应用。而在业务层面,AR缺少的不是技术,而是创意!

SLAM AR 技术与应用相关推荐

  1. Doritos 沿用 SLAM AR技术推出增强现实体验以鼓励现场音乐迷重返活动

    为了鼓励现场音乐爱好者重返今年夏天的活动,Doritos 推出了"Make Your Play"平台.该平台得到了Slam AR技术的支持,建立虚拟场景以增添活动趣味性,粉丝可以参 ...

  2. 先试后买!解析购物新体验背后的移动AI+AR技术

    导读:本文将介绍如何以人像AI算法作为驱动力,结合3D穿戴/2D上妆的仿真渲染,直接将无线AR互动技术切入电商腹地,带来全新的线上购物体验. 背景 AR(增强现实)并不是一个新鲜的词汇,15年开始各大 ...

  3. 国内AR技术领头羊十二居对ARKit充满期望!

    坦白说,看到苹果发布ARKit并不意外,毕竟苹果是除了微软以外在AR布局最完整的公司之一,很多优秀的AR技术公司都被苹果收购雪藏,早在去年参加Project Tango的Hackathon的时候我已经 ...

  4. AR技术揭秘:如何实现虚拟与现实的完美融合?

    什么是AR技术? AR技术(Augmented Reality)是指将虚拟物体叠加在现实世界中,使得用户可以与虚拟物品进行交互.AR技术的核心是通过摄像头捕获到真实环境下的图像,并将虚拟物体加入到其中 ...

  5. AR技术的应用和限制

    随着AR技术的不断发展和普及,越来越多的AR应用场景被开发出来.以下是一些新的.更深入的AR应用场景: 教育领域:AR技术可以为教育提供更加生动.直观.互动的学习方式.比如,AR技术可以在学生的书本. ...

  6. 共话VR AR技术落地和行业应用创新,2017首届江苏虚拟现实发展大会圆满落幕

    在经历火爆和寒冬后VR行业正趋于冷静. 9月8日,由江苏省工程师学会主办,镁客网承办的首届江苏虚拟现实发展大会在南京未来科技城盛大开幕.各政府领导.中国工程院院士谭建荣以及来自VR/AR行业顶级专家. ...

  7. 手术革命:这三家公司如何用AR技术辅助医疗手术

    来源:资本实验室 作为一种重要的职业,外科医生特别是手术医生需要具备丰富的专业知识,还需要掌握精准的手术操作技术,这都需要不断的学习与练习. 受学习资料.手术练习材料等软硬件条件的制约,医生进行手术学 ...

  8. VR/AR技术依然红火:何时迎来爆发点

    2016年被称为VR/AR元年,这一年VR/AR着实火了一把,VR/AR厂商如雨后春笋一般大量出现. 而进入到2017年,VR/AR则略显沉寂,不仅新产品发布明显放慢.而且有关VR/AR的投资也更加谨 ...

  9. php ar 模式,AR技术也被称为什么技术

    AR技术也被称为虚拟现实技术.AR技术是一种将虚拟信息与真实世界巧妙融合的技术,广泛运用于多媒体.智能交互.传感等多种技术手段,将计算机生成的文字.图像等虚拟信息模拟仿真后应用到真实世界中. 本教程操 ...

  10. 第一百二十一期:当新闻报道用上AR 技术,能为读者带来什么?

    「有一种名为记忆宫殿的记忆术,要点就是在人脑内建立起虚拟的空间场景,并把各种信息与空间产生联系.如果我们也能为每一起新闻建立起空间的概念,显然也会给读者带来更深刻的印象.」 作者:木斯 大部分新闻都拥 ...

最新文章

  1. 何为Java 中的多态?
  2. python sys.exit_Python程序退出方式(sys.exit() os._exit() os.kill() os.popen(...))
  3. 单引号、双引号 转义符
  4. 面试官:为什么HTTPS是安全的?
  5. 为什么要强制弃坑Fastjson而主推Jackson?
  6. centos6.3下搭建LAMP环境
  7. PCA与SVD的关系
  8. Codeforces Round #586 (Div. 1 + Div. 2) D. Alex and Julian 数学 + 思维
  9. [react] 状态管理器解决了什么问题?什么时候用状态管理器?
  10. C# 声明方法关键字
  11. sklearn之Multioutput 估计器
  12. 最近发现了一条新的“致富”路
  13. Java中实现对象的比较
  14. useCallback()和useMemo()的作用
  15. 堪比黑石 花旗、摩根大通的股东 揭开贝莱德的神秘面纱
  16. 英特尔显示器音频_联想YOGA C940英特尔移动超能笔记本评测:小身材也有大能量...
  17. java编写记事本代码
  18. 作业收集小程序推荐|视频作业收集、图片作业收集、文档作业收集
  19. javaScript入门,新手小白也能会
  20. js高效生成一组随机数(不重复)

热门文章

  1. 训练创新思维的方法:曼陀罗思考法
  2. 文件服务器+快照恢复,删除vmware ESXi快照文件 – 以任何方式恢复?
  3. 水溶性CdTe/CdSe/ZnS量子点 深紫外发光光谱PL620nm-820nm
  4. 【人生如逆旅,我亦是行人】-半年总结
  5. 解析ipa生成plist文件
  6. JPEG图像格式及文件结构
  7. Ios常用第三方动画框架(三)
  8. Android audio 二 AudioRecord 分析上
  9. Photoshop设计精讲精练笔记(一)
  10. 计算机科学与技术名言,关于科学的名言(20个最值得一读的科技名言)