基于改进PSO-SIFT算法的油田遥感图像匹配
2021-03-23唐锦萍
李 宏,王 鹏,毕 波,唐锦萍
(1. 东北石油大学 电气信息工程学院,黑龙江 大庆 163318;2. 海南医学院 公共卫生学院,海口 571199; 3. 东北石油大学 数学与统计学院,黑龙江 大庆 163318;4. 黑龙江大学 数据科学与技术学院,哈尔滨 150080)
图像匹配是将同一场景的两幅或多幅图像以不同的时间、不同的传感器和不同的视角进行匹配的过程[1],其为许多遥感任务(如图像变化检测、图像融合和环境监控等)必不可少的环节. 目前,图像匹配方法可分为两种:基于频域的方法和基于空间域的方法[2]. 基于频域的方法对噪声过于敏感;此外,准确的匹配通常需要原图像之间显著重叠. 基于空间域的图像匹配可细分为基于区域和基于特征的图像匹配. 基于区域的方法使用窗口像素强度之间的相似性确定两幅图像之间的对齐方式,主要使用的相似性度量是归一化互相关(normalized cross correlation,NCC)和互信息(mutual information,MI). 基于区域的方法具有算法简单、处理速度慢、对重叠区域面积要求高的特点,且窗口的约束限制对图像的缩放、形变、遮挡或旋转没有很好的适应能力. 基于特征的方法通过提取图像显著特征,并使用这些特征之间的相关性确定最佳对齐方式. 通常,这些特征包括点、边、轮廓及特定区域的质心[3-4]等. 在基于特征的方法中,最经典的算法是SIFT(scale invariant feature transform)[5]. SIFT算法可用于旋转变换、尺度变化、视角改变等条件,尤其适合高分辨率图像或存在旋转、伸缩或仿射等变换的场景,所以其已被成功应用于遥感图像匹配中. 为加快计算效率,对基于SIFT的方法已进行了许多改进,如SURF(speeded-up robust features)[6]、GLOH(gradient location and orientation histogram)[7]、BRISK(binary robust invariant scalable keypoints)[8]和ORB(oriented fast and rotated BRIEF)算法[9]等. 但当SIFT算法直接应用于遥感图像时,由于强度映射的显著差异(线性、非线性和不稳定),使得正确对应的图像数量不足以保持匹配精度. 为克服该问题,Kupfer等[10]提出了一种快速模式寻找的MS-SIFT(mode seeking-SIFT)算法,该算法利用SIFT特征的尺度、方向和位置信息,有效去除了不精确的SIFT特征点对应关系; Ma等[11]提出了结合每个特征点的位置(position)、尺度(scale)和方向(orientation)的PSO-SIFT算法,该算法引入了新的梯度定义以克服遥感图像对之间图像强度的差异,应用在多传感器遥感图像上,增加了特征点正确匹配的数量且提高了对准精度; Paul等[12]提出了改进的各向异性Gauss的IAG-SIFT(improved anisotropic Gaussian-Scale SIFT)算法,该算法使用各向异性尺度空间,可保留遥感图像的更多细节,从而提高了匹配性能,但构建各向异性增加了算法的运行时间和复杂度;Li等[13]提出了RIFT(radiation invariant feature transform)算法,该算法采用相位一致性和最大索引图,实现了旋转不变性,适用于各种多模式遥感影像,但该算法专门针对非线性辐射畸变问题;Yu等[14]提出了基于改进的SIFT算法框架的SAR图像匹配算法,采用非线性多尺度空间构造策略以及新的局部特征检测器和描述符,并通过结合Harris-Laplace技术和指数加权平均比进行特征检测,提高了匹配精度并保证了较低的误码率,但复杂度较大;Guo等[15]提出了一种基于SIFT算法的快速图像配准算法,该算法采用将提取的二次采样特征点与原始图像融合得到原始图像的特征点,提高了计算效率,但处理高分辨率图像效果一般.
目前,无人机遥感影像的分辨率在不断更新,对于油田地区,有效掌握地面建筑物的实时位置及状态信息对油田生产的安全尤为重要[16]. 但油田遥感图像中建筑物的形状不均匀,所以图像配准更困难. 虽然目前针对遥感图像匹配已提出了很多算法,但自动匹配灰度差异较大的遥感图像仍面临巨大挑战,且匹配无人机拍摄的油田遥感图像是新的应用领域. 基于PSO-SIFT算法的优点,本文提出一种改进的图像匹配算法,先采用一种新的“回”字型特征描述子,以减少描述子的维度,加快匹配时间; 再采用增强的匹配点过滤,从而得到更多的匹配点.
1 PSO-SIFT算法
基于SIFT的匹配算法一般包括3个主要步骤:特征点检测、描述符提取和特征点匹配. SIFT算法首先构造Gauss差分尺度空间,作为Gauss-Laplace算子的近似值,然后选择3个维度上的局部极值作为候选特征点. 根据局部梯度方向直方图,为每个特征点分配一个或多个主要方向. 与使用SIFT描述符中的正方形邻域不同,PSO-SIFT算法使用类似于GLOH算法的圆形邻域创建一个特征描述符. 其中,梯度方向在8个方向中量化,17个定位区域形成了136维的描述符,然后将这些描述符分配给每个特征点,获得的特征点包括4个分量:局部位置(x和y)、尺度和方向. 最后,使用描述符上的最小欧氏距离作为特征点匹配标准.
1.1 PSO-SIFT算法的梯度定义
强度映射的显著差异将导致遥感图像对之间同一区域的梯度方向和大小明显不同. 因此,期望正确匹配的SIFT对应关系不会有最小的欧氏距离,而取决于描述符,该描述符由特征点位置周围的梯度方向和大小形成. 为增加描述符对这种差异的鲁棒性,PSO-SIFT算法为Gauss尺度空间中的每个像素赋予了新的梯度定义. 首先,PSO-SIFT算法通过Sobel滤波器计算Gauss尺度空间图像的梯度幅度为
(1)
(2)
图1 对数极坐标扇区的邻域Fig.1 Neighborhood of log-polar sectors
不同于SIFT算法,PSO-SIFT算法在特征点主方向和描述子生成阶段不使用Gauss权重[17],而使用基于GLOH算法半径为R1=12σ的圆形邻域及有17个子区域的对数极坐标网格生成特征描述子. 圆形邻域如图1所示,其中R2/R1=0.73,R3/R1=0.25,此时圆形邻域的17个子区域有近似一致的面积. 每个小型区域形成一个8维的梯度幅度和方向直方图,因此最后特征描述子维度是136.
1.2 PSO-SIFT算法的特征匹配
PSO-SIFT算法使用的相似变换模型包含3个参数:平移、尺度和旋转. 通常,正确匹配对在空间中的水平和垂直偏移、旋转角度及尺度缩放相同. PSO-SIFT算法使用特征点的坐标位置、尺度大小和主方向偏移增加正确匹配的数量.
(3)
(4)
(5)
1) 初始匹配:先通过对应特征点描述符的最近邻和次近邻欧氏距离之比进行首次匹配,然后采用快速样本共识(fast sample consensus,FSC)[18]算法从点对集P中删除错误匹配点并计算初始变换参数μ.
2) 重新匹配:先用PSOED作为距离度量,再用最近邻和次近邻的距离之比匹配,获得特征点对集合P1.
(6)
其次,根据下列逻辑过滤器消除多数异常值:
|Δx1-Δx*|≥Δxth, |Δy1-Δy*|≥Δyth,
(7)
其中Δxth和Δyth分别表示水平平移差和垂直平移差的阈值. 最后,由P1得到一个特征点对集P2,再次使用FSC算法从特征点对集P2中找到正确的对应关系.
1.3 PSO-SIFT算法的局限性
由于大庆油田分布错综复杂,从任一种遥感影像数据中都很难准确、完整地提取出复杂的油田图像,因此只能利用油田遥感图像数据的冗余和互补特点进行数据提取. 由于遥感影像中地物具有复杂性,干扰因素较多,且基于高分辨率遥感影像进行图像匹配技术环节中,每道工序对检测的最后结果都有重要影响,因此如何减少甚至消除其影响至关重要. PSO-SIFT算法应用在无人机拍摄的油田遥感图像可得到很好的精度,但得到的特征点匹配对少,且花费时间也较长.
2 改进PSO-SIFT算法
本文对PSO-SIFT算法的改进分如下两部分:
1) 基于GLOH算法的特征描述符,本文采用“回”字型分块思想,可有效降低PSO-SIFT算法中特征描述符的维度,以缩短在特征描述和特征匹配阶段所花费的时间;
2) 由于油田遥感图像经PSO-SIFT算法处理后匹配点过少,因此本文提出一种增强的匹配算法,对“回”字型描述符所得的匹配对进行误匹配剔除,以增加特征点匹配的数量,缩短运行时间.
2.1 “回”字型描述符
基于GLOH算法的特征描述符,本文采用一种新型的“回”字型描述符,主要从特征点的邻域范围及降低特征点的维度两方面进行改进:特征点的邻域范围采用正方形代替圆形,降低特征点的维度,采用“回”字型框代替GLOH算法划分的17个区域.
图2 “回”字型描述符的邻域Fig.2 Neighborhood of “backing” character descriptor
考虑到抗噪声干扰,本文仍沿用原算法中的邻域信息进行特征点描述. 改进方法是获取关键点附近的正方形邻域,把取得的邻域划分为3个区域,构建一个逐层递增的“回”字型窗口,依次向外拓展建立一个72维向量特征点描述符. “回”字型描述符构建方法如下.
1) 3个区域的划分:首先,以待描述关键点为中心,将邻近的2D1×2D1(D1=12σ,σ为关键点的尺度)像素的窗口画一个正方形,作为关键点统计描述的邻域范围. 然后,将距离关键点最近的2D3×2D3(D3=0.25D1)邻域窗口画一个正方形,再将距离关键点的2D2×2D2(D2=0.73D1)邻域窗口画一个正方形. 3个正方形把关键点待描述的邻域范围分成3个不重叠的区域,将最里边的正方形作为第一区域,向外扩展的“回”字型框依次为第二和第三区域. 第一区域作为第一组描述向量.
2) 第二区域再细划分4个组:以关键点为中心,在第二区域中间,将第一组描述向量的邻域向上下左右4个方向扩展D21(D21=0.17D1)范围的像素,得到的新邻域“回”字型框作为第二组描述向量,重复该步骤,在第二组的邻域向上下左右4个方向扩展D22(D22=0.13D1)范围的像素,得到第三组描述向量,第三组向量向上下左右4个方向扩展D23(D23=0.09D1)范围的像素,得到第四组描述向量,第四组向量向上下左右4个方向扩展D24(D24=0.09D1)范围的像素,得到第五组描述向量,结果如图2所示.
3) 第三区域再细划分4个组:以关键点为中心,在第三区域中间,将第五组描述向量的邻域向上下左右4个方向扩展D11(D11=0.08D1)范围的像素,得到的新邻域“回”字型框作为第六组描述向量,重复该步骤,在第六组的邻域向上下左右4个方向扩展D12(D12=0.07D1)范围的像素,得到第七组描述向量,第七组向量向上下左右4个方向扩展D13(D13=0.06D1)范围的像素,得到第八组描述向量,第八组向量再向上下左右4个方向扩展D14(D14=0.06D1)范围的像素,得到第九组描述向量,结果如图2所示.
4) 计算特征向量:通过计算每组描述向量范围内像素在8个方向上的梯度累加值,依次得到9×8=72维特征向量.
改进PSO-SIFT算法特征描述符的维度由原来的136维降至72维,同时包含的邻域范围由原来半径为R1的圆形变为现在2D1×2D1的正方形,明显包含了更多的邻域信息. 由于遥感图像具有较多的局部一致性,所以相对于整幅图像,区域划分的思想对视角变换有较好的优势,不仅极大减少了计算量,而且避免了因减少种子点带来的损失. 增加的邻域信息使特征描述符更稳定,为后期图像匹配的准确性提供了保证.
2.2 增强的特征匹配
Lin等[19]提出了基于全局运动建模的双边函数(bilateral functions for global motion modeling,BF)算法,该算法可以可靠地恢复大量的内部匹配,而无需依赖于特定模型,在较宽的基准范围内可获取大量高质量的对应关系,同时又将异常值降至最低; 文献[20]提出了GMS-PROSAC(grid-based motion statistics progressive sample consensus)算法,该算法将基于网格的运动统计方法与渐近一致采样方法相结合,提高了匹配正确性,但使用更复杂,且速度较慢;Song等[21]提出了一种基于几何方法的单应性矩阵评估算法,提升了航空图像的匹配效率,在具有视点差和倾斜的航空图像中获得了较高的匹配结果,但在其他变换下效果一般;徐嘉等[22]提出了基于BF的海冰漂移监测算法,使海冰漂移前后的匹配正确率达98%以上,且正确匹配的特征点数量更多,较SIFT等算法有明显提升.
由于油田遥感图像经PSO-SIFT算法处理后匹配点过少且运行时间过长,而FSC算法可保证匹配精度,所以本文提出将BF与FSC算法相结合的匹配点过滤算法. 针对一个非刚体运动拟合问题,即求出与给定数据集一致的最光滑函数fk(p),其中p表示图像像素坐标,fk(p)表示像素的移动. 光滑性(无限可微性)意味着连续性的约束,即
(8)
为提高计算速度,避免计算欧氏距离消耗的时间,该方法将所有的特征点对基于反余弦进行相似性度量. 相比于原算法(式(5)),改进PSO-SIFT算法定义了一个更好的相似性度量标准,称为位置尺度方向反余弦(position scale orientation arccosine,PSOACOS),定义为
(9)
1) 首次匹配:通过特征点对应描述符的最小和次小反余弦之比进行首次匹配. 反余弦比的阈值设为dratio=0.9,以此获得初始匹配点对集P和所有特征点对的最小反余弦集合PALL. 然后获得尺度比、主方向差、水平和垂直位移的直方图,并由直方图获得峰值的位置r*,Δθ*,Δx*和Δy*.
2) 扩展匹配:BF算法用于从点对集P和PALL中删除错误匹配点,并增加一部分匹配点扩展匹配集,最后得到特征点对集P1.
3) 再次匹配:FSC算法用于从点对集P1中删除错误匹配点并计算初始变换参数μ,误差阈值设为dI=0.9. FSC算法进一步改善P1的对应性,得到新的特征点对集P2. 使用PSOACOS作为相似性度量,该相似性比的阈值设为dr=0.9,并将最小点对视为候选匹配对. 最后获得特征点对集合P3.
4) 离群值删除:用MS-SIFT算法中提出的逻辑过滤器消除多数异常值. 其中,式(7)阈值设为:Δxth=7.5,Δyth=7.5. 最后从P3得到一个特征点对集P4. 因为经过此步骤后得到的特征匹配点集已足够精确,所以该步骤与原算法不同,减少了FSC算法.
3 实 验
尽管改进PSO-SIFT算法在特征匹配时通过增加BF算法提高了算法的复杂度,但在特征描述阶段降低了描述子的维度,特征匹配过程中计算反余弦替代了欧氏距离,重新匹配步骤中FSC算法筛选时减少了特征点数量,所以降低了计算量,加快了计算时间. 相比于单独FSC算法,离群值去除步骤前加入BF算法可在更少的迭代中获得更多正确的匹配.
3.1 实验数据及预处理
数据集的获取:使用无人机拍摄获取遥感数据,无人机采用索尼DSC-RX1RM2相机(焦距为35 mm),拍摄的单幅图像为7 952×5 304(约4 240万)像素. 遥感区域为黑龙江省大庆油田喇嘛甸地区,并对采集得到的照片进行处理,得到管线正射原始数据的图像. 因为本文主要研究油田的生产维护与管道巡检,所以匹配的图像选取较有代表性的厂房建筑群. 由于无人机拍摄的油田遥感图像分辨率(7 952×5 304)太大,程序无法直接处理,所以本文先进行双三次插值将图像尺寸缩小为900×600像素,然后将彩色图像灰度化处理. 本文实验还测试了原始图像经过锐化和图像增强等算法处理后,会导致后续算法查找的特征点较多、匹配精确度较低等问题,所以改进后算法不再进行其他预处理.
3.2 评估标准
主观评价通过视觉对匹配参数精度进行评估,易受人为因素影响,而客观评价标准对匹配参数进行评估,会更具说服力. 在基于点特征的图像匹配方法中,通常使用正确匹配的点对个数、正确率和均方根误差(root mean square error,RMSE)对参数精度进行客观评价.
3.2.1 正确匹配点对个数和正确率
正确匹配点对个数越多,通过FSC算法获取的模型参数越准确,因此可以把正确匹配点对个数作为算法性能的评价标准[23]. 正确匹配点对个数与算法初始检测到的特征点个数有关,通常情况下增加初始检测到的点个数会增加最后正确匹配点对个数,但正确率会相应下降,因此为评价标准的有效性,需将对比算法和本文算法正确匹配点对个数和正确率进行比较.
3.2.2 均方根误差
(10)
3.3 实验结果及分析
为评估算法的有效性,本文将改进PSO-SIFT算法与原PSO-SIFT算法及其他主流算法进行性能比较. 这些算法在MATLAB R2018b下使用Intel Core i3-3220@3.30 GHz 双核处理器,8 GB 1 600 MHz物理内存和AMD Radeon HD 6700 Series 1 GB显卡实现.
为增强本文算法的说服力,可通过更改参数,保证不同对比算法提取的参考图像/待配准图像特征点数量大致相同. 不同算法的特征匹配效果如图3所示,其中对比算法的特征点匹配结果用黄色连线表示,每种算法特征匹配结果中左图匹配点用红色圆圈表示,右图匹配点用绿色十字表示.
图3 不同算法的特征匹配效果Fig.3 Feature matching effects of different algorithms
由图3可见: 各种算法得到的匹配点大多数分布在矩形建筑物角点附近及颜色突变较大处. SURF、BRISK和改进算法找到的匹配点较稠密,分布也较广,在中间的大厂房和旁边的小建筑均有分布,而SIFT+FSC、GLOH+FSC和原算法找到的匹配点主要集中在中间的大厂房周围. SURF和BRISK算法得到的匹配对出现了交叉匹配线,错误偏移较大,这些交叉匹配线属于明显的错误匹配点;而其他4种算法得到的匹配对未出现交叉的匹配线,整体错误偏移较小,且改进算法的匹配线也比其他3种算法的更密集,特别是在大厂房旁边的角点进行了较好地匹配. 因此,实验结果验证了本文提出的增强特征匹配可明显改善匹配效果.
为进一步定量描述本文算法的优越性,统计了不同对比算法的参考图像特征点数量、待配准图像特征点数量、匹配对数量、正确匹配对数量、正确匹配率、RMSE以及算法的运行总时间,结果列于表1. 为保证算法的效果,每种算法均执行5次,取5次运行时间的平均值作为最终运行时间.
由表1可见:在特征点数量方面,参考图像中,GLOH+FSC算法最少,为3 258,原算法最多,为3 933,改进算法仅次于原算法;在待匹配图像中,GLOH+FSC算法最少,为3 388,BRISK算法最多,为4 781. 改进算法和原算法在参考图像和待匹配图像中特征点数量相差较小,且在各对比算法中都处于中等偏上水平,性能较稳定. 在匹配对数量和正确匹配对数量方面,SIFT+FSC、GLOH+FSC和原算法找到的正确匹配对数量低于50,而SURF算法找到正确匹配对最多,为365,BRISK和改进算法得到的匹配点数量大于100,处于中等水平. 改进算法得到的正确匹配对数量为131,比原算法多87个匹配对,正确匹配对数量约是原算法的3倍. 相比于其他4种算法,SURF和BRISK算法在特征匹配阶段均未采用FSC算法,通过增加匹配对数量从而增加了正确匹配对数量. 在正确匹配率方面,BRISK算法最高,为90.98%,改进算法仅次于BRISK算法,而SIFT+FSC和GLOH+FSC算法均低于80%,效果较差. 改进算法和原算法获得了较高的正确率,这是由于原算法梯度定义的更合理和有效. 在应用该梯度后,改进算法的“回”字型特征描述符更多考虑了特征点附近邻域的信息,所以“回”字型设计对角点更显著的矩形状建筑物区域更契合,表现更好. 在匹配点精度方面,SURF算法的RMSE数值为154.9,是所有对比算法中最高的,表现最差. BRISK算法的RMSE虽然比前者降低很多,但依然劣于其他4种算法,精确度较差. 其他4种算法的RMSE都小于10,精确度高,效果较好. 特别是改进算法,其RMSE值为6.78,是所有对比算法中最小的,准确度最高,这是由于改进算法中采用了BF与FSC算法相结合的特征点过滤,保证了算法的精度. 此外,原算法的RMSE为7.83,稍劣于改进算法,这也验证了原算法梯度定义的有效性. 在运行时间方面,前两种算法速度较快,SIFT+FSC、GLOH+FSC和改进算法速度居中,原算法运行时间较慢. 但改进算法与原算法相比,时间缩短了约20 s,明显减少了运行时间,这是由于改进算法中采用了“回”字型特征描述符减少了描述符的维度,并且在特征匹配中通过计算反余弦代替了欧氏距离,提高了运算速度.
表1 不同算法的实验结果
综上,前两种算法运行时间短,但是匹配精度较低; SIFT+FSC和GLOH+FSC算法运行时间居中,但匹配率较低且正确匹配率低于80%. 原算法和改进算法匹配精度都较高,但改进算法与原算法相比,不但增加了正确匹配对的数量,而且提高了正确匹配率,明显减少了运行时间. 实验结果证明了本文改进算法的有效性.
综上所述,本文针对PSO-SIFT算法在无人机遥感图像的匹配中存在正确匹配点数量少、正确匹配率较低、运行时间长等问题,提出了一种基于改进PSO-SIFT的图像匹配算法. 该算法采用新的“回”字型描述符,降低了特征描述子的维度,缩短了计算时间. 此外,采用一种更鲁棒的点匹配算法,用增强的匹配点过滤,从而增加了正确的匹配点数量. 在无人机拍摄的油田遥感图像上进行实验,结果表明,本文算法在正确匹配对数量、对准精度和运行时间方面均比原算法和其他主流算法性能更好.