Créer une annotation d'entrepôt

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 valeur annotation.

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 que europe-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 que europe-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 que europe-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"
    }
  }
}