-
SURF
学习笔记
Speed-Up Robust
Features(SURF)
SURF
是一种尺度,旋转不变的
d
etector
和
descriptor.
最大的特点是快!在快的
基础上保证性能(
repeata
bility,distinctiveness
和
robu
stness
)。
SURF
采用有效策略的主要有:
1
)
< br>积分图
(用于对图像卷积)
2
)
detector
是基于
Hessia
n
矩阵,
descriptor
是基于
分布的
下面是
SURF
算法的具体实现:
1.
兴趣点检测
SURF
对于兴趣点的检测是基于最基本的
< br>Hessian
近似矩阵。
1.1
积分图像
(由于不会在这里编辑公式,直接截图了)
PS
:
这里
加一点自己的一点个人理解
:
关于矩形区域内像素点的求和应该
是一种简单重复性
运算,采用这种思路总体上提高了效率。为什么这么说呢?假设一幅图
片共有
n
个像素点,
则计算
n
个位置的积分图总共的加法运算有
n-1
次(注意:可不是
次哦,要充分利用递推思想),将这些结果保存在一
个跟原图对应的
矩阵
M
中。
当需要计算图像中某个矩形区域内的所有像素之和是直接像查表一样,
调出
A,B,C,D
四点的积
分图值,简单
的加减法(注意只需要三次哦)即可得到结果。反之,如果采用
naive
的方式直接在原图像
中的某个矩形区域内求和,你想想,总共可能的矩形组合
有多少?
!!且对于
一幅图像
n
那是相当大啊,所以
2^n
那可是天文数字,
而且这里面绝大部分的矩形有重叠,
重叠意味着什么?在算求和的时候有
重复性的工作,
其实我们是
可以有
效的利用已经计算过的信息的
。
这就是积分图法的内在思
想:它实际上是先计算
n
个互不重叠
(专业点说是不相交)的矩形区域内的像素点求和,充
分利用这些值
(已有值)
计算未知值,
有点类似递推的味道
...
这就完全避免了重复求
和运算。
1.2
用于检测兴趣点的
Hessian
矩阵
作者
Herbert
Bay
利用
Hessian
矩阵来检测兴趣点,
具体是用
Hessian
矩阵行列式的最
p>
大值标记斑状结构(
blob-like structure
p>
)的位置。同时,行列式值也作为尺度选择的依
据,这里,作者是参
考了
Lindeberg
的做法(
'<
/p>
Feature detection with automatic scale <
/p>
selection
'
我还没有拜读原文
!!
)。
说一下
Hessian
矩阵的定义:
中得到启发,采用了盒子型滤波器(
box
< br>filter
)对上面的滤波器进行近似。盒子型滤波
器
见图
1.3.
补充一点
:
filter
的响应还要根据
filter
的大小做一个归一化。
这样做就可以保证对于
任意大小的<
/p>
filter
其
F
范数是统一的(这对于尺度不变性是有必要的)。
有了前面的着一些准备工作,
就可以对一幅图像
I
计算每个点的近似
Hessian
矩阵的
行列式值,将这些值存储,
备用!
1.3
尺度空间表示
算法的尺度不变性主要靠不同尺度下寻找感兴趣点。
谈到不同尺度就不得不
说
‘金字塔’
。
Lowe
在其
SIFT
大作中是这样构造尺度空间的:
对原图像不断地进行
Gauss
平滑
+
降采样。
得到金字塔图像后,有进一步得到了
DoG
图,边和斑状结构就是通过
Do
G
图得到其在原图
的位置。
SURF
中的做法与
SIFT
< br>是有所不同的。
SIFT
算法在构造金字塔图层时
Gauss
滤波器大小
不变,改变的是图像的
大小;而
SURF
则恰恰相反:图像大小保持不变,改变的是滤
波器的
大小。
PS
:
之所以这么做的目的考虑的主要目的还是效率问题<
/p>
(这样可以利用积分图有关的快速计
算,用不同
< br>size
的
Mask
进行卷积运
算,复杂度是一样的,仅仅是三个加减法而已)。而
且,由于没有对图像进行降采样,所
以不存在
混叠
现象。
与
SIFT
类似,
SURF
的尺度空间也是按组(
Octaves
)划分的。每一个
Octave
里是对输
入图像用
size
不断增加的
fil
ter
进行滤波后得到的一系列响应。
总的来说,
一组包含了
一个缩放因子
2
()。每一组内的层数是一个常量。由于积分图像的离散特性(
不懂
),两
个连续尺度间的最小尺度差分取决于二阶偏导在导数方向(
< br>x
或
y
)上正的或负的波瓣(即
不同的颜色块,见
Fig.1.5
)长
度
L0
,实际中,
L0
设为
filter
边长的
1/
3
。例如,对于
9*9
的
filter
,
L0
值为<
/p>
3.
对于连续的
level
,采用的
filter
的
s
ize
大小增加的最小
量是
2
,以保证
filter
的边长始终是奇数,
p>
(奇数可以保证
filter
有中心点)。
这样使
得
Mask
以
< br>6
个像素为单位进行扩充。
以图
1.5
,
1.6
为例对上面的叙述做一解释
:图
1.5
左边是
9*9
大小
y
方向的二阶偏导计
算模板。
Y
方向共有
3
个波瓣(两正(白的)
,一负(黑的)),则
的值即任意一个波瓣
的
< br>宽度。右边是对每个波瓣各扩充
2
个像素后的
filter
,注意先是对波瓣扩充,即先扩宽,扩完后置于
长怎么办,还没有搞懂
.....
貌似整体上最外的
边(灰色的)是扩两个像素。
-
-
-
-
-
-
-
-
-
上一篇:MSA指标%PT与%GRR知识梳理
下一篇:五大工具的联系与区别