2024年5月3日发(作者:)

图像拼接

一、实验原理及实验结果

图像拼接就是将一系列针对同一场景的有重叠部分的图片拼接成整幅图像,

使拼接后的图像最大程度地与原始场景接近,图像失真尽可能小。基于SIFT算法

则能够对图像旋转、尺度缩放、亮度变化保持不变性,对视角变化,仿射变换,

噪声也能保持一定程度的稳定性。本次实验运用SIFT匹配算法来提取图像的特征

点,采用随机抽样一致性算法求解单应性矩阵并剔除错误的匹配对。最后用加权

平均融合法将两帧图像进行拼接。具体过程为:首先选取具有重叠区域的两帧图

像分别作为参考图像和待拼接图像,然后使用特征提取算法提取特征点,并计算

特征点描述子,根据描述子的相似程度确定互相匹配的特征点对。再根据特征点

对计算出待拼接图像相对于参考图像的单应性矩阵,并运用该矩阵对待拼接图像

进行变换,最后将两帧图像进行融合,得到拼接后的图像。

1.特征点检测与匹配

特征点检测与匹配中的尺度空间理论的主要思想就是利用高斯核对原始图

像进行尺度变换,获得图像多尺度下的尺度空间表示序列,再对这些序列就行尺

度空间的特征提取。

二维的高斯核定义为:

G(x,y,σ)=

1

2πσ

2

e

−(x

2

+y

2

)

2

对于二维图像I(x,y),在不同尺度σ下的尺度空间表示I(x,y,σ)可由图像

I(x,y)与高斯核的卷积得到:

L(x,y,σ)=G(x,y,σ)∗I(x,y)

其中,*表示在x 和 y方向上的卷积,L表示尺度空间,(x,y)代表图像I上的点。

为了提高在尺度空间检测稳定特征点的效率,可以利用高斯差值方程同原图

像进行卷积来求取尺度空间极值:

D(x,y,σ)=(G(x,y,kσ)−G(x,y,σ))∗I

(

x,y

)

= L(x,y,kσ)−L(x,y,σ)

其中k为常数,一般取k=

2。

SIFT算法将图像金字塔引入了尺度空间,首先采用不同尺度因子的高斯核对

图像进行卷积以得到图像的不同尺度空间,将这一组图像作为金字塔图像的第一

阶。接着对其中的2倍尺度图像(相对于该阶第一幅图像的2倍尺度)以2倍像素距

离进行下采样来得到金字塔图像第二阶的第一幅图像,对该图像采用不同尺度因

子的高斯核进行卷积,以获得金字塔图像第二阶的一组图像。再以金字塔图像第

二阶中的2倍尺度图像以2倍像素距离进行下采样来得到金字塔图像第三阶的第

一幅图像,对该图像采用不同尺度因子的高斯核进行卷积,以获得金字塔图像第

三阶的一组图像。这样依次类推,从而获得了高斯金字塔图像。每一阶相邻的高

斯图像相减,就得到了高斯差分图像,即DOG图像。对DOG尺度空间每个点与

相邻尺度和相邻位置的点逐个进行比较,得到的局部极值位置即为特征点所处的

位置和对应的尺度。

为了寻找尺度空间的极值点,DOG尺度空间中中间层的每个像素点都需要跟

同一层的相邻8个像素点以及它上一层和下一层的9个相邻像素点总共26个相邻

像素点进行比较,以确保在尺度空间和二维图像空间都检测到局部极值。图像的

高斯滤波保证了特征点不受噪声影响,DOG图像保证了特征点不受亮度差的影响,

在高斯差分图像空间提取极值点保证了尺度不变性。

剔除不好特征点时,利用高斯差分算子检测到的特征点中,含有一些低对比

度的特征点和不稳定的边缘特征点,需要进行剔除。使用泰勒级数将尺度空间方

程D(x,y,σ)展开:

∂D

T

1

T

2

D

D

(

X

)

=D+X+XX

∂X2∂X

2

其中X=(x,y,σ),

∂X

∂X

2

分别为一阶和二级偏导数矩阵。式中的一阶和二

阶导数可以通过附近区域的差分近似求得,求导并令其为零得出精确的极值位置X:

2

D

−1

∂D

X=−

∂X

2

∂X

则有

1∂D

T

D

(

X

)

=D+

2∂X

如果

|

D

(

X

)|

≥0.03,则保留该特征点,否则就丢弃。

为了去除不稳定的边缘特征点,可以获取特征点处的Hessian矩阵,主曲率

可以通过一个2×2的Hessian矩阵H求出:

D

xx

D

xy

H=[]

D

xy

D

yy

设α和β分别为H阵的最大特征值和最小特征值,且α=rβ,则D(x,y,σ)的

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

Tr

(

H

)

=D

xx

+D

yy

=α+β

Det

(

H

)

=D

xx

D

yy

−(D

xy

)=αβ

Tr

(

H

)

2

(α+β)

2

(r+1)

2

==

Det

(

H

)

r

αβ

Tr

(

H

)

2

Det

(

H

)

2

T

∂D∂

2

D

<

(r+1)

2

r

(一般取r=10),则保留该特征点,否则就丢弃。

为了实现特征点的选编不变性,可以利用特征点的主方向来实现。 (x,y)处

的梯度值和方向分别为:

m

(

x,y

)

=

(L

(

x+1,y

)

−L(x−1,y))

2

+(L

(

x,y+1

)

−L(x,y−1))

2