Pesquise dados do armazém de imagens

Depois de criar um corpus de imagens e executar AnalyzeCorpus para gerar sinais de incorporação nos dados do corpus, pode avançar para a criação de um índice e um ponto final do índice. Depois de implementar o índice neste ponto final do índice, pode fazer uma pesquisa semântica com capacidades de filtro de critérios. O resultado da pesquisa contém uma lista de imagens ordenadas por pontuação de relevância.

Pesquise com texto introduzido

Para pesquisar o assets no seu corpus, preencha o SearchIndexEndpointRequest com a pesquisa pretendida, nos seguintes formatos:

  • text_query: consulta de texto para pesquisar.
  • Opcional criteria ou exclusion_criteria: Critérios de filtragem em anotações fornecidas pelo utilizador. Pode ser aplicada a textos, números, valores booleanos ou valores de data/hora.

No exemplo seguinte, considere um corpus que contenha imagens de paisagens naturais. Para obter todos os recursos relevantes para "sunset at beach" e etiquetados com a anotação "state": "California", envie o seguinte pedido (substitua FIELD_NAME por state e FIELD_VALUE por California):

REST e linha de comandos

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • REGIONALIZED_ENDPOINT: o ponto final pode incluir um prefixo correspondente ao LOCATION_ID, como europe-west4-. Veja mais informações sobre os pontos finais regionalizados.
  • PROJECT_NUMBER: o seu Google Cloud número do projeto.
  • LOCATION_ID: A região onde está a usar o Vertex AI Vision. Por exemplo: us-central1, europe-west4. Veja as regiões disponíveis.
  • INDEX_ENDPOINT_ID: o ID do seu ponto final do índice de destino.

Método HTTP e URL:

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

Corpo JSON do pedido:

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

Para enviar o seu pedido, escolha uma destas opções:

curl

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte 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

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte 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

Deve receber uma resposta JSON semelhante à seguinte:

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

Pesquise com uma imagem de entrada

Se tiver uma imagem de um pôr do sol numa praia, também pode usá-la como uma consulta de pesquisa para obter imagens semelhantes:

REST e linha de comandos

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • REGIONALIZED_ENDPOINT: o ponto final pode incluir um prefixo correspondente ao LOCATION_ID, como europe-west4-. Veja mais informações sobre os pontos finais regionalizados.
  • PROJECT_NUMBER: o seu Google Cloud número do projeto.
  • LOCATION_ID: A região onde está a usar o Vertex AI Vision. Por exemplo: us-central1, europe-west4. Veja as regiões disponíveis.
  • INDEX_ENDPOINT_ID: o ID do seu ponto final do índice de destino.

Método HTTP e URL:

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

Corpo JSON do pedido:

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

Para enviar o seu pedido, escolha uma destas opções:

curl

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte 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

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte 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

Deve receber uma resposta JSON semelhante à seguinte:

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

Pesquise com uma imagem existente

Também pode usar um recurso de imagem existente no corpus para obter imagens semelhantes. O primeiro resultado da pesquisa será o mesmo recurso de imagem com uma classificação de relevância de 1,0:

REST e linha de comandos

Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

  • REGIONALIZED_ENDPOINT: o ponto final pode incluir um prefixo correspondente ao LOCATION_ID, como europe-west4-. Veja mais informações sobre os pontos finais regionalizados.
  • PROJECT_NUMBER: o seu Google Cloud número do projeto.
  • LOCATION_ID: A região onde está a usar o Vertex AI Vision. Por exemplo: us-central1, europe-west4. Veja as regiões disponíveis.
  • INDEX_ENDPOINT_ID: o ID do seu ponto final do índice de destino.
  • CORPUS_ID: o ID do seu corpus de destino.
  • ASSET_ID: o ID do recurso de destino.

Método HTTP e URL:

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

Corpo JSON do pedido:

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

Para enviar o seu pedido, escolha uma destas opções:

curl

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte 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

Guarde o corpo do pedido num ficheiro com o nome request.json, e execute o seguinte 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

Deve receber uma resposta JSON semelhante à seguinte:

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