杨超杰,陈临强
(杭州电子科技大学计算机学院,浙江 杭州310018)
基于ORB在Android平台上增强现实的应用
杨超杰,陈临强
(杭州电子科技大学计算机学院,浙江 杭州310018)
摘要:实现了在Android平台上快速图像匹配的增强现实。针对目前基于自然特征的增强现实效率低和智能手机的普遍性,提出ORB算法在Android平台上的实时注册方法。提取基准图像与视频帧中的特征点及描述子,使用汉明距离匹配,计算摄像机的位姿,将三维虚拟物体叠加到真实场景中,达到虚实结合的效果。在基准图像部分被遮挡及不同尺度角度的情况下,ORB在Android平台上跟踪定位准确度高并且速度可达到实时要求。
关键词:增强现实;旋转不变性;Android;图像匹配
0引言
随着移动终端应用的发展,实时实地获取周边信息越来越重要,增强现实技术是计算机视觉领域的研究热点,在现实生活中具有较高的使用价值,广泛应用于医学、教育、旅游等领域。增强现实技术通过计算机生成的场景融入到现实世界被人类感官所感知,从而强化用户对现实的感官和认知。现在增强现实技术主要分为基于特殊标志的三维注册和基于自然特征的三维注册。文献[1]介绍了基于特殊标志的注册,图像二维码解码的形式注册三维信息。文献[2]提出了自然特征的注册通过SURF算法[2]进行图像匹配,但是计算复杂度高,很难达到实时性基本要求。在基于自然特征的基础上,本文结合ORB算法[3]和Android平台来解决特征检测的计算速度及智能手机实时实地获取信息需求。ORB算法是对FAST算法[4]和BRIEF[5]描述子的改进,保证了FAST特征点的方向性和BRIEF描述旋转不变性,并通过坐标系之间的变换关系,在现实世界中并绘制三维虚拟物体。另外在被遮挡及不同角度的实验情况下,能准确跟踪定位并且速度可达到实时要求。
1方法概述
在摄像头下的增强现实流程图如图1所示。JNI全称是Java Native Interface的缩写[6],其方法是Java通过本地来调用C/C,这样其他编程语言进行混合编程,Android编程使用JNI方法,不仅能克服Java程序运行速度较慢的弱点,从而适应一些实时性要求较高的环境。首先把Android视频帧通过JNI本地调用由C语言处理并返回结果。C语言处理以下内容,Android下单摄像头把获取到的视频帧传输给C模块,在选取基准图像并且提取ORB特征,与视频帧的特征可用汉明距离进行匹配,利用投影方程和选取成功的匹配点来计算摄像机旋转R向量、平移T矩阵,然后把旋转向量R和平移矩阵T组成一个一维数组,通过OPENGLES加载数组做投影变换,以达到三维立体形状通过摄像头转动而实现平移、旋转、缩放效果,达到实时融合目的。
2JNI调用本地方法的原理
图1 基于图片匹配增强系统流程图
图2 JNI调用本地方法
3ORB算法
读入初始化帧之后需要识别匹配,因为针对SIFT[7]和SURF在实时性上的不足,提出ORB特征检测算子,在计算速度有很明显的提升。ORB主要是改进两个主要部分,包括FAST特征检测和BRIEF特征描述。比起SIFT和SURF,ORB算法具有不错的优势及性能,在计算量小并且所需内存开销也很低,这使得ORB在鲁棒性和实时性得到了充分发挥。
ORB采用特征点检测是利用FAST算子检测特征点,FAST特征点是本身不带有方向性的。这就需要给特征点添加方向信息,本文采用了灰度矩心方法,就是把所检测得到的FAST特征点变成有方向,其方法对角点主方向度量,可以精确并快速计算其主方向分量。先把图像角点区域定义灰度矩为:
(1)
式中,I(x,y)为点(x,y)处的灰度值,p,q为灰度矩的阶数。
灰度矩心其表示形式由3个不同灰度矩m00,m10和m01组成,其计算公式为:
(2)
通过构造特征点中心o到矩心C的向量oC,通过特征点与矩心的夹角θ来确定该特征点区域的主方向为:
(3)
(4)
式中,p(x)为图像邻域P在像素点x处的灰度值,同理p(y)为图像邻域P在像素点y处的灰度值。
选择n个(x,y)像素位置对,不同的n值在存储方面、速度处理和识别率之间有着不同的权衡,BRIEF描述子就为n维的二进制比特串:
(5)
BRIEF对噪声相对很敏感,因此ORB中每个FAST特征点我们可采用31×31像素邻域中的5×5子窗口,其子窗口需服从高斯分布,加速计算可用积分图像方法。BRIEF描述算法本身不具有旋转不变性,在位置(x,y)处对于任意n个二进制准则特征集,定义一个2n矩阵S:
(6)
计算出FAST特征点主方向为θ的旋转矩阵Rθ,便可构造S的有向形式Sθ=RθS。因此BRIEF算法描述旋转不变性可用公式表示为:
gn(p,θ)=fn(p)|(xi,yi)∈Sθ
(7)
ORB计算其尺度不变的特性可采用金字塔图像方法,ORB特征就具有了可靠的旋转、平移和尺度不变性,而且FAST和BRIEF两个计算算法有效保证了ORB的实时性。
在提取特征点之后,需要匹配两幅图片,然而具体的在匹配过程中,使用汉明距离实现特征点匹配。基本思路假设基准图片描述子为B={b1,b2,b3,…,bn},视频采集图片k时刻为通过计算特征描述为C={c1,c2,c3,…,cn},其计算公式为:
(8)
通过汉明距离之间的异或之和表示描述子的相似程度,Dk(i,j)越小代表相似度越高,并且其中心距离小于一定的阈值Dmax。
在角度、遮挡情况下,视频帧都能与基准图像找到最佳匹配点对。但是如果选取太少匹配点会影响后面摄像机位姿计算的精确性,所以匹配点至少要达到一定阈值。将视频帧和基准图像通过单应性[8]的特点,在旋转和平移中提取单应性矩阵,通过提取透视变换所得到的边框,如图3所示。
图3 匹配效果图
4摄像机位姿估计
5实验效果
本文提出增强现实实现方法是在Android平台下,通过JNI方法调用本地C语言编程,视频图像大小为480×640像素,实现结果分别是在不同角度、部分遮挡情况下,可以完成准确地实时注册。本文绘制立方体,虚拟物体也会随着相机移动而变化,图4(a)为普通场景下虚拟绘制图像,图4(b)、图4(c)为不同角度图测试,图4(d)属于部分遮挡测试。
图4 摄像头不同角度、部分遮挡测试效果图
由图4可以看出,在Android下实现,基于ORB算法匹配之后通过计算摄像机的位姿来虚拟绘制图像,由图4(a)为普通场景下,与基准图像为同一角度时所匹配之后虚拟绘制图像。图4(b)、图4(c)是跟基准图像不同角度变化下的实验结果表明对FAST算法方向的改进和BRIEF描述的旋转不变添加,具有很好的鲁棒性,图4(d)则是通过部分被遮挡情况下的实验结果。最终其测试结果表明在基准图像部分被遮挡及不同尺度角度的情况下,ORB在Android平台上跟踪定位准确度高并且速度可达到实时要求。
6结束语
本文提出一种基于ORB算法在Android下新的增强现实实时系统。Android系统在单摄像头不要在快速摇晃的场景下,增强现实注册效果可以达到稳定准确。通过实验结果表明,基准图像部分被遮挡及不同尺度角度的情况下,能准确跟踪定位并且速度可达到实时要求,方法具有较好的鲁棒性,图像匹配效率较好。
参考文献
[2]Zhang Hui juan,Hu Qiong.Fast image matching based-on improved SURF algorithm[C]//Electronics,Communications and Control(ICECC),2011 International Conference on.Ningbo:IEEE,2011:1460-1463.
[3]RUBLEE E,RABAUD V,KONOLIGE K,et al.ORB:an efficient alternative to SIFT or SURF[C]//Computer Vision(ICCV),2011 IEEE International Conference on.Barcelona:IEEE,2011:2564- 2571.
[4]燕鹏,安如.基于FAST改进的快速角点探测算法[J].红外与激光工程.2009,38(6):56-62.
[5]CALONDER M,LEPETIT V,STRECHA C,et al.Brief:Binary robust independent elementary features[C]//Computer Vision(ECCV),the 11th European Conference on.Berlin:Springer-Verlag,2010:778-792.
[6]卫洪春.JNI调用本地方法的原理及应用[J].计算机与信息技术,2010,12(6):84-87.
[7]傅卫平,秦川,刘佳等.基于SIFT算法的图像目标匹配与定位[J].仪器仪表学报,2011,32(1):25-29.
[8]管涛,李利军,段利亚,等.基于标识与平面间单应性矩阵的虚实注册方法[J].华中科技大学学报,2006,34(10):54-57.
Based on the ORB of Augmented Reality Applications on the Android Platform
Yang Chaojie,Chen Linqiang
(SchoolofComputer,HangzhouDianziUniversity,HangzhouZhejiang310018,China)
Abstract:This paper implements rapid image matches on Android platform for augmented reality.Aiming at the low efficiency of augmented reality-based natural features and smart phones universality,the algorithm of ORB is proposed on the Android platform for real-time registration method.Reference picture and video frames extract feature points and descriptors,by matching Hamming distance,calculating the position and orientation of the camera,the three-dimensional virtual objects superimposed into the real scene for the actual situation with the results.In the case of the reference image partially is blocked and angles of different scales,ORB on Android can achieve real-time requirements in tracking accuracy and speed.
Key words:augmented reality;rotational invariance;Android;image matching
中图分类号:TP391.41
文献标识码:A
文章编号:1001-9146(2015)06-0060-05
通信作者:
作者简介:杨超杰(1991-),男,浙江台州人,在读研究生,图形图像处理.陈临强教授,E-mail:clq@hdu.edu.cn.
收稿日期:2015-05-06
DOI:10.13954/j.cnki.hdu.2015.06.013