मैं इस पर फंस गया हूं।ओपनसीवी एसवीएम ट्रेन पर अपवाद फेंक रहा है, "खराब तर्क (केवल एक ही कक्षा है)"
मैं ओपनसीवी फीचर 2 डी फ्रेमवर्क के माध्यम से कुछ ऑब्जेक्ट वर्गीकरण करने की कोशिश कर रहा हूं, लेकिन मेरे एसवीएम को प्रशिक्षित करने में परेशानी में भाग रहा हूं।
मैं शब्दावली निकालने और BowKMeansTrainer का उपयोग करके उन्हें क्लस्टर करने में सक्षम हूं, लेकिन ट्रेनर में जोड़ने और SVM.train विधि चलाने के लिए प्रशिक्षण डेटा से सुविधाओं को निकालने के बाद, मुझे निम्न अपवाद मिलता है।
OpenCV Error: Bad argument (There is only a single class) in cvPreprocessCategoricalResponses, file /home/tbu/prog/OpenCV-2.4.2/modules/ml/src /inner_functions.cpp, line 729
terminate called after throwing an instance of 'cv::Exception'
what(): /home/tbuchy/prog/OpenCV-2.4.2/modules/ml/src/inner_functions.cpp:729: error: (-5) There is only a single class in function cvPreprocessCategoricalResponses
मैं, आकार शब्दकोश संशोधित विभिन्न प्रशिक्षकों का उपयोग कर की कोशिश की है, मेरे मैट्रिक्स प्रकार सुनिश्चित सही (opencv के लिए नए मेरी क्षमता के अनुसार, अभी भी) कर रहे हैं।
क्या किसी ने इस त्रुटि को देखा है या इसे ठीक करने के तरीके पर कोई अंतर्दृष्टि है?
मेरे कोड इस तरह दिखता है:
trainingPaths = getFilePaths();
extractTrainingVocab(trainingPaths);
cout<<"Clustering..."<<endl;
Mat dictionary = bowTrainer.cluster();
bowDE.setVocabulary(dictionary);
Mat trainingData(0, dictionarySize, CV_32FC1);
Mat labels(0, 1, CV_32FC1);
extractBOWDescriptor(trainingPaths, trainingData, labels);
//making the classifier
CvSVM classifier;
CvSVMParams params;
params.svm_type = CvSVM::C_SVC;
params.kernel_type = CvSVM::LINEAR;
params.term_crit = cvTermCriteria(CV_TERMCRIT_ITER, 100, 1e-6);
classifier.train(trainingData, labels, Mat(), Mat(), params);
'निकालें BOWDescriptor' वास्तव में क्या करता है? और 'प्रशिक्षण डेटा' और 'लेबल' का आकार क्या है? – luhb
extractBOWDescriptor सिर्फ फाइलों की एक सूची के माध्यम से उपयोग करता है, सुविधाओं को पाता है (एसयूआरएफ फीचर डिटेक्टर का उपयोग करके), उन सुविधाओं को निकालता है, उन्हें प्रशिक्षण डेटा पर धक्का देता है और फिर लेबल में एक प्रविष्टि दबाता है। – tuck
प्रशिक्षण डेटा का आकार dictionary_size x 2 है और लेबल संख्या_of_images x 2 है – tuck