SIFT原文:https://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf

尺度不变关键点的独特图像特征

  • 摘要
  • 1. 引言
  • 2. 相关工作
  • 3. 尺度空间极值检测
    • 3.1 局部极值检测
    • 3.2 尺度采样频率
    • 3.3 空间域中的采样频率
  • 4. 精确关键点定位
    • 4.1 消除边缘响应
  • 5. 定向任务
  • 6. 局部图像描述子
    • 6.1 描述子表示
    • 6.2 描述子测试
    • 6.3 仿射变化的敏感性
    • 6.4 与大型数据库匹配
  • 7. 在目标识别中的应用
    • 7.1 关键点匹配
    • 7.2 有效的最近邻方法
    • 7.3 霍夫变换聚类
    • 7.4 仿射参数的求解
  • 8. 识别示例
  • 9. 总结

摘要

本文提出了一种从图像中提取独特不变特征的方法,该方法可用于在不同视图之间物体或场景的可靠匹配。图像的缩放和旋转时,这些特征是不变的,并且在相当大范围的仿射失真、3D视点的变化、噪声的增加和光照的变化中提供鲁棒的匹配。这些特征是非常独特的,从某种意义上说,单个特征与有许多图像特征的大型数据库可以高概率地正确匹配。本文还描述了一种利用这些不变特征进行目标识别的方法。识别过程使用快速最近邻算法,将单个特征与已知目标的特征数据库进行匹配,接着进行霍夫变换识别属于单个目标的聚类,最后通过最小二乘法验证一致的姿态参数。这种识别方法可以在杂波和遮挡中稳健地识别目标,同时获得接近实时的性能。

1. 引言

图像匹配是计算机视觉中许多问题的一个基本问题,包括目标或场景识别,从多幅图像中求解三维结构,立体对应和运动跟踪。本文描述了具有许多属性的图像特征,这些属性使这些特征适合匹配不同图像中的目标或场景。图像缩放和旋转时,这些特征是不变的,光照和3D视点的变化时,这些特征是部分不变的。它们在空间域和频率域都有很好的定位,减少了遮挡、杂波或噪声破坏的可能性。利用高效算法可以从典型图像中提取大量特征。此外,这些特征非常独特,这使得单个特征能够与大型特征数据库高概率地正确匹配,从而为目标和场景识别提供了基础。

通过采用级联滤波方法可以使提取这些特征的成本最小化,在级联滤波方法中,更繁复的操作仅被应用于确定初始测试的位置。以下是生成图像特征集的主要计算阶段:

  1. 尺度空间极值检测:计算的第一阶段,搜索所有尺度和图像位置,使用高斯差分函数来识别对比例和方向不变的潜在兴趣点,可以有效地实现该方法;
  2. 关键点定位:在每个候选位置,用一个详细的模型确定位置和尺度。基于其稳定性的度量选择关键点;
  3. 方向分配:基于局部图像梯度方向,每个关键点位置分配一个或多个方向。之后在图像数据上的操作,都是对每个特征进行指定方向、尺度和位置变换后进行的,因为这些变换具有不变性;
  4. 关键点描述子:在每个关键点周围的区域选定尺度测量局部图像梯度。这些可以转化成为一个允许显著的局部形状变化和光照变化的表示法;

这种方法被称为尺度不变特征变换,因为它基于局部特征,将图像数据变换为尺度不变的坐标。

这种方法的一个重要方面是它生成大量的特征,这些特征密集地覆盖图像的尺度和位置。典型的500x500像素大小的图像将产生大约2000个稳定的特征(尽管这个数字取决于图像的内容和各种参数的选择)。特征的数量对于目标识别特别重要,要想在杂乱背景中检测小目标,每个目标至少有3个正确匹配的特征,才能可靠识别。

对于图像匹配和识别,首先从一组参考图像中提取SIFT特征并存储在数据库中。将新图像中的每个特征与先前数据库中的特征进行单独比较,基于其特征向量的欧式距离找到候选匹配的特征,来匹配新图像。本文将讨论快速最近邻算法,它可以针对大型数据库快速执行这种计算。

关键点描述子非常独特,它使得单个特征能够在大型特征数据库中大概率找到其正确匹配。然而在杂乱的图像中,许多来自背景的特征在数据库中没有任何正确的匹配,还会产生许多错误的匹配。通过识别与新图像中的目标,位置,尺度和方向一致的关键点子集,可以从完整的数据集中过滤出正确的匹配。几个特征恰好与这些参数达成一致的概率远远低于单个特征匹配错误的概率。可以通过使用广义霍夫变换的哈希表来快速确定这些一致的聚类。

然后,由3个或更多特征组成一组聚类,这些特征与目标及其姿态是否是一致的,都要经过进一步的详细验证。首先,识别与此姿势一致的其他图像特征,并抛弃异常值。最后,在给定拟合精度和可能的错误匹配数的情况下,详细计算了特定特征集表示对象的概率。通过所有这些测试的目标,可以被认为是匹配正确的。

2. 相关工作

利用一组局部兴趣点进行图像匹配的发展可以追溯到莫拉维克(1981),利用角检测器进行立体匹配的工作。哈里斯和斯蒂芬斯(1988)改进了莫拉维克探测器,使其在小图像变化和近边缘下更具有可重复性。哈里斯还展示了它在有效运动跟踪和在三维重建中进行运动恢复的价值(哈里斯,1992),哈里斯角检测器已经被广泛用于许多其他的图像匹配任务。虽然这些特征检测器通常被称为角检测器,但是它们并不仅仅选择角点,而是选择在所有方向上有预定尺度并具有大梯度的图像的位置。

最初的应用是立体和短距离运动跟踪,但这种方法后来扩展到运用于更困难的问题。Zhang等人(1995)表明,在每个角的周围使用相关窗口来选择可能的匹配,使得在大幅图像范围内匹配哈里斯角是有可能实现的。然后,求解在刚性场景中,两个视图之间有几何约束的基本矩阵,并通过移除与多数解不一致的匹配,来移除异常值。与此同时,Torr (1995)研发了一种类似的远程运动匹配方法,其中也用几何约束去除图像中,运动的刚性物体的异常值。

Schmid和Mohr (1997)的开创性工作表明,不变的局部特征匹配可以扩展到用于一般的图像识别问题,使用其中单个特征与大型图像数据库相匹配。他们还使用哈里斯角来选择兴趣点,但他们没有使用相关窗口进行匹配,而是使用了局部图像区域的旋转不变描述子。这使得在两个图像之间方向变化的情况下依然可以进行特征匹配。此外,他们证明了多特征匹配可以通过识别匹配特征的一致聚类,来进行遮挡和杂乱情况下的一般识别。

哈里斯角检测器对图像尺度的变化非常敏感,所以它不能为不同尺寸图像的匹配提供良好的基础。作者早期的工作(Lowe,1999)扩展了局部特征方法以实现尺度不变性。这项工作还描述了一种有更显著特征的,同时对局部图像失真(如3D视点变化)不太敏感的,新的局部描述子。本文对这一早期工作进行了更深入的开发和分析,同时还在稳定性和特征不变性方面进行了改进。

先前有大量关于尺度变化下的识别表现稳定性的研究。Crowley和Parker (1984)在这一领域进行了一些初步工作,他们研发了一种表示法。这种表示法可以识别尺度空间中的峰和脊,并将它们连接成一个树形结构。然后,就可以在任意尺度变化的图像之间匹配树形结构。Shokoufandeh,Marsic和Dickinson (1999)最近在图像匹配的工作中,提出了一种使用小波系数的,更有特色的特征描述子。Lindeberg (1993,1994)深入研究了为特征检测确定一个合适并且一致的尺度的问题。他把这称为一个尺度选择的问题,我们在下文利用了他的结论。

最近,在扩展局部特征使其对全局仿射变换不变方面,有大量令人印象深刻的工作(Baumberg,2000;Tuytelaars和Van Gool,2000年;Mikolajczyk和Schmid,2002;Schaffalitzky和Zisserman,2002年;Brown and Lowe,2002年)。在大多数情况下,通过在局部仿射帧对图像进行重采样,允许在正交三维投影改变的情况下,与平面表面上的特征进行不变匹配。然而,还没有一个方法是实现全局仿射不变的,由于探索完全仿射空间需要高昂的成本,因此它们以非仿射不变的方式开始选择初始特征尺度和位置。仿射帧也比尺度不变特征对噪声更敏感,因此在实践中,除非仿射失真与平面的倾斜程度大于约40度,不然仿射特征比尺度不变特征具有更低的可重复性(Mikolajczyk,2002)。更宽的仿射不变性对于许多应用来说可能并不重要,因为至少每30度,就会旋转视角拍摄一次,以便发现三维目标的非平面变化和遮挡的影响(意味着在最近的视角,识别也在15度范围内)。

虽然本文提出的方法不是完全仿射不变的,但是使用了一种独特的方法,使描述子有很小的变化时,局部描述子可以显著地改变相关特征位置。这种方法不仅允许描述子在相当大范围的仿射失真内可靠地匹配,而且还使得特征对于非平面表面的三维视点变化更加鲁棒。其他优点包括有效的提取特征和识别大量特征的能力。另一方面,在视角变化非常大时,仿射不变性在平面表面匹配中是有价值的,并且应该进一步研究有效和稳定的方式,将其与非平面三维视点不变性最佳结合起来。

已经有许多用于识别的特征类型,其中一些可以辅助本文的特征在不同的环境下进一步的匹配。其中一类是那些利用图像轮廓或区域边界的特征,可以减少物体边界附近的杂乱背景干扰。Matas等人(2002)已经表明,它们的最大稳定极值区域可以产生大量有良好稳定性的匹配特征。Mikolajczyk等人(2003)研发了一种新的描述子,该描述子使用局部边缘同时忽略不相关的边缘,即使在重叠背景杂波上,狭窄形状的边界附近也能找到稳定特征。Nelson和Selinger (1998)展示了基于图像轮廓分组的局部特征的良好结果。类似地,Pope和Lowe (2000)使用了基于图像轮廓分层分组的特征,这对于缺乏详细纹理的对象特别有用。

视觉识别的研究历史包含了一系列可以用作特征测量的图像属性的工作。Carneiro和Jepson (2002)描述了基于相位的局部特征,其特征表示的是相位而不是局部空间频率的幅度,这可能改进光照的不变性。Schiele和Crowley(2000年)提出了使用多维直方图来概括图像区域内的测量分布。这种类型的特征对于识别畸变形状的纹理对象可能特别有用。Basri和Jacobs (1997)已经证明了将局部区域边界用于识别的价值。其他有效的属性比如颜色、运动、图形背景识别、区域形状描述子和立体景深提示。只要这些额外的特征进行正确的,鲁棒的匹配的同时,除了它们的计算成本之外,不会影响其他特征,局部特征方法就可以与额外的特征类型相结合。因此,未来的系统可能会结合许多类型的特征。

3. 尺度空间极值检测

如引言中所述,我们将使用级联过滤方法检测关键点。级联过滤方法使用高效算法来识别候选位置,然后对这些位置进行更详细的检测。关键点检测的第一阶段是,识别同一对象在不同视图下可重复分配的位置和尺度。通过使用尺度空间的连续尺度函数,在所有可能的尺度上搜索稳定的特征,可以实现对图像尺度变化具有不变性的位置的检测(Witkin,1983)。

Koenderink(1984)和Lindeberg(1994)已经表明,在经过各种合理的假设验证下,唯一可行的尺度空间核就是高斯函数。因此,定义图像的尺度空间为函数L(x,y,σ)L(x,y,σ)L(x,y,σ),由尺度可变高斯函数G(x,y,σ)G(x,y,σ)G(x,y,σ)与输入图像I(x,y)I(x,y)I(x,y)的卷积产生:

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

其中 * 为x和y的卷积操作,

G(x,y,σ)=12πσ2e−(x2+y2)2σ2G(x,y,σ) = \frac{1}{2πσ^2 } e^{\frac{-(x^2+y^2)}{2σ^2 }}G(x,y,σ)=2πσ21​e2σ2−(x2+y2)​

为了有效地检测尺度空间中稳定关键点的位置,我们(Lowe,1999)已经提出尺度空间极值D(x,y,σ),即图像与高斯差分函数的卷积。其可以从用常数乘法因子k分开两个邻近尺度的差来计算:

D(x,y,σ)=(G(x,y,kσ)−G(x,y,σ))∗I(x,y)=L(x,y,kσ)−L(x,y,σ)D(x,y,σ)=(G(x,y,kσ)-G(x,y,σ))*I(x,y) =L(x,y,kσ)-L(x,y,σ)D(x,y,σ)=(G(x,y,kσ)−G(x,y,σ))∗I(x,y)=L(x,y,kσ)−L(x,y,σ)

选择此函数的原因有许多。首先,它是一个计算效率特别高的函数,因为在任何情况下都需要计算平滑图像L来描述尺度空间的特征,然后D就可以通过简单的图像减法计算得到。


图1:对于尺度空间的每个八度,初始图像与高斯图像重复卷积,产生左侧所示的尺度空间图像集。相邻的高斯图像被减去,以产生右侧的高斯差分图像。在每个倍频程之后,高斯图像被下采样2倍,并且重复该过程。

此外,Lindeberg(1994)的研究中,高斯差分函数提供了尺度归一化拉普拉斯算子的近似值σ2σ^{2}σ2 ∇2∇^2∇2 G。Lindeberg表明,用σ2σ^2σ2因子归一化拉普拉斯算子是真实尺度不变性所必需的。在详细的比较实验中,Mikolajczyk(2002)发现,与一系列其他可能的图像函数(如梯度、Hessian或Harris角点函数)相比,σ2σ^2σ2 ∇2∇^2∇2 G的最大值和最小值生成最稳定的图像特征。
D与σ2σ^2σ2 ∇2∇^2∇2 G的关系可以从热扩散方程中理解(参数为σ,而不是更常见的t=σ^2):

∂G∂σ=σ∇2G\frac{∂G}{∂σ} = σ ∇^2 G∂σ∂G​=σ∇2G

从这里,我们看到使用kσkσkσ和σσσ邻近尺度的差值,∇2∇^2∇2 G可通过有限差分近似计算得到∂G∂σ\frac{∂G}{∂σ}∂σ∂G​:

σ∇2G=∂G∂σ≈G(x,y,kσ)−G(x,y,σ)(kσ−σ)σ∇^2 G=\frac{∂G}{∂σ} ≈ \frac{G(x,y,kσ) - G(x,y,σ)}{(kσ-σ)}σ∇2G=∂σ∂G​≈(kσ−σ)G(x,y,kσ)−G(x,y,σ)​

因此,

G(x,y,kσ)−G(x,y,σ)≈(k−1)σ2∇2GG(x,y,kσ)-G(x,y,σ) ≈ (k-1)σ^2 ∇^2 GG(x,y,kσ)−G(x,y,σ)≈(k−1)σ2∇2G

这表明,当高斯差分函数的值具有与常数因子不同的尺度时,它已经包含了尺度归一化拉普拉斯算子所需的尺度不变量σ2σ^2σ2。方程中(k-1)在所有尺度上都是常数,因此不会影响极值位置。当k变为1时,近似误差将变为零,但在实践中,我们发现即使是在尺度上存在显著差异,例如k=√2k=√2k=√2,近似值也几乎不会影响极值检测或定位的稳定性。


图2:在当前和相邻尺度(用圆圈标记)下,通过将像素(用X标记)与3x3区域中的26个相邻像素进行比较,检测高斯差分图像的最大值和最小值。

图1显示了构造D(x,y,σ)D(x,y,σ)D(x,y,σ)的一种有效方法。初始图像与高斯函数增量卷积,在尺度空间中生成由常数因子k分隔的图像,如左栏所示。我们在尺度空间中划分每个倍频程(如σ的两倍),间距为S,因此k=21sk=2^{\frac{1}{s}}k=2s1​。我们必须在每个倍频程的模糊图像堆栈中生成S+3幅图像,才能覆盖整个倍频程的极值检测。将相邻图像尺度相减,产生右图所示的高斯差分图像。处理完一个完整的倍频程后,我们在每一行和每一列中,每秒钟提取一个像素,对初始值为2σ的高斯图像(它是堆栈顶部的两个图像)进行重采样。σ的采样精度与前一个倍频程的采样精度相同,但计算量大大减少。

3.1 局部极值检测

为了检测D(x,y,σ)D(x,y,σ)D(x,y,σ)的局部最大值和最小值,将每个采样点与当前图像中的八个相邻点和上下比例中的九个相邻点进行比较(见图2)。仅当它大于所有这些邻居或小于所有这些邻居时,才会选中它。由于大多数采样点将在最初几次检查后消除,因此该检查的成本相当低。

确定所需的图像和尺度空间中的采样频率进行可靠的极值检测,是一个重要的问题。不幸的是,事实证明,没有找到可以检测所有极值的最小的样本间隔,因为极值可以任意接近。通过黑色背景上的白色圆圈可以看出,在尺度空间中,该圆圈具有最大值时,圆形高斯差分函数正中心区域与圆圈的大小和位置匹配。对于一个被拉长的椭圆,在椭圆的两端附近会有两个极大值。由于图像的最大值的位置是连续函数,对于一些从中间拉长的椭圆,将有一个极值到椭圆两个极值的过渡,而极值之间可以任意接近。

图3:第一个图表的第一条线显示了在变换过程中,相同位置和尺度处可重复检测到的关键点的百分比,该百分比是每倍频程采样的比例。下一行显示的是,关键点的描述子与大型数据库正确匹配的百分比。第二个图表显示了一幅典型图像中检测到的关键点总数,该总数作为样本数的尺度。

因此,我们必须选择一种权衡了效率和完整性的解决方案。事实上,正如我们的实验所预期和证实的那样,相近的极值对于图像的小扰动是非常不稳定的。我们可以通过研究一系列采样频率,并使用在匹配任务的真实模拟下最可靠结果的频率,确定最佳选择。

3.2 尺度采样频率

图3和图4展示了采样频率与最大化极值稳定性实验测定。这些图(以及本文中的大多数其他模拟)都基于一项32幅图像的匹配任务,这些图像来自不同范围(包括室外场景、人脸、航空照片和工业图像(结果发现图像域对结果几乎没有影响))。然后,每个图像都经过一系列变换,包括旋转、缩放、仿射拉伸、亮度和对比度的变化以及增加图像噪声。由于这些变化是综合的,因此可以精确预测原始图像中的每个特征在变换图像中出现的位置,从而可以测量每个特征正确的重复性和位置的精度。

图3显示了在极值检测之前,进行图像函数采样时,改变每倍频程的刻度数的效果。在这种情况下,每幅图像在随机旋转一个角度和随机缩放0.2-0.9倍后重新采样。降低分辨率后图像中的关键点与原始图像中的关键点进行匹配,得到所有关键点的比例。此外,添加了1%的图像噪声,这意味着像素值在[0,1]范围内,每个像素都添加了一个在间隔[-0.01,0.01]的随机数,(相当于为图像像素提供略低于6位的精度)。


图4:图中的顶行显示了变换图像中可重复检测到的关键点的百分比,作为每个倍频程第一级的优先图像平滑函数。下一行显示与大型数据库正确匹配的描述子的百分比。

图3第一个图表中的顶行显示了关键点在图像变换后进行匹配,检测到的位置和尺度的百分比。本文中的所有示例,我们将匹配尺度定义为正确尺度的√2倍,匹配位置在σ个像素内,其中σ是关键点的尺度(根据等式(1)定义为高斯差分函数中使用的最小高斯函数的标准差)。该图的下一行显示了第6节中描述的最近邻匹配法,与有40000个关键点的数据库匹配的关键点数量(这表明,如果关键点可重复定位,可能对识别和匹配任务有利)。如图所示,当每倍频程采样3个尺度时,可获得最高的重复性。这是本文其他实验中也使用的采样尺度数。

随着取样量的增加,重复性没有继续改善,这似乎令人惊讶。原因是,这会导致更多的局部极值被检测到,但这些极值平均不太稳定,因此不太可能在变换图像中检测到。图3中的第二个图表显示了这一点,它显示了在每个图像中检测到并正确匹配的关键点的平均数量。关键点的数量随着尺度采样的增加而增加,正确匹配的总数也随之增加。由于目标识别的成功通常取决于正确匹配的关键点的数量,而不是它们的正确匹配百分比,因此对于许多应用来说,使用更多的比例样本将是最佳选择。然而,计算成本也随着这个数字的增加而增加,因此对于本文中的实验,我们选择在每倍频程使用3个刻度样本。

综上所述,这些实验表明高斯差分函数的尺度空间具有大量的极值,并且检测这些极值成本非常高。幸运的是,我们可以使用较大的采样尺度检测到最稳定和有用的子集。

3.3 空间域中的采样频率

我们确定了尺度空间每倍频程的采样频率,也必须确定图像域中相对于平滑尺度的采样频率。假设极值可以任意接近,采样频率和检测率之间也会有类似的权衡。图4显示了应用于构建倍频程的尺度空间表示之前,每个图像级别的优先平滑函数σ的实验测定。同样,顶行是检测关键点的重复性,结果表明重复性随着σ的增加而继续增加。然而,使用较大的σ影响效率,因此我们选择使用σ=1.6,这接近最佳的重复性。该值在本文中使用,包括用于图3中的结果。

当然,如果我们在极值检测之前对图像进行预平滑处理 ,就可以有效地剔除最高的空间频率。因此,充分利用输入,可以扩展图像以创建比原始图像中更多的采样点。在构建金字塔的第一层之前,我们使用线性插值将输入图像的大小加倍。虽然通过在原始图像上使用亚像素偏移滤波器组可以有效地执行等效操作,但图像倍增更加有效。我们假设原始图像的模糊度至少为σ=0.5(防止显著混叠所需的最小值),因此,相对于新像素空间,加倍图像的模糊度σ=1.0。这意味着在创建尺度空间的第一个倍频程之前,几乎不需要额外的平滑。图像倍增使稳定关键点的数量几乎增加了4倍,但在使用更大的扩展系数没有发现显著的进一步改善。

4. 精确关键点定位

将像素与其相邻像素进行比较找到关键点候选值,下一步就是对附近的位置、尺度和主曲率数据进行详细拟合。此信息去除了对比度低(对噪声敏感)或沿边缘定位不良的点。

该方法的初始阶段(Lowe,1999)将关键点定位在中心样本点的位置和尺度上。然而,最近Brown研究了一种方法(Brown和Lowe,2002),将三维二次函数拟合到局部样本点,以确定最大值的插值位置。他的实验表明,改进很大程度地提高了匹配和稳定性。他的方法对尺度空间函数D(x,y,σ)D(x,y,σ)D(x,y,σ)的泰勒展开式(展开到二次项),把采样点作为原点:

D(x)=D+∂DT∂xx+12xT∂2D∂x2xD(x) = D+\frac{∂D^T}{∂x} x+\frac{1}{2} x^T \frac{∂^2D}{∂x^2} xD(x)=D+∂x∂DT​x+21​xT∂x2∂2D​x

式中,在采样点处计算D及其导数,x=(x,y,σ)x=(x,y,σ)x=(x,y,σ)为该点的偏移量。极值x^\hat xx^的位置是通过取该函数对x的导数并将其设置为零来确定的,给出

x^=−∂2D−1∂x2∂D∂x\hat x = -\frac{∂^2 D^{-1}} {∂x^2} \frac{∂D}{∂x}x^=−∂x2∂2D−1​∂x∂D​


图5:此图显示了关键点选择的各个阶段。(a) 233x189像素的原始图像。(b) 高斯差分函数的最大值和最小值得到的832个关键点位置。关键点为矢量,表示尺度、方向和位置的向量。(c) 对最小值设置阈值后,仍保留729个关键点。(d) 附加主曲率比率后,最后剩下536个关键点。

正如Brown所建议的,Hessian法和对D求导都是通过使用相邻采样点的差分来估值的。由此可以以最小的成本求解3x3线性系统。如果在任何维中,x ̂偏移量大于0.5,则表示极值更靠近另一个采样点。在这种情况下,更改采样点,并对该点执行插值。将最终偏移量x ̂添加到其采样点的位置,以获得极值位置的插值估计。

极值处的函数值D(x^)D(\hat x )D(x^)有助于排除对比度低的不稳定极值。这可以通过将等式(3)代入(2)得到,给出

图5显示了关键点的选择对自然图像的影响。为了避免过多的聚类,使用233×189的低分辨率图像,显示每个关键点的位置、尺度和方向的向量(下面描述方向分配)。图5(a)显示了原始图像,后续图像降低了对比度。图5(b)显示了高斯差分函数检测到的所有最大值和最小值处的832个关键点,而(c)显示了在移除那些∣D(x^)∣|D(\hat x )|∣D(x^)∣小于0.03的关键点后剩余的729个关键点,(d)部分将在下一节中解释。

4.1 消除边缘响应

对于稳定性,仅剔除低对比度的关键点是不够的。即使很难确定沿边缘的位置,并且对噪声不稳定,高斯差分函数沿边缘也会有强烈的响应。

高斯差分函数中,定义不清的峰值在边缘上的主曲率较大,但在垂直方向上的主曲率较小。主曲率可根据2x2 Hessian矩阵计算,该矩阵H在关键点的位置和尺度上。

H=[DxxDxyDxyDyy]H = \biggl[\begin{matrix} D_{xx} & D_{xy} \\ D_{xy} & D_{yy} \end{matrix}\biggl]H=[Dxx​Dxy​​Dxy​Dyy​​]

通过取相邻采样点的差值来估计导数。
H的特征值与D的主曲率成正比。借鉴Harris和Stephens(1988)使用的方法,我们可以避免明确地计算特征值,因为我们只关心它们的比率。设α为幅值最大的特征值,β为较小的特征值。然后,我们可以从H的轨迹计算特征值之和,并从行列式计算其乘积:

Tr(H)=Dxx+Dyy=α+βTr(H) = D_{xx}+D_{yy} = α+βTr(H)=Dxx​+Dyy​=α+β

Det(H)=DxxDyy−Dxy2=αβDet(H)=D_{xx} D_{yy}-D^2_{xy} =αβDet(H)=Dxx​Dyy​−Dxy2​=αβ

行列式不可能为负的情况下,曲率具有不同符号时,该点将被丢弃,因为它不是极值。设r为最大量级特征值与较小特征值之间的比值,因此α=rβα=rβα=rβ。那么,

Tr2(H)Det(H)=(α+β)2αβ=(rβ+β)2rβ2=(r+1)2r\frac{Tr^2(H)}{Det(H)} =\frac{(α+β)^2}{αβ}=\frac{(rβ+β)^2}{rβ^2}=\frac{(r+1)^2}{r}Det(H)Tr2(H)​=αβ(α+β)2​=rβ2(rβ+β)2​=r(r+1)2​

只取决于特征值的比率,而不是它们各自的值。当两个特征值相等时,(r+1)2r\frac{(r+1)^2}{r}r(r+1)2​最小,且随r增加而增加。因此,检查主曲率比是否低于某个阈值r,我们只需要检查

Tr2(H)Det(H)<(r+1)2r\frac{Tr^2(H)}{Det(H)} < \frac{(r+1)^2}{r}Det(H)Tr2(H)​<r(r+1)2​

这是非常有效的计算,测试每个关键点所需的浮点操作不到20个。本文中的实验使用r=10,这消除了主曲率比大于10的关键点。从图5(c)到(d)的转换展示了此操作的效果

5. 定向任务

通过基于局部图像属性为每个关键点指定一致的方向,关键点描述子可以表示该方向,从而实现对图像旋转的不变性。这种方法与Schmid和Mohr(1997)的方向不变描述子形成对比,他们的每个图像属性都基于旋转不变度量。这种方法的缺点是,它限制了可以使用的描述子,并因为不要求所有度量都基于一致的旋转而丢失了图像信息。
在对许多指定局部方向的方法进行实验后,发现以下方法给出了最稳定的结果。关键点的尺度用于选择尺度最接近的高斯平滑图像L,以尺度不变的方式执行所有计算。对于该尺度下的每个图像样本L(x,y)L(x,y)L(x,y),用像素差预计算梯度幅值m(x,y)m(x,y)m(x,y)和方向θ(x,y)θ(x,y)θ(x,y):

m(x,y)=(L(x+1,y)−L(x−1,y))2+(L(x,y+1)−L(x,y−1))2m(x,y) = \sqrt{(L(x+1,y)-L(x-1,y))^2+(L(x,y+1)-L(x,y-1))^2}m(x,y)=(L(x+1,y)−L(x−1,y))2+(L(x,y+1)−L(x,y−1))2​

θ(x,y)=tan−1L(x,y+1)−L(x,y−1)L(x+1,y)−L(x−1,y))θ(x,y) = tan^{-1} \frac{L(x,y+1)-L(x,y-1)}{L(x+1,y)-L(x-1,y))}θ(x,y)=tan−1L(x+1,y)−L(x−1,y))L(x,y+1)−L(x,y−1)​

方向直方图由围绕关键点区域内的样本点的梯度方向组成的。方向直方图有36个柱子,涵盖360度方向范围。每个添加到直方图中的样本,通过其梯度量级和关键点尺度1.5倍的σ的高斯加权圆形窗口进行加权。

方向直方图中的峰值对应于局部梯度的主方向。检测直方图中的最高峰值,然后位于最高峰值80%范围内的任何其他局部峰值也创建具有该方向的关键点。因此,对于具有多个类似量级的峰值的位置,将在同一位置和尺度创建多个方向不同的关键点。只有大约15%的点被指定了多个方向,但这些方向对匹配的稳定性有很大的贡献。最后,将每个峰值最近的3个直方图值插值拟合抛物线,以获得更好的精度

图6显示了在不同数量的图像噪声下位置、尺度和方向分配的实验稳定性。与之前一样,图像被随机旋转和缩放。顶行显示关键点位置和尺度分配的稳定性。第二行显示了当方向指定在15度以内时匹配的稳定性。如顶部两条线之间的间隙所示,即使添加±10%的像素噪声(相当于提供小于3位精度的相机),方向指定在95%的时间内仍保持准确。正确匹配的方向测量变化约为25度,10%的噪音时,上升到3.9度。图6中的底线显示了将关键点描述子与40000个关键点的数据库正确匹配的最终准确性(将在下面讨论)。如图所示,SIFT特征甚至可以抵抗大量像素噪声,而误差的主要原因是初始位置和尺度检测。


图6:图中的顶行显示了作为像素噪声函数可重复检测的关键点位置和尺度的百分比。第二行显示了在方向一致后的重复性。底线显示了与大型数据库正确匹配的描述子的最终百分比。

6. 局部图像描述子

前面的操作已为每个关键点指定了图像位置、尺度和方向。这些参数定义了一个可重复的局部二维坐标系来描述局部图像区域,为这些参数提供了不变性。下一步是计算局部图像区域的描述子,该描述子具有高度的独特性,但对其他变化(例如照明或三维视点的变化)尽可能保持不变。

一种明显的方法是以适当的尺度对关键点周围的局部图像强度进行采样,并使用归一化的相关度量来匹配。然而,简单的图像相关性对可以导致样本配准错误的变化非常敏感,例如仿射,三维视点变化或非刚性变形。Edelman、Intrator和Poggio(1997)提出了一种更好的方法。他们提出的方法基于生物视觉模型,特别是初级视觉皮层中的复杂神经元。这些复杂的神经元对特定方向和空间频率的梯度变化作出反应,但视网膜上梯度的位置可以在一个小的范围上移动,而不是精确定位。Edelman等人假设这些复杂神经元函数从一系列视角匹配和识别三维目标。他们使用三维计算机目标和动物形状的模型进行了详细的实验,结果表明,在三维旋转条件下,在允许位置移动的情况下,匹配梯度可以产生更好的分类效果。例如,使用复杂细胞模型,景深旋转20度的三维目标,识别精度从梯度相关性的35%提高到94%。我们下面实验的实现就是受这个想法的启发,但是允许使用不同的计算机制进行位置转移。


图7:首先计算关键点位置周围区域中每个图像采样点的梯度大小和方向来创建关键点描述子,如左图所示。这些由重叠圆指示的高斯窗口加权。如右图所示,然后将这些样本累积于方向直方图中,4x4个子区域的内容概括为一个,每个区域箭头的长度对应于该区域内方向的梯度幅度。8x8的样本计算得到2x2描述子箭头,而本文中的实验使用从16x16样本数组计算得到的4x4描述子。

6.1 描述子表示

图7说明了关键点描述子的计算。首先,对关键点位置周围的图像梯度量级和方向进行采样,使用关键点的尺度来选择图像的高斯模糊级别。为了实现方向不变性,描述子的坐标和梯度方向都是随关键点方向进行旋转的。为了提高效率,如第5节所述,预先计算所有级别的金字塔梯度。在图7左侧的每个样本位置用小箭头表示。

使用σ描述子窗口宽度一半的高斯加权函数,为每个采样点的大小分配权重。图7左侧的圆形窗口说明了这一点,权重会平稳下降。高斯窗口的目的是避免在窗口位置发生微小变化的情况下,描述子发生突变,并减少了对远离描述子中心的梯度的关注,因为这些梯度受配准错误的影响最大。

关键点描述子如图7右侧所示。通过在4x4样本区域上创建方向直方图,它允许梯度位置发生较大变化。每个方向直方图有八个方向,每个箭头的长度与该直方图输入量级相关。左侧的渐变采样最多可以移动4个采样位置,同时会对右侧的相同直方图做出贡献,从而实现允许更大的局部位置移动的目标。

避免边界影响是重要的,即当样本从一个直方图平滑地移动到另一个直方图或从一个方向移动到另一个方向时,描述子会发生突变。因此,使用三线性插值将每个梯度样本的值分布到相邻的直方图单元中。换言之,每个箱子值的权重乘以1- d对于每个维度,其中d是样本到直方图值的距离,以直方图间距为单位进行测量。

描述子由包含所有方向直方图的值的向量构成,对应于图7右侧箭头的长度。该图显示了一个2x2的方向直方图,而我们下面的实验表明,最好的结果是使用一个4x4的直方图,每个方框中有8个方向。因此,本文的实验为每个关键点使用4x8=128个元素的特征向量。

最后,对特征向量进行修改以减少光照变化的影响。首先,将向量归一化为单位长度。图像对比度的变化就是其中每个像素值乘以一个常数,这样使梯度乘以相同的常数,这种对比度变化将通过向量归一化来抵消。向每个图像像素添加常量的亮度变化不会影响梯度值,因为它们是根据像素的差计算的。因此,描述子对光照中的仿射变化是不变的。但是,非线性光照变化也可能是由于相机饱和或光照变化而发生,光照变化会以不同的量不同方向影响三维曲面。这些效应可能导致某些梯度的量级发生较大变化,但不太可能影响梯度方向。因此,我们通过将单位特征向量中的阈值设置为不大于0.2来减少大梯度量级的影响,然后重新归一化单位长度。这意味着匹配大梯度的量级不再那么重要,方向的分布更为重要。图像通过用相同三维目标,不同光照的实验确定值为0.2。

6.2 描述子测试

有两个参数可用于改变描述子的复杂度:直方图中的方向数r和n×nn×nn×n方向直方图的宽度n。结果描述子向量的大小为rn2rn^2rn2。随着描述子的复杂度增加,它将能够在大型数据库中更好地进行区分,但它也将对形状畸变和遮挡更加敏感。

图8显示了不同方向数和描述子变化的实验结果。该图形是一个视点变换生成的,在视点变换中,平面与观察者倾斜50度,并添加4%的图像噪声。这接近可靠匹配的极限,在这些更困难的情况下,描述子性能是最重要的。结果为在40000个关键点的数据库中,找到正确匹配的单个最近邻点关键点的百分比。该图显示,单方向直方图(n=1)在辨别能力方面非常差,在增加至4×4的8方向直方图中结果一直改善。之后,添加更多的方向或更大的描述子实际上会使描述子对图像畸变更敏感,从而损害匹配。这些结果对于其他程度的视点变化和噪声大致相似。尽管在一些简单的情况下,使用5x5和更高的描述子大小,区分度(从已经很高的水平)继续改善。在本文中,我们使用了4x4的8个方向的描述子,得到了128维的特征向量。虽然描述子的维数似乎很高,但我们发现,在一系列匹配任务中,描述子的性能始终优于低维描述子,并且使用下面的近似最近邻方法时,匹配的计算成本仍然很低。


图8:该图显示了与40000个关键点的数据库进行正确匹配的关键点的百分比,该百分比与n×n关键点描述子的宽度和每个直方图中的方向数有关。使用具有50度仿射视点变化和添加4%噪声的图像,计算得到该图。

6.3 仿射变化的敏感性

描述子对仿射变化的敏感性如图9所示。该图显示了关键点位置和尺度选择、方向分配以及作为远离观察者的平面中,进行深度旋转的函数的数据库的最近邻匹配的可靠性。可以看出,随着仿射畸变的增加,计算的每个阶段都降低了重复性,但最终视点变化为50度,匹配精度保持在50%以上。

如第2节所述,为了在更宽的视角上实现可靠的匹配,可以使用一个仿射不变检测器来选择和重新采样图像区域。如上所述,这些方法都不是真正的仿射不变的,因为它们都是以非仿射不变方式确定初始特征位置的。 Mikolajczyk(2002)提出并使用Harris仿射检测器进行了详细的实验,这似乎是最具仿射不变性的方法。他发现,在大约50度的视角下,其关键点重复性低于此处给出的值,但在70度的角度下,它保留了接近40%的重复性,这为极端仿射变化提供了更好的性能。缺点是,由于在噪声下,分配一致仿射帧时存在错误,计算成本高得多,关键点的数量减少,以及较小仿射变化的稳定性较差。实际上,三维目标允许的旋转范围远小于平面,因此仿射不变性通常不是跨视点变化匹配能力的限制因素。如果需要大范围的仿射不变性,例如对于已知为平面的曲面,则简单的解决方案是采用Pritchard和Heidrich(2003)的方法。从对应于60度视点变化的训练图像的4个仿射变换版本生成额外的SIFT特征。这允许在处理待识别图像时使用标准SIFT特征,无需额外成本,但会导致特征数据库的大小增加3倍。


图9:此图显示了关键点位置、方向检测以及最终与数据库匹配的稳定性,作为仿射变化的一个函数。仿射变换程度由平面曲面的等效视点深度旋转表示。

6.4 与大型数据库匹配

衡量特征显著性的一个重要遗留问题是,匹配的可靠性如何随数据库中被匹配特征的数量而变化。本文中的大多数示例都是使用32幅图像的数据库生成的,其中包含大约40000个关键点。图10显示了匹配可靠性如何随数据库大小的变化而变化。该图是使用包含112幅图像的较大数据库生成的,除了随机图像旋转和尺度变化外,视点深度旋转为30度,图像噪声为2%。

虚线显示了数据库中最近邻正确匹配的图像特征部分,是以对数形式显示的数据库大小的函数。最左侧的点仅与单个图像中的特征匹配,而最右侧的点则从112幅图像中所有特征的数据库中选择匹配。可以看出,匹配可靠性确实随着干扰因素数量的增加而降低,所有迹象表明,在非常大的数据库中,可以找到更多正确的匹配。

实线为变换图像的正确匹配位置和方向上,识别的关键点的百分比,因此只有这些点才有可能在数据库中具有匹配的描述子。这一条线之所以平缓,是因为测试针对每个值在整个数据库中运行,而只改变数据库中用于干扰的部分。令人感兴趣的是,两条线之间的差距很小,这表明匹配失败更多地是由于初始特征定位和方向分配问题,而不是特征显著性问题,也不是大型数据库的问题。


图10:虚线显示了与数据库正确匹配的关键点的百分比,它是数据库大小的函数(使用对数刻度)。实线为关键点正确位置、尺度和方向的百分比。图像进行了随机的尺度和旋转变化,30度的仿射变换,匹配前增加2%的图像噪声。

7. 在目标识别中的应用

本文的主要主题是如上所述的显著不变关键点的推导。为了展示它们的应用,我们现在将简要介绍它们在聚类和遮挡情况下用于目标识别的用途。其他论文(Lowe,1999;Lowe,2001;Se,Lowe和Little,2002)提供了这些特征在识别应用中的更多细节。

首先,将每个关键点独立地与从训练图像数据库中提取的关键点匹配,从而执行目标识别。由于模糊的特征和背景聚类中的特征,许多初始匹配是不正确的。因此,首先确定至少3个特征的簇,这些簇与目标及其姿势一致,因为这些簇比单个特征匹配具有更高的正确概率。然后,通过对模型进行详细的几何拟合来检查每个聚类,用结果来判定接受或拒绝解释。

7.1 关键点匹配

从训练图像中得到的关键点数据库中识别最近邻,找到每个关键点的最佳候选匹配。如第6节所述,最近邻定义为关键点的不变描述子矢量之间的最小欧氏距离。

但是,图像中的许多特征在训练数据库中不会有任何正确的匹配,因为它们来自背景杂波或在训练图像中未检测到。因此,有一种方法可以丢弃与数据库不匹配的特征,这将非常有用。由于某些描述子比其他描述子更显著,因此,关于距离最近特征的全局阈值的性能不佳。通过比较最近邻和次近邻的比值,可以获得更有效的度量。如果同一目标有多个训练图像,则我们将来自与第一个不同目标的次邻近距离定义为最近邻距离,就像使用包含不同目标的图像。此方法很好地执行,因为正确匹配需要使最近邻显著接近最近的错误匹配,才能实现可靠匹配。对于错误匹配,由于特征空间的高维性,在相似距离内可能会有许多其他错误匹配。我们可以将次近邻匹配视为在这部分特征空间内提供错误匹配密度的估计,同时识别特征模糊性的特定实例。


图11:匹配的正确性可以通过从最近邻到次近邻的距离的比值来确定。使用有40000个关键点的数据库,实线显示正确匹配此比率的概率密度函数,而虚线表示错误匹配的概率密度函数。

图11显示了真实图像数据的测量值。正确匹配和错误匹配的概率密度函数以每个关键点的最近邻与次近邻的比值表示。最近邻是正确匹配概率密度中心比值远低于错误匹配的概率密度中心比值。对于实现我们的目标识别,我们抛弃距离比值大于0.8的所有匹配。它消除了90%的错误匹配,同时仅抛弃了不到5%的正确匹配。该图是与40000个关键点的数据库进行对比,经过随机尺度和方向变化匹配图像生成的,深度旋转30度,并添加2%的图像噪声。

7.2 有效的最近邻方法

目前还没有一种算法能比穷举搜索更有效地识别高维空间中的精确最近邻点。我们的关键点描述子有一个128维的特征矢量。最好的算法,如k-d树(Friedman等人,1977),也无法在对多于10维空间的搜索中提供任何加速。因此,我们使用了一种近似算法,称为最优盒优先(BBF)算法(Beis和Lowe,1997),以高概率返回最有可能的最近邻的值。

BBF算法使用了一种改进搜索顺序的k-d树算法,以便特征空间中的箱按距离顺序搜索最近位置。Arya和Mount(1993)首先研究了这种优先搜索顺序,并(Arya等人,1998年)对其计算特性进行了进一步研究。此搜索顺序要求使用基于堆的优先级队列来有效确定搜索顺序。在探索了特定数量的最近箱后,停止进一步搜索,可以以低成本返回近似答案。在我们的实验中,我们在检查了前200个最近邻候选目标之后中断了搜索。

对于一个包含100000个关键点的数据库,比精确的最近邻搜索加速了大约2个数量级,而正确匹配数损失不到5%。BBF算法特别适用于这个问题的一个原因是,我们只考虑最近邻比次近邻小于0. 8倍以内的距离(如前一节所述),因此无需考虑许多近邻距离非常相似的的困难情况。

7.3 霍夫变换聚类

为了最大限度地提高小型或高度遮挡目标的识别性能,我们希望以尽可能少的特征匹配数来识别对象。我们已经发现,只使用3个特征的情况下,可靠的识别是可能的。典型的图像包含2000个或更多的特征,这些特征可能来自许多不同的目标以及背景聚类。而第7节中描述的距离比值测试,允许我们抛弃由背景聚类引起的许多错误匹配,但并不会从其他有效对象中删除匹配,并且我们通常仍然需要在99%的异常值中识别小于1%的正确匹配子集。许多著名的稳健拟合方法,如RANSAC或最小平方中值,在正常值百分比远远低于50%时表现不佳。幸运的是,在姿势空间中使用霍夫变换对特征进行聚类,可以获得更好的性能(Hough,1962;Ballard,1981;Grimson,1990)。

霍夫变换通过使用每个特征与该特征一致的所有目标姿势投票来识别具有一致解释的特征聚类。当特征聚类与同一物体的姿势投票一致通过时,解释正确的概率比任何单一特征都高。我们的每个关键点都指定了4个参数:二维位置、尺度和方向,数据库中每个匹配的关键点都有一个与找到它的训练图像相关的关键点参数记录。因此,我们可以创建霍夫变换,根据匹配假设预测模型的位置、方向和尺度。该预测具有较大的误差范围,因为这4个参数所暗示的相似性变换仅近似于三维目标全六自由度的姿势空间,并且不考虑任何非刚性变形。因此,我们使用30度的宽箱子大小作为方向,尺度系数为2,定位最大投影训练图像尺寸(使用预测比例)的0.25倍。为了避免箱分配中的边界效应问题,每个关键点匹配为每个维度指定了最近的2个箱,为每个假设提供16个输入,并进一步扩大姿势范围。

在霍夫变换的大多数实现中,多维阵列用于表示箱。然而,许多潜在的箱保持为空,并且由于它们之间的相互依赖性(例如,位置离散化在选定尺度上的依赖性),很难计算箱值的可能范围。这些问题可以通过使用箱值的伪随机哈希函数插入一维哈希表中解决,在一维哈希表中很容易检测到冲突。

7.4 仿射参数的求解

霍夫变换用于识别箱中至少有3个实体的所有聚类。然后,对每个这样的聚类,与训练图像相关的新图像的最佳仿射投影参数,执行最小二乘解的几何验证程序。

仿射变换正确地解释了正交投影下平面曲面的三维旋转,但对于非平面对象的三维旋转,估值可能很差。更普遍的解决方案是求解基本矩阵(Luong和Faugeras,1996;Hartley和Zisserman,2000)。然而,解基本矩阵至少需要7个点匹配,并且在实践中需要更多匹配才能获得良好的稳定性,而仿射解只有3个点匹配。我们希望仅使用3个特征匹配来执行识别,因此仿射变化提供了一个更好的起点。我们可以通过允许较大的残差来计算仿射近似中的误差。如果我们设想在一个目标周围放置一个球体,球体旋转30度不会使球体内的任意点移动超过球体投影直径的0.25倍。对于本文中使用的典型三维目标的示例,放射计算在允许残差不大于目标最大投影尺寸的0.25倍的情况下运行良好。(Brown和Lowe,2002)中给出了一种更为通用的方法,其中初始解基于相似性变换得到,然后找到足够数量匹配求解基本矩阵。

模型点[xy]T[x y]^T[xy]T到像点[uv]T[u v]^T[uv]T 的仿射变换可以写成

[uv]=[m1m2m3m4][xy]+[txty]\left[\begin{matrix} u \\ v \end{matrix} \right] = \left[\begin{matrix} m_1 & m_2 \\ m_3 & m_4 \end{matrix} \right] \left[\begin{matrix} x \\ y \end{matrix} \right] + \left[\begin{matrix} t_x \\ t_y \end{matrix} \right][uv​]=[m1​m3​​m2​m4​​][xy​]+[tx​ty​​]

其中,模型变换为[txty]T[t_x t_y]^T[tx​ty​]T,仿射旋转、缩放和拉伸由参数mim_imi​表示。
我们希望求解变换参数,因此可以重写上面的方程,以将未知量重写到列向量中:

[xy001000xy01⋯⋯][m1m2m3m4txty]=[uv⋮]\left[\begin{matrix} x&y&0&0&1&0 \\ 0&0&x&y&0&1\\&&&\cdots\\&&&\cdots \end{matrix} \right] \left[\begin{matrix} m_1\\m_2\\m_3\\m_4\\t_x\\t_y \end{matrix} \right] = \left[\begin{matrix} u \\ v \\ \vdots \end{matrix} \right]⎣⎢⎢⎡​x0​y0​0x​0y⋯⋯​1001⎦⎥⎥⎤​⎣⎢⎢⎢⎢⎢⎢⎡​m1​m2​m3​m4​tx​ty​​⎦⎥⎥⎥⎥⎥⎥⎤​=⎣⎢⎡​uv⋮​⎦⎥⎤​

该等式表示单个匹配,但可以添加任意数值进一步匹配,每个匹配后都在第一个和最后一个矩阵中添加两行。解决这个式子至少需要3对匹配项。
我们可以把这个线性系统写成

Ax=bAx = bAx=b

参数x的最小二乘解可通过求解相应的正态方程来确定,

X=[ATA]−1ATbX=[A^T A]^{-1} A^T bX=[ATA]−1ATb

它为从投影模型位置到相应图像位置的距离平方和最小值。这种最小二乘法可以很容易地扩展到求解关节和柔性目标的三维姿态和内部参数(Lowe,1991)。


图12:左侧显示了两个目标的训练图像。它们可以在杂乱的图像与大量遮挡中识别出来,如中图所示。识别结果为右图。在每个识别对象周围绘制一个平行四边形,表示为识别过程中,求解仿射变换下的原始训练图像的边界。较小的正方形表示用于识别的关键点。

现在可以通过检查每个图像特征和模型之间的一致性来删除异常值。考虑到更精确的最小二乘解,我们现在要求每个匹配在霍夫变换箱中,参数的误差范围的一半内一致。如果在抛弃异常值后剩余的点数少于3,则该匹配将被拒绝。当异常值被抛弃时,用剩余的点重新求解最小二乘解,并迭代该过程。此外,自上而下的匹配阶段用于添加与投影模型位置一致的其他匹配。由于相似性变换近似或其他错误,可能从霍夫变换箱中丢失一些匹配。

最后是否接受或拒绝模型假设基于先前论文(Lowe,2001)中给出的详细概率模型。该方法首先根据模型的投影大小、区域内的特征数量和拟合精度,计算模型姿势的预期错误匹配数。然后,根据贝叶斯分析找到匹配特征的实际数量给出对象存在的概率。如果正确解释的最终概率大于0.98,我们接受模型。对于投影到图像小区域的目标,3个特征可能足以进行可靠的识别。对于大部分纹理较多的大型目标,错误匹配的预期数量较高,可能需要多达10个特征匹配。

8. 识别示例

图12显示了包含聚类和遮挡图像的三维目标的识别示例。左侧显示了玩具火车和青蛙的训练图像。中间的图像(大小为600x480像素)包含隐藏在其他对象后面的目标,并且具有大量的聚类背景,因此即使是人类,也可能无法立即检测到这些对象。右侧的图像显示了最终正确识别后叠加在对比度降低版本上的图像。用于识别的关键点显示为正方形,带有一条额外的线以指示方向。正方形的大小对应于用于构造描述子的图像区域。围绕每个识别目标绘制一个平行四边形的框,其边对应于在识别期间确定的,训练图像最终仿射变换下的投影边界。


图13:此示例显示复杂场景中的位置识别。左上角显示的是训练图像的位置,右上角显示的是从不同视点拍摄的640x315像素的测试图像。下部图像显示已识别区域,关键点用正方形表示,外部平行四边形显示用于识别的仿射变换下训练图像的边界。

该方法的另一个潜在应用是位置识别,移动设备或车辆可以通过识别熟悉的位置来识别其位置。图13给出了该应用程序的一个示例,其中在多个位置拍摄了训练图像。如左上角所示,这些目标甚至看起来毫无特色,比如一堵木墙或一棵带垃圾桶的树。右上角的测试图像(大小为640×315像素)是从原始位置围绕场景旋转约30度的视点拍摄的,但训练图像位置还是很容易地被识别了。

识别过程的所有步骤都可以有效执行,因此在2GHz奔腾4处理器上,识别图12或图13中所有目标的总时间小于0.3秒。我们已经在一台装有摄像机的笔记本电脑上实现了这些算法,并在各种条件下对它们进行了大量的测试。一般来说,在任何方向和任何能够提供足够光线且不会产生过多眩光的光照条件下,在深度50度以内的旋转过程中,可以可靠地识别纹理平面。对于三维目标,可靠识别的深度旋转范围仅为30度左右,光照变化干扰性明显。出于这些原因,三维目标识别最好通过集成多个视图的特征来执行,例如与局部特征视图聚类(Lowe,2001)。

这些关键点也已应用于机器人定位和映射问题,其他论文(Se、Lowe和Little,2001)对此进行了详细介绍。在此应用中,用三目立体系统确定关键点位置的三维估计。只有当关键点出现在所有3幅图像中且差异一致时,才会使用这些关键点,从而保证异常值较少。当机器人移动时,它使用与现有三维地图的特征匹配来定位自身,然后在使用卡尔曼滤波器更新其三维位置的同时,将特征增量添加到地图中。这为机器人在未知环境中定位问题提供了一个鲁棒而准确的解决方案。这项工作还解决了位置识别的问题,在这个问题中,机器人可以打开并识别自身在大地图中的位置(Se、Lowe和Little,2002),这相当于物体识别的三维实现。

9. 总结

本文中描述的SIFT关键点由于其独特性而特别有用,可以使关键点与大型数据库中其他关键点正确匹配。通过图像的局部区域内组合,表示图像梯度的高维向量可以来实现这种显著性。这些关键点对图像旋转和缩放具有不变性,并且在很大范围的仿射失真、噪声添加和光照变化中具有鲁棒性。从典型图像中可以提取出大量的关键点,从而提高了在混杂背景中提取小目标的鲁棒性。关键点在整个尺度范围内被检测的事实,意味着小的局部特征可用于匹配小的和高度遮挡的目标,而大的关键点在受噪声和模糊影响的图像中表现良好。它们的计算效率很高,因此可以在标准PC硬件上以近乎实时的性能从典型图像中提取数千个关键点。

本文还提出了使用关键点进行目标识别的方法。我们描述的方法使用近似最近邻查找、霍夫变换来识别目标姿势一致的聚类,用最小二乘法确定和验证最终决策。其他潜在的应用包括用于三维重建的视图匹配、运动跟踪和分割、机器人定位、图像全景装配、极线校准,以及任何需要识别图像之间匹配位置的应用。

在提取不变的和独特的图像特征方面还有许多需要进一步研究的内容。对具有全三维视点和光照变化的数据集进行系统测试。本文中描述的特征仅使用单色亮度的图像,因此可以从光照不变的颜色描述子(Funt和Finlayson,1995;Brown和Lowe,2002)中得出进一步的显著性。同样地,局部纹理度量似乎在人类视觉中起着重要作用,合并特征描述子后,可以比当前描述子使用的单个空间频率具有更普遍的形式。局部特征不变匹配方法的一个吸引人的方面是,不需要仅选择一种特征类型,因为使用许多不同的特征可能获得最佳结果,所有这些特征都可以促进匹配的有效性并提高整体鲁棒性。

未来研究的另一个方向是单独研究识别特定对象类别的特征。这对于包含大量可能外观的普遍目标类尤为重要。Weber、Welling和Perona(2000年)以及Fergus、Perona和Zisserman(2003年)的研究表明,学习适合识别目标类的局部特征集,这种方法具有潜力。从长远来看,特征集应该包含先前的和已学习的特征,这些特征将根据各种对象可用的训练数据量使用。

参考:https://www.cnblogs.com/cuteshongshong/archive/2012/05/25/2506374.html

SIFT经典论文翻译版相关推荐

  1. NeurIPS 2019 获奖论文出炉,微软华人学者Lin Xiao 获经典论文奖

    导语:历史之最,参会1.3万人~ 作为最久负盛名的机器学习顶会之一,今年 NeurIPS 2019 在召开之前就消息不断:在今年论文审稿期间,NeurIPS 2019 程序委员会主席专门发布声明称,1 ...

  2. 转:经典论文翻译导读之《Google File System》

    首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 Java小组 工具资源 - 导航条 -首页所有文章资讯Web架构基础技术书籍教程Java小组工具资源 经典论文翻译导读之<Google ...

  3. 图像处理和计算机视觉中的经典论文

    转自:http://www.cnblogs.com/moondark/archive/2012/04/20/2459594.html 感谢水木上同领域的同学分享,有了他的整理,让我很方便的获得了CV方 ...

  4. TopPaper:AI 初学者经典论文列表

    无论你是学习机器学习还是深度学习,看学术论文必不可少.作为 AI 初学者而言,如何挑选更适合自己.更容易学习的 AI 论文尤为重要!真的会起到事半功倍的效果. 今天给大家推荐一个非常不错的 GitHu ...

  5. 【学术相关】TopPaper:AI 初学者经典论文列表

    无论你是学习机器学习还是深度学习,看学术论文必不可少.作为 AI 初学者而言,如何挑选更适合自己.更容易学习的 AI 论文尤为重要!真的会起到事半功倍的效果. 今天给大家推荐一个非常不错的 GitHu ...

  6. 计算机视觉领域经典论文源码

    计算机视觉领域经典论文源码 转载自:http://blog.csdn.net/ddreaming/article/details/52416643 2016-CVPR论文代码资源: https://t ...

  7. 【R-CNN论文翻译】目标检测经典论文R-CNN最新版本(v5版)全面中文翻译

    R-CNN目标检测的奠基性文章,学习目标检测必看的经典论文之一,后续有Fast R-CNN,Faster R-CNN一系列论文. 目前网上能找到的论文翻译版本要么不全,要么不是最新版本的(论文从201 ...

  8. 计算机视觉领域经典论文源码大全

    计算机视觉领域经典论文源码 在读一些大牛的论文后,总是想找些代码读一读,可是查找代码资源是如此的痛苦,经过一番请教和查找,将比较好的资源贴出来,方便大家使用,希望大家有什么更好的资源也能分享出来,可以 ...

  9. 【历史上的今天】10 月 8 日:Netflix 创始人诞生;反向传播算法经典论文发表;Android 4.0 发布

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2022 年 10 月 8 日,家喻户晓的三国时期杰出人物诸葛亮在今天逝世,他对丰功伟绩被许多文献记载,他对巴蜀的 ...

最新文章

  1. Linux中的无人职守安装脚本kickstart
  2. f5 ddos cc——Mitigating DDoS Attacks with F5 Technology
  3. .NET Core2.1下采用EFCore比较原生IOC、AspectCore、AutoFac之间的性能
  4. python程序导入import、规范化和封装自己写的.py文件
  5. Redis和Memcache对比及选择
  6. CSS padding
  7. 关于用隐藏文字(图片替换文字)的更好的可用性方法
  8. Exception while invoking! org.apache.thrift.protocol.TProtocolException: Bad version in readMessageB
  9. PHP核心技术与最佳实践 读书笔记 第二章 面向对象的设计原则
  10. php 条件求和,Excel条件求和公式是什么
  11. 未对销售组织 XXX 分销渠道 XX 语言 ZH 定义
  12. win10找回永久删除文件【图文教程】
  13. ES集群状态一直yellow状态引发的思考
  14. English学习网址
  15. 解析steam教育中的技术赋能
  16. 切片法分割树冠与树干
  17. 基于Python实现的决策树模型
  18. 两年工作经验程序员的迷茫
  19. Android 11省电模式开启
  20. 系统工程师应具备的技能

热门文章

  1. PCB如何入门---一些经验与教训
  2. linux车牌识别,基于嵌入式Linux的电子车牌识别系统设计与实现
  3. html网页收藏夹小图标,在网页标题栏上和收藏夹显示网站logo的实现方法
  4. selenium webdriver操作chrome options、 启用无痕模式、缓存烦恼
  5. latex表格内容上下居中_LaTex表格内单元格内容换行
  6. android震动代码分析
  7. error LNK 2001的几种情况和解决方案
  8. .Net MAUI 安卓状态栏透明、半透明、全屏
  9. opencv 直方图 CV::calcHist使用
  10. 发微博怎么才能把自己的地理位置改成其他国家