2. 哈尔滨工程大学 信息与通信工程学院, 黑龙江 哈尔滨 150001
2. College of Information and Communication Engineering, Harbin Engineering University, Harbin 150001, China
获取宽视角、大场景的全景图像无论是对人们的休闲娱乐还是工业生产都具有重要的意义。然而由于摄像设备的限制,通常只能得到清晰的局部图像或是为了得到全部图像而舍弃一些清晰度。这种图像清晰度与宽视角图像的矛盾使得研究性能优异的图像拼接算法变得尤为重要。
图像配准是图像拼接算法效果优劣的关键。图像拼接算法基于实现原理可以分为两大类:一种是基于区域,另一种基于特征变换。目前最广泛应用的图像拼接算法是尺度不变特征变换匹配算法(scale invariant feature transform, SIFT)。但是SIFT提取特征点后存在误匹配点,会降低图像之间变换参数的精度,严重影响图像的拼接质量。Karsar T等[1]使用欧式距离调节最近邻与次近邻距离的比值阈值,从而减少误匹配,但也容易失去一些正确的匹配点,不能真正提高匹配率。邹北骥[2]、H.Nicolas[3]等提出基于特征点的中值滤波算法,但该算法不能彻底排除特征点的误差,而且时间消耗大。FANG Xianyong等[4]提出基于RANSAC(random sample consensus)的图像拼接算法,提高了算法的运行效率。
针对SIFT[5-9]存在的误匹配点导致的图像拼接问题,兼并RANSAC算法的优点,本文提出了一种SURF(speeded up robust features)和RANSAC[10]的组合图像拼接算法。SURF算法在时间消耗上相比SIFT算法有了明显减少,而RANSAC算法可以完成匹配点的筛选工作。SURF与RANSAC组合图像拼接算法就是基于结合2种算法优点的思想,一方面采用SURF算法降低时间消耗,另一方面使用RANSAC算法提高图像拼接的精度。实验结果表明,本文提出的SURF与RANSAC图像拼接算法可以完成高质量的图像拼接,是一种加速图像拼接速度兼具鲁棒性的图像拼接算法。
1 SURF算法SURF[11]意为加速版的具有鲁棒性的特征算法,SURF算法由Bay首次提出,是SIFT算法的加速版。SURF算法在耗时上相比SIFT算法具有明显的优势,并且在多幅图片下具有更好的稳定性。SURF算法关键在于采用了Harr特征以及积分图像的概念,缩短了程序运行的时间使得程序在时间消耗上相比传统图像拼接算法得以改进。
1.1 构建Hessian矩阵SURF算法是基于特征的图像拼接算法。为获取特征,首先需要对图像的每个像素进行Hessian矩阵计算,从而得到该图像的特征。Hessian矩阵测量一个函数的局部曲率,定义如下:
$ \mathit{\boldsymbol{H}}\left( {\mathit{\boldsymbol{x}}, \mathit{\boldsymbol{y}}} \right) = \left[ {\begin{array}{*{20}{c}} {\frac{{{\delta ^2}I}}{{\delta {x^2}}}}&{\frac{{{\delta ^2}I}}{{\delta x\delta y}}}\\ {\frac{{{\delta ^2}I}}{{\delta x\delta y}}}&{\frac{{{\delta ^2}I}}{{\delta {y^2}}}} \end{array}} \right] $ | (1) |
$ \det \left( H \right) = \frac{{{\delta ^2}I}}{{\delta {x^2}}}\frac{{{\delta ^2}I}}{{\delta {y^2}}} - {(\frac{{{\delta ^2}I}}{{\delta x\delta y}})^2} $ | (2) |
式(1)为Hessian矩阵的表达式,矩阵中的各项为图像在各方向上的二阶导数。式(2)为Hessian矩阵的行列式。曲率的强度由式(2)给出,同时给出角点,角点为具有较高局部曲率的图像点(即在多个方向具有高曲率)。因为矩阵由二阶导数构成,不同尺度的Laplacian Gaussian核可以用来计算,将Hessian转为3个变量的函数H(x, y, σ)。对Hessian求空间域和尺度域的局部极大值时,即可找到尺度不变的特征。
1.2 构建尺度空间图像在不同解析度下的表示是一幅图像的尺度空间。高斯核卷积可以推导出一幅图像在不同解析度下的表示。也正因为如此,一般用高斯标准差作为图像尺度大小的评判标准。尺度空间可以看成是一个图像金字塔,将图像函数反复与高斯函数的核卷积运算,并对结果进行抽样。从算法的实现方式分析可以看出这种实现方法依赖性比较强,用此算法的计算量偏大。针对SIFT算法存在的问题,SURF算法不需要对图像进行二次抽样,通过申请增加图像核的尺寸的方式,运行尺度空间多层的图像同时处理。在使用金字塔原理上和SIFT不同,避免了二次抽样,从而显著地提升算法的性能表现。
1.3 精确定位特征点为了提高算法的性能对特征点进行检测划分。原理是预设极值,只选取高于预设极值的点,从而达到筛选的目的。
具体实现:首先选定滤波器,滤波器与尺度层图像解析度大小相关,滤波器精确参数由SURF类的额外参数进行设置;同时引入积分图像,由于积分图像的存在,可以进行多次区域求和,并且求和的结果与滤波器的尺寸无关;识别了局部最大极值后,也可以通过空间域及尺度域插值的方式获取特征点的位置。
1.4 主方向确定要确定主方向首先要确保旋转不变性。主方向确定的步骤可以简化为:首先计算各方向的加权Harr小波响应;然后进行一定范围内的矢量和操作;最后遍历所有得到的矢量和,选取最长的矢量方向作为主方向。
具体细节为设定Harr的小波边长为4倍的特征点所在的尺度值。根据响应值距离特征点的远近进行高斯加权赋值。距离特征点越近的权重越大。进行矢量和操作时,矢量相加范围为相邻60°。
2 RANSAC算法RANSAC[12]算法的目的是从包含异常值的数据集合中估算出给定的数学元素。引用Sampson加权算子,以Sampson距离划分局内点和局外点,将局外点归为误匹配的特征点对,从而实现筛选过程,提高算法的鲁棒性。
基于RANSAC方法的基本矩阵估计步骤如下:
1) 在匹配点数据集中取样,采用8点算法进行基本矩阵初始估计,得到基本矩阵F。计算Sampson距离,划分局内点和局外点;
2) 记录当前初始估计的基本矩阵和和局内点的数目并进行比较,保存局内点数目和最多的基本矩阵;
3) 置信概率为挑选K次,至少出现一次含8个正确结果的概率。假设集合包含n%正确值,那么置信概率为1-(1-8n)k,为此,运行RANSAC算法时确定K的数量以得到确定的置信等级使得置信概率更高;
4) 得到局内点最多的基本矩阵初始估计和相应局内点;
5) 将所有局内点重新利用8点估计算法得到基本矩阵。
3 透视变换与单应矩阵透视变换是将图片投影到一个新的视平面,也称作投影映射。通用的变换公式为
$ \left[ {\mathit{\boldsymbol{x}}'\;\;\mathit{\boldsymbol{y}}'\;\;\mathit{\boldsymbol{w}}'} \right] = \left[ {\mathit{\boldsymbol{u}}\;\;\mathit{\boldsymbol{v}}\;\;\mathit{\boldsymbol{w}}} \right]\left[ {\begin{array}{*{20}{c}} {{a_{11}}}&{{a_{12}}}&{{a_{13}}}\\ {{a_{21}}}&{{a_{22}}}&{{a_{23}}}\\ {{a_{31}}}&{{a_{32}}}&{{a_{33}}} \end{array}} \right] $ |
u、v是原始图片左边,对应得到变换后的图片坐标x、y。变换矩阵
$ \left[ {\begin{array}{*{20}{c}} {{a_{11}}}&{{a_{12}}}&{{a_{13}}}\\ {{a_{21}}}&{{a_{22}}}&{{a_{23}}}\\ {{a_{31}}}&{{a_{32}}}&{{a_{33}}} \end{array}} \right] $ |
可以拆成4部分,前2行2列组成的二阶矩阵表示线性变换,比如缩放、剪切和旋转。第3行前2个元素组成的行向量用于平移,第3列前2个元素组成的列向量产生透视变换。所以可以理解成仿射变换是透视变换的特殊形式。经过透视变换之后的图片通常不是平行四边形(除非映射视平面和原来平面平行的情况)。
单应矩阵是一个数学概念,它定义了两幅图像之间的相互关系,一张图像上的任意一点可以在另一图像上找到对应的点,且对应点唯一。同一个点在不同视图中的图像存在线性关系:
$ \left[ {\begin{array}{*{20}{c}} {sx'}\\ {sy'}\\ s \end{array}} \right] = \mathit{\boldsymbol{H}}\left[ {\begin{array}{*{20}{c}} x\\ y\\ 1 \end{array}} \right] $ | (3) |
在齐次坐标系中,这个关系中包含缩放因子,即标量s。一旦我们估算出这个矩阵的值,那么通过这个映射等式,可以将一个视图的点变换得到另一个视图的点。由cv:findHomography计算而得的单应性矩阵将第1幅图中的点映射到第2幅图中。事实上,我们需要用来变换第1幅图中的点到第2幅图的是单应矩阵的逆矩阵。这正是函数cv:warpPerspective默认实现的功能,得到的是输出中每个点的颜色值。当输出像素变换到输入图像之外时,该像素被赋予黑色值。
4 SURF和RANSAC组合算法步骤1) 输入图像并进行灰度化处理;
2) 对于原图像进行两次尺寸变换,以统一图片大小;
3) 应用SURF算法对图像进行特征提取,提取图像的特征点,每个特征点提供足够用于判断匹配的信息以保证匹配的准确性;
4) 特征点匹配,确认存在较多匹配的特征点对;
5) 用RANSAC方法筛选优质匹配特征点;
6) 计算单应矩阵并进行图像融合。
5 实验仿真与结果分析本次实验结果都是基于C++代码进行仿真实现的。使用计算机为win10 64位操作系统,intel I7, 2.6 GHz处理器。
为了验证本文的算法,选择了一幅阴天校园图片。同时,采用SIFT算法与本文提出的算法在匹配对数,一致集的匹配点对数,匹配精度以及耗时上进行比较。再给出不同情景下本文提出算法进行图像拼接的使用效果。
Download:
|
|
Download:
|
|
图 3、4分别是对2幅原始图像灰度图进行特征点提取的示意图。图中标注的小圆圈即为提取的Harris特征点,可见特征点分布还是比较均匀的。
Download:
|
|
Download:
|
|
图 5是通过简单筛选图像匹配点进行匹配的示意图。
Download:
|
|
图 6是对2幅图像经过RANSAC算法提纯后的优质特征点进行匹配的示意图。
Download:
|
|
图 7是将灰度图 1投影变换到灰度图 2所在的平面上,截取出两幅图的重合部分并进行融合,根据式(3)可得
Download:
|
|
$ \left[ {\begin{array}{*{20}{c}} {2.015}&{0.034}&{ - 966.656}\\ {0.644}&{1.922}&{ - 363.778}\\ {0.001}&{5.896}&1 \end{array}} \right] $ |
图 8给出了2幅原始图像配准后的最终图像。
Download:
|
|
使用SIFT对2幅原始图像进行图像拼接操作可得图 9、10。
Download:
|
|
Download:
|
|
图 11和图 12分别是图书馆内阅览室的两张多角度的原始图的灰度图,图 13是拼接后的最终的图像。
Download:
|
|
Download:
|
|
Download:
|
|
图 14是提取的匹配SIFT特征点图像,图 15是显示拼接过程的拼接图像。
Download:
|
|
Download:
|
|
图 16、17分别是校园景色晴天的两张多角度的原始图的灰度图。图 18是拼接后的最终的图像。
Download:
|
|
Download:
|
|
Download:
|
|
从表 1给出的SIFT与SURF和RANSAC图像拼接算法对比中可以看出,本文提出的算法在匹配的精度和耗时上都有了明显提高。
1) 图像整合是图像拼接的关键,2幅相邻图像之间变换参数的精度直接决定最后拼接质量的高低。图像融合阶段虽然也有消除图像拼接缝隙、提高图像拼接质量的作用但是不能起决定作用。
2) 常用的SIFT算法算法复杂度高、匹配精度不高。本文提出的SURF和RANSAC组合算法在图像整合阶段,并不是直接从2幅待整合图像重叠区域中对应像素点的相似性出发考虑问题,算法从特征点提取匹配出发,基于筛选过滤的提纯思想对初步筛选的特征点进行优化从而达到提高融合质量的目的。
3) 本文提出的SURF与RANSAC组合算法避免了对大量图像数据的计算,提高了图像的拼接速度。
上述的3个实例,反映了不同的场景内容,都具有代表性。由原始图可以看出这3个实例中2幅原始图都具有相当的变换幅度,仍然得到了质量较高的整合图像,并且和常用的SIFT算法相比在匹配精度和耗时上都有了提高。由此可见基于SURF和RANSAC的组合图像拼接算法可实现高质量的图像拼接,是一种加速图像拼接速度兼具鲁棒性的图像拼接算法。
[1] | KASAR T, RAMAKRISHNAN A G. Block-based feature detection and matching for mosaicing of camera-captured document images[C]//TENCON 2007-2007 IEEE Region 10 Conference. Taipei, China, 2007: 1-4. http://ieeexplore.ieee.org/xpls/icp.jsp?arnumber=4429095 (0) |
[2] | 邹北骥, 阮鹏, 向遥, 等. 一种精确匹配的全景图自动拼接算法[J]. 计算机工程与科学, 2010, 32(8): 60-63. DOI:10.3969/j.issn.1007-130X.2010.08.016 (0) |
[3] | NICOLAS H. New methods for dynamic mosaicking[J]. IEEE transactions on image processing, 2001, 10(8): 1239-1251. DOI:10.1109/83.935039 (0) |
[4] | FANG Xianyong, ZHANG Mingmin, PAN Zhigeng, et al. A new method of manifold mosaic for large displacement images[J]. Journal of computer science and technology, 2006, 21(2): 218-223. DOI:10.1007/s11390-006-0218-2 (0) |
[5] | 何佳华, 吴斌, 张红英. 基于不变矩相似度的快速图像拼接[J]. 微型机与应用, 2017, 36(12): 50-53. (0) |
[6] | 刘佳, 傅卫平, 王雯, 等. 基于改进SIFT算法的图像匹配[J]. 仪器仪表学报, 2013, 34(5): 1107-1112. DOI:10.3969/j.issn.0254-3087.2013.05.022 (0) |
[7] | 李新科, 高潮, 郭永彩, 等. 利用改进的SIFT算法检测桥梁拉索表面缺陷[J]. 武汉大学学报:信息科学版, 2015, 40(1): 71-76. (0) |
[8] | 杨世沛, 陈杰, 周莉, 等. 一种基于SIFT的图像特征匹配方法[J]. 电子测量技术, 2014, 37(6): 50-53. DOI:10.3969/j.issn.1002-7300.2014.06.013 (0) |
[9] | 白廷柱, 侯喜报. 基于SIFT算子的图像匹配算法研究[J]. 北京理工大学学报, 2013, 33(6): 622-627. DOI:10.3969/j.issn.1001-0645.2013.06.015 (0) |
[10] | 赵烨, 蒋建国, 洪日昌. 基于RANSAC的SIFT匹配优化[J]. 光电工程, 2014, 41(8): 58-65. DOI:10.3969/j.issn.1003-501X.2014.08.010 (0) |
[11] | 任克强, 胡梦云. 基于改进SURF算子的彩色图像配准算法[J]. 电子测量与仪器学报, 2016, 30(5): 748-756. (0) |
[12] | 穆柯楠, 惠飞, 曹健明, 等. 一种基于几何约束的RANSAC改进算法[J]. 计算机工程与应用, 2015, 51(4): 205-208. DOI:10.3778/j.issn.1002-8331.1301-0122 (0) |