最新文章:
- 什么是静态服务器
- npx是什么东东,跟npm有啥关系?
- AMD宣布将在全球范围内裁员4%
- 处理Deprecation Warning: The legacy JS API is deprecated and will be removed in Dart Sass 2.0.0.警告
- 什么是原子化CSS
AR技术概述
发布时间:2017年06月20日 评论数:抢沙发阅读数: 38588
-
Marker:通常是黑白方格按一定编码方式构成的图片;
-
Markerless:普通的图片。
-
重复性:同一个物体或场景在不同的条件下(如旋转、尺度、光照),两幅图像中对应的特征越多越好。
-
独特性:特征的幅值模式需要呈现多样性,这样的特征才能被区分和匹配。
-
数量性:一般来说,检测到的特征数目一定要多,但是在图像检索中,特征太多,又会对检索的实时性造成一定影响。理想情况是检测到的特征数量在一个比较大的范围内,然后可以通过一个简单的阈值就可以调整。
-
准确性:得到的特征应该能够被精确定位,包括图像空间和尺度空间上的精确定位。
-
高效性:检测和描述的时间越短越好,以便用于后续的实时应用。
一、概述
增强现实技术(Augmented Reality,简称AR),相信大家都不再陌生,其实也就这两年才火起来,如果是2010年之前你跟人说AR,基本会被认为是天方夜谭,没有合适的硬件平台,与大众消费市场距离太远,只能算是实验室里的玩具;后面智能手机一出,情况就不一样了,相机、大屏幕(相比功能机),这两个关键器件的存在,以及硬件计算能力的突飞猛进,AR技术有了落地的基础,于是乎大量的AR应用如雨后春笋冒出来,特别是今年Pokemon Go的发布,脑洞一下子就打开了,大众对AR技术的憧憬越来越强烈。
顾名思义,增强现实是对现实的增强,广义地来看,“增强现实”早已覆盖生活中的方方面面,比如在树干上覆盖LED灯,营造艺术效果;比如在鬼屋里放置一些声源,制造恐怖气氛;甚至喷香水,都是对现实的增强,提升人视觉、听觉、嗅觉等感官上的感受,当然这些都是用实物来增强现实,显得没那么有科技感。
而通常所说的增强现实,指的是用虚拟内容来做视觉上的增强,通过屏幕或投影设备来显示。比如常见的在手机的相机预览中展示3D动画(如QQ传火炬)、微软的HoloLens,Google的Tango,还有Magic Leap等等。
总体上看,AR技术的关键在于设备对周围环境的感知理解:最基本的,确定设备自身的空间位置;再高级一点的,对环境进行实时重建(SLAM);更高级的,就涉及到识别、认知和交互了。这里面,定位是最基础的,只有设备自身的位置(和朝向)精确地被确定,虚拟出来的内容才能和现实很好地结合,以达到足够的真实感,并且,该过程需要实时地进行。这也是VR的关键技术之一。
目前应用于移动设备上的AR主要有两类:基于图片标记的AR和基于IMU的AR,
QQ传火炬是典型的基于图片标记的AR,通过手机拍摄特定的图像(另一个用户手机上展示的火炬图片),在预览画面中叠加3D动画效果,移动或旋转手机,3D动画始终与拍摄的火炬图片保持固定的位置关系,从而达到增强现实的体验。Pokemon Go则是基于IMU AR的典型,即通过设备自身的陀螺仪、加速度计等传感器数据来进行定位,设备旋转可以通过陀螺仪测得,而位移则可通过加速度计测得。基于IMU的AR实现相对简单,但精度较低,且drift严重(累计误差越来越大),适用场景有限。
本系列文章主要讨论基于平面图片标记的AR技术实现,又可分为两类:Marker和Markerless,两者的区别主要在于图片标记是否是规则的:
相比普通图片,特定编码的Marker识别和跟踪都更简单,但应用上比较局限,所以现在主流的AR应用都是Markerless的,即识别一张普通的平面图片,然后在上面叠加3D内容,如QQ传火炬。
二、原理
如之前所说,AR的关键在于设备自身的定位,而基于图片标记的AR,就是通过相机拍摄已知图片,根据该图片在相机画面中的位置,来确定相机的空间位置,也即确定设备的空间位置。如下图主流程包括三个阶段,拍摄图像、图像处理和更新虚拟内容,其中图像处理是核心,在图像处理完成后,得到了相机的外参(Extrinsic,相机坐标系与世界坐标系的变换关系),然后应用到预览画面的叠加层(如OpenGL或3D引擎环境),更新虚拟内容的位置,就完成了整个一帧的处理过程,然后不断重复这个过程,使得设备移动后,虚拟内容始终展示在正确的位置上。
图像处理过程作为核心,又包括一些子过程,如相机内参标定、预览帧特征提取、匹配、相机外参标定等过程(其中内参标定可离线完成)。
1、相机内参标定
相机的成像过程可以看做是将空间点变换到图像上点的过程,如果忽略相机的畸变影响,则整个变换过程都是线性的。相机内参标定的目标就是找到这个变换的参数(含畸变),从而可以用数学计算准确地刻画相机的成像过程。
在不考虑镜头畸变的情况下,可以将相机成像的变换模型表示成如下:
其中A即为相机的内参矩阵,包括x、y方向上的焦距fx、fy和图像中心cx、cy。空间点M首先经过相机外参[R|t]变换到设备(相机)坐标系(DCS),然后经过相机内参A变换到图像坐标系(ICS),成像在(u, v)处。确定相机内参的过程即为内参标定,内参与相机的焦距、硬件工艺有关,通常可以离线完成。内参标定常采用张正友棋盘格标定法,其操作简单且精度较高:只需从不同角度拍摄同一棋盘格的图片,即可完成标定,具体可参考这里。
2、图像特征提取与匹配
图像特征点(Key Point)又称“兴趣点”,可认为是图像上具有特定特征的局部位置标示,特征描述(Descriptor)则是表示该特征点“特征”的量,可用来区分、匹配不同的特征点。良好的特征点应该具有以下性质:
其中可重复性又以旋转不变性和尺度不变性为关键,SIFT及其改进算法SURF是常用的特征提取算法,FAST则以快速闻名,适用于实时场景。关于图像的局部特征及提取算法,详细可参考该博客。
特征匹配即在提取两幅图的特征点后,根据特征点的描述子进行匹配,得到匹配点对集,以用于后续的单应矩阵计算。特征匹配可看作分类过程,如简单的基于汉明距离进行匹配,或基于k近邻算法进行匹配后通过比率测试减少误匹配。FLANN是常用的特征匹配开源库。
3、相机外参标定
相机外参标定即求取前文相机成像公式中的[R|t],在已知相机内参的情况下,根据两幅图像间的特征点匹配点对,即可求得相机在这两幅图像间的空间位置关系(旋转R和平移t),如果其中一幅图像是输入的标记图片,将其设定在世界坐标原点,该过程是计算机视觉中的PnP(Perspectire-n-Point)问题,也可看做是相机的外参标定过程。该问题可基于直接线性变换DLT(Direct Linear Transformation)结合最小二乘法求解,也可根据一个初始值通过迭代方法求解。外参标定过程的重点在于误匹配的去除,常采用RANSAC算法进行,可参考这篇文章。
三、结语
VR让人体验不一样的世界,而AR则是让现实世界更美好,有人把AR看作新的计算平台,完全不为过,试想一下,最早期的寻呼机、功能机只是提供一维的通知、电话或短信服务,到了智能机时代,大屏的出现,二维的图像、音视频成了主流,那下一个时代呢,也许3D技术、AR会是计算设备的核心能力之一。
本文地址: https://arbays.com/post/22  本文已被百度收录!
版权声明:若无注明,本文皆为“富录-前端开发|web技术博客”原创,转载请保留文章出处。