SVM 训练 C++ OpenCV
SVM training C++ OpenCV
我的印象是 training data
用于训练 SVM
由图像特征组成,但是在再次 reading this post 之后,training_mat
被赋予示例中的 SVM
只是将 img_mat
扁平化为一维。
所以我的问题是,在训练 SVM
时,您是逐行完整地给出整个图像,还是 detect
和 extract
特征,然后将其中的 Mat
展平为 1-Dimension?
您可以提取特征,也可以使用像素强度值作为特征。在这个例子中,他们做了后者。在这种情况下,您最终会得到非常多的功能,其中许多功能可能没有用。这使得 SVM 训练的收敛更加困难,但仍然是可能的。根据我的个人经验,如果您提取较少数量的 "good" 最能描述您的数据的特征,SVM 的效果会更好。然而,近年来,已经表明,最先进的估计器,如深度神经网络(当使用而不是 SVM 时)可以在仅使用像素强度值作为特征时表现得非常好。这消除了在 public 数据集(如 ImageNet)
上产生最先进结果的方法中对特征提取的需要
我的印象是 training data
用于训练 SVM
由图像特征组成,但是在再次 reading this post 之后,training_mat
被赋予示例中的 SVM
只是将 img_mat
扁平化为一维。
所以我的问题是,在训练 SVM
时,您是逐行完整地给出整个图像,还是 detect
和 extract
特征,然后将其中的 Mat
展平为 1-Dimension?
您可以提取特征,也可以使用像素强度值作为特征。在这个例子中,他们做了后者。在这种情况下,您最终会得到非常多的功能,其中许多功能可能没有用。这使得 SVM 训练的收敛更加困难,但仍然是可能的。根据我的个人经验,如果您提取较少数量的 "good" 最能描述您的数据的特征,SVM 的效果会更好。然而,近年来,已经表明,最先进的估计器,如深度神经网络(当使用而不是 SVM 时)可以在仅使用像素强度值作为特征时表现得非常好。这消除了在 public 数据集(如 ImageNet)
上产生最先进结果的方法中对特征提取的需要