【问题标题】:Google Cloud Function Deploying Function OCR-Extract IssueGoogle Cloud Function Deploying Function OCR-Extract 问题
【发布时间】:2020-12-09 04:58:17
【问题描述】:

我一直在为我的一个项目使用 Google Cloud API OCR 工具 (https://cloud.google.com/functions/docs/tutorials/ocr) 从扫描的图像中提取文本。图像为 .png 格式。我按照每条说明安装了用于 OCR 的云 API。但是,当我在云存储中的 Input Image Bucket 中上传图像时,我没有在 Result Bucket 中看到结果。但是,我注意到如果我在下面的部署函数中将参数作为“fr”或“es”传递,结果确实会显示在 Result Bucket 中。我在结果桶中没有看到“TO_LANG=en”参数的任何结果。

使用 Cloud Storage 触发器部署图像处理功能:

gcloud functions deploy ocr-extract --runtime python37 --trigger-bucket etdimage --entry-point process_image --set-env-vars "TRANSLATE_TOPIC=extractData,TO_LANG=en”

但结果必须是英文的。有没有办法解决这个问题?为了您的方便,我附上了一张图片。非常感谢您的帮助。

谢谢,

蒙塔比尔·乔杜里

【问题讨论】:

  • 我只是按照相同的教程进行了设置 TO_LANG=en 的唯一更改并上传了 repo 中提供的图像,一切对我来说都很好。您能否检查一下您本地的 repo 代码副本是否是最新的并重试该教程?
  • 嗨 Monad,感谢您的回复。我确实使用了更新的代码仓库。它确实适用于 Google Cloud API OCR 工具中提供的示例图像。该样本是法语的,因此可以翻译成英语。但是,它适用于英译英吗?因为我的样本是英文的扫描图像。我在日志中看到了 Key Error,当我厌倦了“TO_LANG=en”时,但是,当我尝试“TO_LANG=fr”时,它成功地将文件保存在输出存储桶中。有什么想法吗?为了您的方便,我在帖子中添加了一张扫描图像。

标签: google-cloud-platform google-cloud-functions google-cloud-storage ocr


【解决方案1】:

感谢分享图片和有见地的评论。

我已尝试将共享的图像上传到存储桶,并且我承认没有在结果存储桶中创建任何文件。此外,我还可以在日志中看到导致 ocr-extract 函数崩溃的 KeyError 异常。

检查repo代码后,我发现在54-70行中,当源语言与结果语言相同时,该函数将直接将结果发送到ocr-save函数,而不是调用ocr-translation。问题是在创建导致崩溃的函数时未定义环境变量RESULT_TOPIC

要解决它,请转到控制台 UI 的函数选项卡并编辑函数 ocr-extract,包括上面提到的 env var。或者,您可以使用以下命令使用 Cloud SDK 重新部署该函数:

gcloud functions deploy ocr-extract \
--runtime python37 \
--trigger-bucket YOUR_IMAGE_BUCKET_NAME \
--entry-point process_image \
--set-env-vars "^:^RESULT_TOPIC=YOUR_RESULT_TOPIC_NAME:TRANSLATE_TOPIC=YOUR_TRANSLATE_TOPIC_NAME:TO_LANG=en"

我已请求更新教程文档,以免以后出现这种情况。

【讨论】:

  • 嗨 Monad,感谢您的帮助和解决方案。有效!当我仔细浏览可视化流程图时,我也有同样的想法。它提到如果 Cloud API 发现源语言与目标语言相同,则应跳过翻译步骤。因此,后来我尝试不运行第二个部署功能,该功能可以翻译,但似乎部署功能的配置设计为如果错过任何步骤,它将无法工作。感谢您的帮助和支持。如果以后有任何事情发生,我会保持联系。 — 蒙塔比尔
猜你喜欢
  • 2022-12-01
  • 2021-04-20
  • 1970-01-01
  • 2020-03-14
  • 2020-08-31
  • 2021-08-28
  • 1970-01-01
  • 2017-12-17
  • 2021-11-23
相关资源
最近更新 更多