基于AKAZE的增强现实系统的研究*
2019-01-02闫兴亚贺彦博
闫兴亚 贺彦博
(西安邮电大学 西安 710061)
1 引言
增强现实(Augement Reality)[1]技术包含了多媒体、三维建模、多传感器融合、实时跟踪注册等技术,其中跟踪注册技术是影响增强现实系统性能的关键,也是研究的热点问题[2]。近年来,基于特征点的跟踪与匹配策略[3]成为研究的热门。传统的Harris、SUSAN等边缘或角点检测的算法,对环境的适应能力较差[4]。SIFT[5]算法和 SURF[6]算法采用线性高斯滤波构建尺度空间,具有良好的尺度不变性,但是牺牲了图像的局部精度,容易造成边界模糊和细节丢失[7]。
KAZE算法[8]是Alcantarilla等在ECCV2012提出的一种特征检测算法,采用AOS(Additive Operator Splitting,加性算子分裂)算法进行非线性扩散滤波构建尺度空间,其具有良好的局部精度,但是该算法的实时性较低,影响了它的实用性。2013年 9 月,Alcantarilla等发布的 AKAZE[9](Accelerated-KAZE,加速 KAZE)算法,用FED(Fast Explicit Diffusion,快速显式扩散)算法取代AOS算法,并改进描述符M-LDB[10]。AKAZE算法在保留了KAZE算法鲁棒性的同时,大幅提高了算法的实时性。
2 AKAZE算法
2.1 非线性扩散滤波
非线性扩散,也称为各向异性扩散,其基本模型就是Perona和Malik在1990年提出的Perona-Malik扩散方程[11],表达式为
式(1)中,L为图像矩阵,div为散度函数,∇为图像梯度算子。当c(x,y,t)为常数时,则为热扩散方程,表达式为各向同性扩散;当c(x,y,t)为关于梯度的函数时,表达式为各向异性扩散。在该算法模型中,c(x,y,t)为传导函数,所以表达式为非线性扩散。其传导函数具有如下形式:
式(2)中的 |∇Lσ|为图像 L 经过高斯平滑后得到的梯度图像,式(3)中的k为对比度因子,作用是保留边缘信息。
因为式(1)中的非线性偏微分方程不存在解析解,一般通过数值分析的方法通过迭代,求其近似解。KAZE算法中使用了AOS算法来求解,但是AOS算法需要在每个步长中求解大量的线性方程[12],降低了算法的实时性。AKAZE算法使用FED算法取代了AOS算法,进而提升计算速度,提高算法实时性。FED算法表达式为
其中,I为单位矩阵,A(Li)为图像Li的传导矩阵,n表示显性扩散步数,τj为对应步长,τmax为满足显性扩散稳定性条件时的最大步长值。
2.2 构建非线性尺度空间
AKAZE算法的尺度空间构造和SIFT相似,尺度级别按对数递增,共有O组otaves,每组分别为S个sub-level。不同的是,SIFT中每个新的Octave要逐层进行降采样,而AKAZE算法的每层均采用与原始图像相同的分辨率。不同的Octave和sub-level分别用o和s来表示。尺度参数表示如下:
式(6)中δ0为尺度参数的初始基准值,O是尺度空间层级数量,N=O*S是整个尺度空间中图像总数。由于非线性扩散滤波模型是以时间为单位(作用在时间序列上),因此我们需要将像素为单位的尺度参数δi转换至时间单位得:
2.3 特征点检测
尺度空间构造完成后,每一个像素点与周围8个及上下尺度各9个共26个像素点进行比较,计算不同尺度归一化后的Hessian值,若为极大值即为特征点。如图1所示。
图1 尺度空间
因此,特征点的检测即为Hessian局部极大值检测。其Hessian矩阵的计算如下:
式(8)中,∂是尺度参数∂i的整数值,Lxx、Lyy分别是二阶横向和纵向微分,Lxy是二阶交叉微分。在找到特征点位置后,再进行像素的精确定位,采用的是BMVC2002提出的方法[13],即泰勒展开式:
2.4 特征点描述
特征点确定后,需要对其主方向进行描述,以实现图像的旋转不变形。以特征点为中心,尺度参数的6倍作为搜索半径,计算搜索范围内的相邻点的一阶微分值Lx和 Ly,并对其进行高斯加权[14],越近的特征点权重越大。再取一个60°的扇形区域,对搜索区域进行向量叠加,遍历整个圆形区域,获得的最长向量就是特征点的主方向,如图2所示。
图2 特征点描述
KAZE算法在构造特征描述向量时采用M-SURF[15]描述符,为了提升算法的实时性,AKAZE算法引入了M-LDB描述符。M-LDB通过离散采样获取散点的亮度值,水平和竖直方向的导数均值,其生成的算子是0和1组成的二进制描述符,减少了运算时间,提高了算法的实时性。
3 增强现实系统实现
虚拟物体能够在真实世界正确的位置上成像至显示器,是增强现实技术的最终目的,所以跟踪注册技术成为了增强现实中的关键技术。本文设计的增强现实系统可为分为两个模块:离线模块和在线模块,其实现流程图如图3。
图3 系统流程
在离线模式下,预先对参考图像进行特征检测,将特征信息保存在特征库。在线模式下,对视频帧进行特征检测,并将检测到的特征信息同特征库中的信息进行匹配,如果匹配的特征点个数达到系统所设定的阈值,匹配即成功,随后进行三维注册。其模块划分如图4。
图4 系统模块
初始参数模块对环境进行初始化;视频采集模块对摄像头捕捉到的视频流进行分析检测,为特征检测提供数据;特征检测模块对捕捉到的目标图像进行特征点提取并匹配;跟踪注册模块判断视频流中是否存在匹配成功的跟踪特征点,获取特征点坐标,计算摄像头对虚拟物体的姿态位置;虚实叠加模块将视频流图像与虚拟信息进行实时融合,并通过屏幕显示,得到虚实结合的效果。
本文的增强现实系统是在ARToolKit基础上实现的。ARToolKit是一款开源的增强现实SDK,通过研究源码,将源码中的对应功能模块替换为本文算法。
4 实验结果分析
特征匹配的试验数据为四组图像,每组图像依次对应的是旋转缩放、噪声、视角变化、光照变化四种变化状态,每组包含六张图像,变化幅度依次递增。实验以每组第一张图像为参考图像,通过SURF、KAZE、AKAZE三种算法分别与第2~6张图片依次进行匹配运算,并对匹配率和匹配时长进行对比。实验数据中的匹配率为百分比单位,匹配时间以微秒(ms)为单位。
图5 旋转缩放实验数据
图6 旋转缩放实验结果
图7 噪声实验数据
图8 噪声实验结果
图9 视角变化实验数据
图10 视角变化实验结果
图11 光照变化实验数据
图12 光照变化实验结果
在匹配率方面,使用这三种算法分别计算每组图片不同幅度变化下的匹配率。以图5、图6为例,在旋转缩放实验中,使图5(a)与图5(b)进行匹配,SURF匹配率为77%,KAZE匹配率为84%,AKAZE匹配率为 89%;使用图 5(a)与图 5(c)进行匹配,SURF匹配率为71%,KAZE匹配率为81%,AKAZE匹配率为90%,以此类推。实验结果表明,在两张图像特征匹配的过程中AKAZE算法的匹配率最高,其次是KAZE算法,SURF算法的匹配率相对其他两种算法较低。
图13 运算时间实验结果
在匹配时间方面,求得这三种算法在每组实验的平均运算时间,并进行对比。实验结果表明,SURF算法的运行时间最短,AKAZE算法运行时间略长于SURF算法,KAZE算法的时效性要远低于其他两种算法。
图14是将AKAZE特征匹配算法封装到增强现实系统后的实验结果。识别图片是熊出没,虚拟渲染是白色方块。在识别图片发生旋转缩放、噪声模糊、光照变化和视角变化的情况下,系统都能准确快速地进行跟踪注册,实时渲染出虚拟物体。
图14 AR实验结果图
5 结语
综上所述,采用非线性扩散滤波构建尺度空间的AKAZE算法,图片识别率高,运算实时性好,在图片发生大幅度变化时仍能有效地识别图片。AKAZE算法的增强现实系统,在识别发生形变的目标图片时,仍能很好地识别图片并进行虚实注册,具有良好的鲁棒性和实时性,可以应用在室内外空间和各种复杂的环境中。