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

Posted

技术标签:

【中文标题】使用可变大小的训练图像 hog 描述符训练 SVM (MATLAB)【英文标题】:Training SVM with variable sized hog descriptors of training images (MATLAB) 【发布时间】:2014-06-30 22:46:36 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

除了降维之外,关于如何处理这个问题的任何想法?【参考方案2】:

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

您可以将图像尺寸标准化为 1,即 256x256。这样做有 3 种可能性:

    围绕中心裁剪 256x256 补丁。 将图像大小调整为 256x256,丢弃原始纵横比。 将图像大小调整为 256xM,其中 M

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

【讨论】:

谢谢老飞碟,这很有帮助。我现在就试试这个。

以上是关于使用可变大小的训练图像 hog 描述符训练 SVM (MATLAB)的主要内容,如果未能解决你的问题,请参考以下文章

无论图像大小如何,都可以计算固定长度的梯度直方图(HOG)

OpenCV - 使用 SVM 和 HOG 进行人员检测

如何使 HOG 特征向量适应线性 svm 输入

为啥线性支持向量机与 HoG 描述符配合得很好?

如何在 Python 中使用 OpenCV 3.0 中的 HOG 功能训练 SVM 分类器?

opencv进阶-HOG+SVM行人检测(已训练好的分类器)