1、module ‘cv2’ has no attribute ‘face’
当要实现人脸识别的一些算法时,我们会需要调用cv2.face模块来训练一个实例对象,这就需要装上opencv-contrib-python包,调用时仍然只需要Import cv2即可
pip install opencv-contrib-python
笔者直接安装后便没有问题了,但网上据说有无法直接pip成功的,可以尝试卸载原cv2包,再次安装(ps:推荐使用清华源)
pip uninstall opencv-python
pip install opencv-python
pip install opencv-contrib-python
2.labels data type = 19 is not supported
一般出现时便是函数传参数值类型不对
原代码
features,labels = getImageID(path)
features = np.array(features,dtype='object')
labels = np.array(labels)
face_recognizer = cv2.face.LBPHFaceRecognizer_create()
face_recognizer.train(features, labels)
报错:
xxx.train(features, labels)该函数传入要求labels为int形
需要另dtype强制转为int形,这里也要注意labels数组内的所有可读数据需要时数字,不然无法强制转换也会出错
修改后
features,labels = getImageID(path)
features = np.array(features,dtype='object')
#labels = np.array(labels)
labels = np.array(labels,dtype = 'int32')
face_recognizer = cv2.face.LBPHFaceRecognizer_create()
face_recognizer.train(features, labels)