使用可变大小的训练图像的猪描述符训练SVM(MATLAB)

时间:2014-05-13 10:02:16

标签: matlab machine-learning computer-vision svm matlab-cvst

我正在尝试使用HoG + SVM将对象分类为不同的类别。问题是训练图像的维度是不同的。因此,生成的HoG描述符具有可变长度。我将所有训练图像中的特征提取到一个单元格中。单元的每个元素i是数据集中图像i的HoG描述符的向量。我的问题是如何使它兼容训练SVM分类器(使用svmtrain函数)?

2 个答案:

答案 0 :(得分:7)

正如lejlot正确提到的,SVM无法使用可变长度向量进行训练。

您可以将图像大小标准化为1,即256x256。有三种可能性:

  1. 围绕中心裁剪256x256补丁。
  2. 将图像大小调整为256x256,丢弃原始宽高比。
  3. 将图像大小调整为256xM,其中M <1。 256 - 保留原始宽高比。然后在左右(或顶部和底部)添加灰色条纹以将图像填充到256x256。
  4. 所有变体都由不同的作者使用,你必须检查哪一个最适合你的任务。

答案 1 :(得分:3)

SVM 无法训练使用可变长度向量。您必须使用某种转换,将您的数据映射到恒定长度表示。例如,您可以执行众所周知的降维技术。