调用numpy.ndarray
函数时,我有@ageitgey's facial_recognition Python library生成的face_encodings
。我需要将这些数据保存到Amazon的DynamoDB。但我不确定如何。
运行numpy.ndarray
函数时得到的face_encodings
是从给定图像中人脸的代表。我可以使用这些数据与其他图像进行比较,并检查该图像中是否存在该人(以编码形式表示)。
我认为我可以将numpy.ndarray
保存为二进制文件(使用numpy.ndarray.tobytes,但是我不确定如何将二进制文件(当我从DynamoDB取回数据时)转换回{ {1}}。
我要比较的代码应该是这样的:
numpy.ndarray
总而言之,我不知道将unknown_encoding = face_recognition.face_encodings(unknown_picture)[0]
# database_encoding_array should come from DynamoDB
results = face_recognition.compare_faces(database_encoding_array, unknown_encoding, tolerance=0.595)
# results is an array of booleans
保存到DynamoDB的最佳方法是什么,以及如何在以后查询它。
答案 0 :(得分:1)
您可以尝试使用results
将ndarray.tostring
转换为字节字符串。对于Dynamo,这应该很简单。
arr = np.array([1, 2])
encoded = arr.tostring()
encoded
# b'\x01\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00'
然后可以使用np.frombuffer
还原阵列。
np.array_equal(arr, np.frombuffer(encoded, dtype=int))
# True