我在理解SURF和SIFT算法All about SURF时遇到了一些概念性问题。据我所知,SURF发现高斯拉普拉斯算子和SIFT对高斯差异进行操作。然后它围绕它构造一个64变量向量来提取特征。我已应用此CODE。
(Q1)那么,是什么形成了这些功能?
(Q2)我们使用SurfFeatureDetector探测器(500)初始化算法。那么,这是否意味着特征空间的大小为500?
(Q3) SURF Good_Matches的输出提供Keypoint1和Keypoint2之间的匹配,并通过调整匹配的数量,我们可以得出结论,如果找到/检测到对象。 KeyPoints是什么意思?这些存储功能吗?
(Q4)我需要做对象识别应用程序。在代码中,似乎算法可以识别该书。因此,它可以应用于对象识别。我的印象是SURF可用于根据颜色和形状区分对象。但是,SURF和SIFT找到角落边缘检测,因此使用彩色图像作为训练样本毫无意义,因为它们将被转换为灰度。在这些算法中没有使用颜色或HSV的选项,除非我分别计算每个通道的关键点,这是一个不同的研究领域(Evaluating Color Descriptors for Object and Scene Recognition)。
那么,我如何根据颜色,形状来检测和识别物体?我想我可以使用SURF根据它们的形状区分对象。比如说,我有2本书和一瓶。我只需要识别整个对象中的一本书。但是,一旦场景中有其他类似形状的物体,SURF就会产生很多误报。我将欣赏有关申请申请的方法的建议。
答案 0 :(得分:2)
局部最大值(DoG的响应大于(小于)相邻像素对金字塔中的点,上层和情人图像的响应 - 3x3x3邻域)形成特征的坐标(圆)中央。圆的半径是金字塔的水平。
这是Hessian门槛。这意味着您只需要使用大于阈值的值的最大值(参见1)。较大的阈值导致功能数量减少,但功能的稳定性更好,反之亦然。
Keypoint ==功能。在OpenCV中Keypoint is the structure to store features.
不,SURF适合比较纹理对象,但不适合形状和颜色。对于形状我建议使用MSER(但不是OpenCV),Canny边缘检测器,而不是本地功能。 This presentation可能有用