[CS131] Lecture 8 Feature Descriptors and Resizing

根据 Stanford CS131 课程写的笔记(大部分为 note 翻译),英语水平一般,如有错误请评论指正

Lecture 8 Feature Descriptors and Resizing

Scale invariant keypoint detection

Motivation

给定有较大尺度差别的两张相同情景下的图片,目标是独立的检测每张图中相同关键点。解决方案是寻找再空间和尺度上合适函数的极大值。

General methodology

通过合理放缩窗口,我们可以捕捉到相同的内容。如下图,右侧的窗要放大至左侧窗才能获得相同信息。

从尺度不变角度上,我们需要找到一个描述什么是 “捕捉相同内容” 的方法。这里我们考虑一个以区域内容作为输入,对该区域的所有尺度范围相同值作为输出的函数 f(window) f ( w i n d o w )

在每两张图中,我们可以独立的检测区域极值作为关键点。对应区域极值的窗大小(上图 s1 s 1 s2 s 2 )反映了两张图片之间的尺度不同。

Average intensity

第一种方法,用窗内像素的平均强度作为 f(window) f ( w i n d o w ) ,因为平均强度不随尺度变化而变化。但是,平均强度不能很好的捕捉窗内的对比度改变。要捕捉对比度,我们需要加入导数。

Difference of Gaussians (DoG)

第二种方法,用高斯差分。

考虑一个图片 I I 。首先,我们将 I 与有不同 σ σ 的高斯滤波器卷积。接下来,我们用尺度收缩的 I I 重复第一步的卷积工作。至此我们得到了有不同的 σ 和图片尺度的高斯金字塔(如图三左),接着将临近的高斯卷积图像相减得到高斯差分 (Difference of Gaussians),如图三右:

DOG(σ)=(G(kσ)G(σ))I D O G ( σ ) = ( G ( k σ ) − G ( σ ) ) ∗ I

直观来讲,高斯差分捕捉了 I I 在不同尺度下的细节,也即保留了 σ1 σ2 σ 2 之间不同的细节。 σ σ 越大,高斯差分捕捉到的细节越粗糙。如下图

有了 x-y 尺度空间上的高斯差分金字塔, 现在我们可以在 3D 空间上检测局部极值以检测关键点和相关尺度。为了检测局部极值,我们将一个坐标和它的 26 个邻居(3D 空间上,见下图),若该坐标大于或者小于 26 个邻居,则为局部极值。

Harris-Laplacian

第三种方法用哈里斯 - 拉普拉斯算子方法。相比于高斯差分,这种方法更高效,但是计算量也更大。

首先,对不同尺度的 I I <script type="math/tex" id="MathJax-Element-15">I</script> 运行哈里斯检测器,局部化每个尺度上的关键点。接下来,选择在所有尺度中可以最大化拉普拉斯算子的关键点。

转变为尺度不变检测器:现在我们有多种方法检测不同尺度上的固定关键点,我们可以继续研究在一个尺度不变方式上描述这些关键点的方法,以便匹配关键点。

SIFT: an image region descriptor

尺度不变特征转换 (Scale-invariant feature transform, SIFT)

Invariant Local Features

点描述子需要有不变性和特殊性。我们将图片内容转换为局部特征坐标,这些坐标具有移动、旋转、放缩以及其他成像因素不变性,以达到点描述子的鲁棒性。

局部不变特征有以下优点:

  • 局部性:特征描述部分,且对混乱和遮挡有鲁棒性。
  • 特殊性:特征可以从一个大型的物体数据库中识别出来。
  • 数量:即使物体很小,也能得到许多特征。
  • 效率:接近实时性能
  • 延展性:可以轻松地拓展至大量不同的特征类型,且每个拓展都提高了对改变的鲁棒性。
Scale invariance

要求有一个可以重复的在空间和尺度上选择点的方法:

  • 唯一合理的尺度空间核是高斯核 (Koenderink, 1984; Lindeberg, 1994)
  • 一个有效的方法是检测高斯差分金字塔的高峰 (Burt & Adelson,1983; Crowley & Parker, 1984 - but examining more scales)
  • 有固定比例尺度缩小的高斯差分近似于 Lindeberg 的尺度归一化拉普拉斯算子(从热扩散方程中得到)
Rotation invariance

给定一个关键点以及它在高斯差分 (DoG) 中的尺度,我们需要选出最具有代表性的特征,并描述所有与该方向相关的特征:

  1. 用与关键点尺度相关的光滑(模糊)过的图像
  2. 在关键点邻居上得到图像梯度
  3. 通过负关键点方向,旋转梯度方向和位置。换句话说,描述与方向相关的所有特征。

SIFT descriptor formation

用精确的梯度位置是很脆弱的,所以我们需要一个一般化的相似描述子。我们将创造一个方向直方图矩阵,并将梯度放入 8 个方向柱(” 米” 字形)的局部方向直方图中

具体:

  1. 创建方向直方图矩阵 (4x4)

  2. 将旋转过的梯度放入局部方向直方图。

    • 一个梯度根据距离给附近的直方图贡献值。例如,如果它在两个直方图位置的中间,它给两个直方图一半的贡献。
    • 远离中心的梯度,贡献值将被缩小。
    • SIFT 作者发现 8 个方向盒子每直方图和一个 4x4 直方图矩阵将得到最好的结果(见下图)

  3. 对比两张图的每个向量,找到匹配的关键点。一共有 8x4x4=128 个向量(8 方向,4x4 直方图矩阵)

  4. 为了在高对比度的照片中加入对光照改变的鲁棒性,需要在对比前归一化向量。不可靠的 3D 光照效果(如炫光)会导致图像有很大的梯度,为了减少大梯度带来的影响,我们将向量中的值压缩至 0.2 以下,然后再次归一化。

  5. 个人总结:将图像分割为 4x4,每个格子产生一个局部直方图,得到 8 个方向各自的向量。

HoG: Another image region descriptor

Histogram of Oriented Gradient (HoG)

HoG 描述子在图片中找到一个可以被辨别、较为突出的物体。

过程如下:

  1. 将图像窗分割为小空间区域或单元格 (cell),cell 可以是圆形或者矩形的。

  2. 对每个单元格,积累一个局部直方图。直方图柱(横坐标)是关于梯度方向的均匀间隔,把单元格内每个像素的梯度方向累积至直方图柱。

  3. 在一个更大的区域上将直方图归一化,称之为由一些单元格组成的一个块 (block)。

  4. 为了更好的消除光照和阴影的遮挡,可以在使用局部响应之前,对局部相应进行对比标准化。并将标准化整个块内的所有单元格。

HoG 有一些缺点:

  1. 在检测时有大的变化和范围
  2. 很慢
  3. 当背景有不同光照时,不是很有条理。

除去这些缺点,HoG 是很有效的。下图是使用 HoG 后的效果。

Difference between HoG and SIFT

  • HoG 用于在整个图像上找到梯度,而 SIFT 用于关键点匹配。
  • SIFT 直方图方向朝向自然正梯度方向,而 HoG 不是。
  • HoG 梯度用邻柱标准化
  • SIFT 用不同的尺度计算多个描述子
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值