我正在使用OpenCV的CvSVM来学习29个类别的支持向量机分类器。
应用程序是人脸识别,我将人脸图像划分为3x6的网格。对于网格中的每个块,我对从块中提取的SURF特征训练SVM分类器。
我在这里读到http://www.csie.ntu.edu.tw/~cjlin/talks.html,以类似的方式扩展训练和测试数据是非常重要的。
CvSVM是否对数据进行缩放?如果没有,OpenCV是否提供了一些我可以用来进行缩放的函数?
发布于 2015-01-29 18:13:51
有一个非常好的跨平台库,可以在实践中利用机器学习算法:
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的包装类。
https://stackoverflow.com/questions/28203419
复制相似问题