Передача Base64 байтов в AWS Rekognition Сравнение граней - PullRequest
0 голосов
/ 20 декабря 2018

Как уже упоминалось, я пытаюсь передать изображения в кодировке Base64 в API AWS для сравнения лиц.Но это дает мне ошибку:

An error occurred (InvalidImageFormatException) when calling the CompareFaces operation: Request has invalid image format: InvalidImageFormatException

Я пробовал ранее, используя образы корзины S3, и это работало правильно.Но сейчас я пытаюсь отправить изображения без использования корзины S3.

Я использую функцию Lambda, и я сослался на эту документацию

Мой код (отредактированныйверсия):

source_image_string = "/9j/4......." //Base64 stringified image
target_image_string = "/9j/4A......" //Base64 stringified image
source_byte = base64.b64encode( bytes(source_image_string, "utf-8") )
target_byte = base64.b64encode( bytes(target_image_string, "utf-8") )

response=rekognition.compare_faces(SimilarityThreshold=70,SourceImage={'Bytes': source_byte},TargetImage={'Bytes': target_byte})

И ошибка, которую я получаю в Cloudwatch:

An error occurred (InvalidImageFormatException) when calling the CompareFaces operation: Request has invalid image format: InvalidImageFormatException
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 113, in lambda_handler
raise e
File "/var/task/lambda_function.py", line 105, in lambda_handler
response = compare_faces(source_image_string,target_image_string)
File "/var/task/lambda_function.py", line 43, in compare_faces
response=rekognition.compare_faces(SimilarityThreshold=70,SourceImage={'Bytes': source_byte},TargetImage={'Bytes': target_byte})
File "/var/runtime/botocore/client.py", line 314, in _api_call
return self._make_api_call(operation_name, kwargs)
File "/var/runtime/botocore/client.py", line 612, in _make_api_call
raise error_class(parsed_response, operation_name)

Где я иду не так ?, поскольку source_byte, который я передаю,формата Byte.

...