局部特征(3)——SURF特征总结

标签: filter
13565人阅读 评论(2) 收藏 举报
分类:
局部特征系列:

 --------------------------------------------------------------

 

第一部分:兴趣点的检测

 

1建立积分图。

优点:任何一个垂直矩形区域的面积只需要进行3 +/-法就能计算。一阶的haar小波响应只要5+/-法就能计算。计算的时间和区域大小无关。

 

2建立图像的尺度空间(应该分别有Dxx、Dxy、Dyy 三个尺度金字塔):

box filters代替二阶高斯差分模板。



保持图像的大小不变,对box filters进行尺度变换:建立高斯金字塔,金字塔分为多个Octaves,每个Octave分为4Scale levels。第一级的Octave的模块大小为9152127(相差6),第二级为15273951(相差12),第三级为27517599(相差24)。每一级第一个level的大小为上一级第二个level的大小。继续建立高斯金字塔,直到filter的大小大于原图像的大小为止(问题是大于每一Octave的第一个mask大小还是最后一个mask的大小?)。


 

尺度变换的方法,与每个Octave第一个scale levelsizeL/3有关,例如第一个OctaveL9L/3=9/3=3,则对于每行/列,连续出现L/3个相同的值,则再插入2个相同的值。若某连续3行同时为1,则再插入两行0。若只连续1行为1,则1*2/3=1(四舍五入)。插入的行/列要求左右/上下对称。

 

3对于尺度空间中的每一个box filter,与图像卷积,计算每一点上的DxxDyyDxy,再计算每一点Hessian矩阵的行列式。(卷积可以用积分图实现快速计算。)

     

其中w是因为box filters只是高斯二阶差分的近似,为了使行列式的值大致相等,乘以这个权值,取0.9。注意,每Octave提高一级,计算行列式的时候,采样的间隔提高一倍。例如第一个Octave,每个点都计算,到了第二个Octave,隔一个点计算一个……(用增大模板大小,对图像上的点采样计算的方法,等同于实现对图像进行下采样并改变模板尺度的大小。)

对于每一个Octave,对计算出行列式的值设一个阈值,大于该阈值的列为候选兴趣点。对候选极值点进行非极大抑制:对于该level的周围8个点以及上下scale level相应位置的9*2个点,一共26个点进行比较行列式的大小,若该点是周围26个点中行列式最大的,则保留。(每一个Octave的头尾两个scale level是没法计算的。)

为什么可以用Hessian矩阵来判断极小值/极大值,请见最后。 


最后,内插子像素精确定位(具体未看)。

 

第二部分:特征描述子

 

1、 主方向的确定(U-Surf没有此步骤)

s = 当前mask大小 * 1.2 / 9

以兴趣点为中心,确定6s为半径的圆。对圆内以s为步长的采样点计算haar小波响应(边长为4s)。

以兴趣点为中心,对小波响应进行高斯加权()。对一个扇形区间(比如π/3)的水平和垂直方向的小波响应分别求和。最长矢量对应的扇形方向就是主方向。(每一个扇形窗可否有重复?)

 

2以兴趣点为中心,主方向为参考x轴方向,20s为边长,做正方形区域,并将该区域分为4*4个子区域。(SURF-36把它分为3*3个子区域,区分性略差但速度快。)每个子区域取5*5个采样点,计算这些采样点上的haar小波响应dxdy。以兴趣点为中心,对响应进行高斯加权(σ=3.3s)。

 

3对每个子区域的dxdy|dx||dy|进行求和,归一化为单位向量。对于4*4个子块一共可以构成64维空间。(SURF-128在统计dx|dx|时,把dy分为大于0时候和小于0时候两种情况,而在统计dy|dy|时将dx分为大于0和小于0两种情况,这样每个子区域是8维向量)。


附:最近的思考(2011.7.10补充):

1、为什么Hessian矩阵可以用来判断极大值/极小值

我的理解如下:

在x0点上,hessian矩阵是正定的,且各分量的一阶偏导数为0,则x0为极小值点。

在x0点上,hessian矩阵是负定的,且各分量的一阶偏导数为0,则x0为极大值点。

对于某个局部区域,若hessian矩阵是半正定的,则这个区域是凸的(反之依然成立);若负定,则这个区域是凹的(反之依然成立)。而对于正定和负定来说,Hessian矩阵的行列式总是大于等于0的。反过来就是说:某个点若是极大值/极小值,hessian矩阵的行列式必然要大于等于0,而大于等于0如果是满足的,这个点不一定是极大值/极小值(还要判断一阶导数)。所以后面还要进行极大值抑制。


与SURF相关的局部特征是SIFT,已经有很多专家对它讨论过了,这里我也不再多谈,如果大家对它感兴趣的话,请看这里,而接下来的这篇博客则对SIFT和SURF做了比较

 

---------------------------

jiang1st2010

原文地址:http://blog.csdn.net/jiang1st2010/article/details/6564835

 

 

 

6
1

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:648487次
    • 积分:5617
    • 等级:
    • 排名:第4648名
    • 原创:40篇
    • 转载:16篇
    • 译文:2篇
    • 评论:338条
    个人主页
    联系方式

    jiang1st2010@gmail.com

    请在邮件中简单自我介绍。请尽量在博客中给我留言。

    新浪微博
    最新评论