将 OpenCV 对象保存在 python 内存中
Saving OpenCV object in memory in python
我正在使用 OpenCV 库和 Python 语言使用 Fisher Face 算法训练人脸识别模型。
fisherFace = cv2.face.FisherFaceRecognizer_create()
fisherFace.train(imagefaceList, np.array(labelsIndexList))
我想在file/memory中保存这个模型。换句话说,我想保存 'fisherface' 对象。我已经尝试使用 this 保存此对象的 pickle 模块。我无法腌制和解开这个 object.Code 如下所示:
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)
是否有任何方法可以保存训练好的 Fisher 人脸算法模型,并通过加载相同的人脸识别模型在其他地方使用它?
FaceRecognizer class 有一个保存方法,将 xml/yml 文件存储到磁盘中,可以使用加载方法加载。
这是class方法列表。
所以,你应该可以做到
fisherFace.save("model.xml")
将模型保存到文件。
https://docs.opencv.org/3.0-last-rst/modules/face/doc/facerec_api.html
训练完成后要保存人脸识别器,可以使用write方法并保存
状态作为 yaml 或 xml 文件。
要在程序的下一次迭代中使用保存的模型,请调用识别器的读取方法并传递保存状态的文件的位置。
我正在使用 OpenCV 库和 Python 语言使用 Fisher Face 算法训练人脸识别模型。
fisherFace = cv2.face.FisherFaceRecognizer_create()
fisherFace.train(imagefaceList, np.array(labelsIndexList))
我想在file/memory中保存这个模型。换句话说,我想保存 'fisherface' 对象。我已经尝试使用 this 保存此对象的 pickle 模块。我无法腌制和解开这个 object.Code 如下所示:
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)
是否有任何方法可以保存训练好的 Fisher 人脸算法模型,并通过加载相同的人脸识别模型在其他地方使用它?
FaceRecognizer class 有一个保存方法,将 xml/yml 文件存储到磁盘中,可以使用加载方法加载。
这是class方法列表。
所以,你应该可以做到
fisherFace.save("model.xml")
将模型保存到文件。 https://docs.opencv.org/3.0-last-rst/modules/face/doc/facerec_api.html
训练完成后要保存人脸识别器,可以使用write方法并保存 状态作为 yaml 或 xml 文件。 要在程序的下一次迭代中使用保存的模型,请调用识别器的读取方法并传递保存状态的文件的位置。