3

我正在使用 OpenCV 实现一个词袋图像分类器。最初,我测试了在 SURF 关键点中提取的 SURF 描述符。我听说 Dense SIFT(或 PHOW)描述符可以更好地用于我的目的,所以我也尝试了它们。

令我惊讶的是,他们的表现要差得多,实际上差了将近 10 倍。我可能做错了什么?我正在使用来自 OpenCV 的 DenseFeatureDetector 来获取关键点。我从 9 层中提取每个图像大约 5000 个描述符,并将它们聚集成 500 个簇。

我应该尝试 VLFeat 库中的 PHOW 描述符吗?我也不能在 OpenCV 的 SVM 实现中使用卡方内核,这在许多论文中都是推荐的。这对分类器质量至关重要,我应该尝试另一个库吗?

另一个问题是尺度不变性,我怀疑它可能会受到密集特征提取的影响。我对吗?

4

1 回答 1

8

这取决于问题。您应该尝试不同的技术,以了解解决问题的最佳技术。当您需要对任何类型的场景进行分类时,通常使用 PHOW 非常有用。你应该知道 PHOW 与 Dense SIFT 有点不同。几年前我用过vlfeat PHOW,看到代码,它只是调用了不同大小的dense sift,并进行了一些平滑处理。这可能是能够保持规模不变的一条线索。同样在我的实验中,我使用了 libsvm,结果直方图交集对我来说是最好的。默认情况下,卡方和直方图交叉核不包含在 libsvm 和 OpenCV SVM(基于 libsvm)中。你是决定是否应该尝试它们的人。我可以告诉你,RBF 内核达到了接近 90% 的准确率,无论直方图相交达到 93%,和卡方 91%。但这些结果是在我的具体实验中得出的。您应该从带有自动调整参数的 RBF 开始,看看它是否足够。

总结这一切取决于你的具体实验。但是如果你使用 Dense SIFT,也许你可以尝试增加集群的数量,并以不同的规模调用 Dense SIFT(我推荐你使用 PHOW 方式)。

编辑:我在看 OpenCV DenseSift,也许你可以从

m_detector=new DenseFeatureDetector(4, 4, 1.5);

知道 vlfeat PHOW 使用 [4 6 8 10] 作为 bin 大小。

于 2013-02-05T15:31:49.607 回答