好的,我见过的几乎所有使用HoG功能的应用程序都使用线性svm作为分类器。有人可以解释为什么选择线性svm以及为什么它们会有良好的性能?
选择线性svm是因为它比使用多项式或高斯内核的svms更简单,更容易训练并且使用这些内核并没有提供明显更好的性能吗?
答案 0 :(得分:1)
欲了解更多信息,请阅读名为“Why do linear SVMs trained on HOG features perform so well?”希尔顿布里斯托,Simon Lucey(2014)的期刊论文
答案 1 :(得分:0)
线性或非线性不是HOG或任何其他功能的问题。它只与实例数+簇数+特征尺寸数有关。通常,线性模型优先用于包括比实例更多的特征尺寸的数据集。如果情况是逆转的,那么你应该去非线性的内核SVM,因为它隐式地将你的数据投射到另一个空间,你的实例再次用更多的维度表示。
在大多数情况下,通过将HOG应用于图像,可以获得非常多的要素尺寸。因此,您可以简单地使用线性模型。但是,如果你有100000 ...类和10000000 ...图像,那么HOG +线性模型将会不足。因此,在ImageNet挑战中没有人使用HOG和线性SVM。
答案 2 :(得分:0)
就我个人而言,我从未使用过梯度直方图,但在您的情况下,我会评估您的HoG数据是否线性区分。我不会假设如果每个人都使用线性分类器来实现HoG,那是因为你应该这样做。批判性地评估那个断言。
尝试此操作:使用LDA投影HoG数据集,然后执行转换后的要素空间的散点图。检查是否可以使用最大边距超平面来区分类别。
答案 3 :(得分:0)
真正重要的是速度。无论您使用什么功能,内核SVM都可以在检测中获得更好的性能。 但内核SVM非常耗时,特别是对于多次评估分类器的滑动窗口检测器。因此,通常在对象检测中选择线性SVM。 HOG是对象检测的良好描述符,线性SVM可以实现良好的性能。如果不考虑计算复杂性,可以预期内核SVM会有更好的性能。