图像拼接
图像拼接就是将一系列针对同一场景的有重叠部分的图片拼接成整幅图像,使拼接后的图像最大程度地与原始场景接近,图像失真尽可能小。基于SIFT算法则能够对图像旋转、尺度缩放、亮度变化保持不变性,对视角变化,仿射变换,噪声也能保持一定程度的稳定性。本次实验运用SIFT匹配算法来提取图像的特征点,采用随机抽样一致性算法求解单应性矩阵并剔除错误的匹配对。最后用加权平均融合法将两帧图像进行拼接。具体过程为:首先选取具有重叠区域的两帧图像分别作为参考图像和待拼接图像,然后使用特征提取算法提取特征点,并计算特征点描述子,根据描述子的相似程度确定互相匹配的特征点对。再根据特征点对计算出待拼接图像相对于参考图像的单应性矩阵,并运用该矩阵对待拼接图像进行变换,最后将两帧图像进行融合,得到拼接后的图像。
1.特征点检测与匹配
特征点检测与匹配中的尺度空间理论的主要思想就是利用高斯核对原始图像进行尺度变换,获得图像多尺度下的尺度空间表示序列,再对这些序列就行尺度空间的特征提取。
二维的高斯核定义为:

对于二维图像

,在不同尺度

下的尺度空间表示

可由图像

与高斯核的卷积得到:

其中,*表示在

方向上的卷积,L表示尺度空间,

代表图像

上的点。
为了提高在尺度空间检测稳定特征点的效率,可以利用高斯差值方程同原图像进行卷积来求取尺度空间极值:


其中

为常数,一般取

。
SIFT算法将图像金字塔引入了尺度空间,首先采用不同尺度因子的高斯核对图像进行卷积以得到图像的不同尺度空间,将这一组图像作为金字塔图像的第一阶。接着对其中的2倍尺度图像(相对于该阶第一幅图像的2倍尺度)以2倍像素距离进行下采样来得到金字塔图像第二阶的第一幅图像,对该图像采用不同尺度因子的高斯核进行卷积,以获得金字塔图像第二阶的一组图像。再以金字塔图像第二阶中的2倍尺度图像以2倍像素距离进行下采样来得到金字塔图像第三阶的第一幅图像,对该图像采用不同尺度因子的高斯核进行卷积,以获得金字塔图像第三阶的一组图像。这样依次类推,从而获得了高斯金字塔图像。每一阶相邻的高斯图像相减,就得到了高斯差分图像,即DOG图像。对DOG尺度空间每个点与相邻尺度和相邻位置的点逐个进行比较,得到的局部极值位置即为特征点所处的位置和对应的尺度。
为了寻找尺度空间的极值点,DOG尺度空间中中间层的每个像素点都需要跟同一层的相邻8个像素点以及它上一层和下一层的9个相邻像素点总共26个相邻像素点进行比较,以确保在尺度空间和二维图像空间都检测到局部极值。图像的高斯滤波保证了特征点不受噪声影响,DOG图像保证了特征点不受亮度差的影响,在高斯差分图像空间提取极值点保证了尺度不变性。
剔除不好特征点时,利用高斯差分算子检测到的特征点中,含有一些低对比度的特征点和不稳定的边缘特征点,需要进行剔除。使用泰勒级数将尺度空间方程

展开:

其中

,

和

分别为一阶和二级偏导数矩阵。式中的一阶和二阶导数可以通过附近区域的差分近似求得,求导并令其为零得出精确的极值位置

:

则有

如果

,则保留该特征点,否则就丢弃。
为了去除不稳定的边缘特征点,可以获取特征点处的Hessian矩阵,主曲率可以通过一个

的Hessian矩阵H求出:

设

分别为H阵的最大特征值和最小特征值,且

,则

的主曲率与特征值的大小成正比。令:



若

(一般取

),则保留该特征点,否则就丢弃。
为了实现特征点的选编不变性,可以利用特征点的主方向来实现。

处的梯度值和方向分别为:


在以特征点为中心的邻域内进行采样,并用直方图统计邻域像素的梯度方向。梯度直方图的范围

,其中每

一个柱,共8个柱。梯度直方图的峰值则代表了该特征点处邻域梯度的主方向。这样对于每一个关键点,就拥有了三个信息:位置,尺度以及方向。接下来就是为每一个关键点建立一个特征描述符。
首先将坐标轴旋转为特征点的方向,以保证旋转不变性,接下来以特征点为中心取

的窗口,然后在每个

的图像小块上计算8个方向的梯度方向直方图,绘制每个梯度方向的累加值。此图中一共有

个数据,形成一个128维的SIFT特征向量即特征描述符。这种邻域领域方向性信息联合的思想增强了算法抗噪声的能力,同时对于含有定位误差的特征匹配也提供了较好的容错性。此时,SIFT特征向量已经去除了尺度变化、旋转等几何变形因素的影响,再继续将特征向量的长度归一化,则可以进一步去除光照变化的影响。
提取出图像的特征点之后,就要进行特征点的匹配。本次实验以两个特征点描述子之间的欧氏距离作为特征点匹配的相似度准则。假设特征点p和q的特征描述子分别为

和

,则其欧氏距离定义为:

关键点的匹配可以采用穷举法。以待匹配图像的特征点

为基准,在参考图像中搜索与其最邻近的特征点

以及次邻近的特征点

,若满足

则认为

与

为匹配的特征点对。
通过对阈值的设定,可以将两帧图像中没有匹配点的特征点去掉,只留下匹配的特征点对。
实验采用MATLAB编程,分别对一组交大图书馆的图像以及一组标准库中的图像进行特征点提取与匹配,结果如下图。




2.单应性矩阵计算
设原图像中一点的坐标为

,进行变换后该点的坐标为

,则二者之间具有以下关系:


其中H=

,为单应性矩阵(homography matrix)。通常令

来归一化矩阵,这样,待求解的矩阵参数有8个,需要4个特征点对来求解。求解算法如下:
从匹配的特征点对集S中取出 4 对不共线的点对,坐标为{(

),(

)|i=1,2,3,4}


可得:

即: Ah = 0
对矩阵A进行奇异值分解得


上式h各个元素即为所求。
由于用穷举法得到的匹配的特征点对中会存在错误的匹配,影响两幅图像之间转换矩阵的求解精度,最后影响到全景图的拼接效果。在这里,传统的最小二乘法容易失效,需要有一种方法来剔除匹配点对集合中错误的匹配对,并根据剔除了错误匹配对后集合中剩下的匹配点对计算出精确的 转换矩阵。所以在本次实验中利用RANSAC算法来计算单应性矩阵。
随机抽样一致性算法,即RANSAC(Random Sample Consensus)算法,它是根据一组包含异常数据的样本数据集,计算出数据的数学模型参数,得到有效样本数据的算法。该算法的主要思想是通过多次的采样求解符合样本的数学模型参数,从中选取最符合整个样本数据集合的模型作为最佳模型,而符合最佳模型的样本点认为是精确的样本点(内点),不符合最佳模型的样本点则认为是存在误差的样本点(外点)。
具体做法如下:
①将待拼接图像中剩余的特征点分别通过上一步求出的单应性矩阵映射到参考图像中,然后计算映射点的位置与该匹配点对的实际位置之间的欧式距离,


若距离小于阈值T,将其加入内点集合,记下内点集合中匹配点个数

,反之则加入外点集;
②重复上述过程k次;
③取k次计算结果中内点数目c最大的匹配点集合作为精确的匹配对集合;
④根据初步精确的匹配对集合重新计算H矩阵。
运用RANSAC算法得到的精确匹配对如下图,对比可以看出,RANSAC算法剔除了许多错误的匹配对,明显的提高了匹配精度。(其中阈值T设定为

)


采用RANSAC算法得到的匹配特征点


用单应性矩阵变换后的图像
在两组图像中,将第二幅作为参考图像,用所求的H矩阵将第一幅图像进行转换,图像经过配准变换之后,再经过图像融合即可完成整个图像的拼接的工作。拼接后的图像在过渡区域会产生明显的拼接缝隙,图像融合的目的就是使配准后的图像重叠区域的像素点平滑过渡,其主要思想是采用一定的策略确定重叠区域像素点的灰度值。
目前主要有直接平均融合法,中值滤波融合法,加权平均融合法和多分辨率样条技术融合法。本次实验采用了加权融合法来实现图像融合过程,拼接后的图像包含三部分,只属于第一或者第二帧图像的部分只需要保持原来的像素值,而重叠部分的像素值由原始两幅图像的加权和构成,若

表示融合后像素值,

和

为原始图像,则有

其中

和

为权值。为了得到满意的融合效果,需要根据不同的输入图像和算法参数来调整

和

的取值。
经过融合后的图像下图所示,由图可以看出,两图像较好地完成了拼接,在重叠处基本达到了平滑过渡。


实验中得到的特征点数据如下表所示:
|
交大图书馆图像 |
标准图像 | |
|
图像尺寸 |
320*240 |
575*576 |
|
参考图像由SIFT所得的特征点数 |
266 |
1196 |
|
待拼接图像由SIFT所得的特征点数 |
263 |
1345 |
|
未利用RANSAC算法的特征点匹配对数 |
96 |
349 |
|
利用RANSAC算法的特征点匹配对数 |
87 |
269 |
由表格可以看出,SIFT算法可以有效地找到图像中的特征点,并能根据128维的特征描述符进行有效的粗匹配。而RANSAC能够在粗匹配的基础上有效地剔除匹配错误点,得到精确匹配的特征点对,为后续的图像的几何变换和拼接提供了基础。
一次实验中计算所得的单应性矩阵时,循环次数为100,所得结果分别为:

,模型误差为e=25.8711;

,模型误差为e=11.7153。
通过本实验可以看出,SIFT特征提取算法提取的特征点具有尺度不变性、旋转不变性和光强不变性,能够有效地找出图像中的特征点。而RANSAC算法能够在含有较大噪声和无效点的数据组中精确的找到数学模型。
- 实验心得
通过对本次实验的完成,我对图像拼接的研究有了直观的认识,这个过程充分锻炼了我分析问题的能力,对理论知识的学习能力以及编程解决实际问题的能力。我也学会了如何找出自己设计中的不足,继而去排除解决问题,这就是一个自我学习的过程。当我通过实验去学习理论知识时,自己动手得出的结论,不仅能加深我对图像拼接的理解,更能加深我对此的记忆。
本文介绍了SIFT算法在图像拼接中的应用,包括特征点的检测、匹配,以及利用RANSAC算法剔除错误匹配,通过单应性矩阵进行图像变换和加权平均融合法实现拼接。实验结果显示SIFT具有尺度、旋转和光照不变性,RANSAC提高了匹配精度。
1280

被折叠的 条评论
为什么被折叠?



