2015-09-27 196 views
2

我正在使用OpenCV 3.0.0和Python 2.7.9將實時視頻流中檢測到的對象圖像拉出來,並將它們分類爲特定類別對象或不使用OpenCV機器學習(cv2.ml)支持向量機(SVM)。OpenCV 3.0.0 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中使用某些東西。

我希望加載功能以某種方式重命名,只是沒有很好的記錄。有任何想法嗎?

回答

2

不幸的是它是一個bug。另請參閱此question

如果您檢查SVM_create(幫助),你會看到有一個像讀無功能()或load(),但保存()(從算法類繼承):

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