使用Accord.Net保存使用svm训练的excel文件中对象的功能

时间:2012-04-19 20:01:44

标签: excel svm surf object-detection accord.net

我看了一下一致的库样本中的Surf和SVM样本。我想知道如何保存我从excel文件中的“SURF”获得的功能,因为该功能(即兴趣点)是包含一些字段的记录和一个float(Descriptor)数组,在SVMs示例中,所有列都只是一个值,没有记录包含一个列表,例如在XOR分类中输入(一个特征)是

(x =0 , y=0 , G=1)

但是我在这里有一个包含下一个字段的记录:

( Laplacian  : int ,    Orientation  : float    , Response  : float     ,Scale : float ,    X  :  float , Y   : float  , Descriptor   : [] float   )

而且我不确定但是如果我想像XOR问题一样,我应该添加一个对象名称的字段。我发现SVM采用矩阵,我无法弄清楚如何在这两个样本之间实现这种兼容性,我希望我的问题很明确。

提前致谢

1 个答案:

答案 0 :(得分:1)

这个问题有点不清楚,但我会提出一个解决方案。作为免责声明,为了避免进一步的复杂化,我应该说我是这个图书馆的作者。

如果您只想使用SURF功能训练SVM,那么您可以跳过Excel部分。创建图像的视觉词表示形式,然后存储此表示而不是SURF功能应该更有用。 在图像分类示例应用程序发布之前,似乎问了这个问题,所以如果您仍然对答案感兴趣,请查看它。

在任何情况下,视觉词袋模型都能够将您的可变长度数量的要素转换为固定长度向量,如果您想要训练SVM或者只是存储那么这应该更容易管理在一个文件中。以下是如何使用BoW模型提取固定长度功能的示例:

// Create bag-of-words (BoW) with the given number of words
BagOfVisualWords bow = new BagOfVisualWords(numberOfWords);

bow.Compute( ... ); // pass all images in the training set

// And then you can create a fixed-length 
// representation of an given image using
double[] featureVector = bow.GetFeatureVector(image);

我将不会在此处发布任何链接,因此看起来我不会进一步推广自己的项目,但如果您使用可执行安装程序安装了分类示例应用程序,则可以在开始菜单下使用;并在项目的网站上。