论文原文翻译加深度解读系列视觉篇——SIFT

论文链接 :https://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf

解读 :待完成

摘要

本文提出了一种从图像中提取独特不变特征的方法,这些特征可以用于在不同视角下的物体或场景之间进行可靠的匹配。这些特征对图像的缩放和旋转具有不变性,并且在大范围的仿射畸变、3D视角变化、噪声添加和光照变化下表现出鲁棒的匹配能力。这些特征具有高度的独特性,使得单个特征能够以高概率与来自许多图像的大量特征数据库进行正确匹配。本文还描述了如何使用这些特征进行物体识别。识别过程通过将单个特征与已知物体的特征数据库进行快速最近邻匹配,然后使用霍夫变换识别属于单个物体的聚类,最后通过最小二乘法求解一致的姿态参数进行验证。这种识别方法能够在杂波和遮挡的情况下鲁棒地识别物体,同时实现接近实时的性能。

引言

图像匹配是计算机视觉中许多问题的基本方面,包括物体或场景识别、从多幅图像中求解3D结构、立体对应和运动跟踪。本文描述的图像特征具有许多适合匹配不同物体或场景图像的特性。这些特征对图像的缩放和旋转具有不变性,并且对光照变化和3D相机视角变化具有部分不变性。它们在空间和频率域中都有良好的局部化特性,减少了因遮挡、杂波或噪声而导致的干扰概率。通过高效的算法,可以从典型图像中提取大量特征。此外,这些特征具有高度的独特性,使得单个特征能够以高概率与大量特征数据库进行正确匹配,为物体和场景识别提供了基础。

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

  1. 尺度空间极值检测:计算的第一阶段在所有尺度和图像位置上进行搜索。通过使用高斯差分函数来识别对尺度和方向不变的潜在兴趣点,实现了高效的计算。

  2. 关键点定位:在每个候选位置,拟合一个详细的模型以确定位置和尺度。基于稳定性度量选择关键点。

  3. 方向分配:根据局部图像梯度方向为每个关键点位置分配一个或多个方向。所有后续操作都在相对于每个特征的分配方向、尺度和位置进行变换的图像数据上执行,从而提供对这些变换的不变性。

  4. 关键点描述符:在选定尺度的每个关键点周围的区域中测量局部图像梯度。这些梯度被转换为一种表示形式,允许显著的局部形状畸变和光照变化。

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

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

对于图像匹配和识别,首先从一组参考图像中提取SIFT特征并存储在数据库中。通过将新图像中的每个特征与该数据库进行单独比较,并基于特征向量的欧几里得距离找到候选匹配特征,来匹配新图像。本文将讨论能够在大数据库上快速执行此计算的快速最近邻算法。

关键点描述符具有高度的独特性,使得单个特征能够以良好的概率在大量特征数据库中找到其正确匹配。然而,在杂乱的图像中,许多来自背景的特征在数据库中没有正确匹配,从而导致许多错误匹配。通过识别在新图像中一致同意物体及其位置、尺度和方向的关键点子集,可以从完整的匹配集中过滤出正确的匹配。多个特征在这些参数上一致的概率远低于任何单个特征匹配错误的概率。通过使用广义霍夫变换的高效哈希表实现,可以快速确定这些一致的聚类。

每个包含3个或更多特征且一致同意物体及其姿态的聚类将进行进一步的详细验证。首先,对物体姿态的仿射近似进行最小二乘估计。识别与此姿态一致的其他图像特征,并丢弃异常值。最后,详细计算给定拟合精度和可能的错误匹配数量,特定特征集指示物体存在的概率。通过所有这些测试的物体匹配可以以高置信度识别为正确匹配。

2 相关研究

使用一组局部兴趣点进行图像匹配的发展可以追溯到Moravec(1981)在立体匹配中使用角点检测器的工作。Harris和Stephens(1988)改进了Moravec检测器,使其在小图像变化和边缘附近更具可重复性。Harris还展示了其在高效运动跟踪和从运动中恢复3D结构中的价值(Harris,1992),此后Harris角点检测器被广泛用于许多其他图像匹配任务。虽然这些特征检测器通常被称为角点检测器,但它们并不只选择角点,而是选择在预定尺度上在所有方向上具有大梯度的任何图像位置。

最初的应用是立体匹配和短距离运动跟踪,但后来该方法被扩展到更困难的问题。Zhang等人(1995)展示了通过使用每个角点周围的关联窗口来选择可能的匹配,可以在大图像范围内匹配Harris角点。然后通过求解描述刚性场景两个视图之间几何约束的基本矩阵来移除不符合大多数解的异常值。与此同时,Torr(1995)开发了一种类似的方法用于长距离运动匹配,其中使用几何约束来移除刚性物体在图像内移动的异常值。

Schmid和Mohr(1997)的开创性工作表明,不变局部特征匹配可以扩展到一般图像识别问题,其中一个特征与大量图像数据库进行匹配。他们也使用Harris角点来选择兴趣点,但不是使用关联窗口进行匹配,而是使用局部图像区域的旋转不变描述符。这使得特征可以在两幅图像之间任意方向变化下进行匹配。此外,他们证明了通过识别一致的匹配特征聚类,可以在遮挡和杂波下实现一般识别。

Harris角点检测器对图像尺度的变化非常敏感,因此它不适用于匹配不同大小的图像。作者之前的工作(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和Lowe,2002)。这使得在正交3D投影变化下对平面表面上的特征进行不变匹配成为可能,在大多数情况下通过在局部仿射框架中重新采样图像。然而,这些方法尚未完全实现仿射不变性,因为它们从以非仿射不变方式选择的初始特征尺度和位置开始,这是由于探索完整仿射空间的成本过高。仿射框架也比尺度不变特征对噪声更敏感,因此在实际应用中,除非仿射畸变大于平面表面约40度的倾斜,否则仿射特征的可重复性低于尺度不变特征(Mikolajczyk,2002)。对于许多应用来说,更广泛的仿射不变性可能并不重要,因为训练视图最好在视角上每30度旋转一次(意味着识别在最近训练视图的15度范围内),以捕捉3D物体的非平面变化和遮挡效果。

虽然本文提出的方法不是完全仿射不变的,但采用了不同的方法,其中局部描述符允许相对特征位置在描述符仅有微小变化的情况下显著移动。这种方法不仅使得描述符在相当大的仿射畸变范围内能够可靠匹配,而且还使得特征对非平面表面的3D视角变化更具鲁棒性。其他优势包括更高效的特征提取和识别更多数量的特征。另一方面,仿射不变性对于在非常大的视角变化下匹配平面表面是一个有价值的特性,应该进一步研究如何以高效和稳定的方式将其与非平面3D视角不变性结合。

许多其他特征类型已被提出用于识别,其中一些可以与本文描述的特征结合使用,以在不同情况下提供进一步的匹配。一类特征是那些利用图像轮廓或区域边界的特征,这应该使它们在物体边界附近的杂乱背景中不太可能被干扰。Matas等人(2002)展示了他们的最大稳定极值区域可以产生大量具有良好稳定性的匹配特征。Mikolajczyk等人(2003)开发了一种新的描述符,使用局部边缘同时忽略不相关的附近边缘,提供了即使在窄形状边界附近的背景杂波中也能找到稳定特征的能力。Nelson和Selinger(1998)展示了基于图像轮廓分组的局部特征的良好结果。同样,Pope和Lowe(2000)使用了基于图像轮廓分层分组的特征,这些特征对于缺乏细节纹理的物体特别有用。

视觉识别研究的历史包含了使用各种其他图像属性作为特征测量的工作。Carneiro和Jepson(2002)描述了基于相位的局部特征,表示局部空间频率的相位而不是幅度,这可能提供对光照变化的更好不变性。Schiele和Crowley(2000)提出了使用多维直方图总结图像区域内测量分布的用途。这种类型的特征可能特别适用于识别具有可变形形状的纹理物体。Basri和Jacobs(1997)展示了提取局部区域边界用于识别的价值。其他有用的属性包括颜色、运动、前景-背景区分、区域形状描述符和立体深度线索。局部特征方法可以轻松结合新颖的特征类型,因为当它们提供正确匹配时,额外的特征有助于鲁棒性,否则除了计算成本外几乎没有害处。因此,未来的系统可能会结合多种特征类型。

3 Detection of scale-space extrema

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

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

L ( x, y, σ ) = G ( x, y, σ ) I ( x, y ) ,
其中,“∗”表示在x和y方向上的卷积操作,且

为了在尺度空间中高效地检测稳定的关键点位置,我们(Lowe, 1999)提出了一种方法,即利用与图像卷积的高斯差分函数中的尺度空间极值点来检测关键点。高斯差分函数 D(x,y,σ)D(x,y,σ) 可以通过计算两个相邻尺度(两者之间相差一个常数乘积因子 k)的差值得到: 

选择这一函数有诸多原因。首先,它的计算效率非常高,因为在尺度空间特征描述中,无论如何都需要计算平滑后的图像 LL,因此 D 只需通过简单的图像相减即可得到。 

图1:对于尺度空间的每个八度,初始图像会重复与高斯函数卷积,生成左侧所示的一组尺度空间图像。相邻的高斯图像相减后,生成右侧的高斯差分图像。在每完成一个八度后,高斯图像会进行下采样(缩小为原来的1/2),并重复这一过程 

此外,高斯差分函数能够很好地近似尺度归一化的高斯拉普拉斯算子,正如Lindeberg(1994)的研究所示。Lindeberg指出,为了实现真正的尺度不变性,拉普拉斯算子需要以因子σ2进行归一化。在详细的实验比较中,Mikolajczyk(2002)发现,与梯度、Hessian矩阵或Harris角点函数等其他可能的图像函数相比,的极大值和极小值能够产生最稳定的图像特征。

D与之间的关系可以通过热扩散方程来理解(方程中以σ为参数,而非更常见的t=σ2):

 

 

所以

 Figure 2: Maxima and minima of the difference-of-Gaussian images are detected by comparing a pixel (marked with X) to its 26 neighbors in 3x3 regions at the current and adjacent scales (marked with circles).

3.1 局部极值检测

图3:第一张图的上部曲线显示了在变换后的图像中,能够在相同位置和尺度上重复检测到的关键点的百分比,这是每个八度中采样尺度数量的函数。下部曲线显示了关键点的描述符能够正确匹配到大型数据库的百分比。第二张图显示了在典型图像中检测到的关键点总数,这是尺度采样数量的函数。

为了检测 D(x,y,σ)的局部极大值和极小值,每个采样点需要与其在当前图像中的8个邻域像素以及相邻尺度(上一尺度和下一尺度)中的9个邻域像素进行比较(见图2)。只有当该采样点大于所有这些邻域像素或小于所有这些邻域像素时,它才会被选中。由于大多数采样点在前几次比较后就会被淘汰,因此这种检测的成本相对较低。

一个关键问题是确定在图像和尺度域中采样的频率,以确保能够可靠地检测到极值点。然而,事实证明,不存在一种能够检测到所有极值点的最小采样间隔,因为极值点可能会无限接近。例如,考虑一个黑色背景上的白色圆形,其尺度空间会有一个极大值,对应于高斯差分函数的中心正值区域与圆形的大小和位置匹配。对于一个非常细长的椭圆,其两端附近会分别出现两个极大值。由于极大值的位置是图像的连续函数,在某些中等细长的椭圆中,会从单个极大值过渡到两个极大值,且在过渡阶段极大值可能会无限接近。

因此,我们必须在效率和完整性之间进行权衡。事实上,正如实验所证实的那样,彼此接近的极值点对图像的微小扰动非常不稳定。我们可以通过实验研究一系列采样频率,并在匹配任务的现实模拟中选择那些能够提供最可靠结果的采样频率。

 3.2 尺度采样的频率

通过实验确定最大化极值稳定性的采样频率,结果如图3和图4所示。这些图表(以及本文中的大多数其他模拟)基于一个匹配任务,使用了从多样化场景中选取的32张真实图像,包括户外场景、人脸、航拍照片和工业图像(发现图像领域对结果几乎没有影响)。每张图像经过一系列变换,包括旋转、缩放、仿射拉伸、亮度和对比度变化以及图像噪声的添加。由于这些变化是合成的,因此可以精确预测原始图像中的每个特征在变换后的图像中应该出现的位置,从而能够测量每个特征的正确重复性和位置精度。

图3展示了这些模拟结果,用于检查在极值检测之前对图像函数进行采样时,每个八度中不同尺度数量的影响。在这种情况下,每张图像在随机角度旋转和随机缩放(缩放范围为原始大小的0.2到0.9倍)后进行重采样。将降分辨率图像中的关键点与原始图像中的关键点进行匹配,以确保所有关键点的尺度都出现在匹配图像中。此外,还添加了1%的图像噪声,这意味着每个像素值在均匀区间[-0.01, 0.01]内添加了一个随机数(像素值范围为[0,1],相当于为图像像素提供了略低于6位的精度)。

图4:图中的上部曲线显示了在变换后的图像中,能够在每个八度的第一层进行图像平滑处理后重复检测到的关键点位置的百分比,这是平滑程度的函数。下部曲线显示了关键点描述符能够正确匹配到大型数据库的百分比。

图3中第一张图的上部曲线显示了在变换后的图像中,能够在匹配位置和尺度上检测到的关键点的百分比。在本文的所有示例中,我们将匹配尺度定义为正确尺度的22​倍以内,匹配位置定义为σσ像素以内,其中σσ是关键点的尺度(由公式(1)定义为高斯差分函数中使用的最小高斯函数的标准差)。图中的下部曲线显示了使用第6节中描述的最近邻匹配程序正确匹配到包含40,000个关键点的数据库的关键点数量(这表明一旦关键点能够被重复定位,它很可能对识别和匹配任务有用)。如图所示,当每个八度采样3个尺度时,重复性最高,这也是本文所有其他实验中使用的尺度采样数量。

令人惊讶的是,随着采样尺度的增加,重复性并没有持续提高。原因是这会导致检测到更多的局部极值,但这些极值平均而言稳定性较低,因此在变换后的图像中检测到的可能性较小。图3中的第二张图显示了每张图像中检测到并正确匹配的关键点的平均数量。随着尺度采样的增加,关键点数量增加,正确匹配的总数也随之增加。由于物体识别的成功通常更依赖于正确匹配的关键点数量,而不是它们的匹配百分比,因此对于许多应用来说,使用更多的尺度采样是最优的。然而,计算成本也会随着采样数量的增加而增加,因此在本文的实验中,我们选择每个八度仅使用3个尺度采样。

总结来说,这些实验表明,尺度空间的高斯差分函数具有大量的极值点,检测所有这些极值点的成本非常高。幸运的是,即使使用较粗的尺度采样,我们也能检测到最稳定和最有用的子集。

3.3 空间域采样频率

正如我们确定了尺度空间每个八度的采样频率一样,我们也需要确定图像域中相对于平滑尺度的采样频率。鉴于极值点可能会无限接近,采样频率和检测率之间也存在类似的权衡。图4展示了实验确定的在构建八度尺度空间表示之前,应用于每个图像层级的预平滑量σ。同样,上部曲线是关键点检测的重复性,结果表明重复性随着σ的增加而持续提高。然而,使用较大的σ会带来效率上的代价,因此我们选择使用σ=1.6,这提供了接近最优的重复性。该值在本文中广泛使用,并用于图3的结果。

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

4 精确的关键点定位

一旦通过将像素与其邻域像素比较找到关键点候选点,下一步就是对附近数据进行详细拟合,以确定位置、尺度和主曲率比。这些信息可以用于剔除低对比度(因此对噪声敏感)或沿边缘定位不佳的点。

该方法的初始实现(Lowe, 1999)仅将关键点定位在中心采样点的位置和尺度上。然而,最近Brown开发了一种方法(Brown and Lowe, 2002),通过对局部采样点拟合三维二次函数来确定最大值的插值位置,其实验表明这显著提高了匹配和稳定性。他的方法使用了尺度空间函数D(x,y,σ)的泰勒展开(到二次项),并将原点移至采样点:

 

图5:该图展示了关键点选择的各个阶段。(a) 原始的233x189像素图像。(b) 高斯差分函数的极大值和极小值处的初始832个关键点位置。关键点以向量的形式显示,表示尺度、方向和位置。(c) 在对最小对比度应用阈值后,剩余729个关键点。(d) 在对主曲率比应用额外阈值后,最终剩余的536个关键点。

正如Brown所建议的,DD的Hessian矩阵和导数通过使用相邻采样点的差值来近似。由此得到的3x3线性系统可以以最小的计算成本求解。如果偏移量x^在任何维度上大于0.5,则意味着极值点更接近另一个采样点。在这种情况下,采样点会被更换,并在该点附近重新进行插值计算。最终的偏移量x^会加到其采样点的位置上,以获得极值点的插值估计。

极值点处的函数值D(x^)对于剔除低对比度的不稳定极值点非常有用。可以通过将公式(3)代入公式(2)得到:

在本文的实验中,所有∣D(x^)∣值小于0.03的极值点都被丢弃(如前所述,我们假设图像像素值的范围为[0,1])。

图5展示了关键点选择对自然图像的影响。为了避免图像过于杂乱,使用了一张低分辨率的233x189像素图像,并将关键点以向量的形式显示,表示每个关键点的位置、尺度和方向(方向分配将在下文描述)。图5(a)显示了原始图像,在后续图像中以降低对比度的形式展示。图5(b)显示了在高斯差分函数的所有检测到的极大值和极小值处的832个关键点,而(c)显示了在移除∣D(x^)∣值小于0.03的关键点后剩余的729个关键点。部分(d)将在下一节中解释。

4.1 消除边缘响应

为了确保稳定性,仅剔除低对比度的关键点是不够的。高斯差分函数在边缘处会有强烈的响应,即使边缘上的位置定位不准确,从而对少量噪声不稳定。

在高斯差分函数中,定义不明确的峰值在边缘方向上会有较大的主曲率,而在垂直方向上会有较小的主曲率。主曲率可以通过在关键点的位置和尺度上计算的2x2 Hessian矩阵 H 来计算:

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

在极少数情况下,如果行列式为负,则曲率的符号相反,因此该点会被丢弃,因为它不是极值点。设 r为最大幅值特征值与较小特征值之间的比值,即 α=rβ。那么,

该表达式仅依赖于特征值的比值,而不是它们的单独值。当两个特征值相等时,(r+1)^2/2 取得最小值,并随着 r 的增加而增加。因此,为了检查主曲率的比值是否低于某个阈值 r,我们只需要检查:

这一计算非常高效,测试每个关键点所需的浮点运算次数少于20次。本文的实验使用 r=10的值,这样可以剔除主曲率比值大于10的关键点。从图5(c)到(d)的过渡展示了这一操作的效果。

 5 方向分配

通过基于局部图像属性为每个关键点分配一致的方向,关键点描述符可以相对于该方向表示,从而实现图像旋转不变性。这种方法与Schmid和Mohr(1997)提出的方向不变描述符形成对比,后者中每个图像属性基于旋转不变的度量。该方法的缺点是它限制了可用的描述符,并且由于不要求所有度量基于一致的方向,从而丢弃了图像信息。

在对多种局部方向分配方法进行实验后,发现以下方法能够提供最稳定的结果。关键点的尺度用于选择最接近尺度的高斯平滑图像 LL,以便所有计算都以尺度不变的方式进行。对于该尺度下的每个图像样本 L(x,y),梯度幅值 m(x,y)和方向 θ(x,y)通过像素差值预先计算:

通过关键点周围区域内采样点的梯度方向形成一个方向直方图。方向直方图包含36个区间,覆盖360度的方向范围。添加到直方图中的每个采样点由其梯度幅值和高斯加权的圆形窗口加权,窗口的σσ是关键点尺度的1.5倍。

方向直方图中的峰值对应于局部梯度的主方向。检测直方图中的最高峰值,然后任何其他局部峰值如果达到最高峰值的80%,也会用于创建一个具有该方向的关键点。因此,对于具有多个相似幅值峰值的位置,将在相同位置和尺度但不同方向上创建多个关键点。只有约15%的点被分配了多个方向,但这些点对匹配的稳定性有显著贡献。最后,对每个峰值附近的最接近的3个直方图值拟合抛物线,以插值峰值位置,从而提高精度。

图6显示了在不同程度的图像噪声下,位置、尺度和方向分配的实验稳定性。与之前一样,图像被随机旋转和缩放。顶部曲线显示了关键点位置和尺度分配的稳定性。第二条曲线显示了当方向分配也要求在15度以内时的匹配稳定性。正如前两条曲线之间的差距所示,即使在添加了±10%的像素噪声(相当于相机提供少于3位精度)后,方向分配仍然在95%的时间内保持准确。正确匹配的方向测量方差约为2.5度,在10%噪声时上升到3.9度。图6中的底部曲线显示了将关键点描述符正确匹配到包含40,000个关键点的数据库的最终准确性(将在下文讨论)。如图所示,SIFT特征对即使大量的像素噪声也具有抵抗力,而误差的主要原因是初始位置和尺度检测。

图6:图表中的顶线显示了作为像素噪声函数的关键点位置和尺度的可重复检测百分比。第二条线显示了在还需方向一致性的条件下,关键点的可重复性。底线则展示了最终能够正确匹配到大型数据库中的描述符的百分比。

6 局部图像描述符

上述操作已经为每个关键点分配了一个图像位置、尺度和方向。这些参数定义了一个可重复的局部二维坐标系统,用于描述局部图像区域,从而提供对这些参数的不变性。下一步是计算一个对于局部图像区域具有高度区分性的描述符,并尽可能地对剩余的变化(如光照变化或三维视角变化)保持不变。

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

图7:关键点描述符的创建首先计算关键点位置周围区域中每个图像采样点的梯度大小和方向,如左图所示。这些值通过一个高斯窗口进行加权,高斯窗口由叠加的圆圈表示。然后,这些样本被累积到方向直方图中,汇总了4x4子区域的内容,如右图所示,每个箭头的长度对应于该区域内特定方向附近的梯度大小之和。此图展示了一个从8x8采样点集计算出的2x2描述符阵列,而本文中的实验使用的是从16x16采样点阵列计算出的4x4描述符。

6.1 描述符表示

图7展示了关键点描述符的计算过程。首先,在关键点位置周围采样图像梯度幅值和方向,使用关键点的尺度选择图像的高斯模糊级别。为了实现方向不变性,描述符的坐标和梯度方向相对于关键点方向进行旋转。为了提高效率,如第5节所述,梯度已预先计算并存储在所有金字塔层级中。这些梯度在图7左侧的每个采样位置上用小箭头表示。

使用σσ等于描述符窗口宽度一半的高斯加权函数为每个采样点的幅值分配权重。这在图7左侧用一个圆形窗口表示,尽管权重是平滑下降的。该高斯窗口的目的是避免描述符在窗口位置发生微小变化时突然改变,并减少对远离描述符中心的梯度的强调,因为这些梯度最容易受到配准误差的影响。

关键点描述符如图7右侧所示。它通过在4x4采样区域上创建方向直方图,允许梯度位置发生显著偏移。图中每个方向直方图有8个方向,每个箭头的长度对应于该直方图条目的幅值。左侧的梯度样本可以偏移多达4个采样位置,同时仍然对右侧的相同直方图有贡献,从而实现允许较大局部位置偏移的目标。

为了避免所有边界效应(即当样本从一个直方图平滑移动到另一个直方图或从一个方向移动到另一个方向时,描述符突然变化),使用三线性插值将每个梯度样本的值分配到相邻的直方图区间中。换句话说,每个区间条目的值乘以1−d1−d的权重,其中dd是样本与区间中心值之间的距离,以直方图区间间距为单位测量。

描述符由一个包含所有方向直方图条目值的向量组成,对应于图7右侧箭头的长度。图中显示了2x2的方向直方图阵列,而我们的实验表明,使用4x4的直方图阵列(每个直方图有8个方向区间)可以获得最佳结果。因此,本文的实验使用4x4x8 = 128维的特征向量表示每个关键点。

最后,对特征向量进行修改以减少光照变化的影响。首先,将向量归一化为单位长度。图像对比度变化(每个像素值乘以一个常数)会使梯度乘以相同的常数,因此这种对比度变化会被向量归一化抵消。亮度变化(每个图像像素加上一个常数)不会影响梯度值,因为梯度是通过像素差值计算的。因此,描述符对光照的仿射变化具有不变性。然而,由于相机饱和或光照变化对不同方向的3D表面影响不同,可能会发生非线性光照变化。这些效应可能导致某些梯度的相对幅值发生较大变化,但不太可能影响梯度方向。因此,我们通过将单位特征向量中的值阈值化(每个值不超过0.2),然后重新归一化为单位长度,来减少大幅值梯度的影响。这意味着大幅值梯度的匹配不再那么重要,而方向的分布则更加重要。0.2的值是通过实验确定的,使用了包含相同3D物体不同光照的图像。

6.2 描述符测试

有两个参数可以调整描述符的复杂性:直方图中的方向数量rr和n×nn×n方向直方图阵列的宽度nn。生成的描述符向量的大小为rn2rn2。随着描述符复杂性的增加,它能够更好地区分大型数据库中的关键点,但也会对形状失真和遮挡更加敏感。

图8显示了在不同方向数量和描述符大小下的实验结果。该图是在视角变换(平面表面倾斜50度并添加4%图像噪声)下生成的。这接近可靠匹配的极限,因为在这些更困难的情况下,描述符性能最为重要。结果显示,在40,000个关键点的数据库中,找到与最接近邻居正确匹配的关键点百分比。图表显示,单个方向直方图(n=1n=1)的区分能力非常差,但随着直方图阵列增加到4x4且每个直方图有8个方向,结果持续改善。之后,增加更多方向或更大的描述符可能会因使描述符对失真更敏感而损害匹配性能。这些结果在其他视角变化和噪声程度下大致相似,尽管在某些更简单的情况下,使用5x5及更大的描述符尺寸时,区分能力(从已经较高的水平)继续提高。在本文中,我们使用4x4描述符和8个方向,生成128维的特征向量。虽然描述符的维度可能看起来较高,但我们发现它在各种匹配任务中始终优于低维描述符,并且在使用下文描述的近似最近邻方法时,匹配的计算成本仍然较低。

图8 展示了在具有仿射视点变化50度和添加4%噪声的图像条件下,关键点正确匹配到一个包含40,000个关键点的数据库的百分比,作为n×n关键点描述符宽度和每个直方图中方向数量的函数 

 6.3 对仿射变化的敏感性

图9 检查了描述符对仿射变化的敏感性。图表展示了关键点位置和尺度选择、方向分配以及最近邻匹配到数据库的可靠性,作为平面相对于观察者深度旋转的函数。可以看出,随着仿射失真的增加,每个计算阶段的重复性都会降低,但最终的匹配准确率在视角变化达到50度时仍保持在50%以上。

为了在更宽的视角角度范围内实现可靠的匹配,可以使用仿射不变检测器来选择和重新采样图像区域(如第2节所述)。然而,正如那里提到的,这些方法都不是完全仿射不变的,因为它们都从非仿射不变的方式确定初始特征位置开始。看起来最仿射不变的方法是Mikolajczyk (2002) 提出并详细实验的Harris-affine检测器。他发现,在大约50度的视角角度内,该检测器的关键点重复性低于本文的方法,但在70度视角角下仍能保持约40%的重复性,这为极端仿射变化提供了更好的性能。然而,这种方法的缺点是计算成本更高,关键点数量减少,并且由于噪声中分配一致仿射框架的误差,对于小的仿射变化稳定性较差。

实际上,3D物体的允许旋转范围远小于平面表面,因此仿射不变性通常不是跨视角变化匹配能力的限制因素。如果需要广泛的仿射不变性(例如对于已知为平面的表面),可以采用Pritchard和Heidrich (2003) 的方法:通过生成训练图像的四个仿射变换版本(对应于60度视角变化)来创建额外的SIFT特征。这种方法允许在处理待识别图像时使用标准SIFT特征而无需额外成本,但会导致特征数据库大小增加三倍。

图9 展示了关键点位置、方向分配以及最终匹配到数据库的稳定性,作为仿射失真的函数。仿射失真的程度用平面表面深度视角旋转的等效度数来表示。 

6.4 与大型数据库的匹配

衡量特征独特性的一个重要遗留问题是,随着数据库中特征数量的增加,匹配的可靠性如何变化。本文中的大多数例子是使用包含32幅图像和大约40,000个关键点的数据库生成的。图10展示了匹配可靠性如何随数据库大小的变化而变化。该图是利用一个更大的、由112幅图像组成的数据库生成的,并且除了通常的随机图像旋转和尺度变换外,还加入了30度视角深度旋转和2%的图像噪声。

虚线显示了在数据库中最近邻为正确匹配的图像特征的比例,作为以对数刻度表示的数据库大小的函数。最左边的点代表仅与单幅图像的特征进行匹配,而最右边的点则是从所有来自112幅图像的特征库中选择匹配。可以看出,匹配可靠性确实随着干扰物(distractors)数量的增加而降低,但所有迹象表明,即使在非常大的数据库规模下,仍然可以找到许多正确的匹配。

实线表示在转换后的图像中以正确位置和方向被识别的关键点的百分比,只有这些点有可能在数据库中拥有匹配的描述符。这条线之所以是平的,是因为每次测试都是在整个数据库上运行的,只改变了用于干扰物的部分数据库。有趣的是,这两条线之间的差距很小,这表明即使在较大的数据库规模下,匹配失败更多地是由于初始特征定位和方向分配的问题,而不是特征独特性的问题。

图10 显示了不同数据库大小下正确匹配的关键点百分比(使用对数刻度)。虚线表示正确匹配到数据库的关键点百分比,作为数据库大小的函数。实线表示被分配了正确位置、尺度和方向的关键点百分比。在进行匹配之前,图像经历了随机尺度和旋转变化、30度仿射变换以及添加了2%的图像噪声。

7 应用于物体识别

本文的主要主题是如上所述的独特不变关键点的推导。为了展示其应用,我们将简要描述它们在杂乱和遮挡情况下进行物体识别的应用。有关这些特征在识别中的更多应用细节,请参阅其他论文(Lowe, 1999; Lowe, 2001; Se, Lowe and Little, 2002)。

物体识别首先通过将每个关键点独立匹配到从训练图像中提取的关键点数据库来实现。由于模糊特征或背景杂波引起的特征,许多初始匹配将是不正确的。因此,首先识别至少包含3个特征的聚类,这些聚类对物体及其姿态达成一致,因为这些聚类比单个特征匹配具有更高的正确概率。然后,通过对模型进行详细的几何拟合来检查每个聚类,并根据结果接受或拒绝解释。

7.1 关键点匹配

为每个关键点找到最佳候选匹配的方法是识别其在训练图像关键点数据库中的最近邻。最近邻定义为具有最小欧几里得距离的不变描述符向量的关键点,如第6节所述。

然而,由于许多特征来自背景杂波或未在训练图像中检测到,因此图像中的许多特征在训练数据库中没有正确的匹配。因此,需要一种方法来丢弃那些与数据库没有良好匹配的特征。对最接近特征的距离使用全局阈值效果不佳,因为某些描述符比其他描述符更具区分性。更有效的措施是比较最近邻与次近邻之间的距离。如果有同一物体的多个训练图像,则我们将次近邻定义为已知来自不同物体的最近邻,例如仅使用已知包含不同物体的图像。这一措施表现良好,因为正确的匹配需要最近邻显著地比最近的错误匹配更近才能实现可靠的匹配。对于错误匹配,由于特征空间的高维度,在相似距离内可能会有多个其他错误匹配。我们可以将次近邻视为提供该部分特征空间中错误匹配密度的估计,同时识别特定的特征模糊实例。

图11 显示了该措施在实际图像数据中的价值。通过每个关键点的最近邻与次近邻之间的比率展示了正确和错误匹配的概率密度函数。最近邻是正确匹配的匹配具有一个明显低于错误匹配的中心比率的概率密度函数。在我们的物体识别实现中,我们拒绝所有距离比率大于0.8的匹配,这消除了90%的错误匹配,同时丢弃不到5%的正确匹配。该图是通过匹配经过随机尺度和旋转变化、30度深度旋转以及添加2%图像噪声的图像生成的,针对的是包含40,000个关键点的数据库。

 

图11 显示了通过计算最近邻距离与次近邻距离之间的比率来确定匹配是否正确的概率。使用包含40,000个关键点的数据库,实线表示正确匹配的距离比率的概率密度函数(PDF),而虚线表示错误匹配的距离比率的概率密度函数。 

7.2 高效最近邻索引

目前没有已知算法能够比穷举搜索更高效地识别高维空间中点的精确最近邻。我们的关键点描述符具有128维特征向量,而最佳算法(如k-d树,Friedman等,1977)在超过约10维空间时无法提供比穷举搜索更快的速度。因此,我们使用了一种近似算法,称为最佳优先(Best-Bin-First, BBF)算法(Beis和Lowe,1997)。该算法在返回最近邻时具有高概率的近似性。

BBF算法对k-d树算法进行了修改,使得特征空间中的区间按照与查询位置的最短距离顺序进行搜索。这种优先级搜索顺序最早由Arya和Mount(1993)研究,并在(Arya等,1998)中进一步研究了其计算特性。这种搜索顺序需要使用基于堆的优先级队列来高效确定搜索顺序。通过在探索特定数量的最近区间后停止进一步搜索,可以以低成本返回近似答案。在我们的实现中,我们在检查前200个最近邻候选点后停止搜索。对于包含100,000个关键点的数据库,这比精确最近邻搜索快约两个数量级,同时正确匹配的数量损失不到5%。BBF算法在此问题上表现特别好的一个原因是,我们只考虑最近邻距离小于第二近邻距离0.8倍的匹配(如前一节所述),因此无需精确解决许多邻域距离非常接近的困难情况。

7.3 使用霍夫变换进行聚类

为了最大化小型或高度遮挡物体的识别性能,我们希望用尽可能少的特征匹配来识别物体。我们发现,仅需3个特征即可实现可靠的识别。典型图像包含2,000个或更多特征,这些特征可能来自许多不同物体以及背景杂波。虽然第7.1节中描述的距离比率测试允许我们丢弃许多由背景杂波引起的错误匹配,但这并不能去除来自其他有效物体的匹配,我们通常仍需要识别包含少于1%内点(inliers)和99%外点(outliers)的正确匹配子集。许多著名的鲁棒拟合方法(如RANSAC或最小中值平方)在内点比例远低于50%时表现不佳。幸运的是,通过使用霍夫变换(Hough,1962;Ballard,1981;Grimson,1990)在姿态空间中对特征进行聚类,可以获得更好的性能。

霍夫变换通过使用每个特征为与其一致的所有物体姿态投票来识别具有一致解释的特征簇。当发现特征簇为同一物体姿态投票时,解释正确的概率远高于任何单个特征。我们的每个关键点指定4个参数:2D位置、尺度和方向,数据库中每个匹配的关键点都有其相对于训练图像的参数记录。因此,我们可以创建一个霍夫变换条目,从匹配假设中预测模型的位置、方向和尺度。由于这4个参数隐含的相似变换仅是对3D物体完整6自由度姿态空间的近似,并且未考虑任何非刚性变形,因此该预测具有较大的误差范围。因此,我们使用30度的宽区间大小用于方向,2倍的尺度因子,以及0.25倍的最大投影训练图像尺寸(使用预测尺度)用于位置。为了避免区间分配中的边界效应问题,每个关键点匹配在每个维度上为最近的2个区间投票,总共为每个假设生成16个条目,进一步扩大了姿态范围。

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

7.4 仿射参数求解

霍夫变换用于识别至少包含3个条目的所有簇。然后,每个这样的簇都会经过几何验证过程,其中通过最小二乘法求解训练图像与新图像之间的最佳仿射投影参数。

仿射变换正确地解释了平面表面在正交投影下的3D旋转,但对于非平面物体的3D旋转,近似效果可能较差。更通用的解决方案是求解基本矩阵(Luong和Faugeras,1996;Hartley和Zisserman,2000)。然而,基本矩阵求解至少需要7个点匹配,而仿射求解仅需3个,并且在实践中需要更多匹配以获得良好的稳定性。我们希望用最少3个特征匹配进行识别,因此仿射求解提供了更好的起点,并且我们可以通过允许较大的残差来补偿仿射近似中的误差。如果我们想象在物体周围放置一个球体,那么球体旋转30度将使球体内的任何点的移动不超过球体投影直径的0.25倍。对于本文中使用的典型3D物体示例,仿射求解在允许残差高达物体最大投影尺寸的0.25倍时效果良好。更通用的方法见(Brown和Lowe,2002),其中初始解基于相似变换,然后在找到足够多匹配的情况下进一步求解基本矩阵。

模型点[x y]T到图像点[u v]T的仿射变换可以表示为:

其中,模型的平移表示为 [tx ty]T,而仿射旋转、缩放和拉伸由 mimi​ 参数表示。

我们希望求解这些变换参数,因此上述方程可以重写为将未知数收集到一个列向量中:

这个方程展示了一个单独的匹配,但可以添加任意数量的进一步匹配,每个匹配会为第一个和最后一个矩阵增加两行。至少需要3个匹配才能提供一个解。

我们可以将这个线性系统写为:

假设我们有 n 个匹配点对 (xi,yi)和 (xi′,yi′),其中 i=1,2,...,n。对于每个匹配点对,我们可以写出以下方程:

Ax = b

图12 显示了左侧的两个物体的训练图像。这些物体可以在中间所示的杂乱且有大量遮挡的图像中被识别出来。识别结果展示在右侧。每个识别出的物体周围绘制了一个平行四边形,显示了在识别过程中求解的仿射变换下的原始训练图像的边界。较小的方块表示用于识别的关键点。 

最小二乘解可以通过求解相应的法方程来确定

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

通过检查每个图像特征与模型之间的一致性可以移除异常值。给定更准确的最小二乘解,我们现在要求每个匹配都在用于Hough变换区间参数误差范围的一半内达成一致。如果在剔除异常值后剩余少于3个点,则该匹配被拒绝。

随着异常值被丢弃,使用剩余点重新求解最小二乘解,并迭代这一过程。此外,还使用了一个自上而下的匹配阶段,以添加任何进一步符合投影模型位置的匹配。这些匹配可能由于相似变换近似或其他错误而未出现在Hough变换区间中。

接受或拒绝一个模型假设的最终决定基于之前论文中给出的一个详细的概率模型(Lowe, 2001)。该方法首先计算预期的对模型姿态的假匹配数量,这是根据模型的投影大小、区域内的特征数量以及拟合精度来确定的。然后,贝叶斯分析根据实际找到的匹配特征数量给出对象存在的概率。如果正确解释的最终概率大于0.98,则接受该模型。

对于投射到图像小区域的对象,3个特征可能足以进行可靠识别。而对于覆盖大部分重纹理图像的大对象,预期的假匹配数量更高,可能需要多达10个特征匹配才能确保识别。

8 识别示例

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

图12 展示了一个包含3D物体的杂乱和遮挡图像中的物体识别示例。左侧显示了玩具火车和青蛙的训练图像。中间的图像(大小为600x480像素)包含这些物体,但它们隐藏在其他物体后面,并且有大量的背景杂波,因此即使对于人类视觉,检测这些物体也可能不立即明显。右侧的图像是最终正确的识别结果叠加在一个对比度降低的图像版本上。用于识别的关键点显示为带有额外线条指示方向的方块。方块的大小对应于用于构建描述符的图像区域。每个识别实例周围还绘制了一个外层平行四边形,其边对应于在识别过程中确定的最终仿射变换下投影的训练图像边界。

该方法的另一个潜在应用是位置识别,移动设备或车辆可以通过识别熟悉的地点来确定其位置。图13 给出了这一应用的一个示例,其中拍摄了多个地点的训练图像。如左上角所示,这些图像甚至可以是看似非显著的项目,例如木墙或有垃圾箱的树。右上角的测试图像(大小为640x315像素)是从场景中原始位置旋转约30度的视角拍摄的,但训练图像的位置仍然很容易被识别。

所有识别过程的步骤都可以高效实现,因此在2GHz Pentium 4处理器上识别图12或图13中所有物体的总时间不到0.3秒。我们在带有附加摄像头的笔记本电脑上实现了这些算法,并在广泛的条件下进行了广泛测试。通常,纹理平面表面可以在任何方向上深度旋转多达50度,并在几乎所有提供足够光线且不会产生过度眩光的照明条件下可靠识别。对于3D物体,可靠的识别深度旋转范围仅为任何方向上的约30度,光照变化更具破坏性。因此,3D物体识别最好通过集成多视图特征来执行,例如使用局部特征视图聚类(Lowe, 2001)。

这些关键点也已应用于机器人定位和地图构建问题,这在其他论文中有详细讨论(Se, Lowe and Little, 2001)。在此应用中,三目立体系统用于确定关键点位置的3D估计。只有当关键点在所有3个图像中一致出现时才使用它们,从而导致非常少的异常值。随着机器人的移动,它使用与现有3D地图的特征匹配进行自我定位,然后逐步将特征添加到地图中,同时使用卡尔曼滤波器更新它们的3D位置。这为未知环境中的机器人定位问题提供了稳健且准确的解决方案。这项工作还解决了地点识别问题,即机器人可以在大型地图内的任何地方打开并识别其位置(Se, Lowe and Little, 2002),这相当于物体识别的3D实现。

9 结论

本文描述的SIFT关键点因其独特性而特别有用,这使得可以从大型数据库中的其他关键点中正确选择一个关键点的匹配。这种独特性是通过在一个局部区域内表示图像梯度的高维向量来实现的。这些关键点已被证明对图像旋转和缩放具有不变性,并且在较大的仿射失真、噪声添加和光照变化范围内具有鲁棒性。从典型图像中可以提取大量的关键点,这使得在杂乱环境中提取小物体时具有鲁棒性。由于关键点是在完整的尺度范围内检测到的,因此可用于匹配小且高度遮挡物体的小局部特征,而大关键点则适用于受噪声和模糊影响的图像。它们的计算效率很高,因此可以在标准PC硬件上以接近实时的速度从典型图像中提取数千个关键点。

本文还介绍了使用这些关键点进行物体识别的方法。我们描述的方法包括近似最近邻查找、用于识别一致的对象姿态聚类的Hough变换、最小二乘姿态确定以及最终验证。其他潜在应用包括3D重建的视图匹配、运动跟踪和分割、机器人定位、图像全景拼接、极线校准等需要在图像之间识别匹配位置的应用。

在推导不变和独特的图像特征方面还有许多进一步的研究方向。需要对包含完整3D视角和光照变化的数据集进行系统测试。本文所述的特征仅使用单色强度图像,因此通过包含光照不变的颜色描述符(Funt和Finlayson, 1995; Brown和Lowe, 2002)可以获得进一步的独特性。类似地,局部纹理测量在人类视觉中似乎起着重要作用,并且可以以比当前描述符使用的单一空间频率更通用的形式纳入特征描述符中。不变局部特征匹配方法的一个吸引人的特点是不需要选择一种特定类型的特征,最佳结果可能是通过使用许多不同的特征来获得,所有这些特征都可以提供有用的匹配并提高整体鲁棒性。

未来研究的另一个方向是个别学习适合于识别特定对象类别的特征。这对于必须覆盖广泛可能外观的通用对象类别尤为重要。Weber、Welling和Perona(2000)以及Fergus、Perona和Zisserman(2003)的研究表明了这种方法的潜力,通过学习适合于识别通用对象类别的小集合本地特征。从长远来看,特征集可能既包含先验特征也包含学习特征,这些特征将根据各种对象类别可用的训练数据量来使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值