2017-11-09 16 views
2

私はOpenCVライブラリとPython言語を使用してFisher Faceアルゴリズムを使用して顔認識モデルをトレーニングしています。OpenCVオブジェクトをPythonでメモリに保存する

fisherFace = cv2.face.FisherFaceRecognizer_create() 
    fisherFace.train(imagefaceList, np.array(labelsIndexList)) 

ファイル/メモリにこのモデルを保存します。言い換えれば、私は 'fisherface'オブジェクトを保存したい。私はthisを使ってこのオブジェクトを保存するためにpickleモジュールを試しました。私はこのobject.Codeは以下の通りです酸洗およびunpickle化することはできませんよ。

class test(object): 
    def __init__(self, a): 
     self.a = a 
def pickle_test(t): 
    print('pickling a test instance...') 
     return test, (t.a,) 
copyreg.pickle(test, pickle_test) 
t = test(f) 
t1 = copy.copy(t) 
t2 = pickle.dumps(t) 

は漁師の顔アルゴリズムのために訓練モデルを保存し、顔認識のための同じモデルをロードすることによって、他の場所でそれを使用可能な方法はありますか?

+0

「cv2.FileStorage」を使用してください。 https://docs.opencv.org/3.3.1/da/d56/classcv_1_1FileStorage.html – zindarod

答えて

0

FaceRecognizerクラスには、xml/ymlファイルをloadメソッドでロードできるディスクに保存するsaveメソッドがあります。

ここにクラスメソッドのリストがあります。

だから、あなたはファイルにモデルを保存するには

fisherFace.save("model.xml") 

を行うことができるはず。 https://docs.opencv.org/3.0-last-rst/modules/face/doc/facerec_api.html

+0

ありがとうございます。モデルを保存することはできますが、FisherFaceRecognizerクラスにsave()メソッドとload()メソッドを直接インクルードしないopencv 3.3.0バージョンを使用しています。これはAlgorithmクラスから継承されています。だから、保存されたモデルを読み込む方法を助けることができますか?前もって感謝します。 –

関連する問題