Le service de reconnaissance optique des caractères (OCR) de Vertex AI dans l'appareil avec air gap Google Distributed Cloud (GDC) détecte et extrait le texte des fichiers PDF et TIFF. Vous pouvez envoyer des fichiers locaux directement dans des requêtes intégrées à la méthode d'API BatchAnnotateFiles, qui accepte une seule requête par appel par lot.
Avant de commencer
Pour pouvoir utiliser l'API OCR, vous devez disposer d'un projet pour lequel cette API est activée, ainsi que des identifiants appropriés. Vous pouvez également installer des bibliothèques clientes pour faciliter les appels à l'API. Pour en savoir plus, consultez Configurer un projet de reconnaissance de caractères.
Détecter du texte avec des requêtes intégrées
La méthode BatchAnnotateFiles détecte le texte d'un lot de fichiers PDF ou TIFF.
Vous envoyez le fichier à partir duquel vous souhaitez détecter du texte directement en tant que contenu dans la requête API. Le système renvoie le texte détecté au format JSON dans la réponse de l'API.
Vous devez spécifier des valeurs pour les champs du corps JSON de votre requête API. Le tableau suivant contient une description des champs du corps de la requête que vous devez fournir lorsque vous utilisez la méthode API BatchAnnotateFiles pour vos requêtes de détection de texte :
| Champs du corps de la requête | Description du champ |
|---|---|
content |
Fichiers contenant du texte à détecter. Vous fournissez la représentation en base64 (chaîne ASCII) du contenu de votre fichier binaire. |
mime_type |
Type de fichier source. Vous devez la définir sur l'une des valeurs suivantes :
|
type |
Le type de détection de texte dont vous avez besoin dans le fichier. Spécifiez l'une des deux fonctionnalités d'annotation :
|
language_hints |
Facultatif. Liste des langues à utiliser pour la détection de texte. Le système interprète une valeur vide pour ce champ comme une détection automatique de la langue. Vous n'avez pas besoin de définir le champ language_hints pour les langues basées sur l'alphabet latin.Si vous connaissez la langue du texte dans le fichier, définir un indice améliore les résultats. |
pages |
Facultatif. Nombre de pages du fichier à traiter pour la détection de texte. Vous pouvez spécifier jusqu'à cinq pages. Si vous ne spécifiez pas le nombre de pages, le service traite les cinq premières pages du fichier. |
Envoyer une requête API intégrée
Envoyez une requête à l'API OCR pré-entraînée à l'aide de la méthode de l'API REST. Sinon, interagissez avec l'API pré-entraînée OCR à partir d'un script Python pour détecter le texte de fichiers PDF ou TIFF.
Les exemples suivants montrent comment détecter du texte dans un fichier à l'aide de l'OCR :
REST
Pour détecter du texte dans des fichiers à l'aide de la méthode API REST, procédez comme suit :
Enregistrez le fichier
request.jsonsuivant pour le corps de votre requête :cat <<- EOF > request.json { "requests": [ { "input_config": { "content": BASE64_ENCODED_FILE, "mime_type": "application/pdf" }, "features": [ { "type": "FEATURE_TYPE" } ], "image_context": { "language_hints": [ "LANGUAGE_HINT_1", "LANGUAGE_HINT_2", ... ] }, "pages": [] } ] } EOFRemplacez les éléments suivants :
BASE64_ENCODED_FILE: représentation en base64 (chaîne ASCII) du contenu de votre fichier binaire. Cette chaîne commence par des caractères qui ressemblent à/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==.FEATURE_TYPE: type de détection de texte dont vous avez besoin dans le fichier. Les valeurs autorisées sontTEXT_DETECTIONouDOCUMENT_TEXT_DETECTION.LANGUAGE_HINT: tags de langue BCP 47 à utiliser comme indices de langue pour la détection de texte, par exempleen-t-i0-handwrit. Ce champ est facultatif et le système interprète une valeur vide comme une détection automatique de la langue.
Envoyez la requête :
curl
curl -X POST \ -H "Authorization: Bearer TOKEN" \ -H "x-goog-user-project: projects/PROJECT_ID" \ -H "Content-Type: application/json; charset=utf-8" \ -d @request.json \ https://ENDPOINT/v1/files:annotateRemplacez les éléments suivants :
TOKEN: jeton d'authentification que vous avez obtenu.PROJECT_ID: ID de votre projet.ENDPOINT: point de terminaison OCR que vous utilisez pour votre organisation. Pour en savoir plus, consultez l'état et les points de terminaison du service.
PowerShell
$headers = @{ "Authorization" = "Bearer TOKEN" "x-goog-user-project" = "projects/PROJECT_ID" } Invoke-WebRequest -Method POST -Headers $headers -ContentType: "application/json; charset=utf-8" -InFile request.json -Uri "ENDPOINT/v1/files:annotate" | Select-Object -Expand ContentRemplacez les éléments suivants :
TOKEN: jeton d'authentification que vous avez obtenu.ENDPOINT: point de terminaison OCR que vous utilisez pour votre organisation. Pour en savoir plus, consultez l'état et les points de terminaison du service.
Python
Pour utiliser le service OCR à partir d'un script Python afin de détecter du texte dans un fichier, procédez comme suit :
Installez la dernière version de la bibliothèque cliente OCR.
Définissez les variables d'environnement requises dans un script Python.
Ajoutez le code suivant au script Python que vous avez créé :
from google.cloud import vision import google.auth from google.auth.transport import requests from google.api_core.client_options import ClientOptions audience = "https://ENDPOINT:443" api_endpoint="ENDPOINT:443" def vision_client(creds): opts = ClientOptions(api_endpoint=api_endpoint) return vision.ImageAnnotatorClient(credentials=creds, client_options=opts) def main(): creds = None try: creds, project_id = google.auth.default() creds = creds.with_gdch_audience(audience) req = requests.Request() creds.refresh(req) except Exception as e: print("Caught exception" + str(e)) raise e return creds def vision_func(creds): vc = vision_client(creds) input_config = {"content": "BASE64_ENCODED_FILE"} features = [{"type_": vision.Feature.Type.FEATURE_TYPE}] # Each requests element corresponds to a single file. To annotate more # files, create a request element for each file and add it to # the array of requests req = {"input_config": input_config, "features": features} metadata = [("x-goog-user-project", "projects/PROJECT_ID")] resp = vc.annotate_file(req,metadata=metadata) print(resp) if __name__=="__main__": creds = main() vision_func(creds)Remplacez les éléments suivants :
ENDPOINT: point de terminaison OCR que vous utilisez pour votre organisation. Pour en savoir plus, consultez l'état et les points de terminaison du service.BASE64_ENCODED_FILE: représentation en base64 (chaîne ASCII) du contenu de votre fichier. Cette chaîne commence par des caractères qui ressemblent à/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==.FEATURE_TYPE: type de détection de texte dont vous avez besoin dans le fichier. Les valeurs autorisées sontTEXT_DETECTIONouDOCUMENT_TEXT_DETECTION.PROJECT_ID: ID de votre projet.
Enregistrez le script Python.
Exécutez le script Python pour détecter du texte dans le fichier :
python SCRIPT_NAMERemplacez
SCRIPT_NAMEpar le nom que vous avez donné à votre script Python, par exemplevision.py.