Google Cloud Function 部署函数 OCR 提取问题

Google Cloud Function Deploying Function OCR-Extract Issue

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

使用云存储触发器部署图像处理函数:

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

但是结果需要是英文的。有什么办法可以解决这个问题吗?为了您的方便,我附上了一张图片。非常感谢您的帮助。

谢谢,

蒙塔比尔·乔杜里

感谢分享图片和富有洞察力的评论。

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

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

要解决此问题,请转到控制台 UI 的功能选项卡并编辑功能 ocr-extract,包括上面提到的环境变量。或者,您可以使用以下命令通过 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"

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