将对象的特征保存在 Excel 文件中,以便使用 SVM 使用 Accord.Net 进行训练



我在 accord 库样本中查看了 Surf 和 SVM 样本。我想知道如何将我从"SURF"获得的特征保存在 excel 文件中,因为特征(即兴趣点)是包含一些字段和浮点数数组(描述符)的记录,并且在 SVM 示例中,所有列都只是一个值,没有记录包含列表,例如在 XOR 分类中,输入(一个特征)是

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

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

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

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

提前致谢

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

如果您只想使用 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);

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

最新更新