вот мой код:
int num_files = 2;
sad = sad.reshape(0, 1);
happy = happy.reshape(0, 1);
Mat trainData(num_files, happy.cols, CV_32FC1);
happy.copyTo(trainData.rowRange(0, 1));
sad.copyTo(trainData.rowRange(1, 2));
trainData.convertTo(trainData,CV_32FC1);
Mat labelsMat(num_files ,1 ,CV_32FC1);
labelsMat.rowRange(0, 1).setTo(1);
labelsMat.rowRange(1, 2).setTo(-1);
labelsMat.convertTo(labelsMat ,CV_32FC1);
CvSVMParams params;
params.svm_type = SVM::C_SVC;
params.kernel_type = SVM::RBF;
params.term_crit = TermCriteria(CV_TERMCRIT_ITER, (int)1e7, 1e-6);
CvSVM svm;
svm.train(trainData, labelsMat, Mat(), Mat(), params);
Mat testData = elbp;
testData =testData.reshape(0,1);
testData.convertTo(testData ,CV_32FC1);
float response = svm.predict(testData);
извините, я совершенно нуб.
Я пытаюсь классифицировать счастливое и грустное лицо по SVM после преобразования изображения лица в LBP.
Но прогнозируемый результат — всегда более высокая метка, если я маркирую счастливую 1 и грустную -1, это всегда дает мне 1, но если я маркирую счастливую 1 и грустную 2, это дает мою 2.
я думаю, что с меткой или параметрами что-то не так, или мне нужно изменить способ обучения lbp для обучения гистограммы.
Пожалуйста, помогите мне и дайте мне совет.
Спасибо огромное.
Задача ещё не решена.