RootSIFT:改动最小,收益最大#
IFT 在得到描述子以后,会进行 L2 归一化:
这样可以减弱整体亮度变化带来的影响。
但研究者发现,仅使用 L2 归一化仍然存在一个问题:
假设某个方向上的梯度特别强,欧氏距离会更多关注最大的那个数值,80 与 79 的差异往往比 3 与 1 的差异更加影响最终距离。
但对于局部特征来说,那些较小的梯度方向,同样可能包含着重要的信息。
于是,RootSIFT 把最后一步改成了少见的 L1 归一化后再开平方:
整个改动,就只有这一行公式,但它在多个公开数据集上,都获得了约 10%~20% 的匹配精度提升。
其逻辑可以这么理解:
RootSIFT 会削弱那些特别大的梯度响应,让原本较弱的方向拥有更多的话语权,这样,描述子的各个维度能够更加均衡地参与匹配。
最终,RootSIFT 几乎不增加任何额外计算,却能够显著提升匹配效果,因此被认为是"性价比最高"的 SIFT 改进之一,在许多工程实践中已经成为默认配置。
3.2 PCA-SIFT:更精简的描述子#
除了提高精度,还有另一部分研究者提出了一个问题:
128 维描述子中是否存在冗余?
还是图像数据的偏置:相邻方向之间、相邻网格之间,本身就存在较强相关性。
因此,128 维之间并不是完全独立的,能不能把这些重复的信息压缩掉?
04 年,论文 PCA-SIFT: A More Distinctive Representation for Local Image Descriptors 提出了PCA-SIFT,显然,其关键技术是我们之前展开过的 PCA。
但其改进了 PCA 的使用思路,做法是这样的:
对大量训练图像提取 SIFT 描述子组成矩阵进行 PCA,取最终结果中固定维度的主成分组成投影矩阵,对之后新的描述子直接使用该投影矩阵降维。
这么做是因为如果两张图各自 PCA,那么同一个点投影以后就在不同坐标系,描述子无法比较,所以必须都用同一个 PCA。
直观来看这样不仅减少了存储空间,也提高了匹配速度。
但由于 PCA 投影矩阵需要提前训练,让其泛用性较低:自然图像训练得到的投影矩阵,未必适用于遥感图像;可见光训练得到的模型,也未必适用于高光谱图像。
因此,PCA-SIFT 虽然理论出色,但实际应用远没有 RootSIFT 广泛。
3.3 GLOH:重新设计描述子#
此外,还有一部分工作,则没有选择修改归一化方式,也没有选择降维,而是重新设计描述子的空间结构。
其中比较具有代表性的是 05 年的论文 **A Performance Evaluation of Local Descriptors 提出的GLOH(Gradient Location and Orientation Histogram),其采用极坐标划分同心圆后统计方向的方式生成描述子:
这种结构更加符合图像中局部区域的几何分布,因此理论上能够表达更多空间信息。
但这也意味着更复杂的计算,而且最终GLOH 仍然需要利用 PCA 再次降到 128 维。
虽然实验结果表明,它的描述能力略优于 SIFT,但是提升并不算明显,而实现复杂度却增加了不少。
因此,这类方法更多还是停留在学术研究中。
4. 第三条路线:让 SIFT 适应更多场景#
经过前面的改进,SIFT 的速度越来越快,描述子也越来越成熟。
但在不断实验中,研究者们发现 SIFT 还存在一点局限:它的不变性其实是有限的,当两张图像之间存在较大的拍摄角度变化,比如无人机俯视拍摄或者手持相机斜拍建筑时,SIFT 的匹配性能会明显下降。
因为这些情况下,同一个物体在图像中的形状已经发生了明显拉伸。
这种变化已经不再是简单的旋转或缩放,而属于仿射变换(Affine Transformation)的范畴了:
一种介于刚体变换(只允许平移和旋转,保持长度与角度)和更一般的投影变换之间的几何模型,能够很好地描述许多实际拍摄场景中的局部形变,是计算机视觉中应用最广泛的变换模型之一。
而对这类情况的处理思路其实我们已经见过很多次了:
既然 SIFT 无法直接适应这种变化,那就想办法主动"制造"这些变化让模型提前适应。
ASIFT,就是这一思路下具有代表性的工作。
4.1 ASIFT:模拟仿射变换#
09 年,论文 ASIFT: A New Framework for Fully Affine Invariant Image Comparison 提出了ASIFT,相比上面各种改进,它的思路显得非常简单,连 SIFT 本身都几乎没有修改,它只是增加了一步:
