混合现实系统中标志物识别的改进ORB算法

2020-08-20 04:03张笑宇万韬阮朱耀麟
西安工程大学学报 2020年4期
关键词:角点标志物尺度

张笑宇,汤 汶,2,万韬阮,3,朱耀麟,4,武 桐

(1.西安工程大学 电子信息学院,陕西 西安 710048;2.伯恩茅斯大学 科学与工程技术学院,英国 伯恩茅斯 BH12 5BB;3.布拉德福德大学 工程与信息学院,英国 布拉德福德 BD7 1DP;4.西北工业大学 电子信息学院,陕西 西安 710072)

0 引 言

混合现实技术是当下的热门技术,具有虚实结合[1]、实时交互[2]和三维注册[3]3个特点,它可以增强用户体验的真实感,在不同领域得到了广泛应用[4-5]。目前三维注册分为2种,一种是基于标志物的注册,一种是基于无标志物的注册[6]。基于标志物的注册易受外界环境干扰,当标志物被部分遮挡时,识别的效果较差。如何更好地识别标志物,对混合现实系统的效率和精度有重要影响[7]。混合现实技术识别标志物,需要用摄像头采集视频帧图像与标志物图像进行特征点匹配,当正确匹配的特征点数目到达一定阈值时,可判定视频帧图像中包含标志物,从而把虚拟信息叠加到视频中的标志物上,所以标志物识别的核心就是特征点提取与匹配[8-9]。

针对特征点提取与匹配的问题,Lowe于2004年提出尺度不变特征变换(scale-invariant feature transform,SIFT)算法[10],该算法具有优良的尺度不变和旋转不变性,而且可以适应光照的变化,但算法计算量过大,提取的特征点包含的信息过多,单独使用该算法效率不高;SURF算法[11]是Bay在2008年提出的,在SIFT的基础上使用Hessian矩阵和Haar小波结合的办法大大提高了运算的速度,但提取的特征点不够稳定;2011年Lee等提出ORB算法,该算法具有旋转不变性和很快的运行速度,但不具备尺度不变性[12];Yu等提出了使用ORB和FREAK结合的方式实现混合现实,提高了配准的实时性,但匹配的准确率不高[13];闫兴亚等使用ORB采集特征点并进行匹配,使用光流法对目标进行跟踪,从而实现增强现实,但计算复杂,注册耗时较长,效率低[14];禹鑫燚等使用四叉树改进ORB算法,虽然对ORB算法提取的特征点集中的问题有所解决,但是降低了匹配的准确度[15];李卓等使用ORB和LATCH结合来进行特征点的检测与描述,但是LATCH描述子需要进行太过复杂的计算[16];张阳等提出运用均匀采样算法改进ORB算法,但是沿用了ORB的特征检测算法,对匹配成功率的提升不大[17];柴江龙等使用梯度方向来改进ORB的特征提取,但只提取少量的特征点,不能运用到混合现实当中[18]。

以上方法存在着注册时间长,无法满足混合现实的实时性或者提取特征点少,匹配准确度低的问题。针对以上问题,通过构造尺度空间,并结合SURF算法对ORB算法进行改进。

1 识别流程

混合现实技术对识别有实时性的要求,ORB算法虽然有很快的运算速度,但得到的特征点分布过于密集,对特征点的匹配产生干扰,影响了混合现实的识别效果。要提高混合现实系统中标志物的识别效率,就要改进ORB算法的空间结构和特征点的提取方式。先对标志物图像和视频帧图像进行尺度空间的构造,得到特征点的尺度和位置信息。再结合SURF算法高鲁棒性和旋转不变性的优点,为每一个特征点分配主方向,接着构造ORB描述子,然后使用汉明距离进行特征点的初匹配,接下来使用随机抽样一致(random sample consensus,RANSAC)[19]算法去除初匹配过程中产生的误匹配点,增加匹配的效率。改进后的混合现实系统标志物识别流程如图1所示。

图 1 标志物识别流程

标志物识别的本质是图像的匹配,标志物图像中能提取出的特征点越多、分布越均匀,该标志物就越容易被识别。针对ORB算法提取的特征点分布密集以及不具有尺度不变性的问题,通过对其空间结构以及特征点的方法进行改进,使改进后的算法能更有效地应用在混合现实系统中的标志物识别。

2 ORB算法

ORB算法首先使用oFAST特征检测算子检测特征点,接着使用rBRIEF[20]特征描述子和旋转矩阵计算可得相应的二进制描述符,最后使用汉明距离设置阈值,筛选符合条件的特征点对。

oFAST算法是由FAST算法改进得到的。FAST算法通过把图像中的某个像素点当作圆心,以3为半径的圆上共有16个像素点(P1,P2,…,P16),检测这些像素点的灰度值并和圆心点的灰度值相比较,从而判断圆心点是否为角点,如图2所示。

图 2 FAST角点检测原理

假设圆心点为P,其灰度值为IP,阈值为T,圆上的16个像素点中有N个连续的点大于(IP+T)或小于(IP-T),那么判断这个点是角点,一般取N为9或12。但每次计算所有点耗时过多,可以先计算P点4个方向P1、P5、P9、P13上像素值与点P的差值,若有3个大于所设定的阈值,再继续检测其他的像素点,否则过滤掉点P。

但是FAST算法所提取的特征点没有方向性,ORB通过灰度质心法给FAST特征点一个方向,使用矩方法在以特征点为中心,r为半径的图像领域范围中计算灰度质心,特征点到质心的向量方向就是该点的特征方向。矩的定义为

(1)

式中:mpq为(p+q)阶矩;I(x,y)为图像灰度;x、y为特征邻域中的像素点。中心矩C的质心计算过程为

(2)

特征点方向可由向量的角度得到,计算过程为

(3)

这种特征点检测的方法有很快的运算速度,可以满足混合现实的实时性要求。但是这种方法有一个弊端,得到的特征点分布太密集,对后面的特征点描述起到了很大的干扰作用,影响了特征点的匹配结果。

3 改进的ORB算法

针对ORB算法得到的特征点分布太密集的问题,通过构建尺度空间以及转换检测算子的方法来解决。由k个octave层(记作ca),k个intra-octave层(记作da)构成空间结构,取k=6,a=0,1,2,…,k-1。c0层为输入的原始图像,c1层由c0层2倍下采样构成,c2层由c1层2倍下采样构成,以此类推。原始图像进行1.5倍下采样得到d0层,后面和构建ca的方法一样。可以由s表示ca、da和原始图像的关系,即

s(ca)=2a,s(da)=1.5×2a

(4)

由于k=6,则有12张图像。先使用FAST角点检测的办法检测尺度空间中的每一层,选出候选角点。使用非极大值抑制的方法对候选角点进行处理,选取候选角点所在位置空间中的8个邻域点,以及上下2层尺度空间中每层9个邻域点,共计26个邻域点。如果候选角点的FAST得分值比所有邻域点的得分值都大,则保留该候选角点。此时得到了候选角点粗略的位置和尺度,但还不够精确。特征点定位过程如图3所示。

图 3 特征点定位

选取候选角点和其上下层对应的位置,在x、y方向上对其FAST得分值进行二维二次函数插值,由此可以得到真正的得分极值点和准确的坐标位置,把该位置选作特征点的位置。然后再对尺度方向一维插值,得出极值点所对应的尺度,也就是特征点的尺度。此方法能够准确的得到特征点的尺度信息和位置信息,减少了计算的复杂度,提高了系统的运行效率。

以上方法可以得到尺度和位置信息,但不包含方向信息。由于SURF的运行速度较快,对图像的旋转和缩放都有着不变性,且OpenCV对其特征点提取方法进行了封装,使用起来方便快捷。所以调用SURF算法中给特征点添加主方向的步骤,使本文算法具备旋转不变性。接下来要进行特征点匹配,传统的ORB算法使用汉明距离进行特征点匹配,因为生成的特征点描述子是二进制码串的形式,但这种方法会存在很多误匹配的点对,所以采用RANSAC的方法剔除误匹配的点对。

4 结果与分析

本文的测试平台为Windows10+OpenCV3.4.3,电脑处理器为Intel(R)Core(TM)i5-8300,CPU内存为8 GB,在Python3.5的环境进行编程实验,图像的像素为880×640。图4(a)、(b)、(c)、(d)展示了4组实验结果,图4(a)用的是图像处理常用数据库中的图片,图4(b)用的是自己制作的圆形鲤鱼图案标志物,图4(c)、(d)使用的是自己制作的石灯图案标志物。每组实验有3张效果图,从左到右分别为SURF算法、ORB算法以及改进后的算法特征匹配图,每个算法都是将标志物图像和视频帧图像中的特征点进行提取并匹配,将2张图像上经过计算得到的相同特征点用线段连接起来。

(a) 狒狒图案标志物

对比图4的实验结果,由图4(a)和图4(b)可知,无论是图像处理常用数据库中的图片,还是自己制作的标志物图片,都可以成功地提取特征点并匹配。由图4(b)和图4(c)可知,改进后的算法在各种图案的标志物上都可以准确的匹配特征点,从而达到识别要求。由图4(c)和图4(d)可知,在标志物后面的背景不同的情况下,改进后的算法依然有很好的效果。由实验结果可以看出,改进后算法匹配的准确率比原始算法高,减少了误匹配对的数量,而且匹配的特征点集中在标志物上,能够更好地识别视频中出现的标志物,从而提高混合现实的识别效率。

除了图4,另外在图像处理标准测试集里选用50幅图片,标志物分别在纯白背景,光线昏暗的背景,物品杂乱的背景以及尺度变化的情况下进行实验,将测试结果取平均值。通过编写程序为初匹配得到的特征点对和筛选后保留的特征点对添加计数器,为整个匹配过程添加计时器。特征点匹配精度计算过程如下:

(5)

式中:ρ为特征点的匹配精度;n1为筛选后保留的特征点对数;n2为初匹配得到的特征点对的数量。

对SURF、ORB、文献[17]和本文算法进行测试,记录各算法的特征点匹配精度和运行时间,测试结果见表1。

表 1 不同算法的特征点匹配精度和运行时间

由于实际场景里包含的因素往往比较复杂,经常会有很多标志物以外的东西出现在采集到的图像中,这对匹配的精度有很大的影响。由表1可知,SURF算法的匹配精度为41.2%,ORB算法的匹配精度为51.7%,本文算法匹配精度为80.0%,相对于SURF算法提升了38.8%,相对于ORB算法提升了28.3%。对比文献[17]中沿用传统ORB特征检测的方法,本文的算法构建了新的尺度空间,且使用了SURF算法提取特征点,大大提高了特征检测的效率,且运行时间相差不多。由图4的匹配结果可知,改进后的算法具备了尺度不变性和旋转不变性,初匹配得到的特征点更加精细,有效地提取图像的突出细节。虽然本文匹配的精度高,却增加了很多计算量,运行时间略高于传统的ORB算法,但比SURF算法要快,足以满足混合现实的实时性需求。

除此之外,改进后的算法成功剔除了大量的误匹配对,使匹配的效率得到了提高,大大增强了混合现实系统的稳定性,见图5(a)~(d)。当采集的画面出现鲤鱼图案标志物时,即使标志物的位置角度发生改变,但显示的虚拟模型始终固定在标志物的正上方位置。

混合现实技术基于标志物的注册,需要不断提取采集到的每一帧视频图像的特征点,用视频帧图像的特征点和标志物图像的特征点进行匹配,当正确匹配的点对数目达到一定阈值,判定标志物出现在摄像机画面中。当标志物被部分遮挡时,标志物上被挡住的特征点将不能被识别,很可能导致正确匹配的点对数目达不到阈值,无法成功的识别标志物。而基于标志物的注册在实际应用中不可避免地会遇到标志物被部分遮挡的情形,只有增加系统的鲁棒性,才能达到虚实融合的要求。减少遮挡对识别过程造成的影响,也就是减少标志物上被遮挡的特征点数量。传统的ORB算法采用角点检测的方法,提取的特征点分布太过密集,当特征点集中的区域被遮挡时,标志物无法被成功识别。改进后的算法提取的特征点分布均匀,遮挡标志物的任意一小块区域,都能够提取足够数目的特征点以达到识别需求。如图5(e)~(f):

(a) 正面 (b) 遮挡50%

图5的实验提取了图4中2个标志物,一个有着曲线多、难以提取角点的鲤鱼图案,另一个具有图像复杂度高的狒狒图案。由图4的匹配结果可知,在不同场景下匹配点对大多集中在标志物上,且均匀分布,所以在标志物被部分遮挡的情况下,系统仍然可以提取足够多的特征点对来完成识别。由图5(a)~(d)可以看出,虽然标志物所在的场景改变了,场景中包含的物体也改变了,但是使用本文的方法在标志物被部分遮挡、一定程度上视角变换的情况下依然能够稳定、实时地对标志物进行跟踪注册。由图5(a)、(b)、(e)、(f)可以看出,本文算法能较好解决混合现实系统中标志物被部分遮挡时,难以成功识别的问题,即使标志物被遮挡住50%的区域,也可以成功被识别。由此可见,本文的方法能一定程度解决混合现实技术在识别标志物时易发生抖动的问题,同时减少了部分遮挡对标志物识别过程产生的干扰,较好地提高了标志物的识别效率,系统的鲁棒性更强。

5 结 语

从特征点提取和匹配的角度入手,把改进的ORB算法运用到混合现实技术中,一定程度上解决了混合现实系统中三维注册算法精确度和鲁棒性低的问题。实验结果表明,本文的方法运用在混合现实基于标志物的注册中,可以使标志物在不同视角下和被部分遮挡的情况下被成功识别,有良好的鲁棒性和识别效率,优化了混合现实技术虚实融合的效果。但是当标志物距离摄像机过远时,视频图像中能提取到的标志物特征点有限,对识别效果产生了很大的影响,因此如何提取更精细的特征点,仍然是接下来要研究的方向。

猜你喜欢
角点标志物尺度
一种改进的自适应FAST 角点检测算法
炎性及心肌纤维化相关标志物在心力衰竭中的研究进展
多项肿瘤标志物联合检测在健康体检中的应用价值
多支撑区域模式化融合角点检测算法仿真
基于点云聚类的垛型角点检测方法
基于TCGA数据库分析、筛选并验证前列腺癌诊断或预后标志物
论社会进步的评价尺度
角点检测技术综述①
宇宙的尺度
肿瘤标志物正常不等于没有肿瘤