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

标签 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('数据文件.dat')

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

我也尝试过使用 StatModel(model) 进行加载,但也没有用。

到目前为止,我对这个项目的 Python 部分投入了大量精力,宁愿不将其重新编程为 C++,现在我有 SVM 在训练方面工作,我宁愿不使用 SciPy 中的东西。

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

最佳答案

不幸的是它是一个bug .另见 question .

如果您查看 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/

相关文章:

python - 我们如何在 Cheetah 中预编译基本模板,以便 #include、#extends 和 #import 在 Weby 中正常工作

python - 需要帮助使用 lxml 和 xpath 抓取 NHL 统计表

python - opencv/ python : mask in module cv2 while streaming webcam video

machine-learning - 您能给我一个径向基函数核技巧的一步一步的数值示例吗?我想了解如何应用于感知机

r - 支持向量机预测错误

machine-learning - 与内核 svm 相​​关的困惑

python - 有什么方法可以在一步 for 循环中执行两步吗?

默认参数的python函数

python - 无法使用opencv获得我想要的分辨率

ios - 如何消除偏色或调整白平衡?