[PYTHON] Comment utiliser l'API Cloud Vision de GCP

Le document était un peu déroutant, alors je vais le résumer.

Paramètres API

  1. Type
  2. maxResults
  3. model

Il existe deux types de TYPE d'API GCP Cloud Vision.

  1. Détection de texte "TEXT_DETECTION" (optimisé pour les zones clairsemées de texte dans les grandes images)
  2. Détection de texte de document "DOCUMENT_TEXT_DETECTION" (convient pour le texte haute densité)

Les deux structures de sortie OCR sont

TextAnnotation -> Page -> Block -> Paragraph -> Word -> Symbol

Il est devenu

Importez ce dont vous avez besoin

import base64
import json
from requests import Request, Session
from io import BytesIO
from PIL import Image
import numpy as np

Acquisition de la clé API

Comment reconnaître les caractères de Python à l'aide de l'OCR de l'API Google Cloud Vision

Comment utiliser l'API

def recognize_image1(input_image):#Enfin str_encode_Changer de fichier

    #Lors du passage du chemin à la base64
    def pil_image_to_base64(img_path):
        pil_image = Image.open(img_path)
        buffered = BytesIO()
        pil_image.save(buffered, format="PNG")
        str_encode_file = base64.b64encode(buffered.getvalue()).decode("utf-8")
        return str_encode_file

    #Lors du passage de la matrice à la base64
    def array_to_base64(img_array):
        pil_image = Image.fromarray(np.uint8(img_array))
        buffered = BytesIO()
        pil_image.save(buffered, format="PNG")
        str_encode_file = base64.b64encode(buffered.getvalue()).decode("utf-8")
        return str_encode_file 
    
    def get_fullTextAnnotation(json_data):
        text_dict = json.loads(json_data)
        try:
            text = text_dict["responses"][0]["fullTextAnnotation"]["text"]
            return text
        except:
            print(None)
            return None
        
   


    str_encode_file = pil_image_to_base64(input_image) # input_Sélectionnez cette option lorsque vous souhaitez définir l'image sur le PATH de l'image
    #str_encode_file = array_to_base64(input_image)# input_Sélectionnez ceci lorsque vous voulez faire de l'image un tableau
    str_url = "https://vision.googleapis.com/v1/images:annotate?key="
    str_api_key = ""#Mettez la clé API ici
    str_headers = {'Content-Type': 'application/json'}
    str_json_data = {
        'requests': [
            {
                'image': {
                    'content': str_encode_file
                },
                'features': [
                    {
                        'type': "DOCUMENT_TEXT_DETECTION",#Sélectionnez le type ici
                        'maxResults': 1
                    }
                ]
            }
        ]
    }

    obj_session = Session()
    obj_request = Request("POST",
                            str_url + str_api_key,
                            data=json.dumps(str_json_data),
                            headers=str_headers
                            )
    obj_prepped = obj_session.prepare_request(obj_request)
    obj_response = obj_session.send(obj_prepped,
                                    verify=True,
                                    timeout=60
                                    )

    if obj_response.status_code == 200:
        text = get_fullTextAnnotation(obj_response.text)
        
        return text
    else:
        return "error"

référence

Notes de version Feature Reconnaître le texte vertical à l'aide de Google Cloud Vision

Recommended Posts

Comment utiliser l'API Cloud Vision de GCP
Comment utiliser l'API Google Cloud Translation
Comment utiliser l'API Python d'OpenPose
Comment utiliser l'API Bing Search
[Python] Comment utiliser l'API Typetalk
Utiliser l'API Google Cloud Vision de Python
Comment utiliser xml.etree.ElementTree
Comment utiliser Python-shell
Remarques sur l'utilisation de tf.data
Comment utiliser virtualenv
Comment utiliser la correspondance d'image
Comment utiliser le shogun
Comment utiliser Pandas 2
Comment utiliser Virtualenv
Comment utiliser numpy.vectorize
Comment utiliser pytest_report_header
Comment utiliser partiel
Comment utiliser Bio.Phylo
Comment utiliser SymPy
Comment utiliser x-means
Comment utiliser WikiExtractor.py
Comment utiliser IPython
Comment utiliser virtualenv
Comment utiliser Matplotlib
Comment utiliser iptables
Comment utiliser numpy
Comment utiliser venv
Comment utiliser le dictionnaire {}
Comment utiliser Pyenv
Comment utiliser la liste []
Comment utiliser python-kabusapi
Comment utiliser OptParse
Comment utiliser le retour
Comment utiliser pyenv-virtualenv
Comment utiliser imutils
Comment appeler l'API Cloud à partir de GCP Cloud Functions
Comment utiliser l'API du guide des programmes NHK
[Rails] Comment détecter des images radicales en analysant des images à l'aide de l'API Cloud Vision
[BigQuery] Comment utiliser l'API de BigQuery pour Python -Création de table-
Comment utiliser Qt Designer
Comment utiliser la recherche triée
[gensim] Comment utiliser Doc2Vec
python3: Comment utiliser la bouteille (2)
Comprendre comment utiliser django-filter
Comment utiliser le générateur
[Python] Comment utiliser la liste 1
Comment utiliser FastAPI ③ OpenAPI
Comment utiliser Python Argparse
Comment utiliser Pandas Rolling
[Note] Comment utiliser virtualenv
Comment utiliser les dictionnaires redis-py
Python: comment utiliser pydub
[Aller] Comment utiliser "... (3 périodes)"
Comment faire fonctionner GeoIp2 de Django
[Python] Comment utiliser input ()
Comment utiliser le décorateur
[Introduction] Comment utiliser open3d
Comment utiliser Python lambda