Un ensemble de données contient des échantillons représentatifs du type de contenu que vous souhaitez classer, annotés avec des libellés et des cadres de délimitation. 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éez un ensemble de données et attribuez-lui un nom facile à mémoriser.
- Importez des exemples de données dans l'ensemble de données.
- Modifiez les annotations des images importées (facultatif) pour ajouter, supprimer ou modifier des cadres de délimitation et des étiquettes dans vos images.
Créer un ensemble de données
La première étape de la création d'un modèle personnalisé avec l'API AutoML consiste à créer un ensemble de données vide qui contiendra les données d'entraînement du modèle.
À compter de la mise à la disponibilité générale d'AutoML Vision Object Detection, 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
L'interface utilisateur d'AutoML Vision Object Detection vous permet de créer un ensemble de données, puis d'y importer des images à partir de la même page.Ouvrez l'UI de détection d'objets AutoML Vision.
La page Datasets (Ensembles de données) indique l'état des ensembles de données créés précédemment pour le projet en cours.
Si vous souhaitez ajouter un ensemble de données pour un autre projet, sélectionnez ce dernier dans la liste déroulante située dans l'angle supérieur droit de la barre de titre.
Cliquez sur le bouton Nouvel ensemble de données de la barre de titre.
Dans la fenêtre pop-up Create a new dataset (Créer un nouvel ensemble de données), saisissez le nom de l'ensemble de données, puis sélectionnez l'option "Create dataset" (Créer un ensemble de données).
Après avoir créé un ensemble de données vide, vous êtes redirigé vers l'onglet Import (Importer) sur la page des détails de l'ensemble de données. Vous pouvez ensuite spécifier l'emplacement Google Cloud Storage du fichier CSV répertoriant les images d'entraînement à inclure dans l'ensemble de données. Ces images d'entraînement doivent également être stockées dans un bucket Google Cloud Storage.
Pour créer un ensemble de données, vous devez importer un fichier CSV contenant les images d'entraînement avec les étiquettes et les cadres de délimitation associés dans Google Cloud Storage.
Une fois l'importation terminée, vous pouvez ajouter, supprimer ou modifier des annotations dans l'interface utilisateur.
Sélectionnez Importer.
Vous êtes redirigé vers la page Ensembles de données. Votre ensemble de données affiche une animation en cours lors de l'importation de vos images. Ce processus prend environ 10 minutes pour 1 000 exemples, ce délai restant indicatif et pouvant évoluer à la hausse ou à la baisse.
REST
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", "imageObjectDetectionDatasetMetadata": { } }
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 (IOD3819960680614725486
, 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/IOD3819960680614725486", "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/IOD3819960680614725486", "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/IOD5496445433112696489" } }
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 la détection d'objets 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 la détection d'objets 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 la détection d'objets AutoML Vision pour Ruby.
Importer des images dans un ensemble de données
Une fois que vous avez créé un ensemble de données, vous pouvez importer des URI d'images et des cadres de délimitation libellés pour les images à 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. Pour en savoir plus sur la modification des annotations d'image après l'importation des images, consultez la page Annoter des images d'entraînement importées.
Vous pouvez importer des images dans un ensemble de données vide ou dans un ensemble de données contenant déjà des images d'entraînement.
UI Web
Pour AutoML Vision Object Detection, la création d'ensembles de données et l'importation d'images sont combinées par étapes successives dans l'interface utilisateur.
Importer des images dans un ensemble de données vide :
Pour la création d'un ensemble de données ultérieur, vous êtes invité à importer des images directement après avoir créé un ensemble de données vide. Cette étape d'importation n'est pas requise pour le moment.
Pour importer des images dans un ensemble de données vide, procédez comme suit :
Sélectionnez l'ensemble de données vide sur la page Ensembles de données.
Sur la page Import (Importer), ajoutez l'emplacement Google Cloud Storage de votre fichier CSV. Sélectionnez ensuite Import (Importer) pour lancer le processus d'importation du fichier.
Importer des images dans un ensemble de données non vide :
Vous avez la possibilité d'ajouter d'autres images d'entraînement à un ensemble de données contenant déjà des images d'entraînement.
Pour ce faire, procédez comme suit :
Sélectionnez l'ensemble de données non vide sur la page Ensembles de données.
Sélectionnez l'ensemble de données non vide pour accéder à la page Détails de l'ensemble de données.
Sur la page Détails de l'ensemble de données, sélectionnez l'onglet Importer.
Sélectionnez l'onglet Importer pour accéder à la page Créer un ensemble de données. Vous pouvez ensuite spécifier l'emplacement Google Cloud Storage de votre fichier CSV et sélectionner Import (Importer) pour lancer le processus d'importation d'image.
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 obtenir l'état de la tâche à l'aide de l'ID d'opération. 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.
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 la détection d'objets 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 la détection d'objets 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 la détection d'objets AutoML Vision pour Ruby.
La page Annoter des images d'entraînement importées explique comment ajouter manuellement des cadres de délimitation et des libellés aux images dans l'interface utilisateur, et comment consulter les statistiques sur les libellés.
La page Gérer les ensembles de données fournit des informations supplémentaires sur l'utilisation d'une ressource d'ensemble de données (comment répertorier, obtenir, exporter ou supprimer des ensembles de données, par exemple).
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 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.