Quantcast
Channel: OpenCV Q&A Forum - Latest question feed
Viewing all articles
Browse latest Browse all 19555

PCA + SVM ?

$
0
0
Hi, I am trying to reduce the dimensionality of my feature set using PCA and then classification using SVM. I have created and populated my feature matrix and label matrix : Mat labels(875, 1, CV_32F); Mat trainingData(875, 23040, CV_32F); Where each row corresponds to an image and each column is a feature. The features are histogram bins (256) from multiple regions in the image (90 regions). 90x256 = 23040. I now want to reduce the 23040 features to something less before training, say 512 features. I have this: /*Reduce dimensionality using PCA*/ Mat projection_result; PCA pca(trainingData, Mat(), CV_PCA_DATA_AS_ROW,512); pca.project(trainingData, projection_result); /*Classification*/ CvSVMParams params; params.svm_type = CvSVM::C_SVC; params.kernel_type = CvSVM::RBF; CvSVM SVM; SVM.train_auto(projection_result, labels, Mat(), Mat(), params); SVM.save("trainedData_test.xml"); My question is, is this correct ? And how would I now use prediction with PCA ? /*Load SVM*/ CvSVM SVM; SVM.load("trainedData_test.xml"); /*Populate test matrix*/ Mat testData(1, 23040, CV_32F); /*PCA ???*/ /*Classify*/ int label = SVM.predict(projection_result ???); Thanks !

Viewing all articles
Browse latest Browse all 19555

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>