基于OpenCV的人脸识别考勤系统,通欧摄像头实时录入人脸照片作为LBPH识别器的训练样本,录入成功,但在进行人脸识别时,却识别不了,并报以下错误:
label, confidence = RECOGNIZER.predict(photo) # 识别器开始分析人脸图像
cv2.error: OpenCV(3.4.18) D:\a\opencv-python\opencv-python\opencv_contrib\modules\face\src\lbph_faces.cpp:406: error: (-5:Bad argument) This LBPH model is not computed yet. Did you call the train method? in function 'cv::face::LBPH::predict'
这是什么原因呢?
根据错误信息,看起来是因为你没有训练好LBPH识别器。虽然你已经录入了人脸照片作为训练样本,但是可能还没有使用这些样本训练识别器。
请确认是否已经调用识别器的train()方法进行了训练,例如:
recognizer = cv2.face.LBPHFaceRecognizer_create()
recognizer.train(images, labels)
其中,images是你录入的人脸照片,labels是你为每张照片标注的姓名或编号等标签。
如果你已经进行了训练,那么建议检查一下录入的样本是否存在问题,例如照片清晰度、光线、角度等因素是否影响了识别效果。还可以尝试使用其他的人脸检测和识别算法,或者优化一下LBPH的参数,以提高识别精度。
希望这能对你有所帮助。
不知道你这个问题是否已经解决, 如果还没有解决的话: