我从文件加载训练的SVM时遇到问题。我使用Python和OpenCv 3.1.0。我通过以下方式创建svm对象:
svm = cv2.ml.SVM_create()
接下来,我训练svm并保存到文件:
svm.save('data.xml')
现在我想在其他Python脚本中加载此文件。在文档中,我无法找到任何方法。
是否有从文件加载svm的技巧?感谢您的回复。
答案 0 :(得分:5)
我认为没有svm.load(filepath)方法作为svm.save(filepath)的对应方面有点令人困惑,但当我阅读模块帮助时,我认为SVM_load是一个孩子cv2.ml(SVM_create的兄弟)。
确保您的opencv 主分支是最新的(目前版本为3.1.0-dev)
>>> import cv2
>>> cv2.__version__
'3.1.0-dev'
>>> help(cv2.ml)
返回
SVM_create(...)
SVM_create() -> retval
SVM_load(...)
SVM_load(filepath) -> retval
所以你可以简单地使用类似的东西:
if not os.path.isfile('svm.dat'):
svm = cv2.ml.SVM_create()
...
svm.save('svm.dat')
else:
svm = cv2.ml.SVM_load('svm.dat')