改进SIFT的特征提取与图像拼接方法

2023-07-08 07:26祥,周
桂林理工大学学报 2023年1期
关键词:尺度空间拉普拉斯分块

杨 祥,周 楠

(桂林理工大学 信息科学与工程学院,广西 桂林 541006)

0 引 言

随着科学技术的发展, 使用无人机构建局部地区的遥感图像已经成为了一个较为热门的研究课题[1-2]。无人机具有灵活、 便捷、 高速的特点, 在许多领域和场合中得到十分广泛的应用, 例如交通监管、 资源探测、 森林防火、 气象监测等[2]。但也存在拍摄图像尺寸较小、 单张图片反映出来的信息受限等不足, 需要多次拍摄并将图像进行拼接得到区域的遥感图像。

图像拼接通过配准、 变换和融合等方式把多张具有重叠部分的图像经过处理后成为一张广角清晰的图像[3]。图像的拼接过程大致分为3个主要步骤: 图像特征点的有效提取与匹配、 图像的配准以及图像的无缝融合[4]。图像中的特征点通常是指在一幅图像中具有代表性的部分, 然而由于这些特征点所包含的信息因素相对较少, 只能反映出其所处位置在图像中的坐标信息, 因此, 如何在两幅图中找出相匹配的特征点无疑是其中的关键; 图像的配准主要是采用了某种匹配的策略, 根据这种策略, 找出带拼接图像中所对应的模板, 据此模版进行图像配准; 图像的无缝融合是根据匹配对, 对图像具有重叠的部分进行融合拼接, 从而得到图像的全景拼接图像。

由于无人机易受天气的影响、 飞行姿态不稳定, 并且存在倾角大、 视差不连续和图像间重叠度变化明显等缺点, 在航拍过程中图像容易发生畸变, 使阴影区域所影响的灰度产生局部的变化, 从而影响匹配的准确性, 因此需要一种具有高效鲁棒性的图像拼接算法。贾文超[5]采用ORB算法提取出特征点实现全景图像的拼接; 宋伟等[6]提出了改进AKAZE-BRISK特征的影像拼接算法; 徐启文等[7]提出具有动态阈值的SURF算法, 结合改进的渐进渐出图像融合算法进行图像拼接; 朱军桃等[8]提出基于ORB算法和改进KNN-RANSAC算法进行无人机遥感影像拼接。

SIFT算法[9-11]因其鲁棒性较强而被广泛应用于图像拼接, 然而该算法提取的特征点数目大, 分布不均匀, 直接用该算法进行拼接会导致特征点匹配时间长、 匹配的错误率较高的问题。基于此, 本文提出一种基于分块的SIFT特征点结合RANSAC的拼接技术: 首先将原始图像均匀分块, 并对子块中对比度较小的特征点进行过滤, 从而减少从图像中提取到的特征点数量, 使特征点分布均匀; 然后利用RANSAC算法进一步剔除误匹配点; 最后使用拉普拉斯金字塔进行图像的融合。

1 基于SIFT的特征提取

1.1 SIFT算法介绍

SIFT算法是由Lowe D G于1999年提出的一种局部检测特征的方法, 该算法具有较好的稳定性和尺度不变性, 并于2004年得到进一步的改进和发展[12]。SIFT算法在图像的拼接、 检索以及目标识别中起着极为重要的作用, 具有良好的平移、 旋转和缩放不变性[13]。SIFT算法的具体步骤为:

① 尺度空间极值检测。尺度空间理论的目的是能够对图像中的数据进行多尺度空间特性的模拟。利用高斯核函数对输入的原始图像进行卷积运算, 以此建立一个可以输出图像的尺度空间。

(1)

L(x,y,σ)=G(x,y,σ)*I(x,y)。

(2)

其中:G(x,y,σ)为高斯核函数; (x,y)指的是空间的坐标;L(x,y,σ)是图像的尺度空间;I(x,y)为原始图像;σ的大小反映了图像的平滑程度; *为卷积运算符。

将原始的图像采样利用高斯滤波函数进行反复降阶采样, 可以直接获取和输出一系列尺寸大小不一致的梯形图像, 即高斯金字塔。通过高斯金字塔每组内的图像相减, 可以得到高斯差分金字塔。

② 关键点定位。特征点是通过高斯差分金字塔的极值点所确定的。将待检测的像素点与周围所有像素点进行比较, 若此像素点比周围26个像素点都小或者都大, 则认为该点为极值点。

通过将尺度空间内的DoG函数进行曲线拟合, 可以计算出极值点的偏移量。通过图1可以看出,上述方法所检测到的极值点并不是真正的极值点, 两者之间存在一个偏移量。将尺度空间DoG函数曲线拟合, 来获得极值点的偏移量。DoG函数在尺度空间的泰勒展开式为

图1 离散空间与连续空间极值点的差别Fig.1 Difference of extreme points between discrete space and continuous space

(3)

其中:X为极值点偏移量(Δx, Δy, Δσ)T;D(X)为X所对应的DoG函数值。 对上式求导数, 并令结果为零, 可以计算出极值点的偏移量, 即

(4)

在检测到的所有特征点中, 首先要去除掉一些对比度较低的特征点及一些不稳定的边缘响应点。

(5)

由于DoG算子对噪声和边缘响应较为敏感, 因此只有将获得的特征点进行进一步的剔除才能获得真正的特征点。首先获取该特征点的Hessian矩阵, 并且根据该矩阵计算出极值点的边缘响应值, 再去除边缘响应较大的点。

(6)

(7)

其中:H为Hessian矩阵, 其特征值α和β代表x和y方向的梯度; trH为矩阵H的迹; detH为矩阵H的行列式;γ为主曲率的阈值。

③ 关键点方向分配。对确定的特征点指定一个方向, 并且根据这个方向作进一步的计算。利用特征点邻域像素的梯度方向分布特性为每个特征点指定一个方向参数, 使其具有旋转不变性

(8)

(9)

其中:m(x,y)为像素点的梯度幅值;θ(x,y)为像素点的方向。

④ 关键点特征描述。通过上述计算, 每个关键点都具备了3个固定的信息, 分别是位置、 尺度以及方向。使用一组向量对每个关键点进行描述, 建立描述符。将每个关键点周围的区域分别规划成16个子区域, 为每一个子区域分别进行设定, 并给出8个方向, 因此构成一个128维向量, 将该向量视为SIFT描述子。

1.2 基于分块的SIFT算法

将原始图像进行分块处理, 对每一个子块采用SIFT算法提取出图像的特征点, 保留每个区域中对比度高的特征点, 再对所有区域中经过处理的特征点进行合并, 完成整个图像的特征点提取, 如图2所示。该方法仅保留每个子区域中对比度较高的特征点, 使得整个图像的特征点数大大降低, 提高了图像拼接的效率。

图2 图像分块图Fig.2 Image block diagram

2 特征点匹配

使用分块SIFT算法完成特征点的提取后, 需要对获取到的特征点进行特征匹配。该算法主要采用的是基于欧氏距离的最邻近匹配算法

(10)

其中:Ri=(ri1,ri2, …,ri128)为匹配图像中特征点的描述符;Si=(si1,si2, …,si128)为待匹配图像中特征点的描述符。当最近距离与次近距离的比值小于事先所设置的阈值时, 认为该点为匹配点。

上述方法虽然能在一定程度上可以去除外点, 但是会存在一定的误匹配点, 从而影响图像的拼接质量[14]。本文选择了鲁棒性较高的RANSAC算法用来对错误的匹配点进行进一步的剔除[15-16]。

RANSAC算法的具体步骤为: ① 从匹配的特征点中随机抽取4个匹配点, 以此求解图像的初始变换矩阵; ② 利用步骤①中得到的初始变换矩阵来测试其他匹配点, 当差值小于设定的阈值时, 记该点为内点, 当差值大于设定的阈值时, 记该点为外点; ③ 重复步骤①和②, 选取内点数目最多的对应变换矩阵为图像的最佳变换矩阵, 并对不满足该矩阵的外点进行剔除; ④ 利用RANSAC算法进行多次迭代, 寻找图像的最佳变换矩阵, 有效去除错误的匹配点对。

3 图像拼接

3.1 单应性矩阵计算

本文采用单应性变换使得两幅图像基本对齐, 用投影矩阵H来表示两幅图像之间的对应关系, 用RANSAC算法获得的最佳变换矩阵作为投影矩阵H。设P1(x1,y1)和P2(x2,y2)分别为两幅图像中的匹配点, 则二者间的映射关系为

(11)

3.2 拉普拉斯金字塔融合

由于拍摄角度不同、 拍摄图像的明暗差别、 特征点匹配精度低等问题, 会造成所拼接的图像出现拼接痕迹。本文采用拉普拉斯金字塔算法来进行图像的融合[17], 该算法的具体步骤如下: ① 搭建高斯金字塔; ② 用高斯金字塔内相邻一层的图像数据相减, 得到拉普拉斯金字塔; ③ 将带拼接图像重叠区域的相同层的拉普拉斯金字塔相加, 再由最底层的融合图像逐层向上叠加得到融合后的图像。

4 结果分析

4.1 平台与实验数据

电脑配置为: 处理器2.3 GHz双核IntelCore i5, 内存8 GB, 以PyCharm为开发平台, 通过Python语言实现图像的拼接算法, 并通过配置OpenCV 4.5.1库以提高图像处理代码的效率。

研究区域位于桂林理工大学雁山校区, 图像采集设备为大疆无人机MINI2专业相机, 图像尺寸为2 560×1 280, 如图3所示。

图3 3组待拼接图像Fig.3 Three sets of images to be spliced

4.2 特征点匹配实验对比

分别对3组图像进行了特征点的匹配, 首先将原始图像均匀分块, 分块的数量与图像的分辨率相关, 如果分割的图像块太小则会导致提取到的特征点数目过少, 并且会使原始图像的连续性遭到破坏。本文将每一张图像划分成5×5块, 每个图像块的像素为512×256, 保留每个图像块中对比度较大的前25%的特征点, 再使用RANSAC算法剔除错误匹配点。3组图像的匹配效果对比图如图4所示。表1为3组图像分别使用原始SIFT算法和基于分块的SIFT算法经过RANSAC算法处理前后的匹配点个数统计结果。表2为3组图像分别使用原始SIFT算法和本文算法的效率对比。

表2 3组图像中本文算法与传统SIFT算法效率对比Table 2 Comparison of efficiency between proposed algorithm and SIFT algorithm in three sets of images

图4 3组图像匹配效果对比Fig.4 Comparison of matching effect of three sets of images

可以看出, 本文算法与传统算法相比特征点匹配对数平均降低了80.45%, 在特征点提取时间方面平均减少了70.83%, 特征点匹配时间减少了75.64%, 总拼接时间平均减少了71.37%。由此可见, 改进后的算法与传统算法相比匹配效率明显提高。对图像进行分块后, 通过对每个子块的特征点进行过滤, 极大地减少了特征点的数量, 提高了图像的拼接效率。

4.3 图像拼接

通过所获得的上述变换矩阵, 对待拼接图像进行透视变换, 最终完成图像的拼接。为了验证本文所使用的拉普拉斯金字塔融合算法的有效性, 将直接拼接图像(图5a列)与经过拉普拉斯金字塔融合算法拼接的图像(图5b列)进行对比。

图5 3组图像拼接结果对比Fig.5 Comparision of splicing results of three sets of images

在a列图中有一条明显的界限, 由于拍摄的角度以及图像的亮度有所不同, 即便获得的变换矩阵足够精确, 也是会产生拼接的痕迹。通过拉普拉斯金字塔融合算法对图像信息进行融合, 消除了图像的拼接的痕迹, b列图的拼接效果更加自然。

5 结 论

本文提出了一种结合分块SIFT特征点提取和拉普拉斯金字塔融合的图像拼接方法。首先改进了SIFT算法对特征点的提取, 先将原有的图像均匀分块, 对每一个子块采用SIFT算法直接进行特征点的提取, 保留对比度较高的特征点, 该方法能够更加准确地提取到特征点, 极大地减少了噪点; 再利用RANSAC算法去除错误的匹配点, 以防特征点过多造成匹配效率低; 最后采用拉普拉斯金字塔融合算法对处理后的图像进行拼接, 这种算法可以很好地消除图像拼接产生的接缝。实验证明, 该方法可以极大地减少匹配点的数量, 提高匹配效率, 能够获得良好的拼接图像。

猜你喜欢
尺度空间拉普拉斯分块
基于AHP的大尺度空间域矿山地质环境评价研究
分块矩阵在线性代数中的应用
居住区园林空间尺度研究
反三角分块矩阵Drazin逆新的表示
基于超拉普拉斯分布的磁化率重建算法
基于自适应中值滤波的分块压缩感知人脸识别
基于多分辨率半边的分块LOD模型无缝表达
基于降采样归一化割的多尺度分层分割方法研究
基于尺度空间的体数据边界不确定性可视化研究
位移性在拉普拉斯变换中的应用