我正在使用 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('数据文件.dat')
问题是 svm.load() 函数在 OpenCV 3.0.0 中根本没有实现。
我也尝试过使用 StatModel(model) 进行加载,但也没有用。
到目前为止,我对这个项目的 Python 部分投入了大量精力,宁愿不将其重新编程为 C++,现在我有 SVM 在训练方面工作,我宁愿不使用 SciPy 中的东西。
我希望加载功能以某种方式重命名并且没有很好的记录。有任何想法吗?
最佳答案
如果您查看 SVM_create() 的帮助,您会发现没有像 read() 或 load() 这样的函数,只有 save() (继承自 Algorithm 类):
>>> import cv2
>>> help(cv2.ml.SVM_create())
关于python - OpenCV 3.0.0 SVM 训练模型保存/加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32809849/