Les objets multimédias (ressources asset) d'un entrepôt (corpus) contiennent des métadonnées et des ressources annotation. Ces ressources annotation représentent un mappage clé/valeur du contenu d'un asset.
Créer une annotation d'asset d'entrepôt
Vous devez effectuer les étapes suivantes avant de pouvoir créer une annotation pour un asset :
- Créez une ressource
assetdans un entrepôt. - Créez un
dataSchemaavec la même clé pour indiquer le type de données de la valeurannotation.
Une annotation peut éventuellement être associée à une partition temporelle.
Par exemple, si une annotation s'applique à l'ensemble de l'asset, vous pouvez omettre toute partition temporelle associée. De même, si une annotation ne s'applique qu'à une partie spécifique d'un asset vidéo, vous pouvez fournir la plage temporelle de l'asset lors de la création de l'annotation.
Créer une annotation sans partition temporelle
Si une annotation s'applique à l'intégralité d'un asset vidéo, vous n'avez pas besoin de fournir de partition temporelle. Utilisez l'exemple suivant pour créer une annotation fournie par l'utilisateur pour un asset entier (aucune période vidéo spécifiée).
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT : le point de terminaison peut inclure un préfixe correspondant à
LOCATION_IDtel queeurope-west4-. En savoir plus sur les points de terminaison régionalisés. - PROJECT_NUMBER : Votre Google Cloud numéro de projet.
- LOCATION_ID : région dans laquelle vous utilisez Agent Platform Vision. Par exemple :
us-central1,europe-west4. Consultez les régions disponibles. - CORPUS_ID : ID de votre corpus cible.
- ASSET_ID : ID de votre asset cible.
- ANNOTATION_ID : (facultatif) valeur fournie par l'utilisateur pour l'ID d'annotation. Dans cette
requête, la valeur est ajoutée à l'URL de la requête sous la forme :
- https://ENDPOINT/v1/[...]/corpora/CORPUS_ID/assets/ASSET_ID/annotations?annotation_id=ANNOTATION_ID
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations
Corps JSON de la requête :
{
"user_specified_annotation":{
"key": "camera-location",
"value": {
"str_value": "Sunnyvale"
}
}
}
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 "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations"
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" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID",
"userSpecifiedAnnotation": {
"key": "camera-location",
"value": {
"strValue": "Sunnyvale"
}
}
}
Créer une annotation avec une partition temporelle
Si une annotation ne s'applique qu'à une partie d'un asset vidéo, vous pouvez fournir une plage temporelle pour la partie vidéo cible. Utilisez l'exemple suivant pour créer une annotation fournie par l'utilisateur pour une période spécifique d'un asset vidéo à l'aide d'une partition temporelle.
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT : le point de terminaison peut inclure un préfixe correspondant à
LOCATION_IDtel queeurope-west4-. En savoir plus sur les points de terminaison régionalisés. - PROJECT_NUMBER : Votre Google Cloud numéro de projet.
- LOCATION_ID : région dans laquelle vous utilisez Agent Platform Vision. Par exemple :
us-central1,europe-west4. Consultez les régions disponibles. - CORPUS_ID : ID de votre corpus cible.
- ASSET_ID : ID de votre asset cible.
- ANNOTATION_ID : (facultatif) valeur fournie par l'utilisateur pour l'ID d'annotation. Dans cette
requête, la valeur est ajoutée à l'URL de la requête sous la forme :
- https://ENDPOINT/v1/[...]/corpora/CORPUS_ID/assets/ASSET_ID/annotations?annotation_id=ANNOTATION_ID
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations
Corps JSON de la requête :
{
"user_specified_annotation": {
"key": "object-detected",
"value": {
"str_value": "cat"
},
"partition": {
"temporal_partition": {
"start_time": {
"seconds": "1630464728"
},
"end_time": {
"seconds": "1630464729"
}
}
}
}
}
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 "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations"
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" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID",
"userSpecifiedAnnotation": {
"key": "object-detected",
"value": {
"strValue": "cat"
},
"partition": {
"temporalPartition": {
"startTime": "2022-09-14T20:33:09Z",
"endTime": "2022-09-14T20:33:39Z"
}
}
}
}
Mettre à jour une annotation (sans partition temporelle)
REST
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- REGIONALIZED_ENDPOINT : le point de terminaison peut inclure un préfixe correspondant à
LOCATION_IDtel queeurope-west4-. En savoir plus sur les points de terminaison régionalisés. - PROJECT_NUMBER : Votre Google Cloud numéro de projet.
- LOCATION_ID : région dans laquelle vous utilisez Agent Platform Vision. Par exemple :
us-central1,europe-west4. Consultez les régions disponibles. - CORPUS_ID : ID de votre corpus cible.
- ASSET_ID : ID de votre asset cible.
- ANNOTATION_ID : ID de votre annotation cible.
Méthode HTTP et URL :
PATCH https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID
Corps JSON de la requête :
{
"user_specified_annotation":{
"key": "camera-location",
"value": {
"str_value": "UPDATED_FIELD_VALUE"
}
}
}
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 PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID"
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" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID/annotations/ANNOTATION_ID",
"userSpecifiedAnnotation": {
"key": "camera-location",
"value": {
"strValue": "UPDATED_FIELD_VALUE"
}
}
}