张乐
【摘 要】图像拼接是将一系列图像结合成一个宽场景的图像。本文简述了图像拼接的一般流程,重点介绍了三种基于单应性(Homograohy)矩阵的图像拼接方法。文中利用三种图像拼接方法对两组图像进行拼接实验。实验结果表明:如果两幅图像在同一个平面场景或者拍照中心相同,用一个基本的单应性矩阵能完成拼接;如果两张幅像之间存在除了旋转之外的变换或者不在同一平面场景,由于单应性矩阵无法处理视差,仅使用单应性矩阵来拼接得到的结果将出现鬼影或错位。
【关键词】图像拼接;单应性矩阵;视差;鬼影;错位
【Abstract】Image stitching is a combination of a series of images into a wide view image. The paper briefly describes the general process of image stitching, mainly introduces three image stitching method based on homography matrix. In this paper, the three methods are used to stitching two sets of images. The result shows that: if the two images scenes are effectively planar or have same camera center, using a basic homography matrix can complete stitching; if there is another transformation except rotation between two images or they dont in a same plane scene, as the homography matrix cannot account for parallax, stitching by homoagrapy matrix alone will result in ghosting and dislocation.
【Key words】Image stitching; Homography matrix; Parallax; Ghosting; Dislocation
0 引言
图像拼接是一个很有意义的研究[1]。为了在不降低图像分辨率的条件下获取超宽视角甚至360°的全景图,利用计算机进行图像拼接被提出并逐渐研究发展起来。目前,图像拼接技术已经成为计算机图形学的研究焦点,被广泛应用于空间探测、遥感图像处理等领域。图像配准和图像融合是图像拼接的两个关键技术[2]。图像配准是图像融合的基础,而且图像配准算法的计算量一般非常大。因此,图像拼接技术的发展很大程度上取决于图像配准技术的创新。图像拼接技术已经发展到一个相对成熟的阶段[3]。多数图像拼接的算法都是采用相似的思路:首先估计变换矩阵(相似变换、仿射变换或投影变换)来配准重叠区域的图像,然后将配准后的图像合成到一个公共的画布上[4]。然而对于许多图像数据,完美的配准是很难实现的,配准结果往往存在视差错误和鬼影。因此当前许多工作为了研究出更好的配准和合成技术来减少误对齐和鬼影。
1 相关工作
图像拼接主要包括以下4个步骤:
1)图像预处理。包括数字图像处理的基本操作(如去噪)。
2)图像特征提取。提取图像的特征点,常见的提取特征点算法有SIFT,SURF特征等。
3)图像配准。采用一定的匹配策略,找出带拼接图像中的特征点在参考图像中对应的位置,从而确定两幅图像之间的单应性矩阵。
4)图像融合。将待拼接图像的重叠区域进行融合,得到全景图像。
多数图像拼接方法采用单应性矩阵来变换图像。基于单应性矩阵的拼接方法有它的缺陷:只有当图像的运动仅仅包含旋转或者成像平面基本在处于同一平面时,直接利用单应性矩阵拼接图像才会得到比较满意的结果。单应性矩阵在拼接时无法处理图像间的视差问题。因此当输入图像如果不满足这些条件,或图像间存在较大的视差时,拼接结果就会出现视差错误和鬼影。
为了最小化由投影变换造成的视差错误,Carroll 等人提出了一种基于内容保持[5]的变换方法。它通过改变投影变换,使其适应图像中的内容来最小化广角图像的配准偏差。但是,当待拼接的图像不满足使用单应性矩阵拼接的假设时,拼接结果会出现视差错误。Gao等人提出了双重单应性变换方法[6]来着重处理包含两个不同平面场景的图像,变换矩阵是由两个有着不同空间权重的单应性矩阵进行线性组合来定义的,由于它的变换同样基于单应性矩阵且无改进,因此它的拼接结果也存在投影导致的视差错误。Lin 等人提出了一个平滑地改变全局仿射变换[7]的方法来处理视差图像,其拼接结果仍会有视差错误。
Zaragoza 等人提出了尽可能投影的拼接方法[8]。它是一个全局的投影,在重叠区域运用局部投影变换,进而利用移动直接线性变换 (moving DLT) 来平滑地将局部投影外插到非重叠区域。它是一个全局的投影变换,在拼接过程中允许存在局部偏差导致拼接大视差图像时出现错位。Fan等人提出了视差容忍的拼接方法[9]。为了获得更好的拼接结果容忍配准时有偏差。它首先通过计算图像间的单应性矩阵完成图像的预配准,再通过寻找缝合线的代价[10]来评估单应性矩阵的好坏。重复这个过程,直到找到符合要求的单应性矩阵。最后,引入缝合线技术[11]优化拼接结果。
2 基于单应性矩阵的图像拼接方法的介绍
假设图像间的变换仅包含旋转或者成像平面基本在处于同一平面时,那么可以用描述平面物体运动关系的单应性矩阵来表示它们之间的关系。单应性矩阵是一个3×3的矩阵。如果用齐次坐标表示图像上的像素点,那么一对匹配点与单应性矩阵之间可以描述为:
当两幅图像之间不仅仅存在旋转关系,或者它们不在一个平面场景,直接利用一个基本的单应性矩阵来拼接不可避免的会产生误配准或者视差[8]。为了解决这个问题,有人提出对每一个像素点用一个局部的单应性矩阵来映射,使用移动直接线性变换进行配准。使用全局的单应性矩阵进行拼接时能够避免图像产生扭曲。但是,对于两幅大视差的图像,利用全局单应性矩阵来拼接不能消除视差带来的影响[12]。在 Parallax-tolerant Image Stitching 中提出了先用一个单应性矩阵来预配准,然后用内容保持变换进行局部配准。单应性矩阵能够保持全局图像结构但不能处理视差。相反内容保持变换能很好的处理视差问题,但是它在保持图像结构方面不如单应性矩阵。
2.1 直接使用单应性矩阵的图像拼接方法
直接使用单应性矩阵的图像拼接方法的步骤有:
1)特征点提取,得到两张图像重叠区域的特征点。
2)特征点匹配,得到同名点对。
3)利用RANSAC算法剔除误匹配。
4)利用直接线性变换,解算出Homography矩阵。
5)利用Homography矩阵变换图像,得到拼接结果。
当两张图像之间不仅仅因为旋转而不同或者它们不在同一个平面场景,直接使用单应性矩阵来拼接图像会产生误配准或者视差误差。As-Projective-As-Possible Image Stitching with Moving DLT在直接使用单应性矩阵拼接的基础上,对单应性矩阵进行了改进。
2.2 As-Projective-As-Possible Image Stitching with Moving DLT
As-Projective-As-Possible Image Stitching with Moving DLT图像拼接方法为了解决直接使用Homography矩阵拼接图像导致的问题,利用局部的单应性矩阵对每个像素点进行变换。它的主要步骤如下:
1)特征点提取,得到两张图像重叠区域的特征点。
2)特征点匹配,得到匹配点对。
3)利用RANSAC算法剔除误匹配。
4)利用移动直接线性变换(moving DLT)计算Homography矩阵。与前一种方法不同之处是在移动直接线性变换加入了权重。它投影变换时很好的尊重了特征点周围的结构,这样对缓解视差误差有一定的帮助。
5)光束平差,进一步优化Homography矩阵。
6)利用Homography矩阵变换图像,得到拼接结果。
全局的单应性矩阵能够避免影响扭曲。但是,对于两幅大视差图像,单应性矩阵不能处理视差错误导致的图像错位。因此,除了使用单应性矩阵进行配准外,还需要引入其它技术来消除图片间的错位。
2.3 Parallax-tolerant Image Stitching
Parallax-tolerant Image Stitching 拼接方法的基本思想是在预配准时容忍图像的视差错误,然后引入缝合线技术消除视差导致的错位。在特征点匹配过程中没有严格地使用所有的匹配点,而是随机选择足够数目的特征点解算单应性矩阵。然后,利用单应性矩阵进行预配准,利用内容保持变换局部优化配准结果。最后,引入缝合线技术消除错位。单应性矩阵能很好地保持图像结构,内容保持能处理视差,把二者结合起来形成了视差容忍的图像拼接方法。它的算法描述如下:
1)特征点提取,得到两张图像重叠区域的特征点。
2)特征点匹配,得到匹配点对。
3)计算输入图像的边缘图。
4)从特征点中随机选取一个作为种子点,根据距离越近越先被聚合的原则,一个一个地聚合邻近的特征点直至不能被带有预定阈值的Homography矩阵拟合。在迭代过程中,为了识别特征点被选的次数,给它们加上惩罚值。当一个特征点被选中后,它的惩罚值会加1。每次迭代过程中,为了选取一个有效的种子点,需要保证在这之前特征点要没被选中过且它的惩罚值要低于所有特征点的惩罚值。
5)利用缝合线技术中图割的代价来评价步骤4中得到的Homography矩阵。如果Homography矩阵满足预先定义的质量阈值,则进入步骤6。否则,如果平均惩罚值低,则回到步骤4;否则选取迭代过程中最佳的Homography进去到步骤6中。
6)利用Homography矩阵来预对齐图像,利用由选取的特征点来引导内容保持变换,优化配准。
7)光束平差,优化Homography矩阵。
8)利用Homography矩阵变换图像,利用缝合线技术消除错位,得到拼接结果。
3 实验结果与分析
我们用上述三种拼接方法分别拼接两组不同类型的实验图像。第一组图像中出现了有着不规则线条的古建筑、枝桠分散的树木、走动的人群和线条规则的现代建筑。它的图像内容较为复杂,但图像呈现出来的视差小。第二组图像只出现了一些建筑物,内容简单,但图像呈现出的视差较大。下面通过表1、表2列出参与实验的拼接方法与图像。
实验一 用三种方法拼接第一组实验图像
实验二 用三种方法拼接第二组实验图像
实验一使用DH, APAP, PTIS 三种拼接方法对第一组实验图像进行拼接,拼接结果分别如图1、图2和图3所示。因为第一组实验图像视差小,满足使用单应性矩阵进行拼接的前提条件,所以三组实验结果都相对较好。图1配准结果良好,但是在图像重叠部分出现的鬼影影响了拼接效果。APAP在DH的基础上,对单应性矩阵进行改进,在移动线性变换过程中加入权值,得到的拼接效果图2优于图1。PTIS除了在用单应性矩阵配准外,还引入了缝合线技术,使得它的拼接效果是最好的。
实验二使用DH,APAP,PTIS三种方法对第二组实验图像进行拼接,拼接结果分别如图4、图5和图6所示。因为第二组实验图像视差较大,一定程度上并不满足使用单应性矩阵进行拼接的前提条件,所以单独使用单应性矩阵的拼接方法的效果并不理想。PTIS方法在使用单应性矩阵配准之后,引入了缝合线技术,很好地处理了图像间的视差错误,消除了结果中的鬼影和错位。
从上述两组实验结果可知,对于一般的图像来说,三种方法的拼接效果接近。对于存在视差的图像,由于单应性矩阵不能处理视差错误,直接使用单应性矩阵来拼接会存在视差错误,所以DH的拼接效果不好。而在DH基础上改进的APAP方法与PTIS方法处理视差的能力强于DH。对于视差小的图像,APAP与PTIS的拼接效果接近,DH的拼接效果不如APAP和PTIS的拼接效果。如果两张待拼接图像视差较大时,APAP效果明显不如PTIS。
4 结语
本文介绍了图像拼接技术的相关技术和研究现状,描述了一种基础的拼接方法和目前两种优秀的拼接方法。本文使用三种方法设计了两组对比实验,对比分析了它们各自的拼接结果发现单应性矩阵是获得良好拼接结果的条件之一。如果拼接内容复杂或者视差大的图像,还需要引入其它的技术如优化局部配准,缝合线技术等来完善拼接结果。
【参考文献】
[1]Szeliski R. Image Alignment and Stitching: A Tutorial[J]. Foundations & Trends?誖 in Computer Graphics & Vision, 2006, 2(11-12): 273-292.
[2]方贤勇.图像拼接技术研究[D].浙江大学,2005.
[3]严宇波.无人机摄影测量影像匹配与纠正技术研究[D].沈阳航空航天大学, 2013.
[4]汪华琴.基于特征点匹配的图像拼接方法研究[D].华中师范大学,2007.
[5]Carroll R, Agrawal M, Agarwala A. Optimizing Content-Preserving Projections for Wide-Angle Images[J]. Acm Transactions on Graphics, 2009, 28(3):341-352.
[6]Gao J, Kim S J, Brown M S. Constructing image panoramas using dual-homography warping[C]//2013 IEEE Conference on Computer Vision and Pattern Recognition. IEEE, 2011:49-56.
[7]Lin W Y, Liu S, Matsushita Y, et al. Smoothly varying affine stitching[C]//Computer Vision and Pattern Recognition(CVPR), 2011 IEEE Conference on. IEEE, 2011: 345-352.
[8]Zaragoza J, Chin T J, Tran Q H, et al. As-projective-as-possible image stitching with moving DLT[J]. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 2014, 36(7): 1285-1298.
[9]Zhang F, Liu F. Parallax-tolerant image stitching[C]//Computer Vision and Pattern Recognition(CVPR), 2014 IEEE Conference on. IEEE, 2014: 3262-3269.
[10]Gao J, Li Y, Chin T J, et al. Seam-driven image stitching[J]. Eurographics 2013, 2013: 45-48.
[11]Kwatra V, Sch?觟dl A, Essa I, et al. Graphcut textures: image and video synthesis using graph cuts[C]//ACM Transactions on Graphics(ToG). ACM, 2003, 22(3): 277-286.
[12]Brown M, Lowe D G. Automatic panoramic image stitching using invariant features[J]. International journal of computer vision, 2007, 74(1): 59-73.
[责任编辑:杨玉洁]