为了账号安全,请及时绑定邮箱和手机立即绑定

face_recognition 和黑白图像

face_recognition 和黑白图像

慕勒3428872 2021-07-05 10:59:05
我正在使用face_recognition 库来识别图像上的人。根据库文档,它支持两种用于进一步处理的输入图像格式:RGB(8 位,3 通道)和 L(黑白)。我试着用face_recognition.api.load_image_file(file, mode='RGB')没关系。但我需要使用 L 模式,这就是重点。问题是 mode='RGB' 生成 numpy.array (x,y,3) 和 mode='L' 生成 numpy.array(x,y)。数组应该稍后输入到 face_recognition.face_locations 和 face_recognition.face_encodings 函数。如果我们将在 L 模式中生成的数组放入 face_encodings,我们会得到以下错误:    TypeError: compute_face_descriptor(): incompatible function arguments. The following argument types are supported:        1. (self: dlib.face_recognition_model_v1, img: numpy.ndarray[(rows,cols,3),uint8], face: dlib.full_object_detection, num_jitters: int=0) -> dlib.vector        2. (self: dlib.face_recognition_model_v1, img: numpy.ndarray[(rows,cols,3),uint8], faces: dlib.full_object_detections, num_jitters: int=0) -> dlib.vectors        3. (self: dlib.face_recognition_model_v1, batch_img: List[numpy.ndarray[(rows,cols,3),uint8]], batch_faces: List[dlib.full_object_detections], num_jitters: int=0) -> dlib.vectorss任何想法,我应该如何将这个库用于黑白图像以获得 128 维人脸图?引发错误的完整列表(您可以使用任何人的图像作为 image.jpg):    import face_recognition    image = face_recognition.load_image_file('image.jpg', mode='L')    face_locations = face_recognition.face_locations(image)    face_encodings = face_recognition.face_encodings(image, face_locations)
查看完整描述

1 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

根据错误消息,它看起来不接受单通道图像。你需要一个 (rows, cols, 3) 的 ndarray。您可以尝试传入image.repeat(3, 2)which 只会重复 L 值三次。

face_encodings = face_recognition.face_encodings(image.repeat(3, 2), face_locations)


查看完整回答
反对 回复 2021-07-13
  • 1 回答
  • 0 关注
  • 614 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信