文末已添加Github代码链接地址
经典Harris作为当下运用最为广泛的提取角点算子,具有旋转、尺度、部分光照不变性,计算简单。Hessian角点检测是比Harris算子的更加稳定的角点检测算子只是计算效率相比Harris要高。随着Harris算子提出进一步发展为具有尺度不变性的角点检测算子Harris-Laplace。Harris-Laplace尺度不变算子主要通过在尺度空间图像上检测角点时添加尺度参数,主要步骤:
1 当前尺度图像上搜索每一个候选点进行拉普拉斯响应值计算,满足Harris矩阵绝大值大于给定阈值条件。
对于同一个景物,在不同传感器观察距离远近不同、焦距不同,导致成像分辨率不同(带来特征尺度值也不相同)。但是经过实验统计出来特征尺度之所对应的区域(在3 σ σ 为半径范围圆形区域)具有尺度不变性。因此,当Harris算子在尺度空间的每一层图像进行特征点搜索记录当前层的极值点,同时对比上下两层尺度参数相差为 σ σ 的图像相同位置比较,来进行不同尺度下极值点确定。通过这种策略来提取尺度不变点。
图像之间的仿射变换是由于传感器视差导致的成像仿射变化。如何对仿射变换下提取特征不变点引起研究者的兴趣。Harris-Affine算法能够检测仿射变换和不同光照变化下图像的相似区域,其检测出来的角点区域具有不变性与协变性。不变性是指检测到的角点位置独立于图像变换,不随着图像的变换而变动(特征点提取)。协变性是指区域的特征描述随着图像的变换而变换(即特征描述子是区域变换后才进行提取)。
不论是一阶微分Harris算子还是二阶微分Hessian算子,求取特征点响应极值时候自相关矩阵 M(x,y) M ( x , y ) 如下(以Hessian矩阵为例):
Harris-Affine仿射不变角点检测算子借助特征点二阶矩能够具备仿射不变性,因此首先在尺度空间上提取Harris-Laplace特征点(迭代精确特征尺度)作为初始的仿射不变候选点。随后进行特征点周围的二阶矩计算对特征点邻域区域进行归一化运算。关于二阶矩具体理论细节可以参考论文[Reliable Feature Matching Across Widely Separated Views]。
Two-Views Image仿射匹配算法是过去二十年局部特征发展的热点与难点,最先由Lindeberg研究仿射不变高斯尺度空间方法时提出通过二阶矩描述符的性质来恢复区域的方向。Krystian Mikolajczyk受到二阶矩对区域仿射不变性的启发,将其性质引入Harris-Laplace角点检测之中,获取局部特征仿射不变性能。同时,Krystian Mikolajczyk进一步发力提出Hessian-Affine仿射不变,稳定性和匹配性能要优于Harris-Affine匹配算法。
Hessian-Affine仿射提取特征与描述子的主要过程与Harris-Affine类似。主要区别在于Hessian-Laplace提取尺度不变特征点时候通过二阶梯度微分算子,相比于一阶微分Harris算法能够更稳定,抗噪声性强。
提取出仿射不变区域的特征点与描述子之后,按照经典的匹配策略进行由粗到精的匹配,首先采用KnnMatch聚类方法进行筛选较近的2个描述子,然后根据最近邻进行特征点筛选。然后使用RANSAC进行粗匹配点对的提纯,提取精确的匹配内联点对。根据这些内联点对估计仿射变形矩阵参数完成图像之间的形变参数估计。
话不多说来几幅Hessian-Affine仿射匹配结果图:
HarrisAffine OpenCV版代码
https://blog.csdn.net/small_munich/article/details/80205223
Github地址:
https://github.com/SmallMunich/HessianAffineMatch_VisualStudio2015/tree/master
https://lear.inrialpes.fr/people/mikolajczyk/
https://www.researchgate.net/publication/3854196_Matching_Images_with_Different_Resolutions
http://pdfs.semanticscholar.org/46bc/68d803befe51b57613792454c45503d5ecaf.pdf
https://hal-polytechnique.archives-ouvertes.fr/CNRS/inria-00548252v1
<图像局部不变性特征与描述> 王永明 王贵锦 编著