SURF特征提取算法原文翻译与理解(下)

来源:互联网 发布:mysql tmp 目录在哪 编辑:程序博客网 时间:2024/06/07 09:33

      上一部分主要是针对特征点的提取,下面的内容是特征点的描述,并在最后总结一下全部的步骤。


4.SURF特征描述子

    SURF算法使用的描述子跟SIFT相比复杂度更低。第一步是对每个兴趣点,基于其圆形区域内的信息,确定一个可重复的方向。第二步在兴趣点上构造一个与选定方向对齐的方框,从这个方框中提取SURF描述符。这两步下面会解释。最后,提出一种直立版本的描述符(U-SURF),它并不具有旋转不变性,但是也因此计算速度更快,它可以使用在相机近似水平的场合。

4.1方向的确定

    为了使描述子对图像不同的旋转角度都有同样的描述,要给每个兴趣点都定义一个可重复的方向(这里可重复的意思大概就是不同旋转角度下都能选出来把)。为此,对每个兴趣点,以6s为半径(s的定义见第3章,为该兴趣点所在的尺度),计算圆形邻域内x和y方向的Harr小波响应,采样的步长也选为s,这样又可以使用积分图快速进行滤波计算了。得到每个点的x和y方向的响应以后,对响应值使用以兴趣点为中心的滤波器进行高斯加权,这就相当于水平Harr小波特征映射到了x,把垂直Harr小波特征映射到了y,到了这一步以后,怎么选择我们要找的方向呢。方法就是,用一个60°的扇形,以兴趣点为中心以一定的角度间隔扫描,统计当前扇形内所有x方向和y方向上的响应的和,这个x和y方向的响应的和是一个矢量,那么最长的这个矢量就是要找的主矢量,主矢量就是说代表这个特征点的方向。

4.2描述子的提取

      为了提取描述子,第一步是在兴趣点附近选个点,以此为中心构造一个方框,方框的方向是上一步确定的主矢量的方向。方框的尺寸是20s。第二步是将这个方框拆分成4*4的区域(16个)。对于每个这样的小区域,统计25个像素的水平和垂直方向的Harr小波响应。为了提高鲁棒性,对于dx和dy,可以进行高斯滤波,滤波器的中心选在兴趣点上,并且现在的水平和垂直Harr小波响应都是相对于主矢量方向而言的。第三步,对每一个子区域,计算它内部的四项数据,分别是水平方向值之和,垂直方向值之和,水平方向绝对值之和,垂直方向绝对值之和,这四个数就组成了向量v,也就是说每个小区域用一个v表示,所以把这些矢量连在一起,每个大方框就有一个长度为64的矢量。把这个向量化为单位向量,就具有尺度不变特征。根据图3的结果可以看到,采用这个64维的方案的时候,可以使这个描述子具有更好的可区分性。此外还提到,他们所进行的其他描述子的尝试,但是不是精度差点,就是速度慢点,综合来看当前的方案最好。

      最后,作者对SURF特征的匹配提了建议,为了实现匹配阶段中的快速索引,可以考虑使用兴趣点的拉普拉斯的符号(如Hessian的迹)来辅助判断。一般来说,找出来的兴趣点都是一个点那种形式,而暗背景上的明亮点和明亮背景上的暗点它们的拉普拉斯符号是不一样的。这个特征并不需要占用提取环节的计算消耗,因为在特征点检测环节就已经计算出来了。在匹配环节,我们只需要看着两个符号就可以判断出白背景上的黑点和黑背景上的白点不匹配,只有通过这个初筛,再去动用匹配度的计算。这样可以节省时间。


最后总结一下SURF的流程:

1.计算图像上每个点的Hessian响应,根据Hessian响应的值来确定某点是否为特征点。为了更高效,引入盒子滤波器,并使用积分图来计算;为了实现尺度不限,进行多组和多尺度下的计算;

2.对于选好的特征点,找到其描述子,包括两个步骤:

2.1确定特征点的方向:在以感兴趣点为中心,以6s为半径的圆形邻域内计算x和y方向的Harr小波响应;使用一个π/3的滑动窗口,计算窗口内的响应总和,这就得到一个局部的方向矢量,然后以响应最大的矢量作为该兴趣点的描述矢量;

2.2提取描述子:为了提取描述子,首先在兴趣点附近选个点,以此为中心构造一个方框,方框的方向是上一步确定的主矢量的方向;然后将这个方框拆分成4*4的区域,对于每个小区域,统计25个像素的水平和垂直方向的Harr小波响应;最后对每一个子区域,计算它内部的四项数据,分别是水平方向值之和,垂直方向值之和,水平方向绝对值之和,垂直方向绝对值之和,这四个数就组成了小区域的描述向量v,16个v组合起来就得到特征点的64维描述子。

原创粉丝点击