我正在使用face_recognition 庫來識別圖像上的人。根據(jù)庫文檔,它支持兩種用于進一步處理的輸入圖像格式:RGB(8 位,3 通道)和 L(黑白)。我試著用face_recognition.api.load_image_file(file, mode='RGB')沒關(guān)系。但我需要使用 L 模式,這就是重點。問題是 mode='RGB' 生成 numpy.array (x,y,3) 和 mode='L' 生成 numpy.array(x,y)。數(shù)組應該稍后輸入到 face_recognition.face_locations 和 face_recognition.face_encodings 函數(shù)。如果我們將在 L 模式中生成的數(shù)組放入 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 維人臉圖?引發(fā)錯誤的完整列表(您可以使用任何人的圖像作為 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條經(jīng)驗 獲得超5個贊
根據(jù)錯誤消息,它看起來不接受單通道圖像。你需要一個 (rows, cols, 3) 的 ndarray。您可以嘗試傳入image.repeat(3, 2)
which 只會重復 L 值三次。
face_encodings = face_recognition.face_encodings(image.repeat(3, 2), face_locations)
添加回答
舉報
0/150
提交
取消