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

用训练图像的可变大小hog描述符训练SVM(MATLAB),matlab,machine-learning,computer-vision,svm,matlab-cvst,Matlab,Machine Learning,Computer Vision,Svm,Matlab Cvst,我正在尝试使用HoG+SVM将对象分类为不同的类别。问题在于训练图像的维度不同。因此,结果HoG描述符的长度是可变的。我已将所有训练图像的特征提取到一个单元格中。单元的每个元素i是数据集中图像i的HoG描述符向量。我的问题是,如何使其与训练SVM分类器兼容(使用svmtrain函数)?SVM不能用可变长度向量训练。您必须使用某种转换,将数据映射为恒定长度表示。例如,您可以执行众所周知的降维技术。正如lejlot正确提到的,SVM无法使用可变长度向量进行训练 您只需将图像大小规格化为一,即256x

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

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

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

您只需将图像大小规格化为一,即256x256。有3种可能性可以做到这一点:

  • 修剪中心周围的256x256补丁
  • 将图像大小调整为256x256,放弃原始纵横比
  • 将图像大小调整为256xM,其中M<256-保留原始纵横比。然后在左侧和右侧(或顶部和底部)添加灰色条纹,以将图像填充到256x256

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

    除了降维之外,您对如何处理此问题有何想法?谢谢老ufo,这非常有用。我现在就试试这个。