Après avoir créé (entraîné) un modèle, vous pouvez envoyer une requête de prédiction asynchrone pour un lot d'images à l'aide de la méthode batchPredict
. La méthode batchPredict
applique des étiquettes aux images en fonction des objets principaux des images que le modèle prédit.
La durée de vie maximale d'un modèle personnalisé est de 18 mois à partir du lancement de la version en disponibilité générale. Vous devez créer et entraîner un nouveau modèle pour continuer à annoter du contenu au-delà de cette période.
Prédiction par lot
Vous pouvez demander des annotations (prédictions) pour les images à l'aide de la commande batchPredict
. La commande batchPredict
utilise en entrée un fichier CSV stocké dans votre bucket Google Cloud Storage et contenant les chemins d'accès aux images à annoter. Chaque ligne spécifie un chemin d'accès distinct pour une image dans Google Cloud Storage.
batch_prediction.csv
:
gs://my-cloud-storage-bucket/prediction_files/image1.jpg gs://my-cloud-storage-bucket/prediction_files/image2.jpg gs://my-cloud-storage-bucket/prediction_files/image3.jpg gs://my-cloud-storage-bucket/prediction_files/image4.jpg gs://my-cloud-storage-bucket/prediction_files/image5.jpg gs://my-cloud-storage-bucket/prediction_files/image6.png
En fonction du nombre d'images que vous avez spécifié dans votre fichier CSV, la tâche de prédiction par lot peut prendre un certain temps. Même avec un petit nombre d'images, la prédiction par lot prendra au moins 30 minutes.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- project-id : ID de votre projet GCP.
- location-id : identifiant d'emplacement valide. Actuellement, vous devez utiliser la valeur suivante :
us-central1
- model-id : ID de votre modèle, issu de la réponse obtenue lors de sa création. L'ID est le dernier élément du nom du modèle.
Exemple :
- Nom du modèle :
projects/project-id/locations/location-id/models/IOD4412217016962778756
- ID du modèle :
IOD4412217016962778756
- Nom du modèle :
- input-storage-path : chemin d'accès à un fichier CSV stocké sur Google Cloud Storage. L'utilisateur demandeur doit au minimum disposer d'autorisations en lecture sur le bucket.
- output-storage-bucket : répertoire/bucket Google Cloud Storage dans lequel enregistrer les fichiers de sortie, sous ce format :
gs://bucket/directory/
. L'utilisateur demandeur doit disposer d'autorisations en écriture sur le bucket.
Remarque sur les champs :
params.score_threshold
: valeur comprise entre 0 et 1. Seuls les résultats dont les scores sont supérieurs ou égaux à cette valeur sont renvoyés.
Méthode HTTP et URL :
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID:batchPredict
Corps JSON de la requête :
{ "inputConfig": { "gcsSource": { "inputUris": [ "INPUT_STORAGE_PATH" ] } }, "outputConfig": { "gcsDestination": { "outputUriPrefix": "OUTPUT_STORAGE_BUCKET" } }, "params": { "score_threshold": "0.0" } }
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://automl.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID:batchPredict"
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://automl.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID:batchPredict" | Select-Object -Expand Content
La sortie obtenue doit ressembler à ceci :
{ "name": "projects/PROJECT_ID/locations/LOCATION_ID/operations/ICN926615623331479552", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-06-19T21:28:35.302067Z", "updateTime": "2019-06-19T21:28:35.302067Z", "batchPredictDetails": { "inputConfig": { "gcsSource": { "inputUris": [ "INPUT_STORAGE_PATH" ] } } } } }
Vous pouvez utiliser l'ID d'opération (ICN926615623331479552
dans ce cas) pour connaître l'état de la tâche. Pour consulter un exemple, reportez-vous à la section Travailler avec des opérations de longue durée.
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": "projects/PROJECT_ID/locations/LOCATION_ID/operations/ICN926615623331479552", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-06-19T21:28:35.302067Z", "updateTime": "2019-06-19T21:57:18.310033Z", "batchPredictDetails": { "inputConfig": { "gcsSource": { "inputUris": [ "INPUT_STORAGE_PATH" ] } }, "outputInfo": { "gcsOutputDirectory": "gs://STORAGE_BUCKET_VCM/SUBDIRECTORY/prediction-8370559933346329705-YYYY-MM-DDThh:mm:ss.sssZ" } } }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.automl.v1.BatchPredictResult" } }
Consultez la section Fichiers JSONL de sortie ci-dessous pour obtenir un exemple de fichier de sortie.
Java
Avant d'essayer l'exemple ci-dessous, suivez les instructions de configuration pour ce langage sur la page Bibliothèques clientes.
Node.js
Avant d'essayer l'exemple ci-dessous, suivez les instructions de configuration pour ce langage sur la page Bibliothèques clientes.
Python
Avant d'essayer l'exemple ci-dessous, suivez les instructions de configuration pour ce langage sur la page Bibliothèques clientes.
Langages supplémentaires
C# : Veuillez suivre les Instructions de configuration pour C# sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur AutoML 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 AutoML Vision pour PHP.
Ruby : Veuillez suivre les Instructions de configuration pour Ruby sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur AutoML Vision pour Ruby.
Fichiers JSONL de sortie
Une fois la tâche de prédiction par lot terminée, le résultat de la prédiction est stocké dans le bucket Google Cloud Storage spécifié dans la commande.
Dans le bucket de sortie (le cas échéant, dans le répertoire spécifié), les fichiers image_classification_1.jsonl
, image_classification_2.jsonl
,..., image_classification_N.jsonl
sont créés, où N peut être égal à 1 et dépend du nombre total d'images et d'annotations correctement prédites.
Chaque image ne sera répertoriée qu'une seule fois avec toutes ses annotations, et ses annotations ne seront jamais réparties entre les fichiers.
Chaque ligne de tous les fichiers JSONL contient une représentation JSON d'un proto qui encapsule l'ID de l'image (<id_value>) suivi d'une liste comportant zéro, un ou plusieurs protos AnnotationPayload (appelés annotations), dont les détails de classification sont renseignés.
Exemple de fichier JSONL :
image_image_classification_0.jsonl
: un seul fichier .jsonl avec 4 lignes, chaque ligne correspondant à une annotation de fichier image JSON.
Travailler avec des opérations de longue durée
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- project-id : ID de votre projet GCP.
- operation-id : ID de l'opération. L'ID est le dernier élément du nom de l'opération. Exemple :
- Nom de l'opération :
projects/project-id/locations/location-id/operations/IOD5281059901324392598
- ID de l'opération :
IOD5281059901324392598
- Nom de l'opération :
Méthode HTTP et URL :
GET https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
"https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID"
PowerShell
Exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID" | Select-Object -Expand Content
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2018-10-29T15:56:29.176485Z", "updateTime": "2018-10-29T16:10:41.326614Z", "importDataDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Vous devez obtenir un résultat semblable au suivant à l'issue d'une opération de création de modèle :
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-07-22T18:35:06.881193Z", "updateTime": "2019-07-22T19:58:44.972235Z", "createModelDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.automl.v1.Model", "name": "projects/PROJECT_ID/locations/us-central1/models/MODEL_ID" } }
Go
Avant d'essayer cet exemple, suivez les instructions de configuration pour ce langage sur la page API et documentation de référence > Bibliothèques clientes.
Java
Avant d'essayer cet exemple, suivez les instructions de configuration pour ce langage sur la page API et documentation de référence > Bibliothèques clientes.
Node.js
Avant d'essayer cet exemple, suivez les instructions de configuration pour ce langage sur la page API et documentation de référence > Bibliothèques clientes.
Python
Avant d'essayer cet exemple, suivez les instructions de configuration pour ce langage sur la page API et documentation de référence > Bibliothèques clientes.
Langages supplémentaires
C# : Veuillez suivre les Instructions de configuration pour C# sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur AutoML 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 AutoML Vision pour PHP.
Ruby : Veuillez suivre les Instructions de configuration pour Ruby sur la page des bibliothèques clientes, puis consultez la Documentation de référence sur AutoML Vision pour Ruby.