0
我正在嘗試使用從圖像中提取的SIFT描述符來訓練SVM。然後我想將格式保存爲.xml
格式,以便我可以再次加載它。SVM分類器沒有被保存在「.xml」中?
我的結構:我有10個班級,每班有100個樣本。
問題:如果我爲每個類使用10-50個樣本,那麼SVM會被保存,我可以在我的文件夾中看到一個classifer.xml
文件。但是如果我想要使用更多的樣本每類大約100個樣本,則SVM不會被保存。
我認爲它可能需要一些時間來保存,但我已經等了這麼久(我已經做了好幾次)。
我對SVM訓練碼如下:
void svm::svmTrain()
{
cv::Mat trainme; // it should contain the feature vectors
cv::Mat labels; // it will contain the class labels
createTrainingDateUsingBOW(trainme, labels);
//svm parameters
CvTermCriteria criteria = cvTermCriteria(CV_TERMCRIT_EPS, 1000, FLT_EPSILON);
CvSVMParams svm_params = CvSVMParams (CvSVM::C_SVC, CvSVM::POLY, 10.0 , 8.0 , 1.0 , 10.0 , 0.5 , 0.1 , NULL , criteria); //CvSVMParams --it is a struct
//(svm_type, kernel_type, degree , gamma , coef0 , Cvalue, nu , p , class_weights, term_crit)
cout<<"\n saving SVM \n";
cv::SVM svm;
svm.train(trainme, labels, cv::Mat(), cv::Mat(), svm_params);
svm.save("classifier.xml");
cout<<"\n SVM classifier is saved.";
}
PS:所以,如果我的樣品每班40-60更然後,我到高達saving SVM
從上面的代碼,但從來沒有達到SVM classifier is saved.
35個樣品/類,它在一分鐘內得到保存,但如果我選擇了40個樣品/類...它沒有得到保存..不奇怪? (我還沒有試過你的建議) – skm
哦,是的,這聽起來很奇怪,不可能猜出原因。 – 4nonymou5