【问题标题】:Are the Cloud Vision API limits in documentation correct?文档中的 Cloud Vision API 限制是否正确?
【发布时间】:2016-08-07 22:15:21
【问题描述】:

我将此帖子交叉发布到 Cloud Vision 的 google 组... 并添加了一些额外的发现。

以下是我认为相关的所有细节:

  • 使用 VB.NET 2010
  • 使用服务帐户身份验证
  • 仅限于 .NET 4.0
  • 使用这些 Google 库:Google.Api v1.10.0、Google.Apis.Auth v1.10.0、Google.Apis.Vision.v1 v1.12.0.45
  • 执行文本和安全搜索分析
  • 在请求中传递图片内容(不使用 Google Drive)

当每个请求只发送 4 张左右的图像时,事情会按预期工作...我得到响应和注释。

如果我将每个请求的图像数量增加到 8 个文件,则从 Execute 返回的响应不包含任何结果。没有错误,也没有异常。

只是一个零响应的 Google.Apis.Vision.v1.Data.BatchAnnotateImagesResponse 对象。使用网络流量监控工具,我看到了与 google vision 的连接 - 该服务返回 200 服务器响应。但否则为空。

进一步的研究表明,我能够成功地将总共大约 1MB 的 base64 内容发送到每个整体请求的 API。此外,我得到了所描述的奇怪情况。

根据 API 文档,以下限制适用于 Google Cloud Vision API 的使用。

我没有发现任何可以打破记录限制的方法:每个请求 8 个文件,总大小小于 8MB,甚至没有文件接近 4MB。

关于我可能会错过什么的任何想法?以下记录的限制是否正确?

  • MB 每张图片 4 MB
  • MB 每个请求 8 MB
  • 每秒请求数 10
  • 每天每个功能的请求数 700,000
  • 每月每个功能的请求 20,000,000
  • 每秒图像数 8
  • 每个请求的图像 16

【问题讨论】:

  • 我玩得越多,针对 .NET 4.0 的 .NET Google vision API 似乎就越有问题(至少)。我采用了相同的凭据,以及来自 google cloud vision api 示例的示例 python 脚本,并且能够处理一个大文件。
  • 抱歉之前没有回复;我才看到这个。您是否尝试过使用基于 gRPC 的客户端库?见googlecloudplatform.github.io/google-cloud-dotnet/docs/…
  • 你还能重现这个问题吗?如果您能提供minimal reproducible example,那将真的有所帮助,以便我们可以尝试找出发生了什么。

标签: google-cloud-vision


【解决方案1】:

事实证明,Google 对请求的 gzip 压缩实现存在错误...我不确定 API 是否仅在请求大小达到某个阈值时才应用 gzip 压缩,或者实现错误是否适用小请求,但不适用于大请求。

这是我解决问题的方法(禁用 GZIP 是关键):

    Private Function GetAnalysisService() As VisionService
        Dim credential As GoogleCredential = Nothing

        credential = GoogleCredential.GetApplicationDefaultAsync().Result

        If credential.IsCreateScopedRequired Then
            credential = credential.CreateScoped(New String()  {VisionService.Scope.CloudPlatform})
        End If

        Dim ServiceInitializer = New VisionService.Initializer With {.ApplicationName = "TF Image Analysis", .HttpClientInitializer = credential}

        ServiceInitializer.GZipEnabled = False

        Return New VisionService(ServiceInitializer)
    End Function

【讨论】:

  • 感谢迈克,感谢您为这一项工作并发布您的发现!谷歌工程师:5 个月后仍然没有修复?
  • 我不记得自首次发布以来我们是否对 gzip 进行了任何更改,但我已经将它与 Google Cloud Storage 一起使用了很长时间,没有任何问题。禁用 gzip 解决问题的事实并不意味着问题在于 gzip 的实现(这只是 .NET 中的一个,顺便说一句 - 我们自己还没有重新实现它)。例如,Vision 服务与 gzip 交互的方式可能存在问题。能够重现这个真的很有用......
【解决方案2】:

我也想知道限制是否正确。

根据 Quotas and LimitsSupported Images,对于托管在 Cloud Storage 或可公开访问的 URL 上的图像,最大图像文件大小应为 20 MB。还有最大 JSON 请求对象大小 (10 MB)。

我正在对托管在 Cloud Storage 上的图像使用选项,但对于大于 ~7.95 MB (12000 x 6500) 的图像,我收到一条错误消息:

responses {
  error {
    code: 3
    message: "Invalid image contents: gs://... ."
  }
}

对于尺寸较小的图像,我得到了正确的响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-02
    • 2019-02-25
    • 2017-05-09
    相关资源
    最近更新 更多