Imagens de referência são imagens com diversas visualizações dos produtos. Observe as seguintes recomendações:
- Verifique se o arquivo não excede o tamanho máximo de 20 MB.
- Pense nos pontos de vista que destacam o produto e contêm informações visuais relevantes.
- Crie imagens de referência que complementam os pontos de vista ausentes. Por exemplo, se você só tiver imagens do tênis direito de um par, inclua imagens espelhadas desses arquivos como o tênis esquerdo.
- Faça upload da imagem de maior resolução disponível.
- Mostre o produto sobre um fundo branco.
- Converta PNGs com planos de fundo transparentes em um plano de fundo sólido.
As imagens precisam ser armazenadas em um bucket do Cloud Storage. Se você estiver autenticando a chamada de criação de imagem com uma chave de API, o bucket precisará ser público. Caso você esteja autenticando com uma conta de serviço, ela precisará ter acesso de leitura ao bucket.
Como criar uma única imagem de referência
Adicione uma imagem de referência a um produto existente. Isso permite a pesquisa do produto pela imagem.
REST
Antes de usar os dados da solicitação, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto do Google Cloud .
- LOCATION_ID: um identificador de local válido. Os identificadores de local válidos são:
us-west1
,us-east1
,europe-west1
easia-east1
. - PRODUCT_ID: o ID do produto associado a uma imagem de referência. Esse ID é definido aleatoriamente ou especificado pelo usuário no momento da criação do produto.
- CLOUD_STORAGE_IMAGE_URI: o caminho para um
arquivo de imagem válido em um bucket do Cloud Storage. Você precisa ter, pelo menos, privilégios de leitura para o arquivo.
Exemplo:
gs://storage-bucket/filename.jpg
Método HTTP e URL:
POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/products/product-id/referenceImages
Corpo JSON da solicitação:
{ "uri": "cloud-storage-image-uri", "boundingPolys": [ { "vertices": [ { "x": X_MIN, "y": Y_MIN }, { "x": X_MAX, "y": Y_MIN }, { "x": X_MAX, "y": Y_MAX }, { "x": X_MIN, "y": Y_MAX } ] } ] }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/projects/project-id/locations/location-id/products/product-id/referenceImages"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/projects/project-id/locations/location-id/products/product-id/referenceImages" | Select-Object -Expand Content
Quando a solicitação é bem-sucedida, o servidor retorna um código de status HTTP 200 OK
e a
resposta no formato JSON:
Será exibido um código semelhante a este. O exemplo de solicitação especificou um único
boundingPoly
na imagem. Os vértices da caixa delimitadora não
são normalizados. Os valores de vértice são os valores reais de pixel, não estão relacionados à
imagem original e são dimensionados de 0 a 1. Esses vértices têm os seguintes valores: [(33,22),(282,22),(282,278),(33,278)].
{ "name": "projects/project-id/locations/location-id/products/product-id/referenceImages/image-id", "uri": "gs://storage-bucket/filename.jpg", "boundingPolys": [ { "vertices": [ { "x": 33, "y": 22 }, { "x": 282, "y": 22 }, { "x": 282, "y": 278 }, { "x": 33, "y": 278 } ] } ] }
Go
Para saber como instalar e usar a biblioteca de cliente da Pesquisa de Produtos da API Vision, consulte este link. Para mais informações, consulte a documentação de referência da API Go da Pesquisa de Produtos da API Vision.
Para se autenticar na Pesquisa de Produtos da API Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente da Pesquisa de Produtos da API Vision, consulte este link. Para mais informações, consulte a documentação de referência da API Java da Pesquisa de Produtos da API Vision.
Para se autenticar na Pesquisa de Produtos da API Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente da Pesquisa de Produtos da API Vision, consulte este link. Para mais informações, consulte a documentação de referência da API Node.js da Pesquisa de Produtos da API Vision.
Para se autenticar na Pesquisa de Produtos da API Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente da Pesquisa de Produtos da API Vision, consulte este link. Para mais informações, consulte a documentação de referência da API Python da Pesquisa de Produtos da API Vision.
Para se autenticar na Pesquisa de Produtos da API Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Outras linguagens
C#: siga as instruções de configuração do C# na página das bibliotecas de cliente e acesse a documentação de referência da Pesquisa de Produtos da API Vision para .NET.
PHP: siga as instruções de configuração do PHP na página das bibliotecas de cliente e acesse a documentação de referência da Pesquisa de Produtos da API Vision para PHP.
Ruby: siga as Instruções de configuração do Ruby na página das bibliotecas de cliente e acesse a documentação de referência da Pesquisa de Produtos da API Vision para Ruby.
Como criar várias imagens de referência com importação em massa
Também é possível criar imagens de referência ao mesmo tempo em que você cria um conjunto de produtos e vários produtos.
Para criar imagens de referência em massa, transmita o local do Google Cloud Storage de um arquivo CSV para o método import
. Assim, o arquivo CSV e as imagens para as quais ele aponta precisam estar em um bucket do Google Cloud Storage.
Se você estiver autenticando sua chamada de importação em massa com uma chave de API, esse arquivo de origem CSV deverá ser público.
Se você estiver autenticando com uma conta de serviço, essa conta de serviço deverá ter acesso de leitura no arquivo de origem CSV.
Formato CSV
image-uri,[image-id],product-set-id,product-id,product-category,[product-display-name],[label(s)],[bounding-poly]
Consulte o tópico de instruções Formato CSV para ver informações mais detalhadas sobre como formatar seu CSV.
Solicitação de criação em massa
REST
Antes de usar os dados da solicitação, faça as seguintes substituições:
- PROJECT_ID: o ID do projeto do Google Cloud .
- LOCATION_ID: um identificador de local válido. Os identificadores de local válidos são:
us-west1
,us-east1
,europe-west1
easia-east1
. - STORAGE_PATH: um bucket/diretório do Cloud Storage em que o arquivo CSV de entrada é armazenado O usuário solicitante precisa ter, pelo menos, permissão de leitura no bucket.
Método HTTP e URL:
POST https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets:import
Corpo JSON da solicitação:
{ "inputConfig": { "gcsSource": { "csvFileUri": "storage-path" } } }
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "x-goog-user-project: project-id" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets:import"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json
e execute o comando a seguir:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred"; "x-goog-user-project" = "project-id" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://vision.googleapis.com/v1/projects/project-id/locations/location-id/productSets:import" | Select-Object -Expand Content
Será exibido um código semelhante a este. Use o ID da operação
(neste caso, f10f34e32c40a710
) para receber o status da tarefa. Veja um
exemplo em Como saber o status de uma operação:
{ "name": "projects/project-id/locations/location-id/operations/f10f34e32c40a710" }
Depois que a operação de longa duração for concluída, será possível conseguir os detalhes da operação de importação. A resposta será assim:
{ "name": "locations/location-id/operations/f10f34e32c40a710", "metadata": { "@type": "type.googleapis.com/google.cloud.vision.v1.BatchOperationMetadata", "state": "SUCCESSFUL", "submitTime": "2019-12-06T21:16:04.476466873Z", "endTime": "2019-12-06T21:16:40.594258084Z" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.vision.v1.ImportProductSetsResponse", "referenceImages": [ { "name": "projects/project-id/locations/location-id/products/product_id0/referenceImages/image0", "uri": "gs://my-storage-bucket/img_039.jpg" }, { "name": "projects/project-id/locations/location-id/products/product_id1/referenceImages/image1", "uri": "gs://my-storage-bucket/img_105.jpg" }, { "name": "projects/project-id/locations/location-id/products/product_id2/referenceImages/image2", "uri": "gs://my-storage-bucket/img_224.jpg" }, { "name": "projects/project-id/locations/location-id/products/product_id3/referenceImages/image3", "uri": "gs://my-storage-bucket/img_385.jpg" } ], "statuses": [ {}, {}, {}, {} ] } }
Go
Para saber como instalar e usar a biblioteca de cliente da Pesquisa de Produtos da API Vision, consulte este link. Para mais informações, consulte a documentação de referência da API Go da Pesquisa de Produtos da API Vision.
Para se autenticar na Pesquisa de Produtos da API Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente da Pesquisa de Produtos da API Vision, consulte este link. Para mais informações, consulte a documentação de referência da API Java da Pesquisa de Produtos da API Vision.
Para se autenticar na Pesquisa de Produtos da API Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente da Pesquisa de Produtos da API Vision, consulte este link. Para mais informações, consulte a documentação de referência da API Node.js da Pesquisa de Produtos da API Vision.
Para se autenticar na Pesquisa de Produtos da API Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente da Pesquisa de Produtos da API Vision, consulte este link. Para mais informações, consulte a documentação de referência da API Python da Pesquisa de Produtos da API Vision.
Para se autenticar na Pesquisa de Produtos da API Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Outras linguagens
C#: siga as instruções de configuração do C# na página das bibliotecas de cliente e acesse a documentação de referência da Pesquisa de Produtos da API Vision para .NET.
PHP: siga as instruções de configuração do PHP na página das bibliotecas de cliente e acesse a documentação de referência da Pesquisa de Produtos da API Vision para PHP.
Ruby: siga as Instruções de configuração do Ruby na página das bibliotecas de cliente e acesse a documentação de referência da Pesquisa de Produtos da API Vision para Ruby.
Indexação
O índice da Pesquisa de Produtos é atualizado aproximadamente a cada 30 minutos. Quando houver adição ou exclusão de imagens, essas mudanças só vão aparecer nas respostas da Pesquisa de Produtos quando o índice for atualizado.
Para saber se a indexação foi realizada, verifique o campo indexTime
do conjunto de produtos.