OpenCV 3.0.0 SVM训练模型保存/加载

时间:2015-09-27 15:54:56

标签: python opencv svm

我使用OpenCV 3.0.0和Python 2.7.9从实时视频流中提取检测到的对象的图像,并将它们分类为特定对象类或不使用OpenCV机器学习(cv2.ml)支持向量机(SVM)。

我用来训练SVM的代码在图像中生成SIFT关键点,使用KMEANS聚类,然后输入SVM训练算法。所有这些都很好,但因为它不一定是所需操作代码的一部分,所以我单独完成它并使用以下命令将SVM模型保存到.dat文件中:

svm是使用cv2.ml.SVM_create()

创建的

svm.save(' datafile.dat')

问题是在OpenCV 3.0.0中根本没有实现svm.load()函数。

我已尝试使用StatModel(模型)加载,但也没有用。

到目前为止,我已经投入了这个项目的python部分并且宁愿不将它重新编程为C ++,现在我有SVM在训练方面工作,宁愿不在SciPy中使用某些东西。

我希望加载功能以某种方式重命名,并且没有很好地记录。有任何想法吗?

1 个答案:

答案 0 :(得分:2)

不幸的是,它是bug。另请参阅此question

如果检查SVM_create()的帮助,你会发现没有像read()或load()这样的函数,而是save()(继承自Algorithm类):

>>> import cv2
>>> help(cv2.ml.SVM_create())