4

これを 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 ドライブを使用しない)

リクエストごとに4枚程度の画像を送信するだけで、期待どおりに機能します...応答と注釈を取得します。

リクエストごとに画像の数を 8 ファイルに増やした場合、Execute から返された応答には結果が含まれていません。エラーも例外もありません。

レスポンスがゼロの Google.Apis.Vision.v1.Data.BatchAnnotateImagesResponse オブジェクトのみ。ネットワーク トラフィック監視ツールを使用して、Google ビジョンへの接続を確認し、サービスから 200 サーバー応答が返されました。しかし、それ以外は空です。

さらに調査した結果、リクエスト全体で合計約 1MB の base64 コンテンツを API に正常に送信できることがわかりました。

API ドキュメントによると、Google Cloud Vision API の使用には次の制限が適用されます。

文書化された制限を破る方法は見当たりません: リクエストごとに 8 ファイル、合計で 8 MB 未満、さらに 4 MB に近いファイルはありません。

私が見逃している可能性があるものについて何か考えはありますか? 以下に記載されている制限事項は正しいですか?

  • 画像あたりの MB 4 MB
  • リクエストあたりの MB 8 MB
  • 1 秒あたりのリクエスト数 10
  • 1 日あたりの機能あたりのリクエスト数 700,000
  • 1 か月あたりの機能あたりのリクエスト数 20,000,000
  • 1 秒あたりの画像数 8
  • リクエストごとの画像 16
4

2 に答える 2

1

結局のところ、リクエストに対する gzip 圧縮の Google の実装にバグがあることが判明しました... 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
于 2016-04-18T01:44:21.510 に答える