Une fois que vous avez créé un corpus d'images et effectué AnalyzeCorpus
pour générer des signaux d'encapsulation sur les données du corpus, vous pouvez créer un index et un point de terminaison d'index. Une fois l'index déployé sur ce point de terminaison d'index, vous pouvez effectuer une recherche sémantique avec des fonctionnalités de filtrage de critères. Le résultat de recherche contient une liste d'images triées en fonction du score de pertinence.
Rechercher avec du texte saisi
Pour rechercher dans assets
dans votre corpus
, renseignez SearchIndexEndpointRequest
avec la recherche souhaitée, dans les formats suivants:
text_query
: requête textuelle à utiliser pour la recherche.- Facultatif :
criteria
ouexclusion_criteria
: critères de filtrage sur les annotations fournies par l'utilisateur. Il peut être appliqué à des textes, des nombres, des valeurs booléennes ou des valeurs date/heure.
Dans l'exemple suivant, considérons un corpus contenant des images de paysages naturels. Pour récupérer tous les composants associés à "coucher de soleil sur la plage" et tagués avec l'annotation "state": "California"
, envoyez la requête suivante (remplacez FIELD_NAME par state
et FIELD_VALUE par California
):
API REST et ligne de commande
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. - INDEX_ENDPOINT_ID: ID de votre point de terminaison d'index cible.
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint
Corps JSON de la requête :
{ "text_query": "sunset at beach", "criteria": [ { "field": "state", "text_array": { "txt_values": [ "California" ] } } ] }
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:searchIndexEndpoint"
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:searchIndexEndpoint" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{ "searchResultItems": [ { "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1", "relevance": "0.99" }, { "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2", "relevance": "0.98" } ] }
Rechercher à l'aide d'une image d'entrée
Si vous avez une image d'un coucher de soleil sur une plage, vous pouvez également l'utiliser comme requête de recherche pour récupérer des images similaires:
API REST et ligne de commande
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. - INDEX_ENDPOINT_ID: ID de votre point de terminaison d'index cible.
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint
Corps JSON de la requête :
{ "image_query": { "input_image": "IMAGE_BYTES" }, "criteria": [ { "field": "FIELD_NAME", "text_array": { "txt_values": [ "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 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:searchIndexEndpoint"
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:searchIndexEndpoint" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{ "searchResultItems": [ { "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1", "relevance": 0.99 }, { "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2", "relevance": 0.98 } ] }
Rechercher avec une image existante
Vous pouvez également utiliser un composant Image existant dans le corpus pour récupérer des images similaires. Le premier résultat de recherche sera le même composant Image avec un score de pertinence de 1,0:
API REST et ligne de commande
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. - INDEX_ENDPOINT_ID: ID de votre point de terminaison d'index cible.
- CORPUS_ID: ID de votre corpus cible.
- ASSET_ID: ID de votre composant cible.
Méthode HTTP et URL :
POST https://warehouse-visionai.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/indexEndpoints/INDEX_ENDPOINT_ID:searchIndexEndpoint
Corps JSON de la requête :
{ "image_query": { "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_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:searchIndexEndpoint"
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:searchIndexEndpoint" | Select-Object -Expand Content
Vous devriez recevoir une réponse JSON de ce type :
{ "searchResultItems": [ { "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_1", "relevance": 1.0 }, { "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID_2", "relevance": 0.99 } ] }