文档中的Cloud Vision API限制是否正确?

时间:2016-04-15 19:43:49

标签: google-cloud-vision

我将此发布到了Google愿景的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云端硬盘)

当每个请求只发送4张图片时,事情按预期工作......我得到回复和注释。

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

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

进一步的研究表明,我能够根据整体请求成功向API发送大约1MB的base64内容。还有更多,我得到了描述的奇怪条件。

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

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

对于我可能遗失的任何想法?下面记录的限制是否正确?

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

2 个答案:

答案 0 :(得分:1)

事实证明,谷歌在请求中实施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

答案 1 :(得分:0)

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

基于Quotas and LimitsSupported Images,云存储上托管的图片或公开访问的网址的最大图片文件大小应 20 MB 。此外,还有最大JSON请求对象大小(10 MB)。

我正在使用云存储上托管的图片选项,但对于大于~7.95 MB(12000 x 6500)的图片,我收到错误消息:

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

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