AR技术原理

作者: 困卡 | 来源:发表于2017-05-22 16:48 被阅读3174次

    AR从其技术手段和表现形式上,可以明确分为大约两类:一是Vision based AR,即基于计算机视觉的AR,二是LBS based AR,即基于地理位置信息的AR,我们分门别类对其进行概念讲解和原理解析。

    Vision based AR

    基于计算机视觉的AR是利用计算机视觉方法建立现实世界与屏幕之间的映射关系,使我们想要绘制的图形或是3D模型可以如同依附在现实物体上一般展现在屏幕上,如何做到这一点呢?本质上来讲就是要找到现实场景中的一个依附平面,然后再将这个3维场景下的平面映射到我们2维屏幕上,然后再在这个平面上绘制你想要展现的图形,从技术实现手段上可以分为2类:

    1) Marker-Based AR

    这种实现方法需要一个事先制作好的Marker(例如:绘制着一定规格形状的模板卡片或者二维码),然后把Marker放到现实中的一个位置上,相当于确定了一个现实场景中的平面,然后通过摄像头对Marker进行识别和姿态评估(Pose Estimation),并确定其位置,然后将该Marker中心为原点的坐标系称为Marker Coordinates即模板坐标系,我们要做的事情实际上是要得到一个变换从而使模板坐标系和屏幕坐标系建立映射关系,这样我们根据这个变换在屏幕上画出的图形就可以达到该图形依附在Marker上的效果,理解其原理需要一点3D射影几何的知识,从模板坐标系变换到真实的屏幕坐标系需要先旋转平移到摄像机坐标系(Camera Coordinates)然后再从摄像机坐标系映射到屏幕坐标系(其实由于硬件误差这中间还需要理想屏幕坐标系到实际屏幕坐标系的转换,这里不深究),见下图。

    图片1.png

    在实际的编码中,所有这些变换都是一个矩阵,在线性代数中矩阵代表一个变换,对坐标进行矩阵左乘便是一个线性变换(对于平移这种非线性变换,可以采用齐次坐标来进行矩阵运算)。公式如下:

    图片2.png

    矩阵C的学名叫摄像机内参矩阵,矩阵Tm叫摄像机外参矩阵,其中内参矩阵是需要事先进行摄像机标定得到的,而外参矩阵是未知的,需要我们根据屏幕坐标(xc ,yc)和事先定义好的Marker 坐标系以及内参矩阵来估计Tm,然后绘制图形的时候根据Tm来绘制(初始估计的Tm不够精确,还需要使用非线性最小二乘进行迭代寻优),比如使用OpenGL绘制的时候就要在GL_MODELVIEW的模式下加载Tm矩阵来进行图形显示。

    2) Marker-Less AR

    基本原理与Marker based AR相同,不过它可以用任何具有足够特征点的物体(例如:书的封面)作为平面基准,而不需要事先制作特殊的模板,摆脱了模板对AR应用的束缚。它的原理是通过一系列算法(如:SURF,ORB,FERN等)对模板物体提取特征点,并记录或者学习这些特征点。当摄像头扫描周围场景,会提取周围场景的特征点并与记录的模板物体的特征点进行比对,如果扫描到的特征点和模板特征点匹配数量超过阈值,则认为扫描到该模板,然后根据对应的特征点坐标估计Tm矩阵,之后再根据Tm进行图形绘制(方法与Marker-Based AR类似)。

    LBS-Based AR

    其基本原理是通过GPS获取用户的地理位置,然后从某些数据源(比如wiki,google)等处获取该位置附近物体(如周围的餐馆,银行,学校等)的POI信息,再通过移动设备的电子指南针和加速度传感器获取用户手持设备的方向和倾斜角度,通过这些信息建立目标物体在现实场景中的平面基准(相当于marker),之后坐标变换显示等的原理与Marker-Based AR类似。
    这种AR技术利用设备的GPS功能及传感器来实现,摆脱了应用对Marker的依赖,用户体验方面要比Marker-Based AR更好,而且由于不用实时识别Marker姿态和计算特征点,性能方面也好于Marker-Based AR和Marker-Less AR,因此对比Marker-Based AR和Marker-Less AR,LBS-Based AR可以更好的应用到移动设备上。
    LBS-Based AR导航类应用,由于需要显示的信息较多,会出现以下两个问题。
    物体相互覆盖无法显示的问题
    采用实时聚类技术,将互相覆盖较严重的标签进行实时合并,当用户点 击聚合标签时,聚合标签聚合的所有标签都以列表的形式显示出来,再供用户二次选择。
    点选几个物体相互覆盖部分时的物体选择问题。
    采用射线相交技术,当用户点击屏幕时,通过坐标变化,把2D的屏幕 坐标转换为3D的射线,并判断该射线是否与3D场景中的标签相交, 如果相交,则把所有相交的标签以列表的形式显示出来,再供用户 二 次选择。

    硬件方面

    硬件技术难点:
    交互技术
    手势操控:微软HoloLens是利用手势进行交互的、最有特点的AR硬件。戴上HoloLens眼镜后,可通过手指在空中点选、拖动、拉伸来控制虚拟物体、功能菜单界面。比如利用Air tap 手势打开全息图,利用Bloom 手势打开开始菜单。
    语音操控:手势操控固然解放了双手,但是它有着致命的缺陷,那就是频繁的抬手会造成手臂酸软。笔者在利用Leap Motion体验小游戏时,发现这种问题尤甚。而语音操控便是更好的人机交互方案。现在微软Cortana、Google Now、苹果Siri、亚马逊Echo都是优秀的语音识别助手,但是他们的识别率还是不高,只能作为辅助操作工具,智能程度也远远达不到AR交互需求。
    体感操控:假设有一天全息通话成为了现实,那么除了语音、视觉交流之外,你是否可以和远程的朋友进行体感交流(比如握手)?想要获得更加完美的增强现实体验,体感外设显然是非常重要的一环。现在,已经有不少厂商推出了体感手套、体感枪等外设。只是这些设备功能还很单薄,还有着极大的改进空间。

    镜片成像技术

    无论是增强现实还是虚拟现实,FOV 都是影响使用体验的最重要因素之一。现在的AR眼镜的可视广角普遍不高,HoloLens有30°,Meta One只有23°,而公众最为熟悉的Google Glass视角仅有12°。这是由于镜片成像技术和光学模组不成熟造成的,现在还没有太好的解决方案,但太窄的视角显然让增强现实效果大打折扣。

    图片3.png

    而除了FOV,AR在成像方面,还存在着以下的问题需要解决:
    首先软件方面,底层算法(输入、输出算法)还需要加强。这需要精确的图像识别技术来判断物体所处的位置以及3D坐标等信息。不同于其他3D定位,增强现实领域的物体位置,必须结合观测者的相对位置、三维立体坐标等信息进行定位,难度要高很多。而如何利用叠加呈像算法,将相关信息叠加显示在视网膜上也是个技术难点。
    而在硬件方面,光学镜片还是存在着色散和图形畸变的问题。智能眼镜成像时,视场周边会出现红绿蓝色变,这就是棱镜反射光线时常见的色散现象,可以通过软件进行色彩补偿或者通过多材料镜片来消除。前者会增加硬件负担并降低图像帧率。后者的成品率低,这也是造成AR眼睛昂贵的原因之一。

    SLAM技术

    SLAM 即指同步定位与建图技术。有人说,两年前,扫地机是就是它的代言人。确实,能够扫描室内布局结构,并构建、规划扫地路线的扫地机器人是SLAM技术最好代表了。其实,这项技术也可以被运用在AR领域,现阶段基于SLAM技术开发的代表性产品有微软Hololens,谷歌Project Tango以及Magic Leap。
    举个例子,我们知道AR可以用来观看视频,但是如果我想把画面准确的投射到墙上或者壁橱上呢?这就需要SLAM技术。以HoloLens为例,它在启动的时候,会对用户所处空间进行扫描,从而建立房间内物体摆设的立体模型。

    图片4.png

    (转自百度文库,方便记忆)

    相关文章

      网友评论

        本文标题:AR技术原理

        本文链接:https://www.haomeiwen.com/subject/cpqixxtx.html