L'API Vision peut détecter et transcrire le texte des fichiers PDF et TIFF stockés dans Cloud Storage.
La détection du texte d'un document à partir de fichiers PDF et TIFF doit être initiée à l'aide de la fonction files:asyncBatchAnnotate qui effectue une requête hors ligne (asynchrone) et renvoie son état via les ressources operations.
Le résultat d'une requête PDF/TIFF est écrit dans un fichier JSON créé dans le bucket Cloud Storage spécifié.
Limites
L'API Vision accepte les fichiers PDF/TIFF jusqu'à 2 000 pages. Les fichiers plus volumineux génèrent une erreur.
Authentification
Les clés API ne sont pas acceptées pour les requêtes files:asyncBatchAnnotate. Consultez Utiliser un compte de service pour des instructions sur l'authentification avec un compte de service.
Le compte utilisé pour l'authentification doit avoir accès au bucket Cloud Storage que vous spécifiez pour le résultat (roles/editor, roles/storage.objectCreator ou supérieur).
Cependant, vous pouvez utiliser une clé API pour suivre l'état de l'opération. Pour obtenir des instructions, consultez Utiliser une clé API.
Requêtes de détection de document texte
Pour le moment, la détection de texte dans des documents PDF et TIFF n'est disponible que si les fichiers sont stockés dans des buckets Cloud Storage. Les fichiers JSON résultats sont enregistrés de même dans un bucket Cloud Storage.
gs://cloud-samples-data/vision/pdf_tiff/census2010.pdf,
Source :
Bureau du recensement des États-Unis.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
- CLOUD_STORAGE_BUCKET : répertoire/bucket Cloud Storage dans lequel enregistrer les fichiers de sortie, sous ce format :
gs://bucket/directory/
- CLOUD_STORAGE_FILE_URI : chemin d'accès à un fichier valide (PDF/TIFF) dans un bucket Cloud Storage. Il faut au minimum disposer des droits en lecture sur le fichier.
Exemple :
gs://cloud-samples-data/vision/pdf_tiff/census2010.pdf
- FEATURE_TYPE : type de fonctionnalité valide.
Pour les requêtes
files:asyncBatchAnnotate, vous pouvez utiliser les types de fonctionnalités suivants :DOCUMENT_TEXT_DETECTIONTEXT_DETECTION
- PROJECT_ID : ID de votre projet Google Cloud .
Remarque sur les champs :
inputConfigremplace le champimageutilisé dans d'autres requêtes de l'API Vision. Il contient deux sous-champs :gcsSource.uriest l'URI Google Cloud Storage du fichier PDF ou TIFF (devant être accessible à l'utilisateur ou au compte de service à l'origine de la requête).mimeTypeest l'un des types de fichiers acceptés :application/pdfouimage/tiff.
outputConfigsert à configurer le résultat. Il contient deux sous-champs :gcsDestination.uriest un URI Google Cloud Storage qui doit être valide. Le bucket doit être accessible en écriture par l'utilisateur ou le compte de service à l’origine de la requête. Le nom du fichier seraoutput-x-to-y, oùxetyreprésentent les numéros de page PDF/TIFF inclus dans le fichier de sortie. Si un fichier portant le même nom existe déjà, son contenu sera écrasé.batchSizeest le nombre de pages à inclure dans chaque fichier JSON résultat.
Méthode HTTP et URL :
POST https://vision.googleapis.com/v1/files:asyncBatchAnnotate
Corps JSON de la requête :
{
"requests":[
{
"inputConfig": {
"gcsSource": {
"uri": "CLOUD_STORAGE_FILE_URI"
},
"mimeType": "application/pdf"
},
"features": [
{
"type": "FEATURE_TYPE"
}
],
"outputConfig": {
"gcsDestination": {
"uri": "CLOUD_STORAGE_BUCKET"
},
"batchSize": 1
}
}
]
}
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: PROJECT_ID" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/files:asyncBatchAnnotate"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "PROJECT_ID" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/files:asyncBatchAnnotate" | Select-Object -Expand Content
Une requête asyncBatchAnnotate réussie renvoie une réponse avec un champ de nom unique :
{ "name": "projects/usable-auth-library/operations/1efec2285bd442df" }
Sa valeur représente une opération de longue durée avec un identifiant associé (par exemple, 1efec2285bd442df), dont on peut vérifier l'état à l'aide de l'API v1.operations.
Pour récupérer le résultat de l'annotation par Vision, envoyez une requête GET au point de terminaison v1.operations en transmettant l'identifiant de l'opération dans l'URL.
GET https://vision.googleapis.com/v1/operations/operation-idExemple :
curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H