2016-04-15 5 views
2

Я перекрестно разместил это в группе google для Cloud Vision ... и добавил некоторые дополнительные выводы.Правильны ли API API Cloud Vision в документации?

Здесь все о специфике я считаю, актуальны:

  • Использование VB.NET 2010
  • Использование аутентификации учетной записи службы
  • Limited в .NET 4.0
  • Используя эти LIBS 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. Но иначе пуст.

Дальнейшие исследования показали, что я могу успешно отправить всего 1 МБ содержимого base64 в API для общего запроса. Что-то еще, я описываю нечетное состояние.

В соответствии с документацией API к Google Cloud Vision API применяются следующие ограничения.

Я не вижу возможности нарушить документированные лимиты: по 8 файлов на каждый запрос, всего менее 8 МБ, а файл даже не близок к 4 МБ.

Любые мысли о том, что мне может не хватать? Являются ли документированные ограничения ниже правильными?

  • MB на изображение 4 MB
  • MB по запросу 8 MB
  • запросов в секунду 10
  • запросов в особенности в день 700000
  • запросов в особенности в месяц 20000000
  • изображений в секунду 8
  • Фотографии на запрос 16
+1

Чем больше я играю с этим, тем больше кажется, что существует проблема, связанные с видением API ориентируется .NET Google. NET 4.0 (по крайней мере). Я взял те же учетные данные, что и пример сценария python из образцов api в облачном видении google и смог обработать большой файл. –

+0

Извините, что не ответил раньше; Я только что видел это. Вы пытались использовать клиентскую библиотеку на основе gRPC? См. Https://googlecloudplatform.github.io/google-cloud-dotnet/docs/Google.Cloud.Vision.V1/index.html –

+0

И вы все еще можете воспроизвести проблему? Это действительно помогло бы, если бы вы могли предоставить [mcve], чтобы мы могли попытаться выяснить, что происходит. –

ответ

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 
+0

Спасибо за то, что вы делаете эту работу и отправляете свои выводы, Майк! Инженеры Google: через 5 месяцев и все еще не исправлены? – Akaoni

+0

Я не помню, внесли ли мы какие-либо изменения в gzip, так как это было опубликовано впервые, но я использовал его с Google Cloud Storage на века без каких-либо проблем. Тот факт, что отключение gzip решает проблему, не означает, что проблема связана с реализацией gzip (который является единственным в .NET, btw - не переопределял его сам). Возможно, проблема связана с тем, как служба Vision взаимодействует с gzip, например. Было бы действительно полезно воспроизвести это ... –

Смежные вопросы