我正在创建一个 DeepLens 项目来识别人,当相机扫描选定的一组人时。
该项目使用 lambda,它处理图像并触发“rekognition”aws api。
在 AWS lambda 控制台(具有 1.8.9 boto 版本)上,当我尝试调用 AWS python API 时遇到以下问题:
注意:img_str是一个字节数组
img_str = cv2.imencode('.jpg', frame)[1].tostring()
image = { 'Bytes': img_str }
response = rekognition.search_faces_by_image(CollectionId = 'TestingCollection', Image = { "Bytes" : image } )
第一个错误:sendall() 参数 1 必须是字符串或缓冲区,而不是 dict
我理解的原因: { "Bytes" : image } 是 Json 而不是字符串
我的解决方案:将 json 设为字符串(不确定是否可以连接 img_str(字节数组)
image = '{ "Bytes" :' + img_str + '}'
response = rekognition.search_faces_by_image(CollectionId = 'TestingCollection', Image = { "Bytes" : image } )
现在错误:面部检测 lambda 中的错误:'ascii' 编解码器无法解码位置 52 中的字节 0xff:序数不在范围内(128)
问题 如何在不丢失数组的情况下将字节数组 (img_str) 与字符串连接起来?
我可以将图像变量转换为字符串而不会出现无法解码字节 0xff异常吗?或者
我们可以做点别的来克服这个问题吗?
提前谢谢各位!!