python - 数据库中的所有人脸都具有相同的像素位置坐标
问题描述
image = face_recognition.load_image_file('drive/MyDrive/Face-Recognition-Tensorflow-master/images/dicaprio.jpg')
face_locations = face_recognition.face_locations(image)
for face_location in face_locations:`
top, right, bottom, left = face_location`
print("A face is located at pixel location Top: {}, Left: {}, Bottom: {}, Right: {}".format(top, left, bottom, right))`
return face_locations,image`
这是代码:
database["leonardo dicaprio"] = face_img_to_encoding("my_images/dicaprio.jpg", FRmodel)
database["brad pitt"] = face_img_to_encoding("my_images/bradPitt1.jpg", FRmodel)
database["matt damon"] = face_img_to_encoding("my_images/mattDamon.jpg", FRmodel)
database["unknown"] = face_img_to_encoding("my_images/unknown.jpg", FRmodel)
所有坐标都相同:
A face is located at pixel location Top: 66, Left: 56, Bottom: 156, Right: 145
A face is located at pixel location Top: 66, Left: 56, Bottom: 156, Right: 145
A face is located at pixel location Top: 66, Left: 56, Bottom: 156, Right: 145
A face is located at pixel location Top: 66, Left: 56, Bottom: 156, Right: 145
解决方案
你会考虑使用 deepface 吗?它的detectFace 函数返回检测到并对齐的人脸。
#!pip install deepface
from deepface import DeepFace
database = {}
database["brad pitt"] = DeepFace.detectFace("my_images/bradPitt1.jpg")
database["leonardo dicaprio"] = DeepFace.detectFace("my_images/dicaprio.jpg")
database["matt damon"] = DeepFace.detectFace("my_images/mattDamon.jpg")
database["unknown"] = DeepFace.detectFace("my_images/unknown.jpg")
顺便说一句,它包含了几个人脸检测器。SSD 是最快的,但 MTCNN 在对齐方面非常强大。
detectors = ['mtcnn', 'opencv', 'ssd', 'dlib']
database["brad pitt"] = DeepFace.detectFace("my_images/bradPitt1.jpg", detector_backend = detectors[0])
另一方面,如果要运行面部识别,则不必应用检测和对齐。DeepFaca 在后台处理它。
resp = DeepFace.verify("my_images/bradPitt1.jpg", "my_images/dicaprio.jpg")
print(resp["verified"])
推荐阅读
- java - 按下播放按钮后我的程序停止响应
- php - 缺少 hydra:api 中的项目总数
- c++ - 如何结合跳过和非跳过(词位)规则?
- javascript - 在字符串末尾打印反斜杠(\)
- spring-boot - 使用密码拒绝用户'root'@'localhost'的访问:在springboot中是YES
- picketlink - 服务提供商的 PicketLink 在 EAP 7.1 中使用 SAML 响应 302
- python - LBPHFaceRecognizer 预测函数总是返回 1
- javascript - 如何在手动 POST 中获取所有复选框
- reactjs - 反应故事书复选框更改处理程序不起作用
- angular - 自定义表单输入组件