我在opencv中使用函数predict
来分类我的手势。
svm.load("train.xml");
float ret = svm.predict(mat);//mat is my feature vector
我定义了5个标签(1.0,2.0,3.0,4.0,5.0)
,但实际上ret的值为(0.521220207,-0.247173533,-0.127723947······)
所以我很困惑。作为Opencv官方文档,该函数在我的情况下返回一个类标签(分类)。
更新:我还不知道为什么会出现这个结果。但我选择新功能来训练模型,预测函数的返回值是我在训练阶段定义的(例如1或2或3等)。
答案 0 :(得分:0)
在训练SVM期间,您需要为每类训练数据分配一个标签。
对样本进行分类时,返回的结果将与这些标签中的一个匹配,告诉您预测样本属于哪个类。
这里还有一些文档可能有所帮助:
http://docs.opencv.org/doc/tutorials/ml/introduction_to_svm/introduction_to_svm.html