原文站点:https://senitco.github.io/2017/06/27/image-feature-surf/
加速鲁棒特征(Speed Up Robust Feature, SURF)和SIFT特征类似,同样是一个用于检测、描述、匹配图像局部特征点的特征描述子。SIFT是被广泛应用的特征点提取算法,但其实时性较差,如果不借助于硬件的加速和专用图形处理器(GPUs)的配合,很难达到实时的要求。对于一些实时应用场景,如基于特征点匹配的实时目标跟踪系统,每秒要处理数十帧的图像,需要在毫秒级完成特征点的搜索定位、特征向量的生成、特征向量的匹配以及目标锁定等工作,SIFT特征很难满足这种需求。SURF借鉴了SIFT中近似简化(DoG近似替代LoG)的思想,将Hessian矩阵的高斯二阶微分模板进行了简化,借助于积分图,使得模板对图像的滤波只需要进行几次简单的加减法运算,并且这种运算与滤波模板的尺寸无关。SURF相当于SIFT的加速改进版本,在特征点检测取得相似性能的条件下,提高了运算速度。整体来说,SUFR比SIFT在运算速度上要快数倍,综合性能更优。
积分图像
SURF算法中用到了积分图的概念,借助积分图,图像与高斯二阶微分模板的滤波转化为对积分图像的加减运算,从而在特征点的检测时大大缩短了搜索时间。
积分图中任意一点 (i,j) 的值 ii(i,j) ,为原图像左上角到任意点 (i,j) 相应对角线区域灰度值的总和,即
式中, i(x′,y′) 表示原图像中的灰度值,具体实现时 ii(x,y) 可由下式迭代计算得到
求取积分图时,对图像所有像素遍历一遍,得到积分图后,计算任何矩形区域内的像素灰度和只需进行三次加减运算,如下图所示。
Hessian矩阵近似
图像点的二阶微分Hessian矩阵的行列式(Determinant of Hessian, DoH)极大值,可用于图像的斑点检测(Blob Detection)。Hessian矩阵定义如下:
式中, Lxx、Lyy、Lxy 分别是高斯二阶微分算子 ∂2g∂x2、∂2g∂y2、∂2g∂x∂y 与原图像的卷积,Hessian矩阵的行列式值DoH为
与LoG算子一样,DoH同样反映了图像局部的纹理或结构信息,与LoG相比,DoH对图像中细长结构的斑点有较好的抑制作用。LoG和DoH在利用二阶微分算子对图像进行斑点检测时,都需要利用高斯滤波平滑图像、抑制噪声,检测过程主要分为以下两步:
- 使用不同的 σ 生成 (∂2g∂x2+∂2g∂y2