基于SURF和RANSAC的快速图像拼接

2018-01-11 20:45王武于林韬
数字技术与应用 2017年11期

王武+于林韬

摘要:针对传统图像拼接算法中复杂度高,效率低的问题,本文提出一种基于SURF和RANSAC的快速图像拼接算法。首先运用SURF算法提取待拼接图像的特征点,采用K-D树的数据结构来存储特征描述子,然后利用BBF算法进行遍历搜索,实现初步匹配,最后利用RANSAC算法对特征点匹配结果进行提纯,剔除误匹配的特征点对,得到图像配准结果。针对图像交界处出现的“拼缝”等不自然的地方,使用加权值融合算法进行处理,从而实现光照和尺度变化下的快速图像拼接。

关键词:SURF;RANSAC;特征匹配;图像拼接

中图分类号:TP391.41 文献标识码:A 文章编号:1007-9416(2017)11-0039-02

所谓图像拼接技术就是将多幅彼此存在重叠部分的图像队列进行匹配对准,再融合形成一幅包含各图像序列信息的、完整的、宽视角场景的、无缝的、高分辨率的新图像[1]。

图像拼接领域多使用经典的SIFT算法,不过该算法结构复杂,特征点的提取和匹配耗时较长,缺乏工程应用的实时性。故本文采用改进过的SIFT算法,即SURF(Speeded-Up Robust Features)算法来提取源图像和待匹配图像的特征点,其主要目的就是为了缩短算法处理的时间,以便将各种优良的图像拼接算法移植到对实时性要求较高的场合,比如智能手机。

1 基于SURF的特征点匹配

SURF算法,全称是Speeded-Up Robust Features。该算法是建立在优秀的SIFT算法上的,另外针对SIFT算法复杂度进行了优化,对特征点提取和特征向量的描述进行改善,达到了更高的速度。因此,它常常用于对实时性或运算速度要求较高的场景,这也是本文选用该算法的原因。

SURF算法工作时主要分为如下几步:

(1)构造Hessian矩阵,计算特征值α。

(2)构造高斯金字塔。

(3)定位特征点。

(4)确定特征点主方向。

(5)构造特征描述子。

对于SURF算法的具体工作原理的解释不是本文的重点,可以查看算法提出者的论文或者OpenCV中实现该算法的源码。

下面展示的实验结果都是基于OpenCV2.7+Windows7 64bits,运行内存8G。

如图1所示为对拼接领域经典的雪山图像利用SURF算法查找特征点后,利用KD-Tree和BBF搜索算法初步提取和匹配的结果。

2 基于RANSAC的特征点提纯

RANSAC算法是一种经典的消除误匹配的方法,具有匹配精度高、可靠度高,鲁棒性强等优点[2]。上面我们提到查找SURF特征点并通过KD-Tree和BBF算法进行特征点匹配,因为实时性的要求,我们应该尽量剔除误匹配点,选择最优点,而RANSAC算法则是处理这一过程的通用算法,实验证明确实取得较好的效果。

如图2所示为RANSAC提纯后得到的最优点匹配结果。

3 图像配准和融合

由于待拼接的图像通常是由相机在不同角度下拍摄获得的,各个图像的投影平面并不相同,且存在着一定的夹角[3],因此图像拼接过程中有一个步骤就是待拼接图像投影到基准图像的同一个坐标系中,这里采用大多数图像适用的柱面投影模型。图3所示为投射变换过程的中间图像。

由于是在不同条件和时刻下获得的图像,所以在不同光照、设备参数等环境条件影响下,图像灰度值不可能保持不变,所以在合成一幅图像的时候就会出现明显的缝合裂痕,影响观看效果[4]。为了解决可能出现的拼缝或者“鬼影”现象,增加图像的信息量,使得最终得到的图像具有良好的观赏性,必须对配准后的图像进行图像融合。本文采用加权平均的像素级融合方法使重叠部分色彩差异变小,实现平滑过渡。

拼接后的效果如图4所示。

4 结语

本文针对目前图像拼接SIFT算法比較复杂,不适用实时性高的场景,提出了一种基于SURF和RANSAC的改进算法,并在理论研究的基础上,进行了软件编程实现,实验证明该算法在多数场景下具有拼接效果好,速度快的特点。下一步工作就是验证该算法在不同场景下的适用性,以及算法的效率,争取可以移植到移动端如Android智能手机上,可以实现一定的商业价值。

参考文献

[1]仵建宁,郭宝龙,冯宗哲.一种基于兴趣点匹配的图像拼接方法[J].计算机应用,2006,26(3):610-612.

[2]田文,王宏远,徐帆等.RANSAC算法的自适应预检验[J].中国图象图形学报,2009,14(5):973-977.

[3]宋璐.基于单目视觉的全景拼接技术研究及安卓平台实现[D].北京理工大学,2014.

[4]王凌云,凌海波,王琪.SURF和RANSAC在图像拼接中的应用[J].电子测量技术(信息与图像处理),2016,39(4):71-75.

Abstract:Aiming at the problem of high complexity and low efficiency in traditional image stitching algorithm, this paper proposes a fast image stitching algorithm based on SURF and RANSAC. Firstly, SURF algorithm is used to extract the feature points of the images, K-D tree structure is used to store the feature descriptors, BBF algorithm is used to search and preliminary match, finally using RANSAC algorithm to purificate feature points and remove false matching feature points to get image registration results. Aiming at unnatural joint found between the images, the weighted average fusion algorithm is used to fuse the images to achieve fast image stitching under illumination and scale change.

Key Words:SURF; RANSAC; Feature matching; Image stitchingendprint