基于ORB特征的复杂场景下的增强现实
2018-06-01王爱丽胡长雨韩闯
王爱丽 胡长雨 韩闯
摘 要:针对增强现实开发工具ARtoolkit利用特定编码的卡片来获取目标,并且利用标记卡片角点来推算出相机的空间位置,准确率不高,有严格的观测角度限制,且不能在复杂场景使用的问题。在采用即时定位与地图构建和随机抽样一致算法的基础上,研究了如何将利用即时空间定位算法准确的计算出相机的外参和图像序列ORB特征点的空间坐标集,并利用随机抽样一致和poster帧得到二维感兴趣区域特征点坐标集,实现了感兴趣区域的空间坐标定位。实验结果表明,该算法解决了标记卡片以及观测角度限制,提高了相机位置的准确率,提高程度达90%。为后期渲染3D目标实现增强现实提供了有力的保障。
关键词:增强现实;即时定位与建图;随机抽样一致
DOI:10.15938/j.jhust.2018.02.005
中图分类号: TP391.9
文献标志码: A
文章编号: 1007-2683(2018)02-0023-06
Abstract:Aiming to the development tools for Augmented Reality, ARtoolkit, and to obtain a particular coding region of interest, Marker Cards and the corner feature are used to calculate the position of the camera. But the accuracy rate is low, and viewing angle and scenes are stirctly limited. Based on the simultaneous localization and mapping and random sample consensus algorithm, this paper studies how to use instant space location algorithm to accurately calculate the spatial coordinates of camera external parameters and image sequence ORB(oriented fast and rotated brief)feature point set. Then random sampling and poster frame are used to obtain two dimensional coordinates of region of interest to locate. For these restrictions, a new method is proposed in this paper by integrating SLAM and RANSAC to obtain a particular coding region of interest and calculate the position of the camera. Experiments show that the method can solve the limitation of viewing angle and scenes and improve the accuracy of calculate the position of the camera. The degree of improvement is up to 90%, providing a strong guarantee render 3D augmented reality.
Keywords:augmented reality; simultaneous localization and mapping; random sample consensus
0 引 言
在互聯网时代,计算机已经在生活当中越来越普及,从几人共享一台计算机到一个人拥有几台计算机。计算机生成的数据对人们的生活来说越来越重要。然而,目前计算机仍处于智能化的初级阶段,可以模仿人类进行逻辑思维,但还无法完全进行形象思维,如果要计算机成为人类的可靠助手,进行形象思维,则要求计算机能够适应人们所习惯的信息获取方式和思维过程,与真实环境进行自然融合。增强现实系统可以将计算机生成的信息(包括文字、图像、三维物体等)以视觉融合的方式叠加至真实场景中,与周围的真实环境完美地融为一体。在用户眼前呈现出“增强”了的世界。在理想情况下,用户无法辨别哪个是虚拟物体,哪个是真实物体,看到的将是完整的融合显示场景。增强现实借助显示技术、交互技术、传感技术和计算机图形技术将计算机生成的虚拟目标与用户周围的现实环境融为一体[1-4]。
常用的增强现实开发工具ARtoolkit[5]存在诸多限制,定位需要特定编码的标示(Marker)图片来标示出目标位置,计算相机的位置方式单一,观测的倾斜角度有限制。针对这些问题,本文采用SLAM[6-7]结合二维平面定位的RANSAC[8-9]算法,可以准确的获得相机空间位置,并且定位目标的空间位置,来渲染三维目标,实现增强现实。本文结构如下:第一部分介绍ARtoolkit的开发框架,第二部分介绍ARtoolkit定位目标和计算相机位置的方法。第三部分介绍SLAM和二维图像配准的RANSAC算法,并进行结合以实现三维空间的目标定位。第四、五部分给出对比分析的实验结果和结论。
1 ARtoolkit简介
增强现实是把原本在现实世界的一定时间空间范围内很难体验到的实体信息(视觉信息、声音、触觉等),利用科学技术进行仿生后再融合到现实世界,人类通过感官来感知。ARtoolkit是由C/C++语言编写的库,通过它可以实现现实增强。ARToolkit的开发流程基于人工标志的注册方法来进行,包括以下几个部分:相机标定、初始化摄像头并捕获视频帧、搜索标示以及识别、计算Marker的位置和方向、计算相机的位置、渲染虚拟物体、屏幕显示和关闭视频捕捉,开发流程如图1所示。
图1中相机标定是一个单独的过程,用来获得相机的内参,从Marker搜索开始,表示实现AR过程,在得到Marker的位置和角度以后,找到相机位置,最后利用opengl在真实场景中渲染3D目标。
2 ARtoolkit中Marker定位
图2中(a)表示的是一种Marker,利用了汉明码变种的编码方式来表示一个Marker图片[9-10]。Marker的最外围是黑色边框,内部的是编码信息,白色为1,黑色为0。如果每一行看作一个字,则每一位为5bit,其中1、3、5位是校验位,2、4位是信息位,所以整个Marker的信息位有10bit。图2中(b)表示定位了Marker在空间的位置、相机的位置,并在Marker上渲染出3D的模型。
在ARtoolkit[5]中,利用Marker来定位目标,通过对图像二值化,利用约束条件找到Marker的四条边,定位四个顶点,然后在Marker四个顶点建立空间坐标系,但是要求目标周边的纹理不能过于复杂否则无法利用约束条件准确的定位四条边,难以定位Marker的四个顶点。同时在计算外参的时候,使用Opencv中的solvepnp方法计算。由于solvepnp是通过单个Marker上的4个点来确定相机的旋转矩阵和平移向量从而来计算相机在下一帧的位置,算法在物体深度相对于物体到相机的距离比较大的时候可能不收敛,进而不能得到精确的相机外参。
在观测角度不同时,得到的投影矩阵不一样,从而使得锥形体视角投影中容易出现偏差,难以准确得到目标的正视图位置,影响后期渲染的准确性。本文利用SLAM[11]可以得到每一帧图像特征点空间坐标和准确的相机位置,同时利用RANSAC算法来精确的查找目标二维坐标集。利用二维特征点和空间特征点一一对应的关系,不受场景和角度的约束,能够在复杂场景和任意角度准确的定位目标。
3 改进后的目标定位
与傳统的方法不同,本文将ORB[16]特征作为SLAM建图和定位空间特征点的特征,同时也是RANSAC定位目标的特征。首先利用SLAM计算摄像头获取的帧的ORB特征点空间位置和当前帧相机的空间位置,并保存结果。然后利用含有目标的一帧图像,称之为poster帧,对摄像头获取的帧定位目标区域。由于SLAM处理特征点和RANSAC处理的特征点是同一特征点,所以特征点的空间坐标和二维坐标一一对应。当poster帧在视流中定位到了目标位置,那么只需要查询该目标区域二维特征点集对应的空间特征点集的坐标,并记录下来。然后对记录下的空间坐标点集求均值,就可以找到目标区域中心的空间特征点坐标。同时SLAM计算还得到了当前帧相机的位置。
3.1 空间特征点定位
这一步采用的是基于ORB特征的SLAM方法,实现对相机实时采集的图像序列帧进行特征检测、跟踪,得到帧间特征点的匹配关系,然后建立世界坐标系,利用特征点三角化计算出特征点的空间坐标,利用初始化的运动模型和相机外参,得到相机在当前帧的位置。由于ORB特征本质上是FAST-10特征,具有重复性,所以保证了SLAM和RANSAC处理的特征是同一特征,分四个步骤实现:
1)ORB特征提取。提取的ORB特征是在8个不同尺度的图像金字塔中进行的。在每个尺度层划分cell,在每个cell中提取5个特征点,总共一帧图像提取2000个特征点。如果提取的特征点没有达到2000这个阈值,则对当前帧调整特征点数量阈值。
2)对于初始的两帧,利用五点法[16]可以求出相机的姿态,从而确定相机的运动模型,再利用三角测量原理,计算出匹配正确的二维特征点所对应的空间坐标。
3)得到特征点空间坐标后,再将空间坐标值从世界坐标系投影到当前帧中,从而可以得到相机的外参,求出相机在当前帧的位置。
首先要将世界坐标系中的空间投影到相机坐标系,得到相机坐标系中,这可以通过左乘一个4×4的矩阵来实现,即:
将空间特征点投影到得到当前帧后,还要找到它在当前帧中的对应匹配的特征点,本文采用的方法是基于块匹配[4]的方法来定位当前帧上成功匹配的特征点坐标。
4)更新相机位置。给定重投影点的对应匹配点的集合S,若该集合足够大的时候,则得到相机的新位置。通过最小化重投影误差,可以更新相机姿态。重投影误差为特征点空间坐标在当前帧的投影点与其在当前帧的匹配点的差异,可以用式(3)来表示:
通过最小化投影误差,可以得到相机的运动模型,利用相机的运动模型和相机外参可以估计出相机在下一帧图像的位置。这样就完成了相机位置和特征点的空间坐标的计算。
3.2 基于RANSAC的目标定位
计算目标二维位置,其实就是利用poster帧特征点去和当前帧特征点进行匹配,找到匹配最好的帧和目标位置,分五步来完成这一环节:
1)提取poster帧的ORB特征和当前帧的ORB特征,并进行暴力匹配。
2)对暴力匹配成功的特征点进行RANSAC,得到最优单应射矩阵H[17]。
3)对poster帧利用H进行透视变换,投影到当前帧,进一步删除配准错误的特征点,实现特征点的精准匹配。
4)判断精准匹配的点的数量和poster帧特征点总数量的比值是否达到0.15,如果小于0.15,则认为匹配不准确,放弃匹配结果,继续执行第二步。否则保存匹配结果执行第五步。
5)获得当前帧中目标的二维坐标集,并记录下来这些特征点的序列号,匹配过程结束。求解最优的单映射矩阵H是对ORB特征点进行RANSAC得到的。
在得到了暴力匹配成功的特征点对后,存在许多误匹配,此时需要利用RANSAC算法,求出最优的单应射矩阵H [15]。式(4)说明了单应射矩阵的形式。
这样利用四对ORB特征点坐标就能得到8个独立的线性方程,方程中(x, y)表示的是poster帧上的特征点的齐次坐标,而(x′,y′)表示当前帧中的特征点齐次坐标,二者都是在进行暴力匹配的过程中就求得了。接着通过方程组的解,可以得到初始化的H。
用RANSAC估即单应性矩阵的具体步骤如下:
2)根据4对随机的匹配点对算出矩阵H;
3)利用H对poster帧上匹配点进行矩阵变换,计算匹配点对的汉明距离d,设定汉明距离的阈值为T,如果匹配点满足条件d 4)比较当前内点数量与L,如果大于L则将H和当前的内点集作为当前最佳估即,更新L;如果等于L,则选择配准较低的作为当前最佳估计,同时动态估计剩余所需迭代次数。如果当前迭代次数等于N,则保留H和当前的内点集并停止迭代;否则继续迭代知道N此为止; 5)对当前内点集的所有匹配点采用DLT算法重新估计H。 在获得了最优的单应矩阵H之后,还要进一步来通过透视变换剔除误匹配的点。在暴力匹配的过程中记录下了poster帧和当前帧的特征点匹配对的序号,所以在这一步就是通过H将poster帧中的特征点投影到当前帧上,并且计算和当前帧中同一序号的特征点的汉明距离,同时利用阈值T来删除误匹配点。如果汉明距离小于阈值T,则认为匹配成功,重新记录下配对成功的特征点序号,否则不记录。 通过上面的两步处理就可以得到二维的准确的特征点对,并且保存了特征点对的序号,记录了poster帧中的特征点序号和当前帧中的目标的特征点序号。在得到了当前帧目标二维特征点集后,只需要把含有标记的二维特征点对应的相同序号的空间特征点找出来,进行求和再平均运算[18],就能得到目标中心位置的空间坐标。同时又获得了准确的相机位置信息,所以能够准确的将3D地球仪渲染到目标,并且准确的通过投影矩阵投影到镜头。 4 实验结果和分析 本文的实验在配置有2.1Ghz双核Intel Core CPU和windows7系统的acer 4750G型号电脑上进行的,开发环境是Vsiual Studio 2015。所有的计算是在3个线程上完成的。本节给出了兩组实验结果,分别是在笔记本上渲染地球仪和在小猴子身上渲染地球仪。本节给出了三组对比实验图,还给出了在不同角度和距离条件下ARtoolkit和本文的SLAM定位[19-21]的误差对比图。可以明显看到,定位误差也大大减小。 图3中,(a1)表示的是Marker标示,(a2)表示将Marker 放入复杂场景中,并且检测出特征点,(a3)表示是利用Marker在复杂场景下的错误定位导致渲染的地球仪位置错了。(b1)和(c1)表示poster帧,一个是笔记本,一个是小猴子玩偶,可以看到,两个poster帧的拍摄角度是垂直关系,成90°。(b2)和(c2)表示场景,其中的绿色方格表示的是二维特征点在当前帧中的位置,(b3)和(c3)分别表示两种场景中,渲染立体地球仪。 进一步分析,图4中(a)表示的5个不同的角度,在离目标区域不同距离的情况下的误差情况。横坐标表示的是距离,纵坐标表示的视角和目标区域所在平面的倾角,分别是0°、30°、45°、60°、80°。每种倾角分别记录在不同的距离取值情况下的定位误差,1号线表示的是ARtoolkit工程,2号线表示的是改进后的定位方法的定位结果,称为SLAM工程。从图中可以看出,在100~400mm距离之间ARtoolkit工程和SLAM工程的差距较小,这是因为ARtoolkit中在短距离情况下,视角范围较小,可以尽量减少视角范围内的干扰纹理,同时由于Opencv中的solvepnp在物体深度相对于物体到相机距离较小时,收敛效果较好。在大于400mm的距离之后可以看出SLAM工程效果明显优于ARtoolkit工程的效果,因为距离越远,视角越大,干扰纹理越多,通过简单的二值化加约束条件确定的Marker边界变得不准确,从而得到有误差的Marker顶点,同时由于相机距离和物体距离较远,solvepnp方法变得不收敛,在有误差的Marker顶点上计算相机误差,使得整个过程的误差累积,从而导致了最后的效果要比SLAM工程的效果差 图4(b)中表示的是两种工程因角度和距离产生的误差的对比图,其中将五种不同角度ARtoolkit工程的误差绘制在同一坐标轴下,纵坐标表示的误差大小,横坐标表示的观察距离,SLAM线表示的是SLAM的误差,其余的线段表示ARtoolkit工程的误差线段。由于每种观察角度SLAM误差大小几乎相等,所以就只用一条平均线来表示SLAM定位误差,可以看出最高误差值为2mm, 其余5条线分别表示ARtoolkit产生的误差,当倾角为0°时,误差最大,达到了18mm。所以误差减少程度最高达90%。 5 结 论 本文介绍了一种基于SLAM和RANSAC定位目标在空间位置的方法。通过SLAM可以准确的定位当前每一帧相机的位置,同时利用极限几何可以准确的实现两帧图像特征点配对,再对配对的特征点三角化可以得到特征点在空间的位置。再通过RANSAC对每一帧图像匹配目标区域,根据二维特征点和空间特征点一一对应的关系,可以准确的查找到目标区域在空间的位置。通过SLAM和RANSAC的结合,使得ARtoolkit不再受Marker和场景的限制,可以在复杂场景中使用,得到准确的相机位置,为后期渲染3D目标提供了保障。 参 考 文 献: [1]周忠,周颐,肖江剑.虚拟现实增强技术综述[J].中国科学, 2015, 45(3):157-180. [2]虞锦东.基于Android的增强现实系统研究与应用[J]. 数字通信世界, 2016(5):110-115. [3]CHATZIMICHALI A, GIJSELARS W. Bridging the Multiple Reality Gap: Application of Augmented Reality in New Product Development[J]. IEEE International Conference on Systems Man and Cybernetics Conference Proceedings, 2011, 89(12): 1914-1919.
[4]MOHAMED N,YUSOFF F,ISMAIL M, et al. The Potential Use of Augmented Reality in Gamification[J]. International Conference on Computing & Informatics, 2015, 36(12):159-167.
[5]ARtoolkit[DB/OL]:http://www.hitl.washington.edu/artoolkit/.
[6]MUR-ARTALR, MONTIEL J, TARDOS J. ORB-SLAM: A Versatile and Accurate Monocular SLAM System[J].IEEE Transactions on Robotics, 2015,5(31): 1147-1163.
[7]KLEING, MURRAY D. Parallel Tracking and Mapping for Small AR Workspaces[J]. IEEE International Symposium on Mixed and Augmented Reality (ISMAR), 2007, 18(34):225-234.
[8]EL-MELEGY M.Model-wise and Point-wise Random Sample Consensus for Robust Regression and Outlier Detection[J]. Neural Networks, 2014, 59(11):23-35.
[9]HAST A, NYSJO J, MARCHETTI A. Optimal RANSAC-Towards a Repeatable Algorithm for Finding the Optimal Set[J]. Journal of WSCG, 2013, 21 (1): 21-30.
[10]GRAHAM M,ZOOK M, BOULTON A. Augmented Reality in Urban Places: Contested Content and the Duplicity of Code[J]. Transactions of the Institute of British Geographers, 2013, 38(3):464-479.
[11]ZHOU Shuo, CHEN Zongxing, LIU Xiaoyang, et al. An Elder Mode of New Generation Phone Using Augment Reality[J]. Procedia Environmental Sciences, 2011, 10(10):936-942.
[12]桂振文,王涌天,劉越. 二维码在移动增强现实中的应用研究[J]. 计算机辅助设计与图形学学报, 2014, 26(1):34-39。
[13]张钰,陈靖,王涌天.增强现实浏览器的密集热点定位与显示[J].计算机应用, 2014, 34(5):1435-1438.
[14]RABBI I, ULLAH S, RAHMAN S, et al. Extending the Functionality of ARToolKit to Semi-controlled / Uncontrolled Environment[J]. International Journal on Information , 2014, 17(6):2823-2832.
[15]RUBLEE E, RABAUD V, KONOLIGE K, et al. ORB: An Effcient Alternative to SIFT or SURF[J]. IEEE International Conference on Computer Vision , 2011, 58(11):2564-2571.
[16]NISTER D. An Efficient Solution to the Five-point Relative Pose Problem[J]. In Proc IEEE CVPR, 2007, 26(6):756-777.
[17]BASTA T. Is the Fundamental Matrix Really Independent of the Scene Structure[J]. International Journal of Computer Vision , 2014, 7(5):149-167.
[18]MEDINA M,RONCHETTI E.Robust Statistics: A Selective Overview and New Directions[J].Wiley Interdisciplinary Reviews Computational Statistics, 2015, 7(6):372-393.
[19]FLECK S,SIMON G. An Augmented Reality Environment for Astronomy Learning in Elementary Grades: An Exploratory Study[J]. Ieme Conference Francophone on Interaction Homme-machine, 2013, 35(14):14-22.
[20]MYUNG H,LEE B,KIM H,et al. A Study on Effective Visual Communication Method with the Pictomation Contents in Augmented Reality Environment[J]. 2014, 23(44):156-164.
[21]MEOLA A,CUTOLO F,CARBONE M. Augmented Reality in Neurosurgery: A Systematic Review. Neurosurgical Review, 2016, 25(33):1-12.
(编辑:关 毅)