SVM прогнозировать всегда дают мне более высокое значение метки

вот мой код:

    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 для обучения гистограммы.
Пожалуйста, помогите мне и дайте мне совет.
Спасибо огромное.

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]