我在哪里运行此AWS识别代码,是否还需要安装其他产品?我会得到什么结果?

时间:2018-11-25 02:57:13

标签: python amazon-web-services machine-learning ocr

`
     导入boto3

 if __name__ == "__main__":

    bucket='random_name'
    photo='b4.png'

    client=boto3.client('rekognition')


    response=client.detect_text(Image={'S3Object': 
    {'random_name':bucket,'b4.png':photo}})


    textDetections=response['TextDetections']
    print(response)
    print('Matching faces')
    for text in textDetections:
         print('Detected text:' + text['DetectedText'])
         print('Confidence: ' + "{:.2f}".format(text['Confidence']) + "%")
         print('Id: {}'.format(text['Id']))
         if 'ParentId' in text:
               print('Parent Id: {}'.format(text['ParentId']))
               print('Type:' + text['Type'])
               print()`

这是识别图像(OCR)的代码,但我不知道应将此代码粘贴到哪里运行。我是否可以在Jupyter笔记本电脑上运行此软件,是否需要安装其他东西?我可以在Anaconda Prompt中运行它吗?我都尝试过。在Jupyter中,我得到一个错误:| ParamValidationError:参数验证失败:Image.S3Object中的未知参数:“ random_name”,必须为以下之一:Bucket,Name,Version Image.S3Object中的未知参数:“ b4.png”,必须是以下之一:桶,名称,版本|而Anaconda提示有更多错误。我已经安装了AWS,并且好奇是否还有更多的要安装。如果有人帮助我,将不胜感激。

1 个答案:

答案 0 :(得分:0)

调用AWS API的代码(例如client.detect_text())可以从 Internet上的任何地方运行。您已经展示了一些可以在服务器,笔记本电脑,EC2实例上或作为Lambda函数(需要一些清除)运行的Python代码。

它唯一需要的另一件事是一组凭据,以便它可以连接到您的 AWS帐户。

  • 如果您在Amazon EC2实例上运行代码或作为lambda函数运行,只需为实例/函数分配适当的IAM角色,代码就会自动接收凭据。
  • 如果您是在自己的计算机上运行代码,请首先运行aws configure命令并提供您的IAM用户凭据。

另外,请注意detect_text()的格式为:

response = client.detect_text(
    Image={
        'Bytes': b'bytes',
        'S3Object': {
            'Bucket': 'string',
            'Name': 'string',
            'Version': 'string'
        }
    }
)

因此,您的代码行应为:

response = client.detect_text(Image={'S3Object':{'Bucket':bucket, 'Name':photo}})

此外,我不会说此功能是真正的OCR。而是在图片中找到文字的一部分,例如标牌上的文字。传统的OCR方法无法读取整页的文字。