TypeError:无法pickle face_BasicFaceRecognizer对象

时间:2016-10-18 02:36:01

标签: python opencv pickle

我想存储训练对象,但上面显示的错误。如果我需要存储这个训练有素的模型,我该怎么办?

fishface = cv2.face.createFisherFaceRecognizer() 
m = fishface.train(training_data, np.asarray(training_labels))
output = open('data.pkl', 'wb')
pickle.dump(fishface, output)

2 个答案:

答案 0 :(得分:0)

不幸的是,OpenCV绑定通常不支持酸洗。您必须使用内置的OpenCV序列化。

如果m.save("serialized_recognizer.cv2")是实例化的FaceRecognizer,则可以m.load("serialized_recognizer.cv2")并在运行时m执行。

答案 1 :(得分:0)

这是我用来将训练对象存储到当前工作目录的内容。除了我的应用程序以及每次培训模型所花费的时间外,我还可以保存所有培训数据的工作。

 for (int x = listBox1.SelectedIndices.Count - 1; x >= 0; x--)
        {
            int var = listBox1.SelectedIndices[x];
            listBox1.Items.RemoveAt(var);

        }