KeyError:使用 Google Cloud Vision API 进行 OCR 时出现“textAnnotations”

Posted

技术标签:

【中文标题】KeyError:使用 Google Cloud Vision API 进行 OCR 时出现“textAnnotations”【英文标题】:KeyError: 'textAnnotations' while doing OCR using Google Cloud Vision API 【发布时间】:2020-10-22 09:26:45 【问题描述】:

我正在关注关于 OCR 的 this 教程。我做了所有与教程中提到的相同的事情,但是在最后一部分生成请求时我收到了这个错误KeyError: 'textAnnotations'。我能知道我该如何解决这个问题吗?我的输入图像只是一个字符a

这是我创建请求的方式:

from googleapiclient.discovery import build
import base64
IMAGE="gs://<project-name>/<folder>/<file-name>.jpg"
vservice = build('vision', 'v1', developerKey=APIKEY)
request = vservice.images().annotate(body=
    'requests': [
       'image': 
          'source': 
             'gcs_image_uri': IMAGE
          
      ,
      'features': [
          'type': 'TEXT_DETECTION',
          'maxResults': 3,
        ]
     ],
  )
responses = request.execute(num_retries=3)
print(responses['responses'][0]['textAnnotations'][0]['description'])

【问题讨论】:

请添加响应和代码,这个错误意味着他在响应中找不到'textAnnotations'。 @Inga890 我正在关注我链接的教程。最后,他们正在创建一个请求。它的结果应该是图像中的文本,但我得到了 keyerror。我已在问题中添加了上述请求。 关键错误来自打印。你收到回复了吗?可以附上吗? 您需要检查它是否检测到图像中的字母。检查responses['responses'][0] 的长度或将其作为一个整体打印出来,看看里面有什么。 【参考方案1】:

出现错误时由 API 返回的响应结构与responses['responses'][0]['textAnnotations'][0]['description'] 不同。 我的观点是存在错误,因此您的响应没有您认为的形状。按照 Caleb 的建议,我会打印出完整的回复,然后先看看里面有什么

【讨论】:

以上是关于KeyError:使用 Google Cloud Vision API 进行 OCR 时出现“textAnnotations”的主要内容,如果未能解决你的问题,请参考以下文章

Google API quickstart.py 错误 KeyError: '_module'

Google API:在调用get_credentials()时表单KeyError:'_ module'

GCP - 无法在 Cloud Run 中使用 Google Secret Manager (@google-cloud/secret-manager)

如何使用 Google PubSub 确认 (@google-cloud/pubsub)

google.cloud.pubsub_v1 和 google.cloud.pubsub 有啥区别?

如何使用 Google Python Client for Cloud Functions 获取 Google Cloud Functions 列表?