opencv3.0 svm导入模型预测结果跟训练的模型不一致


用的是opencv 3.0
第一次训练模型
Ptr<TrainData> tData = TrainData::create(hsMat, ROW_SAMPLE, labelsMat);
    svm->train(tData);
        svm->save("svm.xml");
        svm->predict(testcase);


后面直接读入模型
svm = Algorithm::load<SVM>("svm.xml");
svm->predict(testcase);

导入的代码跟opencv测试源码使用的方法一样的了,参考test_save_load.cpp
但是明显结果错误,无论任何样例输入,输出都是第一个类别的标签,感觉就像是没有读进去一样,模型为空。
相反在第一次训练模型时预测结果是正确的。

其中Algorithm、StatModel、SVM类下都有save方法,三者是继承关系Algorithm<--StatModel<--SVM
打开保存的模型能看见内容、标签基本正确。

网上也找不到任何类似解决方案,求大神指点。
svm截图.jpg svm1.jpg
已邀请:

微信用户512594

赞同来自:


我也遇到同样的问题,请问找到原因了吗?

要回复问题请先登录注册