[CS131] Lecture 6-7 Features and FittingFeature Descriptor

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

Lecture 6-7 Features and Fitting/Feature Descriptor

Local Invariant(局部不变) Features

Motivation

使用局部不变的特征的目的出于它在广泛环境下的有用性,之前讨论的方法在这些环境下均产生问题,例如:交叉相关。这个方法通过找到图像中局部、独特的结构,并用周围区域来作为小块,而不是使用全局作为代表来找到相对应的结构。这样做可以得到一个强健性更高的图片检测策略,该策略对物体旋转、视角改变、尺度变换等具有不变性。

General Approach

  1. 找到一系列特别的关键点
  2. 在关键点附近定义一个局部区域
  3. 从该区域提取并归一化局部内容
  4. 从归一化的区域中计算一个局部描述子 (local descriptor),例如:像素颜色函数
  5. 匹配局部描述子

Requirements

好的局部特征应该具有以下性质:

  1. 重复性

    同一个物体或场景在不同摄像情况下(例如,光照或者视角改变),应该都能检测到大量的特征。换句话说,该特征需要对光线变化、噪音、模糊等具有稳健性,同时对旋转和视角改变也保持不变性。

  2. 局部性

    特征需要是局部的以避免背景遮挡 (occlusion) 和混淆 (clutter) 导致的问题

  3. 数量

    需要足够多的特征被选择去有效的检测物体

  4. 特殊性

    特征需要有能展现出大量变换的特点,这样才能保证可以区分不同特征。

  5. 效率

    新图像的特征匹配需要有利于实时应用

Keypoint Localization

Motivation

关键点定位目标是持续且重复地检测区域、达到更精确的定位、在图像中找到游泳的内容。

General Approach

我们寻找角点,因为它们在大量图像中都是可重复且有特点的。为了找到角点,我们需要寻找在所有维度上强度剧烈变化的地方,也是梯度有两个以上主要方向的地方。为了提供上下文,一个 “平整” 的区域在任何方向上都不会改变且边沿的方向不会产生变化。我们用 Harris 技术找到这些角点。

Harris Detector

计算移动 [u,v] [ u , v ] 强度的改变量 E(u,v) E ( u , v ) ,其中 I(x,y) I ( x , y ) 表示强度函数, w(x,y) w ( x , y ) 表示窗函数(用于对信号进行截断,也叫截断函数):

E(u,v)=x,yw(x,y)[I(x+u,y+v)I(x,y)]2 E ( u , v ) = ∑ x , y w ( x , y ) [ I ( x + u , y + v ) − I ( x , y ) ] 2

为了找到角点,我们需要最大化函数 E(u,v) E ( u , v ) 。用 Taylor Expansion 可以得到以下方程:

E(u,v)=[uv]M[uv] E ( u , v ) = [ u v ] M [ u v ]

其中 M 定义为
M=x,yw(x,y)[IxIxIxIyIxIyIyIy][IxIxIxIyIxIyIyIy]=x timesy M = ∑ x , y w ( x , y ) [ I x I x I x I y I x I y I y I y ] [ I x I x I x I y I x I y I y I y ] = x 的 梯 度   t i m e s y 的 梯 度

这个矩阵显示
M=[IxIxIxIyIxIyIyIy]=[λ100λ2] M = [ ∑ I x I x ∑ I x I y ∑ I x I y ∑ I y I y ] = [ λ 1 0 0 λ 2 ]

角点的两个特征值 λ1 λ 1 λ2 λ 2 都是大且相近的,而边缘只有其中一个特征值较大,平坦区域两个特征值均较小。

角点响应函数 (Corner Response Function) 为每个窗计算一个值:

θ=det(M)αtrace(M)2 θ = d e t ( M ) − α t r a c e ( M ) 2

其中 α α 范围为 [0.04,0.06] [ 0.04 , 0.06 ]

为了增加旋转不变性,我们用经过加权和的高斯函数进行光滑化:

M=g(σ)[IxIxIxIyIxIyIyIy] M = g ( σ ) ∗ [ I x I x I x I y I x I y I y I y ]

最后,下图展示了 Harris detector 找到的关键点:

Scale Invariant Keypoint Detection

Motivation

之前我们用 Harris detector 找到角点的关键点。Harris detector 为了维持良好的定位,用的窗较小。因为用的是小窗,所以会当图片缩放后,窗会受到影响,其梯度会发生改变。下图展现了同样大小的框在图片放大后的改变。

Solution

我们可以设计一个可伸缩的函数,即窗对应的区域不受尺度变换影响(例如,平均强度)。我们可以用一个圈表示这个可伸缩函数。圆上一个点表示一个圆半径对应区域大小的函数,所以只要选取一个特征比较明显的点(如峰值),所对应的函数就能在不同的图中取得不同的窗大小。

General Approach

我们可以找到一个函数的局部最大值。相对于局部最大值,区域大小应该不随尺度改变。这意味着区域大小和图像尺寸应该共同变化。一个好的函数应该有有且仅有一个明显的局部最大值。换句话说,我们应该用在强度上有鲜明对比的函数。

我们将函数定义为: f=kernelimage f = k e r n e l ∗ i m a g e ,可以用 Laplacian(拉普拉斯算子)或者 Difference of Gaussians(DoG,差分高斯算子)作为核

L=σ2(Gxx(x,y,σ)+Gyy(x,y,σ))DoG=G(x,y,kσ)G(x,y,σ)where G(x,y,σ)=12πσex2+y22σ2 L = σ 2 ( G x x ( x , y , σ ) + G y y ( x , y , σ ) ) D o G = G ( x , y , k σ ) − G ( x , y , σ ) w h e r e   G ( x , y , σ ) = 1 2 π σ e − x 2 + y 2 2 σ 2

这些核都具有旋转与伸缩不变性。

附加:拉普拉斯算子的推导

对于图像 f f ,首先进行高斯平滑处理滤去噪点:

G(x,y,σ)f(x,y)

对上式求微分,进行边缘检测:

ddx(Gf)=dGdxf d d x ( G ∗ f ) = d G d x ∗ f

其中, dG/dx d G / d x 即为拉普拉斯算子。

基于 DoG 算子,可以采用 SIFT 算法进行特征匹配,在空间和尺度上找到 DOG 局部最大值。基于拉普拉斯算子,可以采用 Harris-Laplacian 算法进行特征匹配,在空间上找到 Harris 角点检测器的局部最大值、在尺度上找到拉普拉斯的局部最大值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值