测试tolerance=0.5或0.4比较合适
results = face_recognition.compare_faces([my_face_encoding], unknown_face_encoding,tolerance=0.4)
# 由于对亚洲人识别率不高tolerance一般设置在0.3-0.38之间可满足大部分需求 results = face_recognition.compare_faces([my_face_encoding], unknown_face_encoding,tolerance=0.38)
如果一张脸识别出不止一个结果,那么这意味着他和其他人长的太像了(Face_Recognition对于小孩和亚洲人的人脸识别准确率有待提升)。你可以把容错率调低一些,使识别结果更加严格。
通过传入参数 tolerance 来实现这个功能,默认的容错率是0.6,容错率越低,识别越严格准确。
如果想要更准确的识别,可以在计算编码时设定要重新采样的次数,face_encodings传入 num_jitters 来实现,默认0,范围为0-100,越高越准确,但速度越慢,(100就会慢100倍)
import face_recognition picture_of_me = face_recognition.load_image_file("me.jpg") my_face_encoding = face_recognition.face_encodings(picture_of_me,num_jitters=100)[0] unknown_picture = face_recognition.load_image_file("unknown.jpg") unknown_face_encoding = face_recognition.face_encodings(unknown_picture,num_jitters=100)[0] # 由于对亚洲人识别率不高tolerance一般设置在0.3-0.38之间可满足大部分需求 results = face_recognition.compare_faces([my_face_encoding], unknown_face_encoding,tolerance=0.38)