face_regconition 中的face_locations 时出错

问题描述 投票:0回答:1

我有一个错误 回溯(最近一次调用最后一次): 文件“d:\deepface-ai\Files est.py”,第 40 行,位于 匹配=face_recognition.compare_faces(encodeListKnown,encodeFace) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^ 文件“C:\ Users \ hoanggxyuuki naconda3 \ Lib \ site-packages ace_recognition pi.py”,第226行,在compare_faces中 返回列表(face_distance(known_face_encodings,face_encoding_to_check)<= tolerance) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\hoanggxyuuki\anaconda3\Lib\site-packages\face_recognition\api.py", line 72, in face_distance if len(face_encodings) == 0: ^^^^^^^^^^^^^^^^^^^ TypeError: object of type 'NoneType' has no len() I tried the methods available online but it didn't work, and I think this is the code causing the error faceCurFrame = face_recognition.face_locations(imgS) encodeCurFrame= face_recognition.face_encodings(img,faceCurFrame)

imgBackground[162:162+480,55:55+640]=img
imgBackground[44:44+633,808:808 +414]=imgModeList[3]
for encodeFace , faceLoc in zip(encodeCurFrame,faceCurFrame):
    matches = face_recognition.compare_faces(encodeListKnown,encodeFace)
    faceDis = face_recognition.face_distance(encodeListKnown,encodeFace)

在此之前,一切正常

我尝试了网上提供的方法,但没有成功,我认为这是导致错误的代码 faceCurFrame=face_recognition.face_locations(imgS) encodeCurFrame=face_recognition.face_encodings(img,faceCurFrame)

imgBackground[162:162+480,55:55+640]=img
imgBackground[44:44+633,808:808 +414]=imgModeList[3]
for encodeFace , faceLoc in zip(encodeCurFrame,faceCurFrame):
    matches = face_recognition.compare_faces(encodeListKnown,encodeFace)
    faceDis = face_recognition.face_distance(encodeListKnown,encodeFace)

在此之前,一切正常

python opencv face-recognition
1个回答
0
投票

试试这个

假设 imgS 是您正在处理的图像(必要时进行缩放)

faceCurFrame=face_recognition.face_locations(imgS) encodeCurFrame=face_recognition.face_encodings(imgS,faceCurFrame)#确保使用相同的图像变量

如果编码CurFrame: # 如果人脸被编码,则进行人脸识别 对于encodeFace,zip中的faceLoc(encodeCurFrame,faceCurFrame): 匹配=face_recognition.compare_faces(encodeListKnown,encodeFace) faceDis =face_recognition.face_distance(encodeListKnown,encodeFace) 别的: # 处理没有检测到人脸的情况 print("图像中未找到人脸。")

© www.soinside.com 2019 - 2024. All rights reserved.