CvSVM是否会扩展培训数据?

时间:2015-01-28 22:12:22

标签: opencv svm libsvm

我正在使用OpenCV的CvSVM来学习29个类的SVM分类器。

应用程序是人脸识别,我将人脸图像划分为3x6网格。对于网格中的每个块,我在从块中提取的SURF特征上训练SVM分类器。

我在这里阅读http://www.csie.ntu.edu.tw/~cjlin/talks.html,同样地扩展训练和测试数据非常重要。

CvSVM是否会扩展数据?如果没有,OpenCV是否提供了我可以用来进行缩放的任何功能?

1 个答案:

答案 0 :(得分:0)

在实践中有一个非常好的跨平台库用于利用机器学习算法:
http://www.nickgillian.com/software/grt

我不知道OpenCV是否提供了扩展训练/测试数据的机会以获得更好的分类结果,但是使用GRT你可以做到: https://github.com/nickgillian/grt/blob/master/GRT/ClassificationModules/SVM/SVM.h

...
@param bool useScaling: sets if the training/prediction data will be scaled to the default range of [-1. 1.]. The SVM algorithm commonly achieves a better classification result if scaling is turned on. The default useScaling value is useScaling=true
...
SVM(UINT kernelType = LINEAR_KERNEL,UINT svmType = C_SVC,bool useScaling = true,bool useNullRejection = false,bool useAutoGamma = true,double gamma = 0.1,UINT degree = 3,double coef0 = 0,double nu = 0.5,double C = 1,bool useCrossValidation = false,UINT kFoldValue = 10);

这也是libsvm的包装类。