CV——图像匹配调研

概念:

图像匹配是对两张相似的照片(不同角度,不同光照,不同大小,不同放射等)进行关键点的寻找连接。和“找不同”游戏有着相似的步骤,先观察两张图像的特征,再根据经验进行配对。只不过图像匹配找的是相同,“找不同”游戏找的是不同。

步骤:

1)提取图像的特征点
2)对图像特征点进行描述(包含特征点的位置,尺度,方向等信息)
3)计算两张图像的候选特征点的距离,选择相似度高的点进行匹配

综述:

1)Image Matching from Handcrafted to Deep Features: A Survey
这是一篇接近50 pages的博士论文,引用参考文献400+,整体架构清晰。我一直对三个步骤以及传统的匹配算法没有一个明确的界限,看完之后清晰了很多。

2)我主要阅读了框架的这些部分:
在这里插入图片描述
通过图可以看到,作者将图片匹配分为三个步骤,分别对特征提取器,特征描述子,特征匹配方法进行了调研总结;
随着机器学习的流行,也有相应的基于学习的特征提取器,特征描述子,特征匹配方法;
研究3-D图像匹配的同学也可以查阅论文相关信息,具体和2-D有相似的地方,但会多了位姿处理等;

介绍:

参考作者的架构图,我也做了一个类似的~ 来介绍我接下来介绍的详略情况:

在这里插入图片描述
我会按照图像匹配的顺序,分别介绍一些传统的算法;

1)角点检测器可以分为基于梯度的、基于强度的、基于曲率的;
基于梯度(计算灰度的加减法)的检测器比较著名的是:Maravec和Harris,实际上Harris是在Maravec基础上发展过来的,具有更高的可靠性
基于强度(比较灰度的大小关系)的检测器比较著名的是:FAST和ORB,实际上ORB也是在FAST基础上发展过来的,使得提取的特征具有尺度不变性和旋转不变性
基于曲率的检测器实际上由多个步骤组成,虽然计算成本高,但是它可以用在特定的领域;
2)手工的特征描述子可以分为基于梯度统计,基于局部二进制统计,局部强度比较和局部定向强度统计;后面两种方法和前面大同小异,这里只介绍基于梯度统计的:SIFT和SUFT and 基于局部二进制统计的:BRIEF和rBRIEF;
3)图片匹配方法比较传统的就是暴力和KNN了,这两个方法cv库都有提供;
4)我还会介绍基于学习的一个比较高效的特征描述子SuperPoint,以及基于图神经网络完成特征匹配的SuperGLue

特征提取器:

在这里插入图片描述
先说说这三种类型的不同:
基于梯度的很明显效率不高,但是能够达到比较高的特征提取精度;
基于强度的因为不用计算梯度,只需要进行强度大小的比较,所有效率高,比较适合实时特征提取;
基于曲率的分为四个步骤:
1)首先得有个边缘检测器,对图像的边缘进行提取;
2)从提取的边缘中选取曲率较大的边缘进行保留;
3)对挑选的边缘进行光滑,降低噪声的影响,对曲率的边进行再估计;
4)选择指定曲率以上的特征点作为关键点;
基于曲率的检测器因为需要进行边缘的提取,还有后续的多种处理步骤,效率比较低,但是适合用在没有什么纹理的图像上,比如医学图像或红外线图;
这些特征检测器的共同的目标是:a)使得后续的匹配具有可行性b)对后续的各种算法具有可移植性c)实现匹配的高效性和存储的低容性;

基于梯度的检测器

在这里插入图片描述

Moravec由1977提出,也是特征检测器的开山之作,通过设定一个阈值,当图像强度变化值大于阈值便视为角点;
Harris由1988提出,使用一个矩阵完成窗口特征的提取,重定义了Moravec角点的选择标准;

Moravec

在这里插入图片描述
Moravec分为四个步骤,通过设计一个小窗口在图像上进行移动,计算小窗口前后的强度变化, 小窗口会遇到的三种情况,平坦区域,直线边界和角点,其中平坦区域和直线边界都不会导致小窗口前后的强度值发现很大的变化,但是角点会,所以作者通过设置一个指定的阈值,完成角点的筛选;窗口的移动方向有8个,分别为上下左右和对角线的移动;

Harris

在这里插入图片描述
Harris相较于Moravec改进了三个方向,第一个是认为特征点具有各项异性,8个方向不足以描述特征,于是使用二元函数的泰勒展开,对各个方向的移动进行多项式近似,最终化简出一个矩阵,同来控制小窗口的移动方向;第二个是改进了移动窗口本身,利用高斯代替原本的窗口常函数,既可以提高特征的抗噪性还可以将重点偏移到特征点本身;第三个是角点判断的改进,Moravec仅仅通过设计一个变化差值的最小值是远远不够的,作者利用了前面小窗口化简出来的矩阵,得到关于小窗口的边缘信息,可以看到在在三种情况下的Ix Iy是不一样的,如果以Ix Iy为坐标画出三种情况下的分布,可以发现它们是不一样的。用椭圆曲线去拟合,可得结论,长短轴均短的为平坦区域,长短轴相差较大的为直线边缘,长短轴均长的为角点;

基于强度的检测器

在这里插入图片描述

论文列了许多基于强度的检测器,以速度著名的是FAST还有它的改进版ORB;其他检测器大家有兴趣可以自己查阅相关资料;

FAST and ORB

在这里插入图片描述

FAST首先对某个图像点进行局部的特征提取,画一个半径为3 pixels的圆,提取圆边上16个方向的强度和中心点比较,如果比中心点大就取1,比中心点小就取0,最终形成维度为16的向量;使用先验知识训练决策树,然后将特征向量放入决策树中得出特征向量是关键点的概率;这就是FAST的工作步骤,值得一提的是,为了加快特征点的筛选,检测器会先取上下左右四个点与中心点比较,如果有3个1或者3个0就认为其不是关键点,直接跳过;
ORB从三个方面改进了FAST,第一个是使用非极大抑制防止密集特征点的情况;第二个是对图像进行下采样,对不同尺度的图像进行特征提取,使特征具有尺度不变性;第三个利用矩法计算圆的质心,以圆心指向圆的质心的方向为特征描述子的方向,实现特征的旋转不变性

手工特征描述子

在这里插入图片描述

这里主要介绍基于梯度统计的描述子:SIFT and SURF 和 基于局部二进制模式的统计:BRIEF and rBRIEF;基于SIFT的变种还有很多,如CSIFT[2006] ASIFT[2009] SIFT-rank[2009],这里就不一一介绍了;

SIFT(Detection)

在这里插入图片描述

SIFT分为七个步骤,首先介绍什么是尺度空间,这里使用不同参数的高斯模糊对原图进行处理,可以看到对于不同参数得到的图像轮廓是不同的,有些只有粗略的边缘信息,有的则保留了不少的细节信息,这里尺度的空间建立指的是自主筛选不同参数的高斯模糊进行处理;第二个步骤是建立高斯金字塔,可以看到这个金字塔有5层,从下往上看,原图不断被下采样,而每层又包括了不同尺度空间的图像,最终构成高斯金字塔;这个金字塔不一定是5层,具体需要看图像的大小和特征提取的需要;第三个步骤是构建高斯差分金字塔,假设尺度空间为5张图片,则取2 3 4与其上下的图像作减法,边缘的尺度空间图像是不做高斯差分处理的。得到了高斯差分的图像后,再对其中间的图像进行26个方向的强度比较,看其是否为极大值或极小值,如果是,最终整合成一个指定长度指定大小的特征描述子。关键点精确定位是将在高斯差分下的特征点位置定位到原图中,论文使用的是双线插值;因为高斯差分算子本身对边缘比较敏感,所以对其做了边缘响应的消除;

SIFT(Description)

在这里插入图片描述
首先,以关键点为中心画一个半径radius的圆,其中otc为边长,d为绿色框框的格子数,由勾股定理得半径;然后将坐标系方向定为特征点方向(由之前的极值判断计算得到的),保证特征描述子的旋转不变性(因为不按照方向取坐标轴方向,最后提取的16个小框框位置是不唯一的);然后根据旋转矩阵得到16个小框框的指定位置;接着,对16个框框里的点进行高斯差分空间的重定位,计算16个种子的梯度,统计成8个方向的方向梯度;最后就是向量元素的门限化,比如某个向量的长度短于多少,就不参与梯度直方图的统计;对向量的归一化,将128维度的向量每个值的范围归一化到[0,1];

SUFT

在这里插入图片描述
SUFT在SIFT上有三点改进,第一是利用heissian矩阵代替高斯卷积,对这个矩阵就是Harris小窗口移动方向控制的那个矩阵,这个矩阵能够反映图像的许多边缘信息,并且利用图积分降低了计算成本,至于图积分为什么会降低计算成本,大家可以去查阅图积分的相关资料;第二是利用盒式滤波器代替高斯滤波器,这里左边的为Iy形成的滤波器,右边为IxIy形成的滤波器,都可以近似成下面的盒式滤波器,加快滤波的效率;第三是对128维的SIFT特征描述子进行降维,通过对16个小框框提取25pixels的Haar小波特征,作为特征描述子;什么是haar小波特征呢,它包括对小框框单dx 单dy
以及其绝对值的统计,所以每个小框框有四个特征,一共有16个框框,就是64维,是128维的一半。

BRIEF and rBRIEF

在这里插入图片描述

局部二进制模式统计比较著名的有:BRIEF and rBRIEF。顾名思义,它是有一组10序列组成,长度通常为128,256,512,opencv中默认是256;这个10序列是怎么组成的呢,假如是256维,也就是在特征点的附近指定区域(31x31)寻找256对像素对;论文中采取了5种方法,分别是(看图),其中,当像素p q本身周围区域都遵循高斯分布时,得到的描述子是最好的,有一定的正确性与区分性;rBRIEF实际改进了BRIEF三个方面,第一是通过使用提取到的特征方向,旋转后再做区域旋转,使其旋转不变性;第二个是通过高斯平滑处理后,使用5x5的均值代替原理的值去进行点对的比较,提高特征描述子的抗噪性;第三个是想办法提取相关性最小的像素对,这样才能更好的比较,描述子的区分性才会更强。那怎么取呢?首先,有(31-5+1)^2=729个点,那么点对的选取方式就有729!种:a)首先对这729!进行点对值的比较,形成一个300k*729!的矩阵,那么矩阵的每一列都是某种点对在300k特征点的信息(1或0)b)对每一列进行均值求解,按照离0.5的距离进行排序c)将第一列选入d)遍历第二列到之后列,依次计算所有选入向量的相关系数,小于阈值则加入e)选入列向量的数量到达256,停止算法;

匹配方法

在这里插入图片描述
这里不具体介绍了,传统的方法主要有暴力Flann

实验

在这里插入图片描述

这里我找了一篇对传统特征提取与描述进行实验对比的论文,SURF由SIFT改进过来的,论文里是做了降维处理的,所以我们以SURF(64D)为标准作对比,可以看到检测的数量对更多,错误的点更少,所花的时间也是更加的少。然后再看看由BRISK演变过来的ORB,各种性能上也是优于原来的BRISK;论文还对opencv包装好的两个基于学习的特征匹配方法作了实验结果对比,有兴趣的同学可以看看论文;

SuperPoint and SuperGlue

在这里插入图片描述

SuperPoint是一个通过自监督完成图像特征提取与描述的网络,它将两个步骤一体化了,进行同时训练,所以一定程度上,它精简了网络结构,减少了计算资源的浪费;绿色标标的是基于学习的特征提取与描述网络,它们有些只做了一个步骤的网络训练,有些不能做到原始图像的简单输入,有些无法达到实时的检测,但是SuperPoint都做到了;相较于SiFT 和 ORB,它具有原始图像自动输入便直接得到结果的优势,因为它网络是一体化的且是自动学习并且训练好的(即自监督的);

SuperGLue的一作是SuperPoint的二作,两年后,他们研究出一个基于图神经网络的图像匹配方法,这个方法在许多应用都超越了传统的匹配方法;

在这里插入图片描述
SUperPoint网络训练分为三个部分,第一部分是关键点的预训练,即让机器人学习什么是角点,这里的数据集用到的都是一些数学几何图形,比如三角形,棱形,正方形等,所以它训练出来只是一个基本的模型,不太适合运用到实际生活中;第二部分是基于前面的基础检测器,再给网络放一些没有标记的现实场景的图形,通过单映调整,让网络自己学习给图像打标签;第三部分通过对图像的扭曲进行特征点和描述子的重定位匹配,根据设定好的损失函数,不断调正特征点的本身信息和描述信息,实现图像匹配网络的训练优化;
在这里插入图片描述

第一个步骤,其实是作者2017年发布的一篇文章实现的Magic Point,它所使用的图像就如图片所示,一些公认并无异议的角点,网络结构如图,它包含一个类似VGG的卷积层,Softmax层,降维层,和reshape层,具体细节可以看论文;
在这里插入图片描述

第二个步骤的单映调整是什么呢?其实是对图像进行多种变换,也算是数据增强的一部分,比如只裁剪中心,或者截取其他领域,再进行缩放,旋转,放射处理,最后形成随机的单映变换;对得到的图像,再进行适当的扭转,这里应该是为了描述子的旋转不变性,将其运用到基础检测器MagicPoint中,会得到角点的响应,最后将几种扭转后的角点进行整合,得到特征加强版的图像角点热图,这就是关键点的自标记;
在这里插入图片描述

最后一步就是特征点和描述子的联合训练了,这是SuperPoint的网络结构,这里的编码器是前面提到MagicPoint的编码器,描述子与其用相同的编码器,特征点解码器是margicPoint的后部分,也就是下图的除了编码器的其他部分。而描述符解码器,这里运用了一个类似UCN的网络,进行半稠密描述子的提取,然后再利用双三插值进行描述符的精确定位,最后使用L2进行描述符向量的标准化;

在这里插入图片描述
从表2我们可以看到MagicPoint具有很高的抗噪性,从表3我们可以看到它具有非常出色的光照不变性和多视角不变性;我决定它特征描述子的鲁棒性很多程度得益于丰富的单映调整,就是现实场景自打标签的那个过程;
在这里插入图片描述

在这里插入图片描述

SuperGLues利用基于注意力机制的图神经网络完成特征匹配能力的增强,它与传统的匹配不同,传统只是利用了特征描述子的距离进行匹配,但是该关键点编码器考虑到特征点的位置与描述,即考虑到特定点的结构位置;另外,注意力加强部分模拟人类,观察图片本身和观察两张图片之间进行匹配。最后,对得到的描述符(聚合了位置信息)进行软分配矩阵构建,通过最大化得分矩阵实现的(这里涉及最优运输问题,没有深入了解,大致是将多个城市的土移动到另外的城市,当运输费用不同如何达到费用最小值的问题,抽象出来是将一个概率分布转换为另外一个概率分布的最小代价,这个最小代价就是最大化得分)
在这里插入图片描述
这里可视化了图神经网络的自我注意力和与相关图片交流的信息,即保证了特征在本身图像的局部可靠性,又充分与相关图片进行关联;(绿色是比较容易匹配的点,蓝色为中等,红色为难)随着注意力的不断加深,绿色最先收敛,红色最后收敛,即注意力机制会使网络在后期更加注重难点的匹配,注意范围也会不断缩小。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
SuperGLue运用到旋转估计,室内室外位姿估计在精度,匹配得分等估量上均远远胜于传统的NN,并且与作者先前提出的SuperPoint结合使用,得到的效果是最好的。
在这里插入图片描述
总结一下,SuperGLue的三个比较大的创新点,第一个是将特征点的结构位置作为特征描述的一部分考虑;第二是模拟人类进行图像匹配的自我注意和交叉注意;第三是利用最优运输问题解决了特征匹配和遮挡的问题;
在这里插入图片描述

参考文献与博客:

A Survey
Experiment
Harris
ORB
SIFT
SUFT
SuperPoint
SuperGlue

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值