我正在尝试弄清楚 SURF 特征检测的工作原理。我想我已经取得了一些进步。我想知道我与真实发生的事情的差距如何。
您已存储的模板图像和真实世界的图像 根据“要点”或一些重要特征进行比较 在这两张图片中。
相同点之间的最小欧氏距离构成 很好的匹配。
什么构成重要特征或关键点?一个角落
(边缘的交叉点)或 Blob (强度的急剧变化)。SURF 使用 blob。
它使用 Hessian 矩阵进行 Blob 检测或特征提取。
Hessian矩阵是二阶导数的矩阵:这是为了
找出与强度相关的最小值和最大值
图像中的给定区域。
最佳答案
sift/surf等有3个阶段:
再次查找可能在同一对象的不同图像中找到的特征/关键点(冲浪使用框过滤器)。如果可能的话,这些特征应该是缩放和旋转不变的。角点、 Blob 等都很好,并且最常在多个尺度上进行搜索。
找到该点的正确“方向”,以便如果图像根据该方向旋转,则两个图像都会相对于该单个关键点对齐。
“描述符”的计算,其中包含关键点邻域在正确比例下的外观(定向后)的信息。
现在您的欧氏距离计算仅在描述符上完成,而不是在关键点位置上完成!
重要的是要知道步骤 1 对于 SURF 来说并不是固定的。 SURF 实际上是步骤 2-3,但作者提出了如何完成步骤 1 以便与步骤 2-3 产生一些协同作用的建议。协同作用是,步骤 1 和步骤 3 都使用积分图像来加快速度,因此积分图像只需计算一次。
关于algorithm - SURF 工作原理总结,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29417888/