我们将了解 SURF 的基础知识 我们将了解 OpenCV 中的 SURF 功能
理论
在上一章中,我们学习了 SIFT 用于关键点检测和描述的方法。但它相对较慢,人们需要更快速的版本。2006年,Bay, H., Tuytelaars, T. 和 Van Gool, L 发表了另一篇论文 "SURF: 加速稳健特征",介绍了一种名为 SURF 的新算法。顾名思义,它是 SIFT 的加速版本。
在 SIFT 中,Lowe 使用高斯差分近似高斯拉普拉斯算子来寻找尺度空间。SURF 更进一步,用盒式滤波器近似 LoG。下图展示了这种近似的示意图。这种近似的一个重要优势是,利用积分图像可以轻松计算与盒式滤波器的卷积。而且可以针对不同的尺度并行进行。另外,SURF 依赖于海森矩阵的行列式来确定尺度和位置。
对于方向分配,SURF 使用水平和垂直方向的小波响应来处理尺寸为 6s 的邻域。也会对其应用适当的高斯权重。然后将它们绘制在下图所示的空间中。通过计算 60 度滑动方向窗口内所有响应的总和来估计主导方向。有趣的是,可以非常容易地在任何尺度上使用积分图像找出小波响应。对于许多应用程序,不需要旋转不变性,因此无需找到这个方向,这加快了处理速度。SURF 提供了这样一种功能,称为 Upright-SURF 或 U-SURF。它提高了速度,同时对 ±15∘ 保持稳健。OpenCV 根据标志支持两者,即 upright。如果值为 0,则计算方向。如果值为 1,则不计算方向,速度更快。