Print

发布时间: 2017-07-16
摘要点击次数:
全文下载次数:
DOI: 10.11834/jig.160612
2017 | Volume 22 | Number 7




    图像理解和计算机视觉    




  <<上一篇 




  下一篇>> 





定位图像匹配尺度与区域的摄像机位姿实时跟踪
expand article info 苗菁华, 孙延奎
清华大学计算机科学与技术系, 北京 100084

摘要

目的 提出一种定位图像匹配尺度及区域的有效算法,通过实现当前屏幕图像特征点与模板图像中对应尺度下部分区域中的特征点匹配,实现摄像机对模板图像的实时跟踪,解决3维跟踪算法中匹配精度与效率问题。 方法 在预处理阶段,算法对模板图像建立多尺度表示,各尺度下的图像进行区域划分,在每个区域内采用ORB(oriented FAST and rotated BRIEF)方法提取特征点并生成描述子,由此构建图像特征点的分级分区管理模式。在实时跟踪阶段,对于当前摄像机获得的图像,首先定位该图像所对应的尺度范围,在相应尺度范围内确定与当前图像重叠度大的图像区域,然后将当前图像与模板图像对应的尺度与区域中的特征点集进行匹配,最后根据匹配点对计算摄像机的位姿。 结果 利用公开图像数据库(stanford mobile visual search dataset)中不同分辨率的模板图像及更多图像进行实验,结果表明,本文算法性能稳定,配准误差在1个像素左右;系统运行帧率总体稳定在2030帧/s。 结论 与多种经典算法对比,新方法能够更好地定位图像匹配尺度与区域,采用这种局部特征点匹配的方法在配准精度与计算效率方面比现有方法有明显提升,并且当模板图像分辨率较高时性能更好,特别适合移动增强现实应用。

关键词

增强现实; 3维跟踪; 特征匹配; 移动平台; 模板图像; 定位匹配尺度和区域

Real-time camera pose tracking with locating image patching scales and regions
expand article info Miao Jinghua, Sun Yankui
Department of Computer Science and Technology, Tsinghua University, Beijing 100084, China
Supported by: National Natural Science Foundation of China(61671272); National Key Research Program of China(2016YFB1000600); National High Technology Research and Development Program of China (2013AA013702)

Abstract

Objective In a conventional augmented reality system, the multi-scale image representations of a template image are constructed first. Feature key points at each scale are extracted and put together as a template feature set, which is used to match with the feature points extracted from the camera images. The number of feature points of the template image would become large when the number of scales in the template image representations is large. Nevertheless, camera images only correspond to images within a scale range similar to the scale of the camera image, and they probably overlapped with these images in partial regions. This result means that an ample amount of useless computation exists in conventional feature matching algorithms, thereby simultaneously lowering the image matching speed and decreasing registration accuracy. This paper proposes an effective method to locate image matching scales and regions in camera pose tracing and solve the preceding problem mentioned. Using local feature patching between current camera image features and the corresponding image scales and features of template image pyramid of regions achieves real-time computation of camera pose by feature matching pairs to solve feature matching accuracy and efficiency problem of the traditional three-dimensional tracing method. Method In the preprocessing stage, scale-space layers of a template image are constructed first. Concretely, an image is obtained by down-sampling the original image by a factor of 1.5, and it is sequenced as the second layer. On the condition that image resolution at the maximum layer is only less than that of the screen image specified, the other layers are formed by progressively half-sampling the original image and the second layer image and putting the two sequences alternately. Secondly, the key frame structure for each layer image is built. Specifically, each layer image is partitioned into the same rectangular regions, which could be overlapped when necessary. The size of the rectangular region is selected similar to that of the layer image at the maximum scale in scale-space layers. In each region, feature points are extracted and binary descriptors are generated by using the oriented FAST and rotated BRIEF algorithm, putting every rectangular position, sub-image, and feature points within it together to form a key frame structure. By this way, the feature descriptors of the image pyramid are managed according to scales and regions. In the real-time tracking stage, the scale range for any camera image within the image pyramid is located first. The covered image regions within this scale range are found using defined overlapping degree rules, thereby decreasing the scope of feature matching between current camera image features and template image pyramid and improving feature matching accuracy and efficiency by using local feature matching. 1) In locating scale range, a camera image, which is obtained in a distance to a template image, essentially corresponds to a scale range in the image pyramid of the template image and overlaps with some image regions in the scale range. This paper suggests a method for locating the scale range. First, this method predicts current camera pose in two ways: using the last frame camera pose and predicting the pose by Kalman filtering; four vertices of the original image are projected on the screen image with the evaluated camera pose; finally, the projection area size is obtained and used to compare with the layer image sizes in the image pyramid to determine the scale range. 2) In calculating the degree of region overlapping, we project all their key frame regions in layer images within the scale range onto the screen image with the evaluated camera pose to calculate the areas of the overlapped regions; the region overlapping degree is calculated through our method. 3) In local feature extraction and matching, a number of key frames with a large region overlapping degrees are obtained from the camera image by using the last frame camera pose as the evaluation; other key frames are obtained similarly by using pose evaluation from Kalman filtering. We consider the union of the two key frame sets and match all their feature points with those extracted from the camera image through the ORB algorithm and compute the camera pose by using some matching pairs. Result The new algorithm is implemented and run on a smartphone, tested on an open image database(Stanford mobile visual search dataset) with different resolution images and on other template images. This new algorithm is compared with four advanced algorithms, namely, fast locating of image scale and area, ORB, FREAK(fast retina keypoint), and BRISK(binary robust invariant scalable keypoints). In experiments, videos are recorded and used for all testing template images, where camera translations, rotations, and scaling-related template images are included. The optimal parameters of the ORB, FREAK, and BRISK algorithms are selected by analysis and tests, and the registration error and running frame rates are tested before and after, respectively, integrating our feature matching algorithm with the optical flow algorithm. Experimental results show that our new algorithm is robust and has high registration accuracy with approximately one pixel and has a real-time 3D tracking rate of 20-30 frames per second. Conclusion The algorithm can locate an image scale and region much better than before. The feature matching accuracy and speed between the current camera and template images increase obviously compared with several classic algorithms, especially when the resolution of the image is high. This algorithm can be used to track the natural image on a mobile platform.

Key words

augmented reality; three dimensional tracking; feature matching; mobile platform; template image; locating image patching scale and region

0 引言

增强现实(AR)是一种视觉系统的景象增强和扩张的技术,将计算机产生的图形、文字注释等虚拟信息有机地融合到使用者所能看到的真实世界景象中。该技术具有虚实结合的特点,是对真实世界的补充,可以给现实世界提供辅助性、甚至决策性的信息,给用户带来“沉浸式”的体验。

随着近几年移动设备性能的不断提高,移动增强现实技术取得了快速的发展。但是移动设备在计算能力,存储能力和续航能力等方面相比PC端还是存在着比较大的差距,所以很多时候并不能直接将PC端的算法或系统直接移植到移动端。鉴于此,许多人对移动增强现实系统的关键技术进行研究[1-3]

位姿计算是增强现实系统中的核心部分,基于计算机视觉的2维增强系统通常都使用匹配自然特征点的方法来计算位姿,图像特征点匹配过程包括特征点提取、特征点描述、特征点匹配以及匹配结果筛选4个步骤,这些算法步骤共同影响了位姿计算的精度和速度,从而决定了增强现实系统的运行状况。

自然特征点的提取和描述算法大致可以分为基于绝对值的算法和基于比较的算法。前者一般是将灰度、梯度等量化,构造直方图。Lowe等人[4]提出的尺度不变特征变换(SIFT)算法具有良好的尺度以及旋转不变性. Bay等人[5]为降低SIFT计算复杂度而提出加速鲁棒性特征(SURF)算法。这类算法具有良好的鲁棒性,但计算复杂度高、效率低,不能满足现有移动设备上的实时运算需求。第2种是基于比较的算法,一般采用二值描述的形式,通过点对比较结果生成二进制序列,来构造描述子,大幅提升了图像特征描述和特征匹配计算速度。Calonder等人[6]提出BRIEF(binary robust independent elementary features), 由于BRIEF特征不具备旋转不变性, Leutenegger等人[7]提出BRISK(binary robust invariant scalable keypoints)特征描述算法, 使用长距离采样点对计算特征点方向并归一化描述区域方向, 使得二值化特征描述符具有方向不变性。2011年, Rublee等人[8]提出的ORB(oriented FAST and rotated BRIEF)能够提取具有方向性的FAST[9]特征点并生成具有旋转不变性的二进描述子, 进一步提高了特征点匹配运算速度以及鲁棒性。Alahi等人[10]根据视网膜成像原理提出的FREAK(fast retina keypoint)描述符, 在一定程度上实现了尺度旋转不变。相比较来说ORB应用范围较广[11],在ORB-SLAM等高效的增强现实系统都有采用,可以满足移动设备上实时的特征匹配。

传统增强现实系统中,是预先将模板图像在不同尺度下的特征点合在一起作为模板特征集,与当前图像提取的特征点进行匹配。如果模板图像的金字塔层数比较多,最终生成的模板特征集也会很大,但是屏幕图像只能和模板中最接近尺度下的特征点较好的匹配,而且当摄像机离模板比较近时,屏幕图像只能覆盖模板图像的一部分区域。所以传统算法中存在着大量的无效计算,既影响匹配速度,又降低了匹配精度。为解决这些问题,赵奇可等人提出的可快速定位图像尺度和区域的特征匹配算法(FLISA)[2],通过对模板图像上的特征点进行分层次分区域的管理的方式,实现了实时系统中图像尺度和区域的快速定位。在实时跟踪过程中,屏幕图像特征点只与模板图像特定尺度下的特定区域的特征点进行匹配,并在获取了前一帧信息的前提下使用光流跟踪算法进行跟踪,有效提升了3维跟踪算法的效率。在具备尺度不变性的基础上,明显提升了特征匹配的效率。这种方法利用重叠因子计算当前摄影图像与模板图像匹配的区域,由这些区域可间接确定其所在的尺度,但并非先定位尺度后确定相应尺度范围内的区域;由于对定位尺度技术缺乏深入研究,影响了尺度与区域定位的准确率。本文提出了当前屏幕图像对应模板图像的尺度范围的定位算法,在相应尺度范围内确定与当前图像重叠度大的图像区域,然后将当前图像与模板图像对应的尺度与区域中的特征点进行匹配,最后根据匹配点对计算摄像机的位姿。与FLISA算法相比,新算法在尺度与区域定位上更准确、计算效率更高。

1 算法

FLISA算法由预处理阶段和实时跟踪两个阶段组成。预处理阶段对原始模板图像进行尺度和区域划分,分别在各区域内提取特征点并用BRIEF算法生成描述子,实现模板图像特征点集的分尺度分区域管理。其中各个划分区域称为关键帧。实时跟踪阶段从实时拍摄图像中提取特征点并生成描述子;利用上一帧的位姿作为当前位姿估计,通过计算重叠因子确定当前摄影图像与模板图像匹配的区域,将当前图像的特征点与相应关键帧中的特征点进行局部匹配,而后使用RANSCA筛选匹配结果并计算位姿。与FLISA算法相比,本文算法在预处理阶段及实时跟踪阶段用ORB代替BRIEF算法生成描述子,使得算法具有旋转不变性。最重要的是,在实时跟踪阶段,本文算法给出了定位尺度算法,首先确定当前摄影图像与模板图像匹配的匹配尺度范围,然后在该范围内利用改进的重叠度计算公式确定匹配区域。此外,除了利用上一帧位姿作为当前位姿的简单预测外,还增加了利用卡尔曼滤波预测当前摄像机位姿的方式,进一步增强了算法的鲁棒性。

为简单起见,称本文算法为IFLISA算法。相对于经典匹配算法,IFLISA主要在分区域、尺度定位和位姿预测上具备自己的特点,如表 1所示。

表 1 不同算法特性对比
Table 1 Characteristics comparisons of different algorithms

下载CSV
特性IFLISAFLISAORBFREAKBRISK
分层
分区域
旋转不变
尺度定位
位姿预测简单

1.1 预处理

首先,构造模板图像的金字塔多尺度表示。具体的,对模板图像先进行1.5倍采样,然后对原图像和1.5倍采样图像分别不断进2采样并将这两个序列交叉放置。分解层数直到金字塔最大尺度下的图像分辨率刚好小于摄像机获取的图像分辨率为止,由此构造L尺度的金字塔表示。对金字塔中每一层图像,再用ORB算法提取并生成特征点的二进描述子。

其次,对金字塔的每层进行区域分块构建关键帧结构。具体的,对于每一尺度下的图像,使用相同大小的矩形区域及相同的间隔排放在尺度图像上,将每个矩形的位置和其中的子图像以及区域内的特征点综合起来形成一个关键帧结构。关键帧的大小选取金字塔最大层即第$L$层图像的大小。显然,在这种划分方式下,最大尺度层只有一个关键帧。算法允许同层上的关键帧之间有重叠。

最大尺度$L$及每个尺度图像上横向与纵向关键帧个数的计算详见文献[2]。

1.2 实时跟踪过程

实时跟踪阶段对拍摄图像确定其相对模板图像所在的尺度及可能匹配的关键帧,然后将拍摄图像特征点与模板图像金字塔中相应尺度下部分关键帧的特征点进行局部匹配,筛选匹配结果并计算摄像机的位姿。文献[2]中使用上一幅图像的位姿作为当前拍摄图像位姿的估计,将模板图像中所有关键帧区域投影到当前拍摄图像上,计算每个关键帧和当前拍摄图像的重合程度,将重合度最高的关键帧区域挑选出来。也即该方法通过计算关键帧与当前摄像机图像的重合程度定位匹配尺度与关键帧(图像区域)。为增加算法的鲁棒性,本文提出了估计匹配尺度范围的算法,修改重叠度计算公式,用ORB代替BRIEF生成特征点描述子。此外,在保留使用上一幅图像的位姿作为当前拍摄图像位姿的估计的基础上,提出用卡尔曼滤波[12]由上一幅图像位姿预测当前拍摄图像位姿的另一种方法,由此并行地计算出另一组高重叠度的关键帧。最后将以上获得的两组关键帧的并集作为匹配关键帧与拍摄图像的特征点进行匹配,计算摄像机位姿。核心算法流程如图 1所示。

图 1 关键帧选取
Fig. 1 Keyframe selection((a)select KeyFrame; (b)merge KeyFrames)

1.2.1 位姿预测

文献[2]中的FLISA算法直接用上一帧的位姿信息作为当前拍摄图像帧的估计位姿,在实验中发现,这种方法只能在摄像机平缓移动时能够取得比较理想的结果。为了增加算法对摄像机移动的适应能力,IFLISA算法同时采用了卡尔曼滤波预测位姿的方法。

摄像机在3维空间中的运动可以映射为原始模板图像的4个顶点A、B、C、D在屏幕上的投影坐标为(A′、B′、C′、D′)在屏幕2维平面(Screen)内的运动,如图 2所示。

图 2 模板图像顶点在屏幕上的投影
Fig. 2 Projection on screen of vertices of template image

卡尔曼滤波是一个对动态系统的状态序列进行线性最小误差估计的递推式滤波器。卡尔曼预测估计采用的递归思路是最主要特点,应用在IFLISA算法中,无须考虑多个过去的投影点坐标,而在每次递归运算时,只考虑前一组投影点坐标即可,即认为现在的状态只依赖于前一个,而不依赖前面所有坐标值的状态,便于在移动系统中对投影坐标值进行实时处理。它包括预测与更新两个阶段。在预测阶段,将前一帧图像顶点投影的2维坐标作为状态滤波器${\mathit{\boldsymbol{X}}_k}$,在连续运动过程中利用卡尔曼滤波估算当前图像中4个顶点投影的2维坐标的估计值${{\mathit{\boldsymbol{\hat X}}}_{k + 1}}$。由模板图像4个顶点与当前4个估计顶点之间的对应关系估计摄像机位姿,从而获得当前拍摄图像的位姿预测。经过3维跟踪算法计算出当前摄像机图像的正确位姿后,使用模板图像4个顶点的投影的观测值${\mathit{\boldsymbol{Z}}_{k + 1}}$更正预测值${{\mathit{\boldsymbol{\hat X}}}_{k + 1}}$,用于下一次坐标预测。

状态方程:${{\mathit{\boldsymbol{\hat X}}}_{k + 1|k}} = {\mathit{\boldsymbol{A}}_{k + 1|k}}{\mathit{\boldsymbol{X}}_k} + {\mathit{\boldsymbol{W}}_k}$

观测方程:${\mathit{\boldsymbol{Z}}_k} = {\mathit{\boldsymbol{C}}_k}{\mathit{\boldsymbol{X}}_k} + {\mathit{\boldsymbol{V}}_k}$

式中,${\mathit{\boldsymbol{X}}_k}$$k$时刻的投影坐标状态变量,${{\mathit{\boldsymbol{\hat X}}}_{k + 1|k}}$是根据$k$时刻状态变量预测得到的第${k + 1}$时刻的投影坐标状态变量,${\mathit{\boldsymbol{A}}_{k + 1|k}}$是转移矩阵,${\mathit{\boldsymbol{C}}_k}$是观测矩阵,$\mathit{\boldsymbol{W}}$$\mathit{\boldsymbol{V}}$分别为状态和观测矩阵对应的噪声序列。

得到预测位姿值后,在后续尺度定位和重叠度计算中,系统同时使用前一帧的位姿信息和当前帧的位姿预测信息进行关键帧的选定,而后将两个集合合并为最终的关键帧选定集合,由于摄像机运动的连续性,两个集合通常都有较大的重叠,因此最终集合的关键帧数量仍然满足系统的帧率要求。

1.2.2 尺度定位

由于摄像机图像是离模板图像某一距离下拍摄的,因此,它大体对应模板图像金字塔中的某个尺度范围,并与这些尺度图像中的某些区域重叠。定位相应的尺度与关键帧对缩小特征点匹配范围及提高匹配准确度是至关重要的。尽量准确地定位摄影机图像对应的尺度与关键帧是IFLISA拟解决的核心问题。在获得当前摄像机位姿的估计值后(即利用前一帧摄像机图像的位姿或利用卡尔曼滤波预测位姿),通过将模板图像的4个顶点投影到相机屏幕上,并利用金字塔图像中各尺度图像的大小定位尺度范围。

${w_l},{h_l}(0 \le l \le L)$分别表示模板图像金字塔中$l$尺度图像的长和宽方向的分辨率,式中$l = 0$对应模板图像层,则

$\left\{ {\begin{array}{*{20}{l}} {{w_l} = {w_0}/{s_1}}\\ {{h_l} = {h_0}/{h_1}} \end{array}} \right.$ (1)

式中,${s_l}$表示$l$尺度图像相对模板图像的缩放比例,其计算公式为

${s_l} = \left\{ {\begin{array}{*{20}{l}} {{2^{l/2}}}&{l{\rm{为偶数}}}\\ {1.5 \times {2^{l/2}}}&{l{\rm{为奇数}}} \end{array}} \right.$ (2)

根据仿射变换的性质,长宽分别为${w_0},{h_0}$的模板图像在摄影机的投影下是一个凸四边形。记长为${w_0}$的模板图像的两个边在其投影四边形中对应的两个边长中最大值和最小值分别为$w_0^{{\rm{max}}}$, $w_0^{{\rm{min}}}$。类似地,记宽为${h_0}$的两个边在其投影四边形中对应的两条边长中最大值和最小值分别为$h_0^{{\rm{max}}}$, $h_0^{{\rm{min}}}$。下面是定位尺度范围的具体方法:

${h_0}$, ${h_1}$, …, ${h_L}$依次与$h_0^{{\rm{max}}}$比较,第1个大于等于$h_0^{{\rm{max}}}$的尺度层记为${l_1}$;将${h_L}$, ${h_{L - 1}}$, …, ${h_0}$依次与$h_0^{{\rm{min}}}$比较,第1个小于等于$h_0^{{\rm{min}}}$的尺度层记为${l_2}$;类似地,将${w_0}$, ${w_1}$, …, ${w_L}$依次与$w_0^{{\rm{max}}}$比较,第1个大于等于$w_0^{{\rm{max}}}$的尺度层记为${l_3}$;将${w_0}$, ${w_1}$, …, ${w_L}$依次与$w_0^{{\rm{min}}}$比较,第1个小于等于$w_0^{{\rm{min}}}$的尺度层记为${l_4}$;则${\rm{min}}\left( {{l_1},{l_3}} \right)$${\rm{max}}\left( {{l_2},{l_4}} \right)$为当前拍摄图像所跨越的尺度分层,在这个分层范围内继续进行下一步的区域重叠度计算。

通常情况下,在2维增强现实跟踪系统中,摄像机相对模板图像运动。为了直观理解,这里假设摄像机姿态始终保持水平不变,而模板图像相对摄像机运动。图 3以3层尺度的情况做简单示意。其中,虚线平面表示相机平面的姿态,实线倾斜四边形平面表示当前模板图像姿态,摄像机平面上的凸四边形表示模板图像在当前相机姿态下的投影图四边形。按照以上规则,第0层至第2层属于尺度定位的范围。

图 3 定位尺度范围示意图
Fig. 3 Illustration of locating scale range

1.2.3 区域重叠度计算

在已定位匹配尺度范围内,根据当前摄像机位姿的估计值将各尺度图像中每个关键帧投影到屏幕图像上,根据仿射变换的性质,关键帧的投影仍然为一个凸四边形。根据凸集的封闭性,上述凸四边形和屏幕图像4个点构成的四边形的交仍然是一个凸多边形。用${S_{{\rm{kf}}}}$${S_{{\rm{sc}}}}$${S_{{\rm{inter}}}}$分别来表示关键帧多边形,屏幕多边形和相交多边形这3个多边形的面积。用${m_{{\rm{kf}}}}$表示关键帧内特征点数量,${m_{{\rm{sc}}}}$表示屏幕图像总特征点数量,${n_{{\rm{kf}}}}$表示关键帧内重叠区域有效特征点数量,${n_{{\rm{sc}}}}$表示屏幕图像内重叠区域的有效特征点数量。假设特征点在各图像区域内大致是均匀分布的,则有

${n_{{\rm{kf}}}} = \frac{{{S_{{\rm{inter}}}}}}{{{S_{{\rm{kf}}}}}} \times {m_{{\rm{kf}}}}$ (3)

${n_{{\rm{sc}}}}{\rm{ = }}\frac{{{S_{{\rm{inter}}}}}}{{{S_{{\rm{sc}}}}}} \times {m_{{\rm{sc}}}}$ (4)

在匹配尺度范围内,特征点的有效匹配数量决定了重叠度,定义$\sigma $

$\sigma = {\rm{min}}({n_{{\rm{kf}}}},{n_{{\rm{sc}}}})$ (5)

在实现中,${m_{{\rm{kf}}}}$${m_{{\rm{sc}}}}$通常取相同的大小,如在我们的实验中,都取400。这时重叠度计算公式(5) 可简化为

$\sigma = {\rm{min}}(\frac{{{S_{{\rm{inter}}}}}}{{{S_{{\rm{kf}}}}}},\frac{{{S_{{\rm{inter}}}}}}{{{S_{\rm{w}}}}})$ (6)

需要指出的是,文献[2]中重叠度计算公式为

$\sigma = \frac{{\frac{{{S_{{\rm{inter}}}}}}{{{S_{{\rm{kf}}}}}} + \frac{{{S_{{\rm{inter}}}}}}{{{S_{{\rm{sc}}}}}}}}{2}$ (7)

可以看出,当重叠区域在关键帧和屏幕内所占比例大致相等时,上述两种计算重叠度的结果基本相同。但当重叠区域在关键帧和屏幕内所占比例相差较大时,IFLISA算法倾向于得到较小的重叠度,而文献[2]中的方法倾向于得到大的重叠度。理论上,利用IFLISA的重叠度计算方法,避免了重叠区域在关键帧和屏幕内所占比例低造成的匹配对较少的情况,提升了关键帧选择的命中率。区域重叠度量化了关键帧和当前屏幕的重合程度,为了保证匹配成功,选取重合程度最大的若干关键帧进行后续的特征匹配。

1.2.4 特征提取与匹配

对于当前拍摄图像,利用上一幅图像的位姿作为估计值利用上述方法确定重合度大的若干关键帧;再利用卡尔曼滤波估计的当前摄影机位姿确定重合度大的若干关键帧;将这两个关键帧集合取并集获得待匹配的关键帧集。

用ORB算法提取当前拍摄图像的特征点并生成特征点的二进描述子。然后与合并后的关键帧中的特征点进行匹配。由于使用关键帧定位算法后,参与匹配的关键帧的特征点数量比模板图像各尺度下特征点数量极大的减小,从而可提高匹配的效率和精准度。

通过RANSAC算法消除其中的误匹配后可计算出当前图像的摄影机位姿。

2 实验结果与分析

与文献[2]类似,我们将IFLISA算法与光流算法集成实现了一个面向移动终端的实时3维跟踪系统。本节对新算法及系统的性能进行测试和分析。

系统测试平台使用了魅族Pro5手机。魅族Pro5手机采用三星Exynos 7420的8核CPU(4个A57大核主频2.1 GHz,4个A53小核主频1.5 GHz),3 GB的LPDDR3内存,32 GB的UFS 2.0闪存,Mali-T760MP8的GPU和2 116万像素摄像头。

实验系统将设备的屏幕分辨率设置为640×480像素。

首先选取两张代表中低分辨率和高分辨率的图像作为测试模板图像,如图 4所示。为说明算法的广泛适用性及算法性能稳定性,本文进一步选择公开图像数据库Stanford Mobile Visual Search Dataset(https://purl.stanford.edu/rb470rw0983)中的图像进行算法验证。图 4模板图像的预处理情况见表 2

图 4 两个模板图像
Fig. 4 Two template images((a)image one; (b) image two)

表 2 模板图像预处理参数
Table 2 Preprocessed parameters of the template images

下载CSV
模板图像分辨率/像素分层数量关键帧总数
图像12 048×1 536534
图像24 096×3 0727134

将IFLISA算法与FLISA、ORB、FREAK和BRISK 4种代表性算法进行对比。FLISA算法属于与IFLISA算法直接相关的算法,分别对光流算法集成前后的系统有关指标进行对比;在实验中,用ORB代替FLISA中的BRIEF生成描述子,使FLISA具有旋转不变性。ORB、FREAK和BRISK算法均使用开源库OpenCV中的代码进行实验。需要特别说明的是,OpenCV内ORB和BRISK都实现了尺度不变,而FREAK没有,因为测试图像的纵横轴分辨率都在2 000像素以上,在这种分辨率下如果不具备尺度不变性,算法基本没有可用性,因此在实际测试中,为FREAK也加入了ORB的分层方法。

为了保证实验结果对所有算法的公平合理性,本文在实验中对每个模板图像使用预先拍摄好的视频,包含摄像机面对模板图像的平移、旋转、缩放等位姿变化。

2.1 算法优化参数选定

本节给出选定ORB、FREAK、BRISK算法在试验系统中最优参数选择的方法,并通过实验确定之。

ORB、FREAK和BRISK 3种算法的最优参数的选择是在使用光流算法系统中,通过调整特征点数量$c$,分层数量$L$,层间缩放因子$s$和3个参数值(对比跟踪失败率,匹配误差值以及跟踪帧数)来取得。我们首先根据系统需要指定3条参数选定要求,按照要求的优先级从高到低排列:

要求1:丢帧数不超过总帧数10 %;

要求2:帧率不低于10;

要求3:跟踪成功帧的误差平均值小于1.5。

从Stanford Mobile Visual Search Dataset中随机选择5幅图像(如图 5所示)作为模板图像进行测试。

图 5 5幅模板图像
Fig. 5 Five images selected from Stanford Mobile Visual Search Dataset

1) 首先选定分层数量$L$和层间缩放因子$s$在这种测试条件下暂不考虑匹配帧率,因此使特征点数量尽可能多,$c$的数量取2 000个,寻找满足上述要求1的$L$$s$值。

记测试模板图像原始分辨率为${R_o}$,镜头分辨率为${R_c}$${R_c}$的值固定为640×480,${R_o}$的值在3 000×2 000左右,因为

${R_o} = {R_c} \times {s^L}$ (8)

${s^L}$的值应取在4~5,$s$的值在使用中通常在1.2~1.5,超过1.5会造成分层不连续从而尺度鲁棒性减弱。测试中取了1.2、1.3、1.5这3个值,约束条件为$4 \le {s^L} \le 5$($L$为整数),得出相应$L$值,然后测试跟踪失败率。实验结果如表 3所示。

表 3 不同参数下的平均丢帧率
Table 3 Percentage of frame number with registration error more than 2 pixels in different cases

下载CSV
参数$s$$L$平均追踪失败率/%
取值11.285.2
取值21.367.2
取值31.5417.66

根据上述实验结果,$s$选定为1.2,$L$选定为8。以下采用这两个优化参数进行实验。

2) 选定$c$(特征点保留数量)。$c$值的选定需要在满足上述条件前提下使帧率和误差达到一个最接近平衡状态。

ORB, FREAK, BRISK 3种算法在不同$c$值条件下帧率误差对比的实验结果如表 4表 6所示。

表 4 不同$c$值条件下帧率误差对比(ORB)
Table 4 Frame rate and registration error in different $c$ values(ORB)

下载CSV
$c$
4006008001 0001 2001 600
帧率22.419.215.312.89.54.5
误差1.601.511.251.201.131.02

表 5 不同$c$值条件下帧率误差对比(FREAK)
Table 5 Frame rate and registration error in different $c$ values(FREAK)

下载CSV
$c$
4006008001 0001 2001 600
帧率25.720.416.714.711.27.7
误差1.821.671.401.361.211.21

表 6 不同$c$值条件下帧率误差对比(BRISK)
Table 6 Frame rate and registration error in different $c$ values(BRISK)

下载CSV
$c$
4006008001 0001 2001 600
帧率13.912.27.02.92.00.7
误差1.731.181.090.970.970.91

根据测试情况及上述要求2和要求3,ORB和FREAK的$c$选定为800,BRISK的值选定为600。

IFLISA算法使用的分层和分区域参数与FLISA算法相同,为了在系统鲁棒性和效率之间取得一个平衡,对获得的每一帧屏幕图像保留400个特征点。选取400个特征点是基于效率和稳定性的考虑,特征点数目越少,匹配效率越高。经过多次实验发现,在系统运行速度允许的范围内,保留400个特征点能保证系统较为鲁棒的追踪效果。同样地,每个关键帧也保留400个特征点。

2.2 特定模板图像上的性能

本节在模板图像1和模板图像2上进行实验,测试视频分别包含1 100帧和1 124帧。

2.2.1 集成光流算法前

2.2.1.1 跟踪失败帧数对比

与FLISA算法相比,IFLISA算法进行了4个方面的改进,包括:1) 改进区域重叠度计算公式;2) 估计匹配尺度的范围;3) 增加了用卡尔曼滤波预测当前摄像机位姿;4) 用ORB代替BRIEF生成描述子。因ORB相对BRIEF具备旋转不变性并且对噪声不敏感已经公认,下面就对前3种改进的效果进行实验。由于丢帧与否最能说明算法的准确性,因此,仅就是否丢帧及丢帧的程度判定各中改进的有效性与必要性。

为统计算法误差,在每一帧图像计算出对应的摄像机位姿之后,使用这个位姿,将模板图像中匹配成功的那些特征点投影到当前屏幕上,计算这些投影点与当前图像上检测出的对应特征点之间的距离。对这些距离求平均值,得到这一帧图像的误差值。当系统误差值大于2.0时系统记录为跟踪失败。

情形1:区域重叠度计算,将IFLISA算法中的区域重叠度计算公式采用FLISA算法中的计算公式,其他参数相同;

情形2:估计匹配尺度的范围,在IFLISA算法中忽略估计匹配尺度范围的步骤,其他参数不变;

情形3:卡尔曼滤波预测当前摄像机位姿。在IFLISA算法中忽略用卡尔曼滤波预测当前摄像机位姿从而不用合并关键帧的步骤,其他参数不变。

实验结果如表 7所示。

表 7 不同情形下跟踪失败帧数百分比
Table 7 Percentage of frame number with registration error more than 2 pixels in different cases

下载CSV
/ %
情形1情形2情形3IFLISA
图像12.87.31.10
图像210.911.76.90

引起失败帧有多种原因,包括:1) 快速运动造成的摄像头采集帧对焦不准、运动模糊,这种图像帧主要影响的是算法对模糊(blur)的适应鲁棒性;2) 摄像采集图像帧中模板图像所占比例太低,从而造成算法在帧内采集的有效特征点(keypoint)数量偏少,最终导致图像匹配失败;3) 摄像机距模板图像的距离过远或过近,超出了算法对原始模板图像进行分层的范围,也就是超出了算法的尺度不变范围,从而造成的图像匹配失败。从表 7可以看出,IFLISA改进区域重叠度计算方法,估计匹配尺度范围方法及增加卡尔曼滤波预测当前摄像机位姿对跟踪算法都是有效的。特别地,对于较高分辨率的模板图像2,所述3种改进都更显得重要。这表明,在抵抗引起失败帧的因素方面,新算法较改进前具有更强的鲁棒性。

表 8给出了5种算法对相同的输入视频跟踪时跟踪失败帧数的百分比。

表 8 5种算法跟踪失败帧数比例
Table 8 Percentage of frame number with registration error

下载CSV
/ %
ORBFREAKBRISKFLISAIFLISA
图像115.219.914.47.60
图像231.834.226.914.10

表 8可以看出,IFLISA算法对测试的视频图像帧无跟丢记录,这表明新算法在对比算法中具有最好的配准精度。在以下实验中,本文在视频中截取各个算法都不跟丢的一段视频进行性能对比。

2.2.1.2 帧率对比

对两种模板图像测试5种算法运行帧率并进行比较,实验结果如图 6图 7所示。

图 6 模板图像1跟踪帧率
Fig. 6 Tracing frame number per second of the template image 1
图 7 模板图像2跟踪帧率
Fig. 7 Tracing frame number per second of the template image 2

实验结果表明,本文算法在运行帧率明显高于其他两种算法,且图像分辨率越高,运行帧率提升更快。

2.2.2 集成光流算法后

2.2.2.1 系统运行帧率

对系统进行集成,加入了光流算法后,测试了集成系统的运行帧率。在本实验的光流算法分支中,当跟踪特征点少于10个或误差值高于2像素则判定光流跟踪失败。系统运行过程中的帧率如图 8图 9所示。

图 8 集成光流算法后模板图像1运行帧率
Fig. 8 Tracing frame number per second of the template image 1 after light flow algorithm integrated
图 9 集成光流算法后模板图像2运行帧率
Fig. 9 Tracing frame number per second of the template image 2 after light flow algorithm integrated

实验结果表明,集成光流算法后5种算法的运行帧率都有较大提升,但IFLISA算法的性能明显优于其他4种。

2.2.2.2 系统运行误差

为了测试系统的稳定性,对系统运行过程中的误差进行统计。实验发现,对于具有高分辨率的模板图像2,FLISA算法和ORB等分层算法对实时图像进行跟踪时失败的几率太大,误差值过大难以纳入统计,因此只对较低分辨率的模板图像1的误差值进行统计,实验结果如图 10所示。系统平均误差如表 9所示。从图 10表 9中可以看到,IFLISA算法的误差明显比FLISA算法和ORB分层算法的误差小。而且,在系统平稳运行过程中,误差基本保持在1个像素左右,表明系统拥有比较好的稳定性。

图 10 系统配准误差
Fig. 10 Registration error of integrated system after light flow algorithm integrated

表 9 平均配准误差
Table 9 Average registration error

下载CSV
ORBFREAKBRISKFLISAIFLISA
误差/像素1.084 2181.131 613 21.109 063 01.069 7230.887 889

本文进一步利用IFLISA算法在模板图像1测试视频上进行完整测试,平均配准误差是1.046 7像素,平均运行帧率为23.2帧/s。将屏幕图像及每个关键帧保留600个特征点,其他参数不变的情况下,系统平均配准误差是0.765 566像素,平均运行帧率为17.0帧/s。因此,可根据需要调整参数,保持3维跟踪鲁棒性与运行效率之间的平衡。

2.3 公开图像数据库上的性能

Stanford Mobile Visual Search Dataset数据库中包含有分别使用四种设备拍摄的图书封面、CD封面、博物馆画作、名片等图像,分辨率涵盖了由低到高的范围,很适合我们用于研究不同的算法在不同模板图像分辨率条件下的具体表现。本文在图像库内选定5类图像:1) museum paintings;2) book covers; 3) business cards; 4) cd covers; 5) print。进而从上述每类中随机选出5幅(共25幅)作为实验模板图像,相应图像的分辨率最低为2 372×1 420像素,最高为3 648×2 736像素。以下列出各类模板图像上的实验结果,其中每类取相应5幅图像的帧率和误差的平均值,表 10是集成光流算法前后系统平均帧率;表 11是集成光流算法后系统平均误差。

表 10 集成光流算法前后系统平均帧率
Table 10 Tracing frame number per second before and after light flow algorithm integrated

下载CSV
/帧/s
类别ORBFREAKBRISKFLISAIFLISA
集成
光流
算法前
111.910 9415.938 076.883 6314.864 3217.163 3
212.961 5214.918 848.432 6713.936 7317.156 225
311.145 4813.983 3236.963 1313.485 9417.749 82
48.023 99.264 65.584 0310.222 3216.281 15
57.894 38.190 225.360 5410.011 8716.492 5
集成
光流
算法后
117.654 2517.565 6611.034 919.042 525.838 3
217.787 118.734 511.784 6520.435 2524.437 21
317.117 5517.622 219.572 8317.338 9223.748 2
413.601 7213.326 867.273 8916.851 023.138 1
513.183 6412.267 28.575 8117.022 0724.212 4

表 11 集成光流算法后系统平均误差
Table 11 Registration error of integrated system after light flow algorithm integrated

下载CSV
类别ORBFREAKBRISKFLISAIFLISA
11.187 7631.303 6111.180 0471.203 161.087 93
21.106 5391.152 2711.172 3381.092 531.085 354
31.073 2021.139 611.134 741.103 831.024 603
41.159 1471.308 2091.149 8351.072 211.072 026
51.135 8821.163 9471.166 3291.127 831.047 111

从实验结果中可以看到,IFLISA算法在帧率上明显高于其他4种算法,而其误差均低于其他4种算法,这与特定图像上的实验结论一致。说明了新算法的稳定性与鲁棒性。与特定图像上的实验结果相比,5种算法的平均误差都略有增加,原因是由于实验图像较多,所有的模板图像都直接显示在显示器上进行拍摄,而特定图像的实验中模板图像都打印在纸质上,精度要高于屏幕显示。

3 结论

在增强现实3维跟踪算法中,对于拍摄的相机图像,如何定位模板图像金字塔多尺度表示中相应的匹配尺度与关键帧对缩小特征点匹配范围及提高匹配准确度是一个关键问题。针对FLISA算法在定位匹配尺度与区域方面存在准确率不够高的缺点,IFLISA通过增加尺度范围定位技术,使得在该尺度范围内确定匹配关键帧,通过改进区域重叠度计算方法提高匹配关键帧选取的准确度,通过增加基于卡尔曼滤波的相机位姿估计提高关键帧选取对相机运动状态的鲁棒性,同时通过采用ORB代替BRIEF生成描述子,大大提升了匹配尺度与区域的准确度,提高了3维跟踪算法的运算效率及配准精度。

本文算法及系统适合移动设备上对模板图像的3维跟踪及增强现实应用,尤其对较高分辨率模板图像的适用性较其他算法更好。系统在摄像机平缓移动时效果稳定,但在摄像机快速移动时,匹配跟踪算法及光流算法可能都失效,这时需要采用暴力匹配而导致相应帧的帧率下降,因此研究快速重定位(relocalization)技术,完善算法性能是下一步研究方向。

参考文献

  • [1] Lin L, Yang K, Wang Y T, et al.Key issues study for mobile augmented reality system[J]. Journal of Image and Graphics, 2009, 14(3): 560–564. [林倞, 杨珂, 王涌天, 等. 移动增强现实系统的关键技术研究[J]. 中国图象图形学报, 2009, 14(3): 560–564. ] [DOI:10.11834/jig.20090328]
  • [2] Zhao Q K, Sun Y K.Three dimensional tracking with fast locating of image scale andarea[J]. Journal of Image and Graphics, 2016, 21(1): 114–121. [赵奇可, 孙延奎. 快速定位图像尺度和区域的3维跟踪算法[J]. 中国图象图形学报, 2016, 21(1): 114–121. ] [DOI:10.11834/jig.20160114]
  • [3] Zhao Q K, Sun Y K, Sun Z Y. An augmented reality method with image composition and image special effects[C]//Proceedings of 2015 the 8th International Congress on Image and Signal Processing. Shenyang, China: IEEE, 2015: 746-750. [DOI:10.1109/CISP.2015.7407999]
  • [4] Lowe D G.Distinctive image features from scale-invariantkeypoints[J]. International Journal of Computer Vision, 2004, 60(2): 91–110. [DOI:10.1023/B:VISI.0000029664.99615.94]
  • [5] Bay H, Tuytelaars T, Van Gool L. SURF: speeded up robust features[C]//Proceedings of European Conference on Computer Vision 2006. Berlin Heidelberg: Springer, 2008: 404-417. [DOI:10.1007/11744023_32
  • [6] Calonder M, Lepetit V, Strecha C, et al. BRIEF: binary robust independent elementary features[C]//Proceedings of the European Conference on Computer Vision 2010. Berlin Heidelberg: Springer, 2010: 778-792. [DOI:10.1007/978-3-642-15561-1_56]
  • [7] Leutenegger S, Chli M, Siegwart R Y. BRISK: binary robust invariant scalable keypoints[C]//Proceedings of 2011 IEEE International Conference on Computer Vision. Barcelona: IEEE, 2011: 2548-2555. [DOI:10.1109/ICCV.2011.6126542]
  • [8] Rublee E, Rabaud V, Konolige K, et al. ORB: An efficient alternative to SIFT or SURF[C]//Proceedings of IEEE International Conference on Computer Vision. Barcelona: IEEE, 2011: 2564-2571. [DOI:10.1109/ICCV.2011.6126544]
  • [9] Rosten E, Porter R, Drummond T.Faster and better: a machine learning approach to corner detection[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2010, 32(1): 105–119. [DOI:10.1109/TPAMI.2008.275]
  • [10] Alahi A, Ortiz R, Vandergheynst P. FREAK: fast retina keypoint[C]//Proceedings of IEEE Conference on Computer Vision and Pattern Recognition. Providence, RI: IEEE, 2012: 510-517. [DOI:10.1109/CVPR.2012.6247715]
  • [11] Magnenat S, Ngo D T, Zünd F, et al.Live texturing of augmented reality characters from colored drawings[J]. IEEE Transactions on Visualization and Computer Graphics, 2015, 21(11): 1201–1210. [DOI:10.1109/TVCG.2015.2459871]
  • [12] Cheng G, Liu W D, Wei S J, et al.Methods for estimation and prediction of maneuverable target based onKalman filtering[J]. Computer Simulation, 2006, 23(1): 8–10. [成光, 刘卫东, 魏尚俊, 等. 基于卡尔曼滤波的目标估计和预测方法研究[J]. 计算机仿真, 2006, 23(1): 8–10. ] [DOI:10.3969/j.issn.1006-9348.2006.01.004]