基于opencvpython的人脸识别

基于opencvpython的人脸识别,python,opencv,artificial-intelligence,facial-identification,Python,Opencv,Artificial Intelligence,Facial Identification,所以我正在做一个项目,其中一个部分包括识别图像中的人脸。我已经根据我的需要做了很多研究,默认的正面haarcascade不能满足我的需要。然而,我发现了另一个haarcascade,它是在一个更合适的数据库(UMIST)上训练的。我想改用新的级联,但我收到了这个错误 错误:返回一个带有错误集的结果 我想这是因为定制的haarcascade不起作用 我可能只是错过了一些非常明显的东西,或者我的自定义haarcascde无法工作。如果只是haarcascade不起作用,那么有没有其他方法可以使用另一

所以我正在做一个项目,其中一个部分包括识别图像中的人脸。我已经根据我的需要做了很多研究,默认的正面haarcascade不能满足我的需要。然而,我发现了另一个haarcascade,它是在一个更合适的数据库(UMIST)上训练的。我想改用新的级联,但我收到了这个错误

错误:返回一个带有错误集的结果

我想这是因为定制的haarcascade不起作用

我可能只是错过了一些非常明显的东西,或者我的自定义haarcascde无法工作。如果只是haarcascade不起作用,那么有没有其他方法可以使用另一个haarcascade

注意:是指向带有UMIST haarcascade的GitHub的链接 此外,我确实将UMIST级联移动到cv2级联数据文件夹中,因此这不是问题所在

我突然想到UMIST数据可能已经过时,Opencv2就是不能使用它?我不确定,任何帮助都会很棒

以下是项目源代码:

import cv2
import sys

targetImage = 1
ImagePath = 'image-9.jpg'


image = cv2.imread(ImagePath)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)



faceCascade2 = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_profileface_umist_1.xml")
faces = faceCascade2.detectMultiScale(
    gray,
    scaleFactor=1.3,
    minNeighbors=3,
    minSize=(15, 15)
    )


print("Found {0} Faces".format(len(faces)))

for (x, y, w, h) in faces:
    cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)

status = cv2.imwrite("Data/image-9-data.jpg", image)
print("saved",status)




您确定包含的cascade classfiier文件中没有拼写错误吗?你确定没有必要提及文件扩展名吗?@venkata krishnan是的,我确信拼写正确,而且据我所知,没有必要使用文件扩展名。我尝试了你的代码,你面临的问题是,它无法找到文件,即xml文件。必须指定扩展名“.xml”和相应的路径。如果您有根访问权限问题,对于cv2数据文件夹,您可以始终将xml文件放在相对路径(项目文件夹)中并直接引用。@venkata krishnan好的,谢谢您,顺便说一句,但是当我修复它时,它给了我这个错误:返回了一个带有错误集的结果。您可以将新代码更新为“编辑”吗?在这个问题上,这样我就可以查一下。。