基于自然特征的增强现实系统的实现

2016-01-05 14:07罗林李俊琴
电脑知识与技术 2015年29期
关键词:增强现实

罗林++李俊琴

摘要:目前,增强现实技术得到了越来越广泛的应用。增强现实系统的视觉跟踪注册有基于人工标记和基于自然特征标记注册两种方式,本文探讨了基于自然特点标记的增强现实系统的实现方法。利用OpenCV的ORB特征检测得到视频图像帧的特征点,然后将这些特征点与参考图像的ORB特征点进行汉明距离匹配,并通过RANSAC算法将错误的匹配点剔除,从何得到正确的匹配图像,然后根据匹配的点计算世界坐标系到图像坐标系的变换矩阵,最后通过OpenGL将与特征对象对应的虚拟物渲染到屏幕上。

关键词:增强现实;自然特征;ORB;OpenCV;OpenGL

中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2015)29-0165-02

Realization of Augmented Reality System Based on Natural Features

LUO Lin, LI Jun-qin

(Guangzhou University Huaruan Software College, Guangzhou 510990, China)

Abstract: At present, the technology of augmented reality is more and more widely used. The visual tracking registration of augmented reality system is based on manual marking and registration of natural features, This paper discusses the implementation of augmented reality system based on natural features . The features of the video frame are detected and computed by OpenCV librarys ORB feature detection algorithm , then match the ORB features with the reference images ORB features by hamming distance, and use the RANSAC algorithm to get the correct matches, then calculate the matrix transformation from world coordinate system to image coordinate system ,then render the reference image corresponding to virtual object by OpenGL.

Key words:augmented reality;natural features;ORB;OpenCV;OpenGL

1 概述

“增强现实技术是将真实场景同虚拟物体加以融合的一种手段,增强现实系统的特点是虚实空间的一致性结合以及实时交互,具体包括3D物体的注册技术、 显示技术、跟踪和定位技术等”[1]。

由于增强现实技术能在真实场景中融合虚拟物体,所以增强现实技术在交互学习、互动娱乐、交互广告等领域有广阔的应用前景。在交互学习场景中,儿童电子出版物的应用比较广泛。其一般方法是在纸质出版物中印刷简单的标记或者特定的图像,该标记或图像代表了可以融合在在真实场景中的虚拟物体。儿童通过手机或者带有摄像头对准该标记或图像,增强现实应用程序则在手机屏幕或者计算机显示器上显示融合了虚拟物体或者影视片段的真实场景,这些场景可以随着用户的操作,可以进一步该表虚拟物体呈现的外观或者相应的影视片段,能极大提高儿童学习的兴趣。

在增强现实应用中的“视觉跟踪注册技术主要分为基于人工标记和基于自然特征标记的注册”[2]。人工标记检测的计算复杂度低、算法成熟,但是也有会遮盖真实场景、受遮挡影响较大的问题,而基于自然特征的注册方法则避免了上述问题,得到了越来越广泛的应用。

本文将讨论一种在IOS平台上基于自然特征进行增强现实应用开发的方法。

2 关键技术

增强现实应用是基于计算机视觉的。许多增强现实应用都需要首先从抓取的视频帧图像中用计算机视觉的处理方法提取特征或者图像分析、比较。OpenCV是一个开源的计算机视觉开发库,它集合了常用图像处理、分析、比较算法,在增强现实等计算机视觉研究领域得到了广泛的应用,本文讨论的增强现实系统在图像特征匹配、摄像机标定及姿态计算等方面将使用OpenCV库函数。

基于自然特征注册的增强现实应需要要解决的另一个问题是自然特征的匹配。在实际应用中可以利用SIFT、SURF、ORB等算法抽取图像的特征点。其中SIFT、SURF算法准确度较高,但执行效率较低,不适合应用在实时运行的环境中。而“在计算速度方面,ORB是SIFT的100倍左右,是SURF的10倍左右,可以满足实时的特征匹配”[3]。

增强现实应用还需要将摄像头抓取的视频帧和虚拟物体融合显示在显示设备上。通常情况下,虚拟物是3D模型,为此,在显示时需要用到3D图形开发库OpenGL。OpenGL是一套跨平台的高性能图形开发库,可以在多种平台上开发2D、3D图形应用。本文讨论的增强现实系统在视频帧显示、融合显示3D模型等方面将使用OpenGL图形开发库。

3 实现

本文讨论的增强现实应用的流程如图1所示:

图1 实现流程

如图1,本增强现实系统分为两步。

第一步是离线部分,可以在计算机或者在手机上实现。这一步需要标定摄像头和计算参考图像的ORB特征。

在增强现实的应用中,是通过摄像头获得真实世界的影像,然后计算特定图像在摄像头投影平面的变换矩阵,才可以将3D虚拟物体融合在真实场景中。根据文献[4],在小孔摄像机模型中,世界坐标系中的点映射到图像平面坐标系的公式是:Pp = M1.M2.Pw,其中Pp是图像平面坐标系中的点坐标,Pw是世界坐标系中的点坐标,M1是摄像头的内参矩阵,是固定不变的,M2是摄像头的外参矩阵,会随着摄像头的姿态变化而变化。因此,在这一步里,将根据文献[4],利用OpenCV库的函数calibrateCamera先计算出摄像头的内参矩阵M1,外参矩阵在第二步里再计算。

离线部分还需要计算参考图像的ORB特征,其方法是创建OpenCV库中的Orb特征检测对象,然后遍历作为模板的参考图像序列,使用orb对象的detectAndCompute方法得到每一张参考对象的ORB特征点序列及对应的特征点描述系列,并将这两个序列记录在文件或者数据库中。

第二步是运行在iPhone手机上的实时部分,其步骤是:

1)利用IOS平台的AVFoundation库中的AVCaptureSession对象抓取摄像头中的视频帧,将其数据通过OpenGL库函数glTexImage2D,将获取的视频帧数据绑定到OpenGL的一个纹理对象t上,然后将视频帧数据转换成OpenCV中的Mat对象vm,便于下一步处理;

2)如同离线部分,利用OpenCV库的ORB特征提取方法获得vm的特征点序列k1及对应的特征点描述序列d1;

3)遍历参考图像,利用OpenCV库函数中的cv::BFMatcher对象的match方法按照汉明距离计算参考图像的特征点描述系列d0与vm的特征点描述序列d1的所有匹配点序列mb,将mb中所有配对点按照汉明距离的升序排序,取前100个点作为最好的配对点,此时的mb序列中存在着若干错误的匹配对,可以用OpenCV的findHomography方法,并将其method参数设置为CV_FM_RANSAC,以利用RANSAC算法来剔除错误的匹配,如图2所示,其中图2(a)是剔除前的匹配,图2(b)是剔除后的匹配。记录剔除错误配对后的配对点的数目。在遍历完所有参考图像后,具有最大配对点数的参考图像即为当前视频帧中包含的图像,由此可以确定需要融合显示的虚拟3D模型;

4)计算变换矩阵。从第一步的描述可知,Pp = M1.M2.Pw,M1在第一步中通过摄像头标定已经求得,现在需要求外参矩阵M2。M2可以利用OpenCV的方法solvePnP计算求得,该方法可以从一组3D-2D点的映射计算3D姿态。本文讨论的应用实际上是把3D钟的一个矩形图片投影到了图像平面,因此,只需要得到该矩形投影到图像平面的4个角点,即可以得到solvePnP方法需要的一组2D点。在第3步通过findHomography函数除了剔除了错误的配对点,还得到了vm中的匹配对象与参考图像的单应矩阵homography,因此,只要用OpenCV的函数perspectiveTransform将参考图像的4个角点的坐标经过homography变换,即得到4个solvePnP方法需要的2D坐标点。

5)渲染3D模型。用OpenGL函数库进行3D渲染,先渲染第i)步得到的背景纹理t,然后利用第一步求得的M1计算Projection矩阵,然后根据第四步计算出来的M2设置ModelView矩阵,最后渲染3D模型,如图3所示。

4 结语

本文讨论了一种基于自然特征匹配的增强现实应用的实现方法。在本文给出的方法里利用OpenCV视觉开发库对参考图像及视频帧图像提取ORB特征进行配对并载入合适的虚拟物模型,然后利用OpenCV计算摄像头的内外参矩阵,并根据计算出来的内外参矩阵设置OpenGL的Projection矩阵及ModelView矩阵变换,最终在显示设备上渲染出虚拟模型。由于手机的运行速度及手持时的抖动导致最终运行效果时出现卡顿、虚拟模型抖动的现象,这些问题的解决是后续研究中的主要方向。

参考文献:

[1] 全红艳,王长波,林俊隽.基于视觉的增强现实技术研究综述[J].机器人,2008,30(4):379-384.

[2] 刘嘉敏,孙洪兴,陈烁,常燕,辛义忠.增强现实中基于自然特征的实时跟踪方法[J].计算机工程与设计,2014,35(10):3551-3553.

[3] 任结,周余,于耀,都思丹,王自强.基于 ORB 自然特征的 AR 实时系统实现[J].计算机应用研究,2012,29(9):3594-3596.

[4] 李跃,汪亚明,黄文清,等.基于OpenCV的摄像机标定方法研究[J].浙江理工大学学报,2010,27(3):417-420.

猜你喜欢
增强现实
照片建模与增强现实实验在三维软件基础课程中的应用
增强现实技术在职业教育中的应用