【问题标题】:Why is Google PDF DOCUMENT_TEXT_DETECTION API much slower than Google JPG DOCUMENT_TEXT_DETECTION API为什么 Google PDF DOCUMENT_TEXT_DETECTION API 比 Google JPG DOCUMENT_TEXT_DETECTION API 慢很多
【发布时间】:2019-05-20 00:24:12
【问题描述】:

我注意到 Google Vision PDF OCR DOCUMENT_TEXT_DETECTION 需要大约 15 秒才能检测到单个 PDF 页面 https://cloud.google.com/vision/docs/pdf
但是如果我提交与 JPG 相同的 PDF 页面,检测文本只需不到 3 秒https://cloud.google.com/vision/docs/detecting-fulltext

我使用了这里提供的代码 (C#)https://cloud.google.com/vision/docs/pdf#vision-pdf-detection-gcs-csharp

我注意到下面的代码行大约需要 15 秒才能检测到 PDF 中的所有文本并将其保存到 gsBucket operation.PollUntilCompleted();

  • 我的 GsBucket 是美国“多区域存储”
  • 我也是从美国位置上传的

我想知道我还能做些什么来加快这个过程或者这是预期的?

【问题讨论】:

  • 将 PDF 转换为 JPEG 需要多长时间?这可能就是它在后台所做的事情。
  • 可能,我只是将 PDF 转换为 JPEG 大约需要 1-2 秒。
  • 它可能完成得比这更快 - 毕竟,PollUntilCompleted 会进行 poll。您可以指定更频繁的PollSettings 来检查。
  • 我将时间间隔更改为 1 秒,但仍然没有区别,尽管如此。我正在上传 PDF,然后等待将文本检测结果保存回我的存储桶中。我上传的文件的“上次修改时间”时间戳与 Google 保存的文件之间的差异也显示了 ~15 秒的差异
  • 可能涉及到一些内部调度。不过,我 99% 确信您会在其他客户端库中获得相同的结果 - 除了这里的轮询之外,我们并没有做太多事情。你可能想问groups.google.com/forum/#!forum/cloud-vision-discuss...

标签: c# asp.net google-cloud-platform google-api google-vision


【解决方案1】:

您可以在此Google Groups thread 中找到问题的答案。总结一下:

离线批处理 API 并非旨在缩短运行时间,因为 第一优先。相反,它旨在为大型 根据配额限制的多页 PDF/TIFF 文件的数量。所以 而不是一个接一个地发送 PDF/TIFF 文件并等待每个 成功,使用它的典型方法是发送尽可能多的 PDF/TIFF 文件 尽可能一次或连续跟踪每个操作 id 到 得到每个 PDF/TIFF 处理的最终结果。

小批量在线处理feature mentioned in the comments似乎还没有C#客户端库。解决方法是直接调用 REST API 或使用不同语言的客户端库。

【讨论】: