我想保存一个已经在多张图像上进行训练的分类器,以避免每次我运行程序时都要花费时间来对其进行重新训练。对于sklearn的分类器,我可以使用pickle.load对其进行腌制,但是当我尝试执行相同的操作时,出现以下错误:



这是分类器本身:

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_alt2.xml')
clf = cv2.face.LBPHFaceRecognizer_create()

img = cv2.imread(path, cv2.IMREAD_GRAYSCALE)
# detecting face using haarcasade
face = face_cascade.detectMultiScale(img, minNeighbors = 3)
# detecting region of interest and appending it to a separate matrix
for x, y, w, h in face:
     roi = img[y:y+h, x:x+w]
     x_train.append(roi)
     y_train.append(label)
 clf.train(x_train, y_train)

有什么办法可以保存此类分类器?

最佳答案

您可以将此类分类器另存为.yml文件。

例如:

clf.save('trainingData.yml')

您可以使用以下命令加载相同的内容:
clf.load('trainingData.yml')

关于python-3.x - 如何保存openCV分类器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51840367/

10-14 10:00