【发布时间】:2016-10-18 18:10:55
【问题描述】:
我正在尝试训练 SVM 来预测交通标志,但对于不同的输入图像,我总是得到相同的预测结果。
谁能为我解释一下为什么?
这是我的代码:
我也打印并比较了测试图像和训练图像的HOG值,它是相同的,但是为什么预测结果总是相同的值。
【问题讨论】:
-
训练数据中类的分布情况如何?
标签: opencv visual-c++ machine-learning svm
我正在尝试训练 SVM 来预测交通标志,但对于不同的输入图像,我总是得到相同的预测结果。
谁能为我解释一下为什么?
这是我的代码:
我也打印并比较了测试图像和训练图像的HOG值,它是相同的,但是为什么预测结果总是相同的值。
【问题讨论】:
标签: opencv visual-c++ machine-learning svm
来自您的代码:
hog.compute(img_gray, descriptorsValues, Size(0, 0), Size(0, 0), locations);
//vector to Mat
Mat fm = Mat(descriptorsValues);
//Classification data
Ptr<SVM> svm = Algorithm::load<SVM>(nameSVM);
std::cout << "Model Loaded" << std::endl;
Mat image1d(1, fm.rows, CV_32FC1);
imshow("gradient 1", image1d);
float result = svm->predict(image1d);
您不小心创建了一个空的新图像 (image1d) 并使用此未初始化的矩阵进行分类。请改用以下 svm 预测函数调用:
float result = svm->predict(fm);
【讨论】: