当前位置: 代码迷 >> 综合 >> 学习OpenCV——Surf(特征点篇)flann
  详细解决方案

学习OpenCV——Surf(特征点篇)flann

热度:10   发布时间:2024-01-13 06:26:30.0

Surf(Speed Up Robust Feature)


Surf算法的原理                                                                           


1.构建Hessian矩阵构造高斯金字塔尺度空间


其实surf构造的金字塔图像与sift有很大不同,就是因为这些不同才加快了其检测的速度。Sift采用的是DOG图像,而surf采用的是Hessian矩阵行列式近似值图像。Hessian矩阵是Surf算法的核心,为了方便运算,假设函数f(z,y),Hessian矩阵H是由函数,偏导数组成。首先来看看图像中某个像素点的Hessian矩阵,如下:



即每一个像素点都可以求出一个Hessian矩阵。

H矩阵判别式为:




判别式的值是H矩阵的特征值,可以利用判定结果的符号将所有点分类,根据判别式取值正负,来判别该点是或不是极值点。

在SURF算法中,用图像像素l(x,y)即为函数值f(x,y),选用二阶标准高斯函数作为滤波器,通过特定核间的卷积计算二阶偏导数,这样便能计算出H矩阵的三个矩阵元素L_xx,L_xy,L_yy 从而计算出H矩阵:




但是由于我们的特征点需要具备尺度无关性,所以在进行Hessian矩阵构造前,需要对其进行高斯滤波。

这样,经过滤波后在进行Hessian的计算,其公式如下: