L'API Cloud Vision peut détecter toute caractéristique de l'API Cloud Vision à partir des fichiers PDF et TIFF stockés dans Cloud Storage.
La détection de caractéristiques à partir de fichiers PDF et TIFF doit être initiée à l'aide de la fonction files:asyncBatchAnnotate
qui effectue une requête hors connexion (asynchrone) et fournit son état à l'aide des 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 renverront une erreur.
Authentification
Les clés API ne sont pas compatibles pour les requêtes files:asyncBatchAnnotate
. Consultez la section 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 la section Utiliser une clé API.
Requêtes de détection de fonctionnalités
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ésultat sont enregistrés de même dans un bucket Cloud Storage.
Ligne de commande
Pour lancer une détection de document PDF/TIFF, utilisez une requête POST dont le corps approprié est :
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ https://vision.googleapis.com/v1/files:asyncBatchAnnotate -d "{ 'requests':[ { 'inputConfig': { 'gcsSource': { 'uri': 'gs://your-source-bucket-name/folder/multi-page-file.pdf' }, 'mimeType': 'application/pdf' }, 'features': [ { 'type': 'DOCUMENT_TEXT_DETECTION' } ], 'outputConfig': { 'gcsDestination': { 'uri': 'gs://your-bucket-name/folder/' }, 'batchSize': 1 } } ] }"
Où :
inputConfig
remplace le champimage
utilisé dans d'autres requêtes de l'API Vision. Il contient deux sous-champs :gcsSource.uri
est l'URI Cloud Storage du fichier PDF ou TIFF (devant être accessible à l'utilisateur ou au compte de service à l'origine de la requête)mimeType
est l'un des types de fichiers acceptés :application/pdf
ouimage/tiff
.
outputConfig
sert à configurer le résultat. Il contient deux sous-champs :gcsDestination.uri
est un URI Cloud Storage 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ùx
ety
représentent les numéros de page PDF/TIFF inclus dans le fichier de réponse. Si un autre fichier semblable existe, son contenu sera écrasé.batchSize
est le nombre de pages à inclure dans chaque fichier JSON résultat.
Réponse :
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.
curl -X GET -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json" \ https://vision.googleapis.com/v1/operations/1efec2285bd442df
Si l'opération est en cours :
{ "name": "operations/1efec2285bd442df", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.OperationMetadata", "state": "RUNNING", "createTime": "2019-05-15T21:10:08.401917049Z", "updateTime": "2019-05-15T21:10:33.700763554Z" } }
Une fois l'opération terminée, state
prend la valeur DONE
, et le résultat est enregistré dans le fichier Google Cloud Storage que vous avez spécifié :
{ "name": "operations/1efec2285bd442df", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.OperationMetadata", "state": "DONE", "createTime": "2019-05-15T20:56:30.622473785Z", "updateTime": "2019-05-15T20:56:41.666379749Z" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.vision.v1.AsyncBatchAnnotateFilesResponse", "responses": [ { "outputConfig": { "gcsDestination": { "uri": "gs://your-bucket-name/folder/" }, "batchSize": 1 } } ] } }
Le fichier JSON de votre fichier de réponse est semblable à celui de la requête de détection du texte d'un document d'une image, avec simplement l'ajout d'un champ context
indiquant l'emplacement du fichier PDF ou TIFF spécifié et son nombre de pages :
output-1-to-1.json
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour Go décrites dans le guide de démarrage rapide de Vision à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud Vision en langage Go.
Pour vous authentifier auprès de Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour Java décrites dans le guide de démarrage rapide de Vision à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud Vision en langage Java.
Pour vous authentifier auprès de Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour Node.js décrites dans le guide de démarrage rapide de Vision à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud Vision en langage Node.js.
Pour vous authentifier auprès de Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour Python décrites dans le guide de démarrage rapide de Vision à l'aide des bibliothèques clientes. Pour en savoir plus, consultez la documentation de référence de l'API Cloud Vision en langage Python.
Pour vous authentifier auprès de Vision, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
gcloud
La commande gcloud
à utiliser dépend du type de fichier à traiter.
Pour effectuer une détection de texte sur un PDF, utilisez la commande
gcloud ml vision detect-text-pdf
comme indiqué dans l'exemple suivant :gcloud ml vision detect-text-pdf gs://my_bucket/input_file gs://my_bucket/out_put_prefix
Pour effectuer une détection de texte sur un fichier TIFF, utilisez la commande
gcloud ml vision detect-text-tiff
comme indiqué dans l'exemple suivant :gcloud ml vision detect-text-tiff gs://my_bucket/input_file gs://my_bucket/out_put_prefix
Langages supplémentaires
C# : Veuillez suivre les Instructions de configuration de C# sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur Vision pour .NET.
PHP : Veuillez suivre les Instructions de configuration pour PHP sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur Vision pour PHP.
Ruby : Veuillez suivre les Instructions de configuration de Ruby sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur Vision pour Ruby.