SVM 训练 C++ OpenCV

Posted

技术标签:

【中文标题】SVM 训练 C++ OpenCV【英文标题】:SVM training C++ OpenCV 【发布时间】:2015-04-18 10:38:57 【问题描述】:

我的印象是,用于训练SVMtraining data 包含图像特征,但在再次reading this post 之后,示例中的SVMtraining_mat 只是@ 987654326@ 扁平化为一维。

所以我的问题是,在训练 SVM 时,你是给它完整的图像,逐行,还是你 detectextract 的特征,然后将 Mat 的特征压平变成一维?

【问题讨论】:

【参考方案1】:

您可以提取特征,也可以使用像素强度值作为特征。在这个例子中,他们做了后者。在这种情况下,您最终会得到大量功能,其中许多功能可能无用。这使得 SVM 训练的收敛更加困难,但仍然是可能的。根据我的个人经验,如果您提取较少数量的最能描述您的数据的“好”特征,则 SVM 效果会更好。然而,近年来,已经表明,像深度神经网络这样的最先进的估计器(当使用而不是 SVM 时)可以在仅使用像素强度值作为特征的情况下表现得非常好。这消除了在公共数据集(如ImageNet)上产生最先进结果的方法中对特征提取的需求

【讨论】:

以上是关于SVM 训练 C++ OpenCV的主要内容,如果未能解决你的问题,请参考以下文章

opencv C++ SVM模型训练与分类实现

将经过训练的 SVM 从 scikit-learn 导入到 OpenCV

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

C++ OpenCV SVM 预测不工作

Opencv 3 SVM 训练

Opencv 3 SVM 训练