Objetivos
Nesta amostra, você usará a API do Google Vision para detectar rostos em uma imagem. Para comprovar que os rostos foram detectados corretamente, você utilizará os dados para desenhar uma caixa em torno deles.
Custos
Neste documento, você vai usar os seguintes componentes faturáveis do Google Cloud:
- Cloud Vision
Para gerar uma estimativa de custo baseada na projeção de uso,
use a calculadora de preços.
Antes de começar
- Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloudagora, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Google Cloud Vision API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Google Cloud Vision API.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.- Configure o ambiente para usar o Application Default Credentials.
-
Configure tarefas e ferramentas específicas por linguagem:
C#
- Instale a biblioteca de cliente do Google.
- Instale o Visual Studio 2012/2015.
Java
- Instale o Java
- Referência da API.
Faça o download e a instalação do sistema de build do Apache Maven. O Maven garante que a biblioteca de cliente da API do Google e as da API do Vision sejam instaladas quando o projeto é criado, porque as incluímos no
pom.xml....
Node.js
- Instale a biblioteca de cliente do Google.
- Instale o Node.js.
- Referência da API.
Instale o npm e o node-canvas. O código de amostra inclui um
package.jsonpara instalar todas as dependências usando o comando:npm install. O node-canvas tem dependências extras que talvez você precise instalar. Veja mais informações no documento de instalação.
PHP
- Instale a biblioteca de cliente do Google.
- Instale o PHP e o Composer (páginas em inglês).
- Referência da API.
- Instale e ative o GD para PHP.
Python
- Instale a biblioteca de cliente do Google.
- Instale o Python.
- Referência da API.
- Instale o pillow.
Ruby
- Instale a biblioteca de cliente do Google.
- Instale o Ruby e o Bundler (páginas em inglês).
- Referência da API.
- Instale o ImageMagick.
Criar o objeto de serviço
Para acessar as APIs do Google usando os SDKs oficiais do cliente, é necessário criar um objeto de serviço baseado no documento de descoberta das APIs. Ele descreve a API para o SDK. Você precisará buscar o documento no serviço de descoberta da API Vision usando suas credenciais:
Java
Node.js
Python
Enviar uma solicitação de detecção de rostos
Para construir uma solicitação para a API Vision, primeiro consulte a documentação da API. Nesse caso, você pedirá ao recurso images para annotate a imagem. Uma solicitação para essa API tem a forma de um objeto com uma lista de requests. Cada item nela contém duas informações:
- Os dados de imagem codificados em Base64.
- Uma lista de recursos que você quer anotar na imagem.
Neste exemplo, você solicitará uma anotação FACE_DETECTION em uma imagem e retornará a parte relevante da resposta:
Java
Node.js
Python
Processar a resposta
Parabéns! Você detectou os rostos na sua imagem. A resposta à solicitação de anotação de rosto inclui um grupo de metadados relacionados aos rostos detectados, com as coordenadas de um polígono que abrangem o rosto. No entanto, agora isso é apenas uma lista de números. Vamos usá-la para confirmar que você realmente encontrou os rostos na imagem. Desenharemos polígonos em uma cópia da imagem usando as coordenadas retornadas pela API Vision:
Java
Node.js
Usamos a biblioteca do node-canvas para desenhar nas imagens.
Python
Funcionamento em conjunto
Java
...
Para criar e executar a amostra, execute os seguintes comandos no diretório de código de amostra:
mvn clean compile assembly:single
java -cp target/vision-face-detection-1.0-SNAPSHOT-jar-with-dependencies.jar \
com.google.cloud.vision.samples.facedetect.FaceDetectApp \
data/face.jpg \
output.jpg
Node.js
Para ativar a amostra, execute o comando a seguir a partir do diretório do código de amostra:
node faceDetection resources/face.png
Python
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados neste tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.
- No Google Cloud console, acesse a página Gerenciar recursos.
- Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
- Na caixa de diálogo, digite o ID do projeto e clique em Desligar para excluir o projeto.