尺寸和响应在SURF关键点中的确切代表什么?

Tul*_*kas 20 opencv surf feature-detection template-matching video-tracking

我正在使用OpenCV 2.3进行关键点检测和匹配.但我对检测算法给出的参数sizeresponse参数有点困惑.他们究竟是什么意思?

基于OpenCV手册,我无法弄清楚:

float size:有意义的关键点邻域的直径

float response:选择最强关键点的响应.可用于进一步分类或子采样

我认为跟踪的最佳点是响应最快的那个,但似乎并非如此.那么我怎样才能对冲浪探测器返回的关键点进行二次采样,以便在可跟踪性方面保持最佳?

fir*_*ant 60

大小和响应

SURF是一个blob探测器,简而言之,一个特征的大小就是blob的大小.更确切地说,OpenCV返回的大小是近似Hessian算子的一半.该尺寸也称为尺度,这是由于斑点检测器的工作方式,即在功能上等于首先使用高斯滤波器在几个尺度上模糊图像,然后对图像进行下采样并最终检测具有固定尺寸的斑点.请参见下图,显示SURF功能的大小.每个要素的大小是绘制圆的半径.从要素中心到圆周的线条显示角度或方向.在该图像中,斑点检测滤波器的响应强度是彩色编码的.您可以看到大多数检测到的功能都有弱响应.(见这里的完整尺寸图片)

SURF功能

该直方图显示了上图中特征响应强度的分布:

直方图显示响应强度的分布

要跟踪哪些功能?

最强大的功能跟踪器跟踪所有检测到的功能.功能越多,鲁棒性越强.但是跟踪大量功能是不切实际的,因为我们通常希望限制计算时间.要经常跟踪的功能数量应根据每个应用程序进行调整.通常将图像划分为规则的子区域,并且在每个子区域中保持跟踪n个最强的特征.通常选择n使得每帧总共检测到约500~1000个特征.

参考

阅读描述SURF期刊论文肯定会让你对它的工作原理有所了解.尽量不要陷入细节,特别是如果你的背景不是机器/计算机视觉或图像处理.SURF检测器乍一看似乎非常新颖,但整个想法是使用积分图像估算Hessian算子(一个成熟的滤波器)(早在SURF之前已经被其他方法使用过).如果您想要很好地理解SURF并且您不熟悉图像处理,则需要返回并阅读一些介绍性材料.最近我遇到了一本新的免费书,其第13章对特征检测有一个很好的简要介绍.并非所有内容都说技术上正确,但这是一个很好的起点.在这里,您可以找到SURF的另一个很好的描述,其中有几个图像显示每个步骤的工作原 在该页面上,您会看到以下图片:

SURF blob

你可以看到白色和黑色斑点,这些是SURF在几个尺度上检测到的斑点并估计它们的大小(OpenCV代码中的半径).


san*_*iso 5

  1. "大小"是原始图像中描述符所覆盖区域的大小(它是通过在缩放空间中对原始图像进行下采样获得的,因此它根据其比例从关键点到关键点变化).

  2. "反应"确实是一个"有多好"的指标(粗略地说,就角落而言)是一个点.

  3. 静态场景检索的优点是稳定的(这是SIFT/SURF描述符的主要目的).在跟踪的情况下,你可以出现好的点,因为被跟踪的物体位于形状良好的背景上,在阴影中有一半......然后消失,因为这个条件已经改变(光线变化,遮挡......).因此,无法保证追踪任务始终存在优点.