Вызов 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, как показано ниже: