Le suivi des objets permet de suivre les objets détectés dans une vidéo d'entrée. Pour effectuer une requête de suivi d'objet, appelez la méthode annotate
et spécifiez OBJECT_TRACKING
dans le champ features
.
Pour les entités et les emplacements spatiaux détectés dans une vidéo ou des séquences vidéo, une requête de suivi d'objet annote la vidéo avec les libellés appropriés pour ces entités et ces emplacements spatiaux. Par exemple, une vidéo de véhicules traversant un feu de signalisation peut produire des libellés tels que "voiture", "camion", "vélo", "pneus", "phares", "fenêtre", etc. Chaque libellé comporte une série de cadres de délimitation. Chacun d'eux est associé à un segment de temps horodaté. L'horodatage indique le décalage temporel par rapport au début de la vidéo. L'annotation contient également des informations supplémentaires sur les entités, par exemple leur ID, que vous pouvez utiliser pour rechercher plus d'informations sur une entité spécifique dans l'API Google Knowledge Graph Search.
Différence entre le suivi des objets et la détection de thèmes
Le suivi des objets diffère de la détection de thèmes. La détection de thèmes fournit des libellés sans cadre de délimitation, tandis que le suivi des objets fournit les libellés de chaque objet présent dans une vidéo donnée, ainsi que le cadre de délimitation de chaque instance d'objet à chaque étape.
Plusieurs instances du même type d'objet sont attribuées à différentes instances du message ObjectTrackingAnnotation
, où toutes les occurrences d'un type de suivi d'objet donné sont conservées dans leur propre instance de ObjectTrackingAnnotation
. Par exemple, si une voiture rouge et une voiture bleue apparaissent pendant cinq secondes dans une vidéo, la requête de suivi doit renvoyer deux instances de ObjectTrackingAnnotation
. La première contient les emplacements de l'une des deux voitures, par exemple la voiture rouge, tandis que la seconde contient les emplacements de l'autre voiture.
Demander le suivi d'objets pour une vidéo sur Cloud Storage
Les exemples suivants illustrent le suivi des objets sur un fichier hébergé dans Cloud Storage.
REST
Envoyer la requête de processus
Vous trouverez ci-dessous la procédure à suivre pour envoyer une requête POST
à la méthode annotate
.
Cet exemple fait intervenir le jeton d'accès associé à un compte de service configuré pour le projet à l'aide de Google Cloud CLI. Pour obtenir des instructions sur l'installation de Google Cloud CLI, la configuration d'un projet avec un compte de service et l'obtention d'un jeton d'accès, consultez le guide de démarrage rapide de Video Intelligence.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- INPUT_URI : STORAGE_URI
Par exemple :"inputUri": "gs://cloud-videointelligence-demo/assistant.mp4",
- PROJECT_NUMBER: identifiant numérique de votre projet Google Cloud
Méthode HTTP et URL :
POST https://videointelligence.googleapis.com/v1/videos:annotate
Corps JSON de la requête :
{ "inputUri": "STORAGE_URI", "features": ["OBJECT_TRACKING"] }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID" }
Si la requête aboutit, l'API Video Intelligence renvoie l'ID name
de votre opération. L'exemple ci-dessus montre 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.
Obtenir les résultats
Pour obtenir les résultats de votre requête, envoyez une requête GET
à l'aide du nom d'opération renvoyé par l'appel à videos:annotate
, comme indiqué dans l'exemple suivant.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- OPERATION_NAME : nom de l'opération tel qu'il est renvoyé par l'API Video Intelligence. Il est au format suivant :
projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID
. - PROJECT_NUMBER: identifiant numérique de votre projet Google Cloud
Méthode HTTP et URL :
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
Télécharger les résultats des annotations
Copiez l'annotation de la source vers le bucket de destination (consultez la page Copier des fichiers et des objets) :
gcloud storage cp gcs_uri gs://my-bucket
Remarque : Si l'URI GCS de sortie est fourni par l'utilisateur, l'annotation est stockée dans cet URI.
Go
Java
Node.js
Pour vous authentifier auprès de Video Intelligence, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Langues supplémentaires
C# : Veuillez suivre les instructions de configuration de C# sur la page des bibliothèques clientes, puis consultez la documentation de référence sur Video Intelligence 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 Video Intelligence 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 Video Intelligence pour Ruby.
Demander le suivi des objets pour un fichier vidéo local
Les exemples suivants illustrent le suivi des objets sur un fichier stocké en local.
REST
Envoyer la requête de processus
Pour annoter un fichier vidéo local, encodez son contenu en base64.
Incluez le contenu encodé en base64 dans le champ inputContent
de la requête.
Pour en savoir plus sur l'encodage du contenu d'un fichier vidéo en base64, consultez la page Encoder en base64.
Vous trouverez ci-dessous la procédure à suivre pour envoyer une requête POST
à la méthode videos:annotate
. Cet exemple fait intervenir le jeton d'accès associé à un compte de service configuré pour le projet à l'aide de Google Cloud CLI. Pour obtenir des instructions sur l'installation de Google Cloud CLI, la configuration d'un projet avec un compte de service et l'obtention d'un jeton d'accès, consultez le guide de démarrage rapide de Video Intelligence.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- inputContent : BASE64_ENCODED_CONTENT
Par exemple :"UklGRg41AwBBVkkgTElTVAwBAABoZHJsYXZpaDgAAAA1ggAAxPMBAAAAAAAQCAA..."
- PROJECT_NUMBER: identifiant numérique de votre projet Google Cloud
Méthode HTTP et URL :
POST https://videointelligence.googleapis.com/v1/videos:annotate
Corps JSON de la requête :
{ "inputContent": "BASE64_ENCODED_CONTENT", "features": ["OBJECT_TRACKING"] }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
Si la requête aboutit, Video Intelligence renvoie le name
correspond à 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.
Obtenir les résultats
Pour obtenir les résultats de votre requête, envoyez une requête GET
à l'aide du nom d'opération renvoyé par l'appel à videos:annotate
, comme indiqué dans l'exemple suivant.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- OPERATION_NAME : nom de l'opération tel qu'il est renvoyé par l'API Video Intelligence. Il est au format suivant :
projects/PROJECT_NUMBER/locations/LOCATION_ID/operations/OPERATION_ID
. - PROJECT_NUMBER: identifiant numérique de votre projet Google Cloud
Méthode HTTP et URL :
GET https://videointelligence.googleapis.com/v1/OPERATION_NAME
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
Go
Java
Node.js
Pour vous authentifier auprès de Video Intelligence, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Langues supplémentaires
C# : Veuillez suivre les instructions de configuration de C# sur la page des bibliothèques clientes, puis consultez la documentation de référence sur Video Intelligence 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 Video Intelligence 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 Video Intelligence pour Ruby.