Un ensemble de données contient des échantillons représentatifs du type de contenu que vous souhaitez classifier, dotés des libellés de catégorie que le modèle personnalisé doit utiliser. Il sert d'entrée pour l'entraînement d'un modèle.
Voici les principales étapes à suivre pour créer un ensemble de données :
- Créer un ensemble de données et spécifier s'il faut autoriser plusieurs étiquettes sur chaque élément.
- Importer des éléments de données dans l'ensemble de données.
- Ajouter une étiquette aux éléments.
Lorsque vous importez des éléments avec des étiquettes déjà attribuées, les étapes 2 et 3 sont combinées.
Créer un ensemble de données
La première étape de l'élaboration d'un modèle personnalisé consiste à créer un ensemble de données vide, qui contiendra à terme les données d'entraînement du modèle. Lorsque vous créez un ensemble de données, vous spécifiez le type de classification que le modèle personnalisé doit effectuer. Deux options sont possibles :
- MULTICLASS attribue une seule étiquette à chaque image classifiée.
- MULTILABEL permet d'attribuer plusieurs étiquettes à une image.
À compter de la version v1 de l'API Cloud AutoML, cette requête renvoie l'ID d'une opération de longue durée.
Une fois l'opération de longue durée terminée, vous pouvez importer des images dans l'ensemble de données. Le nouvel ensemble de données ne contient aucune donnée tant que vous n'importez aucune image.
Enregistrez l'ID du nouvel ensemble de données (issu de la réponse) afin de l'utiliser pour d'autres opérations, comme l'importation d'images ou l'entraînement d'un modèle.
UI Web
Ouvrez le tableau de bord Vision.
Vous pouvez également accéder à cette page depuis la console. Accédez au menu de navigation de gauche, puis sélectionnez Intelligence artificielle > Vision. Vous serez redirigé vers le tableau de bord Vision intégré. Sélectionnez la fiche AutoML Vision.
Sélectionnez Ensembles de données dans le menu de navigation de gauche.
En haut de page, sélectionnez le bouton Nouvel ensemble de données, mettez à jour le nom de l'ensemble de données (facultatif), puis sélectionnez
classification à étiquette unique ou classification multi-étiquette selon les données dont vous disposez.Après avoir spécifié le type de classification, sélectionnez Créer un ensemble de données.
Sur la page Créer un ensemble de données, vous pouvez sélectionner un fichier CSV depuis Google Cloud Storage ou importer des fichiers image locaux dans l'ensemble de données.
Sélectionnez Continuer pour lancer l'importation d'images dans votre ensemble de données. Pendant l'importation, l'ensemble de données affiche l'état En cours d'exécution : importation des images.
Vous recevez un e-mail une fois le processus d'importation terminé.
REST
L'exemple suivant crée un ensemble de données qui accepte une étiquette par élément (reportez-vous au paragraphe MULTICLASS).
Ce nouvel ensemble de données ne contient aucune donnée tant que vous n'y importez pas d'éléments.
Enregistrez le nom "name"
du nouvel ensemble de données (issu de la réponse) afin de l'utiliser pour d'autres opérations, par exemple y importer des éléments ou entraîner un modèle.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- project-id : ID de votre projet GCP.
- display-name : nom à afficher de la chaîne de votre choix.
Méthode HTTP et URL :
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets
Corps JSON de la requête :
{ "displayName": "DISPLAY_NAME", "imageClassificationDatasetMetadata": { "classificationType": "MULTICLASS" } }
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/us-central1/datasets"
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/us-central1/datasets" | Select-Object -Expand Content
Des résultats semblables aux lignes suivantes devraient s'afficher : Vous pouvez utiliser l'ID d'opération (ICN3819960680614725486
, 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 :
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/ICN3819960680614725486", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-11-14T16:49:13.667526Z", "updateTime": "2019-11-14T16:49:13.667526Z", "createDatasetDetails": {} } }
Une fois l'opération de longue durée terminée, vous pouvez obtenir l'ID de l'ensemble de données avec la même requête d'état d'opération. La réponse devrait ressembler à ceci :
{ "name": "projects/PROJECT_ID/locations/us-central1/operations/ICN3819960680614725486", "metadata": { "@type": "type.googleapis.com/google.cloud.automl.v1.OperationMetadata", "createTime": "2019-11-14T16:49:13.667526Z", "updateTime": "2019-11-14T16:49:17.975314Z", "createDatasetDetails": {} }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.automl.v1.Dataset", "name": "projects/PROJECT_ID/locations/us-central1/datasets/ICN5496445433112696489" } }
Go
Avant d'essayer l'exemple ci-dessous, suivez les instructions de configuration pour ce langage sur la page Bibliothèques clientes.
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 C#.
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.
Importer des éléments dans un ensemble de données
Après avoir créé un ensemble de données, vous pouvez importer des URI et des libellés d'éléments à partir d'un fichier CSV stocké dans un bucket Google Cloud Storage. Pour en savoir plus sur la préparation de vos données et la création d'un fichier CSV à importer, consultez la section Préparer les données d'entraînement.
Vous pouvez importer des éléments dans un ensemble de données vide, ou importer des éléments supplémentaires dans un ensemble de données existant.
UI Web
L'interface utilisateur d'AutoML Vision vous permet de créer un ensemble de données, puis d'y importer des éléments à partir de la même page. Pour en savoir plus, consultez la section Créer un ensemble de données. Les étapes présentées ci-dessous permettent d'importer des éléments dans un ensemble de données existant.
Ouvrez la page Vision Dashboard, puis sélectionnez l'ensemble de données sur la page Ensembles de données.
Sur la page Images, cliquez sur Add items (Ajouter des éléments) dans la barre de titre, puis sélectionnez la méthode d'importation dans la liste déroulante.
Vous pouvez :
importer un fichier CSV contenant les images d'entraînement et les libellés de catégorie associés à partir de votre ordinateur local ou de Google Cloud Storage ;
importer des fichiers TXT ou ZIP contenant les images d'entraînement à partir de votre ordinateur local.
sélectionner un ou plusieurs fichiers à importer.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- project-id : ID de votre projet GCP.
- dataset-id : ID de votre ensemble de données. L'ID correspond au dernier élément du nom de l'ensemble de données. Exemple :
- Nom de l'ensemble de données :
projects/project-id/locations/location-id/datasets/3104518874390609379
- ID de l'ensemble de données :
3104518874390609379
- Nom de l'ensemble de données :
- 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.
Méthode HTTP et URL :
POST https://automl.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID:importData
Corps JSON de la requête :
{ "inputConfig": { "gcsSource": { "inputUris": [INPUT_STORAGE_PATH] } } }
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/us-central1/datasets/DATASET_ID:importData"
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/us-central1/datasets/DATASET_ID:importData" | Select-Object -Expand Content
Des résultats semblables aux lignes suivantes devraient s'afficher : Vous pouvez utiliser l'ID d'opération (ICN3819960680614725486
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.
{ "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-29T15:56:29.176485Z", "importDataDetails": {} } }
Go
Avant d'essayer l'exemple ci-dessous, suivez les instructions de configuration pour ce langage sur la page Bibliothèques clientes.
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.
Appliquer des étiquettes aux éléments d'entraînement
Chaque élément d'un ensemble de données doit être associé à au moins un libellé de catégorie pour pouvoir servir à l'entraînement d'un modèle. AutoML Vision ignore les éléments sans libellé de catégorie. Vous pouvez attribuer des libellés à vos éléments d'entraînement de trois manières :
- En incluant des étiquettes dans votre fichier CSV
- Pour savoir comment attribuer des libellés aux éléments dans votre fichier CSV, consultez la page Préparer les données d'entraînement.
- En attribuant des libellés à vos éléments dans l'interface utilisateur d'AutoML Vision
- En attribuant des étiquettes à l'aide d'un service d'ajout manuel d'étiquettes, comme le service d'étiquetage de données AI Platform de Google.
Ajouter une étiquette dans l'interface utilisateur
UI Web
Pour ajouter des étiquettes aux éléments dans l'interface utilisateur d'AutoML Vision, sélectionnez l'ensemble de données sur la page Ensembles de données pour afficher ses détails.
La barre latérale récapitule le nombre d'éléments avec ou sans étiquette. Ici, vous pouvez filtrer la liste d'éléments par étiquette ou sélectionner Ajouter une étiquette pour créer une étiquette.
À partir de cet écran, vous pouvez également ajouter ou modifier une étiquette associée à une image.
Sélectionnez une image pour ajouter ou modifier une étiquette.
Demander l'étiquetage de données
Vous pouvez utiliser le service d'étiquetage de données AI Platform de Google pour étiqueter vos images. Pour en savoir plus, consultez la documentation du produit.
Travailler avec des opérations de longue durée
Vous pouvez obtenir l'état d'une opération de longue durée en utilisant les exemples de code suivants.
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 C#.
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.