Créer et mettre à jour un entrepôt d'images

Un entrepôt d'images vous permet de stocker et de gérer vos images, ainsi que les annotations qui y sont associées.

Créer un Image Warehouse

Vous devez d'abord créer un corpus.

API REST et ligne de commande

Crée une ressource de corpus dans le projet donné, avec la possibilité de spécifier le nom à afficher et la description Corpus.

Avant d'utiliser les données de requête, 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 Agent Platform Vision. Par exemple : us-central1, europe-west4. Consultez les régions disponibles.
  • DISPLAY_NAME : nom à afficher de l'entrepôt.
  • WAREHOUSE_DESCRIPTION : description de l'entrepôt (corpus).

Méthode HTTP et URL :

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora

Corps JSON de la requête :

{
  "display_name": "DISPLAY_NAME",
  "description": "WAREHOUSE_DESCRIPTION",
  "type": "IMAGE",
  "search_capability_setting": {
    "search_capabilities": {
      "type": "EMBEDDING_SEARCH"
    }
  }
}

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"

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" | Select-Object -Expand Content

Vous devriez recevoir une réponse JSON de ce type :

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/warehouseoperations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.visionai.v1.CreateCorpusMetadata"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.visionai.v1.Corpus",
    "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID",
    "displayName": "DISPLAY_NAME",
    "description": "WAREHOUSE_DESCRIPTION",
    "type": "IMAGE",
    "search_capability_setting": {
      "search_capabilities": {
        "type": "EMBEDDING_SEARCH"
      }
    }
  }
}

Créer un schéma de données

Si vous souhaitez importer des annotations, vous devez créer un schéma de données correspondant avant d'appeler l'API Import.

API REST et ligne de commande

Cet exemple vous montre comment créer un schéma de données dans un corpus existant.

Avant d'utiliser les données de requête, 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 Agent Platform Vision. Par exemple : us-central1, europe-west4. Consultez les régions disponibles.
  • CORPUS_ID : ID de votre corpus cible.
  • DATASCHEMA_KEY : cette clé doit correspondre à la clé d'une annotation spécifiée par l'utilisateur et être unique dans un corpus. Par exemple, data-key.
  • ANNOTATION_DATA_TYPE : type de données de l'annotation. Valeurs disponibles :
    • DATA_TYPE_UNSPECIFIED
    • INTEGER
    • FLOAT
    • STRING
    • DATETIME
    • GEO_COORDINATE
    • PROTO_ANY
    • BOOLEAN

    Pour en savoir plus, consultez la documentation de référence sur les API.

  • ANNOTATION_GRANULARITY : précision des annotations sous ce dataSchema. Valeurs disponibles :
    • GRANULARITY_UNSPECIFIED : précision non spécifiée.
    • GRANULARITY_ASSET_LEVEL : précision au niveau du composant (les annotations ne doivent pas contenir d'informations sur la partition temporelle pour le composant multimédia).
    • GRANULARITY_PARTITION_LEVEL : précision au niveau de la partition (les annotations doivent contenir des informations sur la partition temporelle pour le contenu multimédia).
  • SEARCH_STRATEGY : l'une des valeurs d'énumération disponibles. Types de stratégies de recherche à appliquer à la clé d'annotation. Valeurs disponibles :
    • NO_SEARCH
    • EXACT_SEARCH
    • SMART_SEARCH

Méthode HTTP et URL :

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas

Corps JSON de la requête :

{
  "key": "DATASCHEMA_KEY",
  "schema_details": {
    "type": "ANNOTATION_DATA_TYPE",
    "granularity": "ANNOTATION_GRANULARITY",
    "search_strategy": {
      "search_strategy_type": "SEARCH_STRATEGY"
    }
  }
}

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/dataSchemas"

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/dataSchemas" | Select-Object -Expand Content

Vous devriez recevoir une réponse JSON de ce type :

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/dataSchemas/DATASCHEMA_ID",
  "key": "data-key",
  "schemaDetails": {
    "type": "BOOLEAN",
    "granularity": "GRANULARITY_ASSET_LEVEL",
    "searchStrategy": {
      "search_strategy_type": "EXACT_SEARCH"
    }
  }
}

Importer des composants dans un corpus d'images

Importez des composants (et éventuellement des annotations) dans un corpus existant sous le projet donné.

Le fichier Cloud Storage pour la requête ImportAsset doit être au format JSONL. Dans le fichier, chaque ligne correspond à un élément et sera convertie en proto InputImageAsset. Par exemple,

{"gcsUri":"gs://test/test1.png","assetId":"asset1","annotations":[{"key":"title","value":{"strValue":"cat"}}]}
{"gcsUri":"gs://test/test2.png","assetId":"asset2","annotations":[{"key":"title","value":{"strValue":"dog"}}]}
{"gcsUri":"gs://test/test3.png","assetId":"asset3","annotations":[{"key":"title","value":{"strValue":"rabbit"}}]}

API REST et ligne de commande

Cet exemple montre comment importer des éléments (et éventuellement des annotations) dans une ressource de corpus sous le projet donné.

Avant d'utiliser les données de requête, 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 Agent Platform Vision. Par exemple : us-central1, europe-west4. Consultez les régions disponibles.
  • CORPUS_ID : ID de votre corpus cible.

Méthode HTTP et URL :

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets:import

Corps JSON de la requête :

{
  "parent": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID,
  "assets_gcs_uri": GCS_URI
}

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:import"

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:import" | Select-Object -Expand Content

Vous devriez recevoir une réponse JSON de ce type :

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/operations/OPERATION_ID",
}
w

Analyser les éléments du corpus

Pour préparer la recherche d'images, AnalyzeCorpus doit être exécuté afin de générer les signaux d'embedding à partir des images.

API REST et ligne de commande

Cet exemple montre comment effectuer AnalyzeCorpus sur une ressource de corpus.

Avant d'utiliser les données de requête, 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 Agent Platform Vision. Par exemple : us-central1, europe-west4. Consultez les régions disponibles.
  • CORPUS_ID : ID de votre corpus cible.

Méthode HTTP et URL :

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID:analyze

Corps JSON de la requête :

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID
}

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:analyze"

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:analyze" | Select-Object -Expand Content

Vous devriez recevoir une réponse JSON de ce type :

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/operations/OPERATION_ID",
}

Créer un index

API REST et ligne de commande

Cet exemple vous montre comment créer un index sur une ressource de corpus.

Avant d'utiliser les données de requête, 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 Agent Platform Vision. Par exemple : us-central1, europe-west4. Consultez les régions disponibles.
  • CORPUS_ID : ID de votre corpus cible.
  • INDEX_ID : (facultatif) valeur fournie par l'utilisateur pour l'ID d'index. Dans cette requête, la valeur est ajoutée à l'URL de la requête sous la forme suivante :
    • https://REGIONALIZED_ENDPOINT/v1/[...]/corpora/CORPUS_ID/indexes?index_id=INDEX_ID

Méthode HTTP et URL :

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes

Corps JSON de la requête :

{
  "display_name": "DISPLAY_NAME",
  "description": "INDEX_DESCRIPTION",
}

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/indexes"

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/indexes" | Select-Object -Expand Content

Vous devriez recevoir une réponse JSON de ce type :

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.visionai.v1.CreateIndexMetadata"
  }
}

Créer un point de terminaison d'index

API REST et ligne de commande

Cet exemple montre comment créer un point de terminaison d'index.

Avant d'utiliser les données de requête, 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 Agent Platform Vision. Par exemple : us-central1, europe-west4. Consultez les régions disponibles.
  • INDEX_ENDPOINT_ID : (facultatif) valeur fournie par l'utilisateur pour l'ID du point de terminaison de l'index. Dans cette requête, la valeur est ajoutée à l'URL de la requête sous la forme suivante :
    • https://REGIONALIZED_ENDPOINT/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints?index_endpoint_id=INDEX_ENDPOINT_ID

Méthode HTTP et URL :

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints

Corps JSON de la requête :

{
  "display_name": "DISPLAY_NAME",
  "description": "DESCRIPTION",
}

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/indexEndpoints"

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/indexEndpoints" | Select-Object -Expand Content

Vous devriez recevoir une réponse JSON de ce type :

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.visionai.v1.CreateIndexEndpointMetadata"
  }
}

Déployer un index sur un point de terminaison d'index

API REST et ligne de commande

Cet exemple vous montre comment déployer un index sur une ressource de point de terminaison d'index.

Avant d'utiliser les données de requête, 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 Agent Platform Vision. Par exemple : us-central1, europe-west4. Consultez les régions disponibles.
  • INDEX_ENDPOINT_ID : ID du point de terminaison de l'index cible.
  • CORPUS_ID : ID de votre corpus cible.
  • INDEX_ID : ID de votre index cible.

Méthode HTTP et URL :

POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:deployIndex

Corps JSON de la requête :

{
  "deployedIndex": {
    "index": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID"
  }
}

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/indexEndpoints/INDEX_ENDPOINT_ID:deployIndex"

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/indexEndpoints/INDEX_ENDPOINT_ID:deployIndex" | Select-Object -Expand Content

Vous devriez recevoir une réponse JSON de ce type :

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.visionai.v1.DeployIndexMetadata",
    "deployedIndex": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/indexes/INDEX_ID"
  }
}