Вызов Google Cloud Vision API по матрицам

Я использую API обнаружения Google Text для распознавания изображений.

Я обнаружил, что мои результаты распознавания намного лучше, когда я выполняю некоторую предварительную обработку изображений с помощью opencv.

У меня вопрос - как я могу назвать API облачного видения Google для изображений, которые у меня в памяти, в виде массивов Numpy? Официальные документы Google показывают только видение API, принимающего изображение на диске в качестве входных данных.

Я хочу избежать ненужных записей на диск.

2 ответа

Решение

Одним из способов предоставления изображения в Google Cloud Vison API является строка в кодировке base64. В примере быстрого запуска используется клиентский API-интерфейс Python, который принимает поток байтов для содержимого изображения.

Вместо записи в файл вы можете закодировать свое изображение OpenCV img в байтовую строку вы можете напрямую перейти к Cloud Vision API:

image = vision_client.image(content=cv2.imencode('.jpg', img)[1].tostring())

Поддерживаемый в настоящее время механизм позволяет использовать:

  • Файл Google Cloud Storage (GCS), который может содержать данные изображения
  • Локальный файл, который содержит данные изображения

В качестве альтернативы, вы можете использовать REST API напрямую, чтобы base64 кодировать данные изображения и построить запрос REST, как показано ниже:

Создание запроса API Vision

Другие вопросы по тегам