с использованием хранилища Google и API Google Vision

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

Если невозможно использовать хранилище Google, есть ли способ просто загрузить изображение, а не хранить его в файловой системе? Мне не нужно хранить изображение, все, что меня волнует, - это возвращаемые символы.

def detect_text_uri(uri):
    """Detects text in the file located in Google Cloud Storage or on the Web.
    """
    from google.cloud import vision
    client = vision.ImageAnnotatorClient()
    image = vision.types.Image()
    image.source.image_uri = uri
    image.source.gcs_image_uri = uri

    response = client.text_detection(image=image)
    texts = response.text_annotations
    print('Texts:')

    for text in texts:
        print('\n"{}"'.format(text.description))

        vertices = (['({},{})'.format(vertex.x, vertex.y)
                    for vertex in text.bounding_poly.vertices])


        print('bounds: {}'.format(','.join(vertices)))
    return texts
{

Эта строка не работает, она должна читать изображение, которое я поместил в хранилище Google, все, что возвращается, - это пустой ответ:

detect_text_uri("'source': {'image_uri': 'gs://ocr_storage/meter_reader.jpg'}")

Эта строка отлично работает:

detect_text_uri('https://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Transparent_Electricity_Meter_found_in_Israel.JPG/220px-Transparent_Electricity_Meter_found_in_Israel.JPG')

person resolver101    schedule 26.04.2019    source источник


Ответы (2)


Ваша функция просто ожидает gcs uri

detect_text_uri('gs://ocr_storage/meter_reader.jpg')
person Brendan    schedule 06.06.2019

Эта функция ждет URI из хранилища Google. Но перед запуском этой ячейки вам необходимо войти в систему с файлом json, который содержит ваши учетные данные:

os.environ['GOOGLE_APPLICATION_CREDENTIALS']=r"credentials.json"

Вы можете использовать аналогичную функцию для чтения текста с локального изображения.

Код находится по этой ссылке: https://cloud.google.com/vision/docs/ocr#vision_text_detection_gcs-python.

person Melina Nohemi    schedule 14.01.2021