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 dans 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 composant :
- Créer une ressource
asset
dans un entrepôt - Créez un
dataSchema
avec la même clé pour indiquer le type de données de la valeurannotation
.
Un annotation
peut éventuellement être associé à une partition temporelle.
Par exemple, si un annotation
s'applique à l'ensemble de asset
, vous pouvez omettre toute partition temporelle associée. De même, si un annotation
ne s'applique qu'à une partie spécifique d'une vidéo asset
, vous pouvez fournir la plage temporelle du asset
lorsque vous créez le annotation
.
Créer une annotation sans partition temporelle
Si une annotation s'applique à l'intégralité d'une vidéo asset
, vous n'avez pas besoin de fournir de partition temporelle. Utilisez l'exemple suivant pour créer un annotation
fourni 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_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT_NUMBER : Numéro de votre projet Google Cloud.
- LOCATION_ID : région dans laquelle vous utilisez Vertex AI Vision. Par exemple :
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID : ID de votre corpus cible.
- ASSET_ID : ID de votre élément 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 suivante :
- 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'une vidéo asset
, vous pouvez indiquer une plage horaire pour la partie de la vidéo ciblée. Utilisez l'exemple suivant pour créer un annotation
fourni par l'utilisateur pour une période spécifique d'une vidéo asset
à 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_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT_NUMBER : Numéro de votre projet Google Cloud.
- LOCATION_ID : région dans laquelle vous utilisez Vertex AI Vision. Par exemple :
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID : ID de votre corpus cible.
- ASSET_ID : ID de votre élément 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 suivante :
- 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" } } } }
Modifier 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_ID
, tel queeurope-west4-
. En savoir plus sur les points de terminaison régionalisés - PROJECT_NUMBER : Numéro de votre projet Google Cloud.
- LOCATION_ID : région dans laquelle vous utilisez Vertex AI Vision. Par exemple :
us-central1
,europe-west4
. Consultez les régions disponibles. - CORPUS_ID : ID de votre corpus cible.
- ASSET_ID : ID de votre élément 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" } } }