Suivre des objets vidéo à l'aide de la ligne de commande
Ce guide de démarrage rapide vous présente les processus suivants :
- Copie d'un ensemble de vidéos dans Cloud Storage
- Création de fichiers CSV répertoriant les vidéos et leurs libellés
- Utilisation d'AutoML Video Object Tracking pour créer votre ensemble de données afin d'entraîner et d'utiliser votre modèle
Avant de commencer
Configurer votre projet
- Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
- Installez Google Cloud CLI.
-
Pour initialiser gcloudCLI, exécutez la commande suivante :
gcloud init
-
Créez ou sélectionnez un projet Google Cloud.
-
Créez un projet Google Cloud :
gcloud projects create PROJECT_ID
Remplacez
PROJECT_ID
par le nom du projet Google Cloud que vous créez. -
Sélectionnez le projet Google Cloud que vous avez créé :
gcloud config set project PROJECT_ID
Remplacez
PROJECT_ID
par le nom de votre projet Google Cloud.
-
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Activer les API AutoML and Cloud Storage :
gcloud services enable storage-component.googleapis.com
automl.googleapis.com storage-api.googleapis.com - Installez Google Cloud CLI.
-
Pour initialiser gcloudCLI, exécutez la commande suivante :
gcloud init
-
Créez ou sélectionnez un projet Google Cloud.
-
Créez un projet Google Cloud :
gcloud projects create PROJECT_ID
Remplacez
PROJECT_ID
par le nom du projet Google Cloud que vous créez. -
Sélectionnez le projet Google Cloud que vous avez créé :
gcloud config set project PROJECT_ID
Remplacez
PROJECT_ID
par le nom de votre projet Google Cloud.
-
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Activer les API AutoML and Cloud Storage :
gcloud services enable storage-component.googleapis.com
automl.googleapis.com storage-api.googleapis.com - Définissez la variable d'environnement
PROJECT_ID
sur l'ID de votre projet.export PROJECT_ID=PROJECT_ID
Les noms de ressources et les appels d'API AutoML incluent votre ID de projet. La variable d’environnementPROJECT_ID
constitue un moyen pratique de spécifier l’ID.
Créer un ensemble de données et importer des données d'entraînement
Créer un ensemble de données
Nommez votre ensemble de données, puis exécutez les commandes PowerShell ou curl
suivantes pour créer un ensemble de données portant ce nom.
REST
L'exemple suivant montre comment envoyer une requête POST. L'exemple utilise la Google Cloud CLI pour créer un jeton d'accès. Pour obtenir des instructions sur l'installation de gcloud CLI, consultez le guide de démarrage rapide du suivi des objets AutoML Video Intelligence.Avant d'utiliser les données de requête, 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
etasia-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
et exécutez la commande suivante:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-number" \
-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
et exécutez la commande suivante:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }
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
VOT12345....
Importer des données d'entraînement
REST
Pour importer vos données d'entraînement, utilisez la méthodeimportData
. Cette méthode nécessite de fournir deux paramètres :
- Le chemin d'accès au fichier CSV contenant les chemins d'accès à l'entraînement.
- Les fichiers CSV de données de test. Remarque : ces fichiers sont disponibles dans le bucket "automl-video-demo-data" sur Cloud Storage.
Avant d'utiliser les données de requête, 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
- Nom de l'ensemble de données :
- 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
etasia-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
et exécutez la commande suivante:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-number" \
-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
et exécutez la commande suivante:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }
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
VOT7506374678919774208
.
Obtenir l'état de l'opération d'importation
Vous pouvez interroger l'état de votre opération d'importation de données à l'aide des commandes curl
ou PowerShell suivantes.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants:
- operation-id : 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, par exemple
VOT12345....
- 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
etasia-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/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-number" \
"https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id"
PowerShell
exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id" | Select-Object -Expand Content
done: true
sans erreur répertoriée, comme illustré dans l'exemple ci-dessus.
- operation-name : nom de l'opération renvoyé par l'API de suivi des objets AutoML Video Intelligence. Il est au format suivant :
projects/project-number/locations/location-id/operations/operation-id
.
Répertorier tous les ensembles de données
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.
REST
Avant d'utiliser les données de requête, 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
etasia-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 print-access-token)" \
-H "x-goog-user-project: project-number" \
"https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets "
PowerShell
exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/datasets " | Select-Object -Expand Content
VOT3940649673949184000
est l'ID de l'opération de longue durée créée pour la requête et fourni dans la réponse lorsque vous avez lancé l'opération.
Entraîner le modèle
Lancer l'opération d'entraînement d'un modèle
Après avoir créé votre ensemble de données et y avoir importé vos données d'entraînement, vous pouvez entraîner votre modèle personnalisé. Entraînez votre modèle à l'aide des commandes curl
ou PowerShell suivantes.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants:
- dataset-id : nom de l'ensemble de données cible.
Par exemple, le nom à afficher
my_dataset_01
. - model-name : remplacez cette valeur par le nom que vous avez choisi pour votre 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
etasia-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/models
Corps JSON de la requête :
{ "datasetId": "dataset-id", "displayName": "model-name", "videoObjectTrackingModelMetadata": {}, }
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
et exécutez la commande suivante:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-number" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models"
PowerShell
Enregistrez le corps de la requête dans un fichier nommé request.json
et exécutez la commande suivante:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }
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/models" | Select-Object -Expand Content
VOT1741767155885539328
.
Obtenir l'état de l'opération d'entraînement d'un modèle
Vous pouvez interroger l'état de l'opération d'entraînement de votre modèle à l'aide des commandes curl
ou PowerShell suivantes.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants:
- operation-name : nom de l'opération renvoyé par l'API de suivi des objets AutoML Video Intelligence. Il est au format suivant :
projects/project-number/locations/location-id/operations/operation-id
. - 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
etasia-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/operation-name
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-number" \
"https://automl.googleapis.com/v1beta1/operation-name"
PowerShell
exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1beta1/operation-name" | Select-Object -Expand Content
done: true
sans aucune erreur.
Vérifier la disponibilité du modèle
Une fois l'opération d'entraînement du modèle terminée, vous pouvez vérifier que votre modèle est disponible en utilisant la commande suivante pour répertorier les modèles de votre projet.
REST
Avant d'utiliser les données de requête, 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
etasia-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/models
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
Effectuer une prédiction
Vous pouvez demander des annotations (prédictions) pour les vidéos à l'aide de la méthode batchPredict. La méthode batchPredict
nécessite deux entrées :
- Un fichier CSV stocké dans votre bucket Cloud Storage contenant les chemins d'accès aux vidéos à annoter
- Les heures de début et de fin qui permettent d'identifier la séquence de la vidéo à annoter
Pour ce guide de démarrage rapide, utilisez le fichier CSV nommé traffic_video_batch_predict.csv
.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants:
- model-id : remplacez cette valeur par l'identifiant de votre modèle.
- input-uri : bucket Cloud Storage contenant le fichier que vous souhaitez annoter, y compris son nom. Doit commencer par
gs://
.
Par exemple,"inputUris": ["gs://automl-video-demo-data/traffic_videos/traffic_video_batch_predict.csv"],
- output-bucket : remplacez cette valeur par un bucket Cloud Storage qui contiendra les résultats de votre prédiction.
- object-id : remplacez cette valeur par un nom d'objet permettant d'identifier l'emplacement de stockage du résultat de la requête de prédiction dans votre bucket Cloud Storage. Remarque : vous devez disposer d'autorisations en écriture sur le bucket Cloud Storage.
- 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
etasia-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/models/model-id:batchPredict
Corps JSON de la requête :
{ "inputConfig": { "gcsSource": { "inputUris": ["input-uri"] } }, "outputConfig": { "gcsDestination": { "outputUriPrefix": "gs://output-bucket/object-id" } } "params": { "score_threshold": "0.0" } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
Obtenir l'état de l'opération de prédiction
Vous pouvez interroger l'état de votre opération de prédiction par lot à l'aide des commandes curl
ou PowerShell suivantes.
REST
Avant d'utiliser les données de requête, 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
etasia-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. - operation-id : 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, par exemple
VOT12345....
Méthode HTTP et URL :
GET https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/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-number" \
"https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id"
PowerShell
exécutez la commande suivante :
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-number" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/operations/operation-id" | Select-Object -Expand Content
projects/project-number/locations/location-id/operations/operation-id
Une fois la tâche de prédiction par lot terminée, le résultat de la prédiction est stocké dans le bucket Cloud Storage spécifié dans la commande. Chaque séquence vidéo est répertoriée dans un fichier JSON. Les fichiers JSON ont un format semblable à my-video-01.avi.json, où l'extension de fichier .json est ajoutée au nom du fichier d'origine.
{ "inputUris": ["automl-video-demo-data/sample_video.avi"], "object_annotations": [ { "annotation_spec": { "display_name": "Cat", "description": "Cat" }, "confidence": 0.43253016 "frames": [ { "frame": { "time_offset": { "seconds": 4, "nanos": 960000000 }, "normalized_bounding_box": { "x_min": 0.1, "y_min": 0.1, "x_max": 0.8, "y_max": 0.8 } } }, { "frame": { "time_offset": { "seconds": 5, "nanos": 960000000 }, "normalized_bounding_box": { "x_min": 0.2, "y_min": 0.2, "x_max": 0.9, "y_max": 0.9 } } } ], "segment": { "start_time_offset": { "seconds": 4, "nanos": 960000000 }, "end_time_offset": { "seconds": 5, "nanos": 960000000 } } } ], "error": { "details": [ ] } }
Nettoyage
Si vous n'avez plus besoin de votre modèle personnalisé ni de l'ensemble de données associé, vous pouvez les supprimer.
Supprimer un modèle
Vous pouvez supprimer un modèle à l'aide des commandes curl
ou PowerShell suivantes.
REST
Avant d'utiliser les données de requête, 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
etasia-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. - model-id : remplacez cette valeur par l'identifiant de votre modèle.
Méthode HTTP et URL :
DELETE https://automl.googleapis.com/v1beta1/projects/project-number/locations/location-id/models/model-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.
Supprimer un ensemble de données
Vous pouvez supprimer un ensemble de données à l'aide des commandes curl
ou PowerShell suivantes.
REST
Avant d'utiliser les données de requête, 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
etasia-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.