A API Vision detecta e extrai informações de diversas categorias sobre entidades em uma imagem.
Os rótulos podem identificar objetos gerais, locais, atividades, espécies de animais, produtos e mais. Se precisar de rótulos personalizados segmentados, use o Cloud AutoML Vision para treinar um modelo de machine learning personalizado para classificar imagens.
Os rótulos são retornados apenas em inglês. Com a API Cloud Translation, é possível traduzir esses rótulos para vários idiomas.
Por exemplo, a imagem acima pode retornar a seguinte lista de rótulos:
| Descrição | Pontuação |
|---|---|
| Rua | 0,872 |
| Snapshot | 0,852 |
| Cidade | 0,848 |
| Noite | 0,804 |
| Beco | 0,713 |
Solicitações de detecção de rótulos
Configurar o projeto do Google Cloud e a autenticação
Detectar rótulos em uma imagem local
Use a API Vision para detectar atributos em um arquivo de imagem local.
Para solicitações REST, envie o conteúdo do arquivo de imagem como uma string codificada em base64 no corpo da solicitação.
Para solicitações da gcloud e da biblioteca de cliente, especifique o caminho para uma imagem local na solicitação.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- BASE64_ENCODED_IMAGE: a representação base64 (string ASCII) dos dados da imagem binária. A string precisa ser semelhante à seguinte:
/9j/4QAYRXhpZgAA...9tAVx/zDQDlGxn//2Q==
- RESULTS_INT: (opcional) um valor inteiro de resultados a serem retornados. Se você omitir o campo
"maxResults"e o valor dele, a API vai retornar o valor padrão de 10 resultados. Esse campo não se aplica aos seguintes tipos de recursos:TEXT_DETECTION,DOCUMENT_TEXT_DETECTIONouCROP_HINTS. - PROJECT_ID: o ID do projeto do Google Cloud .
Método HTTP e URL:
POST https://vision.googleapis.com/v1/images:annotate
Corpo JSON da solicitação:
{
"requests": [
{
"image": {
"content": "BASE64_ENCODED_IMAGE"
},
"features": [
{
"maxResults": RESULTS_INT,
"type": "LABEL_DETECTION"
}
]
}
]
}
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 abaixo:
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/images:annotate"
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/images:annotate" | 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.
Uma resposta LABEL_DETECTION inclui os rótulos detectados, a pontuação, o tema e um ID de rótulo opaco, em que:
mid: se presente, contém um identificador gerado por máquina (MID, na sigla em inglês) correspondente à entrada da entidade no Mapa de Informações do Google. Os valoresmidpermanecem exclusivos em diferentes linguagens. Portanto, é possível usar esses valores para unir entidades de diferentes linguagens. Para inspecionar os valores do MID, consulte a documentação da API Google Knowledge Graph.description: a descrição do rótulo.score: o índice de confiança, que varia de 0 (sem confiança) a 1 (confiança muito alta).topicality: a relevância do rótulo de anotação de conteúdo da imagem (ICA, na sigla em inglês) em relação à imagem. Ele avalia a importância de um rótulo para o contexto geral de uma página.
{
"responses": [
{
"labelAnnotations": [
{
"mid": "/m/01c8br",
"description": "Street",
"score": 0.87294734,
"topicality": 0.87294734
},
{
"mid": "/m/06pg22",
"description": "Snapshot",
"score": 0.8523099,
"topicality": 0.8523099
},
{
"mid": "/m/0dx1j",
"description": "Town",
"score": 0.8481104,
"topicality": 0.8481104
},
{
"mid": "/m/01d74z",
"description": "Night",
"score": 0.80408716,
"topicality": 0.80408716
},
{
"mid": "/m/01lwf0",
"description": "Alley",
"score": 0.7133322,
"topicality": 0.7133322
}
]
}
]
}
Go
Antes de testar este exemplo, siga as instruções de configuração do Go no guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vision Go.
Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Antes de testar este exemplo, siga as instruções de configuração do Java no Guia de início rápido da API Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vision para Java.
Node.js
Antes de testar este exemplo, siga as instruções de configuração do Node.js no guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vision Node.js.
Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Antes de testar este exemplo, siga as instruções de configuração do Python no guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vision Python.
Para autenticar no 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 do 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 do Vision para PHP.
Ruby: siga as instruções de configuração do Ruby na página das bibliotecas de cliente e visite adocumentação de referência do Vision para Ruby.
Detectar rótulos em uma imagem remota
Use a API Vision para realizar a detecção de recursos em um arquivo de imagem localizado no Cloud Storage ou na Web. Para enviar uma solicitação de arquivo remoto, especifique o URL da Web do arquivo ou o URI do Cloud Storage no corpo da solicitação.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- 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://cloud-samples-data/vision/label/setagaya.jpeg
- RESULTS_INT: (opcional) um valor inteiro de resultados a serem retornados. Se você omitir o campo
"maxResults"e o valor dele, a API vai retornar o valor padrão de 10 resultados. Esse campo não se aplica aos seguintes tipos de recursos:TEXT_DETECTION,DOCUMENT_TEXT_DETECTIONouCROP_HINTS. - PROJECT_ID: o ID do projeto do Google Cloud .
Método HTTP e URL:
POST https://vision.googleapis.com/v1/images:annotate
Corpo JSON da solicitação:
{
"requests": [
{
"image": {
"source": {
"gcsImageUri": "CLOUD_STORAGE_IMAGE_URI"
}
},
"features": [
{
"maxResults": RESULTS_INT,
"type": "LABEL_DETECTION"
},
]
}
]
}
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 abaixo:
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/images:annotate"
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/images:annotate" | 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.
Uma resposta LABEL_DETECTION inclui os rótulos detectados, a pontuação, o tema e um ID de rótulo opaco, em que:
mid: se presente, contém um identificador gerado por máquina (MID, na sigla em inglês) correspondente à entrada da entidade no Mapa de Informações do Google. Os valoresmidpermanecem exclusivos em diferentes linguagens. Portanto, é possível usar esses valores para unir entidades de diferentes linguagens. Para inspecionar os valores do MID, consulte a documentação da API Google Knowledge Graph.description: a descrição do rótulo.score: o índice de confiança, que varia de 0 (sem confiança) a 1 (confiança muito alta).topicality: a relevância do rótulo ICA (Image Content Annotation) para a imagem. Ele avalia a importância de um rótulo para o contexto geral de uma página.
{
"responses": [
{
"labelAnnotations": [
{
"mid": "/m/01c8br",
"description": "Street",
"score": 0.87294734,
"topicality": 0.87294734
},
{
"mid": "/m/06pg22",
"description": "Snapshot",
"score": 0.8523099,
"topicality": 0.8523099
},
{
"mid": "/m/0dx1j",
"description": "Town",
"score": 0.8481104,
"topicality": 0.8481104
},
{
"mid": "/m/01d74z",
"description": "Night",
"score": 0.80408716,
"topicality": 0.80408716
},
{
"mid": "/m/01lwf0",
"description": "Alley",
"score": 0.7133322,
"topicality": 0.7133322
}
]
}
]
}
Go
Antes de testar este exemplo, siga as instruções de configuração do Go no guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vision Go.
Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Antes de testar este exemplo, siga as instruções de configuração do Java no Guia de início rápido da API Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vision para Java.
Node.js
Antes de testar este exemplo, siga as instruções de configuração do Node.js no guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vision Node.js.
Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Antes de testar este exemplo, siga as instruções de configuração do Python no guia de início rápido do Vision: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Vision Python.
Para autenticar no Vision, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
gcloud
Para detectar rótulos em uma imagem, use o comando gcloud ml vision detect-labels, como mostrado no exemplo a seguir:
gcloud ml vision detect-labels gs://cloud-samples-data/vision/label/setagaya.jpeg
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 do 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 do Vision para PHP.
Ruby: siga as instruções de configuração do Ruby na página das bibliotecas de cliente e visite adocumentação de referência do Vision para Ruby.
Testar
Teste a detecção de rótulos abaixo. É possível usar a imagem já especificada (gs://cloud-samples-data/vision/label/setagaya.jpeg) ou determinar sua própria imagem. Envie a solicitação selecionando Executar.
Corpo da solicitação:
{
"requests": [
{
"features": [
{
"maxResults": 5,
"type": "LABEL_DETECTION"
}
],
"image": {
"source": {
"imageUri": "gs://cloud-samples-data/vision/label/setagaya.jpeg"
}
}
}
]
}