我试图使用HoG+SVM将对象分类到不同的类别中。问题是训练图像的尺寸各不相同。因此,生成的HoG描述符长度不一。我已经从所有训练图像中提取了特征,并将其存储在一个单元数组中。单元数组的每个元素i都是数据集中图像i的HoG描述符向量。我的问题是如何使其与训练SVM分类器(使用svmtrain函数)兼容?
回答:
正如[@人名]正确提到的,SVM无法使用长度可变的向量进行训练。
您可以将图像尺寸标准化到一个尺寸,例如256×256。有三种方法可以做到这一点:
- 从图像中心裁剪出256×256的区域。
- 将图像调整到256×256,丢弃原始纵横比。
- 将图像调整到256xM,其中M < 256 – 保留原始纵横比。然后在图像的左右两侧(或上下两侧)添加灰色条带,以填充图像至256×256。
不同作者使用了所有这些变体,您需要检查哪一种最适合您的任务。