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 associées.

Créer un entrepôt d'images

Vous devez d'abord créer un corpus.

API REST et ligne de commande

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

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.
  • 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 montre comment créer un schéma de données dans un corpus existant.

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.
  • DATASCHEMA_KEY: cette clé doit correspondre à celle 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 : granularité au niveau de l'asset (les annotations ne doivent pas contenir d'informations de partitionnement temporel pour l'asset multimédia).
    • GRANULARITY_PARTITION_LEVEL : précision au niveau de la partition (les annotations doivent contenir des informations de partitionnement temporel pour le composant 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 éléments (et éventuellement des annotations) dans un corpus existant du projet donné.

Le fichier Cloud Storage de 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 du projet donné.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

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, vous devez exécuter AnalyzeCorpus afin de générer les signaux d'embedding à partir des images.

API REST et ligne de commande

Cet exemple montre comment exécuter AnalyzeCorpus sur une ressource de corpus.

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

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 montre comment créer un index sur une ressource de corpus.

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.
  • INDEX_ID (facultatif) : valeur fournie par l'utilisateur pour l'ID 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/[...]/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 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.
  • 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 l'index sur le point de terminaison d'index

API REST et ligne de commande

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

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.
  • INDEX_ENDPOINT_ID: ID de votre point de terminaison d'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"
  }
}