Gérer les ensembles de données

Un ensemble de données contient des échantillons représentatifs du type de contenu auquel vous souhaitez ajouter des étiquettes de cadre de sélection que votre 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 :

  1. Créer un ensemble de données et spécifier s'il faut autoriser plusieurs étiquettes sur chaque élément.
  2. Importer des éléments de données dans l'ensemble de données.

Avant d'entraîner un modèle, veillez à préparer vos données.

Un projet peut avoir plusieurs ensembles de données, chacun servant à entraîner un modèle distinct. Vous pouvez accéder à la liste des ensembles de données disponibles et supprimer les ensembles de données dont vous n'avez plus besoin.

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.

UI Web

L'interface utilisateur d'AutoML Video Object Tracking vous permet de créer un ensemble de données, puis d'y importer des éléments à partir de la même page.

  1. Ouvrez l'interface utilisateur d'AutoML Video Object Tracking. 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. Liste des ensembles de données du projet dans Google Cloud Console Si vous souhaitez ajouter un ensemble de données pour un autre projet, sélectionnez ce projet dans la liste déroulante située dans l'angle supérieur droit de la barre de titre.
  2. Sur la page Datasets (Ensembles de données), cliquez sur Create Dataset (Créer un ensemble de données).
  3. Dans la boîte de dialogue Créer un ensemble de données, procédez comme suit :
    • Spécifiez un nom pour cet ensemble de données.
    • Sélectionnez Suivi des objets vidéo.
    • Cliquez sur Créer un ensemble de données.
  4. Sur la page de votre ensemble de données, indiquez l'URI Cloud Storage du fichier CSV contenant les URI de vos données d'entraînement, sans le préfixe gs:// au début.
  5. Sur cette même page, cliquez sur Continue (Continuer) pour démarrer l'entraînement. Page de l'ensemble de données intitulé

API REST et ligne de commande

L'exemple suivant crée un ensemble de données nommé my_dataset01 compatible avec les cas d'utilisation du suivi des objets. 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 :

  • dataset-name : nom de l'ensemble de données cible.
    Par exemple, my_dataset_01
  • Remarque :
    • project-number : numéro de votre projet.
    • location-id : région cloud dans laquelle l'annotation doit avoir lieu. Les régions cloud compatibles sont les suivantes : us-east1, us-west1, europe-west1 et asia-east1. Si aucune région n'est spécifiée, une région sera déterminée en fonction de l'emplacement du fichier vidéo.

Méthode HTTP et URL :

POST https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets

Corps JSON de la requête :

{
    "displayName": "dataset-name",
    "videoObjectTrackingDatasetMetadata": { }
}

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 application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets

PowerShell

.

Enregistrez le corps de la requête dans un fichier nommé request.json, puis exécutez la commande suivante :

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets" | Select-Object -Expand Content
Si la réponse aboutit, l'API de suivi des objets AutoML Video Intelligence renvoie le nom de votre opération. Voici un exemple de ce type de réponse, où project-number est le numéro de votre projet et operation-id est l'ID de l'opération de longue durée créée pour la requête. Par exemple : VOT12345....

Java

import com.google.cloud.automl.v1beta1.AutoMlClient;
import com.google.cloud.automl.v1beta1.Dataset;
import com.google.cloud.automl.v1beta1.LocationName;
import com.google.cloud.automl.v1beta1.VideoObjectTrackingDatasetMetadata;
import java.io.IOException;

class VideoObjectTrackingCreateDataset {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "YOUR_PROJECT_ID";
    String displayName = "YOUR_DATASET_NAME";
    createDataset(projectId, displayName);
  }

  // Create a dataset
  static void createDataset(String projectId, String displayName) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (AutoMlClient client = AutoMlClient.create()) {
      // A resource that represents Google Cloud Platform location.
      LocationName projectLocation = LocationName.of(projectId, "us-central1");
      VideoObjectTrackingDatasetMetadata metadata =
          VideoObjectTrackingDatasetMetadata.newBuilder().build();
      Dataset dataset =
          Dataset.newBuilder()
              .setDisplayName(displayName)
              .setVideoObjectTrackingDatasetMetadata(metadata)
              .build();

      Dataset createdDataset = client.createDataset(projectLocation, dataset);

      // Display the dataset information.
      System.out.format("Dataset name: %s%n", createdDataset.getName());
      // To get the dataset id, you have to parse it out of the `name` field. As dataset Ids are
      // required for other methods.
      // Name Form: `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`
      String[] names = createdDataset.getName().split("/");
      String datasetId = names[names.length - 1];
      System.out.format("Dataset id: %s%n", datasetId);
    }
  }
}

Node.js

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'us-central1';
// const displayName = 'YOUR_DISPLAY_NAME';

// Imports the Google Cloud AutoML library
const {AutoMlClient} = require('@google-cloud/automl').v1beta1;

// Instantiates a client
const client = new AutoMlClient();

async function createDataset() {
  // Construct request
  const request = {
    parent: client.locationPath(projectId, location),
    dataset: {
      displayName: displayName,
      videoObjectTrackingDatasetMetadata: {},
    },
  };

  // Create dataset
  const [response] = await client.createDataset(request);

  console.log(`Dataset name: ${response.name}`);
  console.log(`
    Dataset id: ${
      response.name
        .split('/')
        [response.name.split('/').length - 1].split('\n')[0]
    }`);
}

createDataset();

Python

from google.cloud import automl_v1beta1 as automl

def create_dataset(
    project_id="YOUR_PROJECT_ID", display_name="your_datasets_display_name"
):
    """Create a automl video object tracking dataset."""
    client = automl.AutoMlClient()

    # A resource that represents Google Cloud Platform location.
    project_location = client.location_path(project_id, "us-central1")
    metadata = automl.types.VideoObjectTrackingDatasetMetadata()
    dataset = automl.types.Dataset(
        display_name=display_name,
        video_object_tracking_dataset_metadata=metadata,
    )

    # Create a dataset with the dataset metadata in the region.
    created_dataset = client.create_dataset(project_location, dataset)
    # Display the dataset information
    print("Dataset name: {}".format(created_dataset.name))
    print("Dataset id: {}".format(created_dataset.name.split("/")[-1]))

Importer des éléments dans un ensemble de données

Une fois que vous avez créé un ensemble de données, vous pouvez importer des données étiquetées à partir de fichiers CSV stockés dans un bucket Cloud Storage. Pour plus de détails sur la préparation des données et la création d'un fichier CSV à importer, consultez la page 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

En règle générale, vous importez vos données lorsque vous créez votre ensemble de données.

Toutefois, si vous devez importer les données après avoir créé votre ensemble de données, procédez comme suit :

  1. Ouvrez l'interface utilisateur d'AutoML Video Object Tracking. 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. Liste des ensembles de données du projet dans Google Cloud Console
  2. Dans la liste, cliquez sur l'ensemble de données dans lequel vous souhaitez importer des données.
  3. Dans l'onglet Import (Importer), indiquez l'URI Cloud Storage du fichier CSV contenant les URI de vos données d'entraînement, sans le préfixe gs:// au début.
  4. Toujours dans l'onglet Import (Importer) de votre ensemble de données, cliquez sur Continue (Continuer) pour commencer l'importation. Page de l'ensemble de données intitulé

API REST et ligne de commande

Pour importer vos données d'entraînement, utilisez la méthode importData. Cette méthode nécessite de fournir deux paramètres :

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • 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-number/locations/location-id/datasets/3104518874390609379
    • ID de l'ensemble de données : 3104518874390609379
  • bucket-name : remplacez cette valeur par le nom du bucket Cloud Storage dans lequel vous avez stocké le fichier CSV de votre liste de fichiers d'entraînement de modèle.
  • csv-file-name : remplacez cette valeur par le nom du fichier CSV de votre liste de fichiers d'entraînement de modèle.
  • Remarque :
    • project-number : numéro de votre projet.
    • location-id : région cloud dans laquelle l'annotation doit avoir lieu. Les régions cloud compatibles sont les suivantes : us-east1, us-west1, europe-west1 et asia-east1. Si aucune région n'est spécifiée, une région sera déterminée en fonction de l'emplacement du fichier vidéo.

Méthode HTTP et URL :

POST https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets/dataset-id:importData

Corps JSON de la requête :

{
  "inputConfig": {
    "gcsSource": {
      "inputUris": ["gs://bucket-name/csv-file-name.csv"]
    }
  }
}

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 application-default print-access-token) \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/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 application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets/dataset-id:importData" | Select-Object -Expand Content
Vous devez recevoir un ID d'opération pour l'opération d'importation des données. L'exemple montre une réponse contenant l'ID de l'opération d'importation VOT7506374678919774208.

Java

import com.google.api.gax.longrunning.OperationFuture;
import com.google.api.gax.retrying.RetrySettings;
import com.google.cloud.automl.v1beta1.AutoMlClient;
import com.google.cloud.automl.v1beta1.AutoMlSettings;
import com.google.cloud.automl.v1beta1.DatasetName;
import com.google.cloud.automl.v1beta1.GcsSource;
import com.google.cloud.automl.v1beta1.InputConfig;
import com.google.cloud.automl.v1beta1.OperationMetadata;
import com.google.protobuf.Empty;
import java.io.IOException;
import java.util.Arrays;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
import org.threeten.bp.Duration;

class ImportDataset {

  public static void main(String[] args)
      throws IOException, ExecutionException, InterruptedException, TimeoutException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "YOUR_PROJECT_ID";
    String datasetId = "YOUR_DATASET_ID";
    String path = "gs://BUCKET_ID/path_to_training_data.csv";
    importDataset(projectId, datasetId, path);
  }

  // Import a dataset
  static void importDataset(String projectId, String datasetId, String path)
      throws IOException, ExecutionException, InterruptedException, TimeoutException {
    Duration totalTimeout = Duration.ofMinutes(45);
    RetrySettings retrySettings = RetrySettings.newBuilder().setTotalTimeout(totalTimeout).build();
    AutoMlSettings.Builder builder = AutoMlSettings.newBuilder();
    builder.importDataSettings().setRetrySettings(retrySettings).build();
    AutoMlSettings settings = builder.build();

    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (AutoMlClient client = AutoMlClient.create(settings)) {
      // Get the complete path of the dataset.
      DatasetName datasetFullId = DatasetName.of(projectId, "us-central1", datasetId);

      // Get multiple Google Cloud Storage URIs to import data from
      GcsSource gcsSource =
          GcsSource.newBuilder().addAllInputUris(Arrays.asList(path.split(","))).build();

      // Import data from the input URI
      InputConfig inputConfig = InputConfig.newBuilder().setGcsSource(gcsSource).build();
      System.out.println("Processing import...");

      // Start the import job
      OperationFuture<Empty, OperationMetadata> operation = client
          .importDataAsync(datasetFullId, inputConfig);

      System.out.format("Operation name: %s%n", operation.getName());

      // If you want to wait for the operation to finish, adjust the timeout appropriately. The
      // operation will still run if you choose not to wait for it to complete. You can check the
      // status of your operation using the operation's name.
      Empty response = operation.get(45, TimeUnit.MINUTES);
      System.out.format("Dataset imported. %s%n", response);
    } catch (TimeoutException e) {
      System.out.println("The operation's polling period was not long enough.");
      System.out.println("You can use the Operation's name to get the current status.");
      System.out.println("The import job is still running and will complete as expected.");
      throw e;
    }
  }
}

Node.js

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'us-central1';
// const datasetId = 'YOUR_DISPLAY_ID';
// const path = 'gs://BUCKET_ID/path_to_training_data.csv';

// Imports the Google Cloud AutoML library
const {AutoMlClient} = require('@google-cloud/automl').v1beta1;

// Instantiates a client
const client = new AutoMlClient();

async function importDataset() {
  // Construct request
  const request = {
    name: client.datasetPath(projectId, location, datasetId),
    inputConfig: {
      gcsSource: {
        inputUris: path.split(','),
      },
    },
  };

  // Import dataset
  console.log('Proccessing import');
  const [operation] = await client.importData(request);

  // Wait for operation to complete.
  const [response] = await operation.promise();
  console.log(`Dataset imported: ${response}`);
}

importDataset();

Python

from google.cloud import automl_v1beta1 as automl

def import_dataset(
    project_id="YOUR_PROJECT_ID",
    dataset_id="YOUR_DATASET_ID",
    path="gs://YOUR_BUCKET_ID/path/to/data.csv",
):
    """Import a dataset."""
    client = automl.AutoMlClient()
    # Get the full path of the dataset.
    dataset_full_id = client.dataset_path(
        project_id, "us-central1", dataset_id
    )
    # Get the multiple Google Cloud Storage URIs
    input_uris = path.split(",")
    gcs_source = automl.types.GcsSource(input_uris=input_uris)
    input_config = automl.types.InputConfig(gcs_source=gcs_source)
    # Import data from the input URI
    response = client.import_data(dataset_full_id, input_config)

    print("Processing import...")
    print("Data imported. {}".format(response.result()))

Appliquer des étiquettes aux éléments d'entraînement

Chaque élément d'un ensemble de données doit contenir au moins un cadre de délimitation et être associé à au moins une étiquette de catégorie pour pouvoir servir à l'entraînement d'un modèle. Vous pouvez fournir des étiquettes et des cadres de délimitation pour vos éléments d'entraînement de deux manières :

  • Incluez des étiquettes et des cadres de délimitation dans votre fichier CSV.
  • Appliquez des étiquettes et des cadres de délimitation à vos éléments dans l'interface utilisateur d'AutoML Video Object Tracking.

Pour savoir comment attribuer des étiquettes aux éléments dans votre fichier CSV, consultez la page Préparer les données d'entraînement.

Pour appliquer des étiquettes à des éléments dans l'interface utilisateur d'AutoML Video Object Tracking, sélectionnez un ensemble de données sur la page où ils sont répertoriés afin d'afficher les détails correspondants. Le nom à afficher de l'ensemble de données sélectionné s'affiche dans la barre de titre. La page répertorie chaque élément de l'ensemble de données et l'étiquette correspondante. La barre de navigation de gauche récapitule le nombre d'éléments avec et sans étiquette. Elle vous permet également de filtrer la liste d'éléments par étiquette.

Vidéos dans un ensemble de données

Pour attribuer des étiquettes et des cadres de délimitation à des vidéos sans étiquette ou pour modifier les étiquettes et les cadres de délimitation des vidéos, procédez comme suit :

  1. Sur la page de l'ensemble de données, cliquez sur la vidéo pour laquelle vous souhaitez ajouter des étiquettes.
  2. Sur la page de la vidéo, procédez comme suit :

    1. Lancez la vidéo jusqu'à ce que l'élément auquel vous souhaitez ajouter une étiquette apparaisse.
    2. Faites glisser le curseur pour tracer un cadre de délimitation autour de l'élément.
    3. Après avoir tracé le cadre de délimitation, sélectionnez l'étiquette que vous souhaitez utiliser.
    4. Cliquez sur Save.

Traçage d'un cadre de délimitation autour d'une vache dans une vidéo

Si vous devez ajouter une étiquette à l'ensemble de données, cliquez sur les trois points à côté de la rubrique Filter labels (Filtrer les étiquettes), puis sur Add new label (Ajouter une étiquette) au-dessus de la liste des étiquettes existantes sur la page de l'ensemble de données.

Modifier des étiquettes dans les données

Vous pouvez également modifier les étiquettes appliquées aux vidéos d'un ensemble de données. Dans l'interface utilisateur d'AutoML Video Object Tracking, procédez comme suit :

  1. Sur la page de l'ensemble de données, cliquez sur la vidéo dont vous souhaitez modifier les étiquettes.
  2. Sur la page de la vidéo, procédez comme suit :

    1. Dans la liste des étiquettes sur la gauche, sélectionnez celle que vous souhaitez modifier.
    2. Dans l'aperçu de la vidéo, effectuez un clic droit sur le cadre de délimitation de la vidéo et sélectionnez l'étiquette de votre choix.
    3. Cliquez sur Save.

Modification de l'étiquette appliquée à la berline dans une vidéo

Répertorier les ensembles de données

Un projet peut inclure de nombreux ensembles de données. Cette section explique comment récupérer la liste des ensembles de données disponibles pour un projet.

UI Web

Pour afficher la liste des ensembles de données disponibles à l'aide de l'interface utilisateur d'AutoML Video Object Tracking, accédez à la page Datasets (Ensembles de données).

Liste des ensembles de données du projet

Pour afficher les ensembles de données d'un autre projet, sélectionnez le projet dans la liste déroulante située dans l'angle supérieur droit de la barre de titre.

API REST et ligne de commande

Utilisez les commandes curl ou PowerShell suivantes pour obtenir la liste de vos ensembles de données et le nombre d'échantillons vidéo qui y ont été importés.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-number : numéro de votre projet.
  • location-id : région cloud dans laquelle l'annotation doit avoir lieu. Les régions cloud compatibles sont les suivantes : us-east1, us-west1, europe-west1 et asia-east1. Si aucune région n'est spécifiée, une région sera déterminée en fonction de l'emplacement du fichier vidéo.

Méthode HTTP et URL :

GET https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets

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 application-default print-access-token) \
https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets

PowerShell

Exécutez la commande suivante :

$cred = gcloud auth application-default print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets " | Select-Object -Expand Content
Dans la réponse ci-dessous, VOT3940649673949184000 correspond à l'ID de l'opération de longue durée créée pour la requête, qui est fourni dans la réponse renvoyée au démarrage de l'opération.

Java

import com.google.cloud.automl.v1beta1.AutoMlClient;
import com.google.cloud.automl.v1beta1.AutoMlSettings;
import com.google.cloud.automl.v1beta1.Dataset;
import com.google.cloud.automl.v1beta1.ListDatasetsRequest;
import com.google.cloud.automl.v1beta1.LocationName;
import java.io.IOException;
import org.threeten.bp.Duration;

class ListDatasets {

  static void listDatasets() throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "YOUR_PROJECT_ID";
    listDatasets(projectId);
  }

  // List the datasets
  static void listDatasets(String projectId) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    AutoMlSettings.Builder autoMlSettingsBuilder = AutoMlSettings.newBuilder();

    autoMlSettingsBuilder
        .listDatasetsSettings()
        .setRetrySettings(
            autoMlSettingsBuilder
                .listDatasetsSettings()
                .getRetrySettings()
                .toBuilder()
                .setTotalTimeout(Duration.ofSeconds(15))
                .build());
    AutoMlSettings autoMlSettings = autoMlSettingsBuilder.build();

    try (AutoMlClient client = AutoMlClient.create(autoMlSettings)) {
      // A resource that represents Google Cloud Platform location.
      LocationName projectLocation = LocationName.of(projectId, "us-central1");
      ListDatasetsRequest request =
          ListDatasetsRequest.newBuilder().setParent(projectLocation.toString()).build();

      // List all the datasets available in the region by applying filter.
      System.out.println("List of datasets:");
      for (Dataset dataset : client.listDatasets(request).iterateAll()) {
        // Display the dataset information
        System.out.format("%nDataset name: %s%n", dataset.getName());
        // To get the dataset id, you have to parse it out of the `name` field. As dataset Ids are
        // required for other methods.
        // Name Form: `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`
        String[] names = dataset.getName().split("/");
        String retrievedDatasetId = names[names.length - 1];
        System.out.format("Dataset id: %s%n", retrievedDatasetId);
        System.out.format("Dataset display name: %s%n", dataset.getDisplayName());
        System.out.println("Dataset create time:");
        System.out.format("\tseconds: %s%n", dataset.getCreateTime().getSeconds());
        System.out.format("\tnanos: %s%n", dataset.getCreateTime().getNanos());

        System.out.format(
            "Video object tracking dataset metadata: %s%n",
            dataset.getVideoObjectTrackingDatasetMetadata());
      }
    }
  }
}

Node.js

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'us-central1';

// Imports the Google Cloud AutoML library
const {AutoMlClient} = require('@google-cloud/automl').v1beta1;

// Instantiates a client
const client = new AutoMlClient();

async function listDatasets() {
  // Construct request
  const request = {
    parent: client.locationPath(projectId, location),
    filter: 'translation_dataset_metadata:*',
  };

  const [response] = await client.listDatasets(request);

  console.log('List of datasets:');
  for (const dataset of response) {
    console.log(`Dataset name: ${dataset.name}`);
    console.log(
      `Dataset id: ${
        dataset.name.split('/')[dataset.name.split('/').length - 1]
      }`
    );
    console.log(`Dataset display name: ${dataset.displayName}`);
    console.log('Dataset create time');
    console.log(`\tseconds ${dataset.createTime.seconds}`);
    console.log(`\tnanos ${dataset.createTime.nanos / 1e9}`);

    console.log(
      `Video object tracking dataset metadata: ${dataset.videoObjectTrackingDatasetMetadata}`
    );
  }
}

listDatasets();

Python

from google.cloud import automl_v1beta1 as automl

def list_datasets(project_id="YOUR_PROJECT_ID"):
    """List datasets."""
    client = automl.AutoMlClient()
    # A resource that represents Google Cloud Platform location.
    project_location = client.location_path(project_id, "us-central1")

    # List all the datasets available in the region.
    response = client.list_datasets(project_location, "")

    print("List of datasets:")
    for dataset in response:
        print("Dataset name: {}".format(dataset.name))
        print("Dataset id: {}".format(dataset.name.split("/")[-1]))
        print("Dataset display name: {}".format(dataset.display_name))
        print("Dataset create time:")
        print("\tseconds: {}".format(dataset.create_time.seconds))
        print("\tnanos: {}".format(dataset.create_time.nanos))
        print(
            "Video object tracking dataset metadata: {}".format(
                dataset.video_object_tracking_dataset_metadata
            )
        )

Supprimer un ensemble de données

Le code suivant montre comment supprimer un ensemble de données.

UI Web

  1. Accédez à la page Datasets (Ensembles de données) dans l'interface utilisateur d'AutoML Video Object Tracking.

    Onglet
  2. Cliquez sur le menu à trois points à l'extrémité droite de la ligne à supprimer, puis sélectionnez Supprimer l'ensemble de données.
  3. Cliquez sur Supprimer dans la boîte de dialogue de confirmation.

API REST et ligne de commande

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-number : numéro de votre projet.
  • location-id : région cloud dans laquelle l'annotation doit avoir lieu. Les régions cloud compatibles sont les suivantes : us-east1, us-west1, europe-west1 et asia-east1. Si aucune région n'est spécifiée, une région sera déterminée en fonction de l'emplacement du fichier vidéo.
  • datase-id : remplacez cette valeur par l'identifiant de votre ensemble de données.

Méthode HTTP et URL :

DELETE https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets/dataset-id

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir un code d'état indiquant le succès de l'opération (2xx), ainsi qu'une réponse vide.

Java

import com.google.cloud.automl.v1beta1.AutoMlClient;
import com.google.cloud.automl.v1beta1.DatasetName;
import com.google.protobuf.Empty;
import java.io.IOException;
import java.util.concurrent.ExecutionException;

class DeleteDataset {

  static void deleteDataset() throws IOException, ExecutionException, InterruptedException {
    // TODO(developer): Replace these variables before running the sample.
    String projectId = "YOUR_PROJECT_ID";
    String datasetId = "YOUR_DATASET_ID";
    deleteDataset(projectId, datasetId);
  }

  // Delete a dataset
  static void deleteDataset(String projectId, String datasetId)
      throws IOException, ExecutionException, InterruptedException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (AutoMlClient client = AutoMlClient.create()) {
      // Get the full path of the dataset.
      DatasetName datasetFullId = DatasetName.of(projectId, "us-central1", datasetId);
      Empty response = client.deleteDatasetAsync(datasetFullId).get();
      System.out.format("Dataset deleted. %s%n", response);
    }
  }
}

Node.js

/**
 * TODO(developer): Uncomment these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
// const location = 'us-central1';
// const datasetId = 'YOUR_DATASET_ID';

// Imports the Google Cloud AutoML library
const {AutoMlClient} = require('@google-cloud/automl').v1beta1;

// Instantiates a client
const client = new AutoMlClient();

async function deleteDataset() {
  // Construct request
  const request = {
    name: client.datasetPath(projectId, location, datasetId),
  };

  const [operation] = await client.deleteDataset(request);

  // Wait for operation to complete.
  const [response] = await operation.promise();
  console.log(`Dataset deleted: ${response}`);
}

deleteDataset();

Python

from google.cloud import automl_v1beta1 as automl

def delete_dataset(project_id="YOUR_PROJECT_ID", dataset_id="YOUR_DATASET_ID"):
    """Delete a dataset."""
    client = automl.AutoMlClient()
    # Get the full path of the dataset
    dataset_full_id = client.dataset_path(
        project_id, "us-central1", dataset_id
    )
    response = client.delete_dataset(dataset_full_id)

    print("Dataset deleted. {}".format(response.result()))