【问题标题】:How to use SIFT features/descriptors as input for SVM training?如何使用 SIFT 特征/描述符作为 SVM 训练的输入?
【发布时间】:2015-10-30 11:24:24
【问题描述】:

我想使用 C++ 将脑肿瘤的 MRI 图像分类为良性和恶性。我正在使用 SIFT 特征,我正在关注的论文在训练 SVM 分类器之前使用 kmeans 对它们进行聚类。我不明白为什么有必要这样做?据我所知,kmeans 只对特征进行聚类;它不会改变输入的大小。

我读过可能的方法是 BoW 和直方图。 在直方图方法中,它只计算每个集群中的特征数对吗?我认为这不会提供我对良性和恶性肿瘤进行分类所需的信息,因为它们可能既小又大。 在 BoW 方法中,我不明白这个link

基本上,我不知道如何处理我的 SIFT 功能以将其用作 SVM 的输入。我真的必须创建某种字典吗?我求你了,请赐教。非常感谢!

【问题讨论】:

    标签: c++ opencv svm sift


    【解决方案1】:

    我对 OpenCV 或 SIFT 功能不太熟悉,但这应该足够通用,对所有编程语言都有用。我还将在下面仅描述 BoW 方法。

    假设我们有N 图像。对于每个图像i,我们有F 个特征数,每个特征有D 个维度。我们可以把所有的特征放到一个数组feats,这样就变成了这样:

    [1, 2, ..., D]
    [..., ..., ..., D]
    [N*F, ..., ..., D] 
    

    feats 的每一行都是一个特征,有D 个维度,我们一共有N*F 个特征。

    在 k-means 中,我们采用所有这些特征并将它们分组到 k 集群中。因此,每一个特征都被分配给一个集群。大多数 k-means 函数通常会返回大小为 k x D 的矩阵 C,它表示集群的质心。这个矩阵C 是 k-means 算法的“码本”或“字典”。有些还返回一个大小为N*F 的向量,它显示每个特征被分配到哪个集群(在OpenCv 中,这由此链接中的labels 变量表示:http://www.developerstation.org/2012/01/kmeans-clustering-in-opencv-with-c.html)。

    由于我们已经有了所有特征的分配,每个图像i 都有F 特征,可以简单地用它们所属的聚类来表示。例如,如果原始图像表示为

    [1, 2, ..., D]
    [..., ..., ..., D]
    [F, ..., ..., D] 
    

    那么图像也可以简单地表示为向量:

    [1] % Assignment of feature 1
    [...]
    [F] % Assignment of feature F
    

    因此,您可以采用此向量并形成所表示的集群的直方图h。此直方图是图像的特征向量,您可以稍后在 SVM 中使用。

    附:如果您需要任何进一步的说明和/或示例,请告诉我!

    【讨论】:

    • 非常感谢!我现在明白了!我还有几个问题。 (1) 我将聚类的所有向量都来自这两个类的图像,对吗? (2)另外,最后,图像会用什么大小的直方图来表示?向量的每个元素是属于该簇的该图像中特征的计数是 k 吗?或者是 F ,其中向量的每个元素都是该特征所属的集群的整数?我想是k,我理解对了吗?谢谢!
    • (1) 您聚类的向量/特征来自两个类。 (2) 直方图的大小为k。直方图中的元素i 是集群i 在图像中出现的次数。我很高兴能帮上忙:D
    • 好吧。最后一个问题,对不起。我问我的教授是否可以在我的案例中使用 BoW(鉴于它的缺点是它忽略了补丁之间的空间关系)......但他说不。你怎么看?我应该使用其他方法吗?
    • 您可以尝试空间金字塔匹配 (SPM)。它类似于 BoW,您可以在这里阅读:csd.uwo.ca/~olga/Courses/Fall2014/CS9840/Papers/…。这个版本确实考虑了补丁之间的空间关系。基本上,金字塔的 0 级是标准的 BoW。在级别 1 计算标准 BoW,然后将图像分为 4 个区域。计算每个区域的直方图并赋予更高的权重。因此,您有 5 个直方图,可以更好地显示补丁之间的关系。如果您对此有任何具体问题,请告诉我。
    • 我看到了 LIBPMK,但它似乎很难实现。此链接link 是我从了解 SPM 中获得的最接近的链接。但我不明白(对于#'s 2-3)什么是“坐标直方图”,以及(对于#5)如何知道第 k 个视觉词的概率。另外,SVM-RBF 的内核值有什么用?非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2020-10-17
    • 2017-10-19
    • 2011-11-30
    • 2014-05-15
    • 2015-05-11
    • 2012-09-17
    • 2013-04-16
    • 2011-10-08
    相关资源
    最近更新 更多