2014-05-13 106 views
5

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

回答

7

正如lejlot正确提到的,支持向量机不能用可变长度向量训练。

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

  1. 裁剪中心周围的256x256补丁。
  2. 将图像大小调整为256x256,丢弃原始宽高比。
  3. 将图像调整为256xM,其中M保留原始宽高比。在左侧和右侧(或顶部和底部)添加灰色条纹以将图像填充到256x256。

所有变种都由不同的作者使用,你必须检查哪一个最适合你的任务。

+0

谢谢old-ufo,这非常有帮助。我现在试试看。 –

3

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

+0

关于如何处理这个问题的任何想法,除了降维? –