【发布时间】:2021-06-11 21:59:21
【问题描述】:
我正在使用face_recognition 包进行人脸识别
输入图像文件是base64编码的,
我正在尝试解码数据和
face_recognition.face_encodings(decodedBase64Data)
我有面部编码数据列表来比较。
问题是我需要将 base64 数据转换为可以使用 face_encodings 编码的图像。
我试过了
decodedData = base64.b64decode(data)
encodeFace = np.frombuffer(decodedData, np.uint8)
并将encodedFace传递给
face_recognition.face_encodings(decodedBase64Data)
我收到错误Unsupported image type, must be 8bit gray or RGB image.
如何将base64转成face_encodings兼容的图片?
编辑:
附上代码供参考
import base64
import numpy as np
import json
import face_recognition as fr
with open('Face_Encoding_Data.json') as f:
EncodeJsonData = json.load(f)
personName = list(EncodeJsonData.keys())
encodedImgList = list(EncodeJsonData.values())
"""
EncodeJsonData = {"name1" : [encoded data 1], "name2" : [encoded data 2]}
128 byte
"""
base64Data = """ base64 encoded image with face """
encodeFace = np.frombuffer(base64.b64decode(base64Data), np.uint8)
matches = fr.compare_faces(encodedImgList, encodeFace, tolerance=0.5)
faceDist = fr.face_distance(encodedImgList, encodeFace)
matchIndex = np.argmin(faceDist)
name = "unknown"
if matches[matchIndex]:
name = personName[matchIndex]
print(name)
【问题讨论】:
标签: python base64 face-recognition