Buscar datos de Image Warehouse

Una vez que hayas creado un corpus de imágenes y hayas realizado AnalyzeCorpus para generar señales de inserción en los datos del corpus, puedes crear un índice y un endpoint de índice. Después de implementar el índice en este endpoint de índice, puedes realizar búsquedas semánticas con funciones de filtro de criterios. El resultado de búsqueda contiene una lista de imágenes ordenadas por puntuación de relevancia.

Buscar con texto introducido

Para buscar en la assets de tu corpus, rellena el campo SearchIndexEndpointRequest con la búsqueda que quieras hacer, en los siguientes formatos:

  • text_query: consulta de texto con la que buscar.
  • Opcional criteria o exclusion_criteria: criterios de filtro de las anotaciones proporcionadas por los usuarios. Se puede aplicar a textos, números, valores booleanos o valores de fecha y hora.

En el ejemplo siguiente, se muestra un corpus que contiene imágenes de paisajes naturales. Para obtener todos los recursos que sean relevantes para "puesta de sol en la playa" y que estén etiquetados con la anotación "state": "California", envía la siguiente solicitud (sustituye FIELD_NAME por state y FIELD_VALUE por California):

REST Y LÍNEA DE COMANDOS

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • REGIONALIZED_ENDPOINT: el endpoint puede incluir un prefijo que coincida con LOCATION_ID, como europe-west4-. Consulta más información sobre los puntos finales regionalizados.
  • PROJECT_NUMBER: tu Google Cloud número de proyecto.
  • LOCATION_ID: la región en la que usas Vertex AI Vision. Por ejemplo: us-central1, europe-west4. Consulta las regiones disponibles.
  • INDEX_ENDPOINT_ID: el ID del endpoint de índice de destino.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
  "text_query": "sunset at beach",
  "criteria": [
    {
      "field": "state",
      "text_array": {
          "txt_values": [
            "California"
          ]
      }
    }
  ]
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

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

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$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

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "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"
    }
  ]
}

Buscar con una imagen de entrada

Si tienes una imagen de una puesta de sol en una playa, también puedes usarla como consulta de búsqueda para obtener imágenes similares:

REST Y LÍNEA DE COMANDOS

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • REGIONALIZED_ENDPOINT: el endpoint puede incluir un prefijo que coincida con LOCATION_ID, como europe-west4-. Consulta más información sobre los puntos finales regionalizados.
  • PROJECT_NUMBER: tu Google Cloud número de proyecto.
  • LOCATION_ID: la región en la que usas Vertex AI Vision. Por ejemplo: us-central1, europe-west4. Consulta las regiones disponibles.
  • INDEX_ENDPOINT_ID: el ID del endpoint de índice de destino.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
  "image_query": {
    "input_image": "IMAGE_BYTES"
  },
  "criteria": [
    {
      "field": "FIELD_NAME",
      "text_array": {
          "txt_values": [
            "FIELD_VALUE"
          ]
      }
    }
  ]
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

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

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$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

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "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
    }
  ]
}

Buscar con una imagen

También puedes usar un recurso de imagen que ya tengas en el corpus para buscar imágenes similares. El primer resultado de búsqueda será el mismo recurso de imagen con una puntuación de relevancia de 1,0:

REST Y LÍNEA DE COMANDOS

Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

  • REGIONALIZED_ENDPOINT: el endpoint puede incluir un prefijo que coincida con LOCATION_ID, como europe-west4-. Consulta más información sobre los puntos finales regionalizados.
  • PROJECT_NUMBER: tu Google Cloud número de proyecto.
  • LOCATION_ID: la región en la que usas Vertex AI Vision. Por ejemplo: us-central1, europe-west4. Consulta las regiones disponibles.
  • INDEX_ENDPOINT_ID: el ID del endpoint de índice de destino.
  • CORPUS_ID: el ID del corpus de destino.
  • ASSET_ID: ID del recurso de destino.

Método HTTP y URL:

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

Cuerpo JSON de la solicitud:

{
  "image_query": {
    "asset": "projects/PROJECT_NUMBER/locations/LOCATION_ID/corpora/CORPUS_ID/assets/ASSET_ID"
  }
}

Para enviar tu solicitud, elige una de estas opciones:

curl

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

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

Guarda el cuerpo de la solicitud en un archivo llamado request.json y ejecuta el siguiente comando:

$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

Deberías recibir una respuesta JSON similar a la siguiente:

{
  "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
    }
  ]
}