我正在使用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)
慕后森
相关分类