Curso
Já faz um bom tempo que o Google lançou uma API dedicada chamada Vision API para realizar tarefas de visão computacional. Visão computacional é a área que estuda como um computador processa uma imagem. Para nós, humanos, é relativamente fácil extrair insights úteis de uma imagem — mas como um computador faz isso?
Por exemplo: você fornece a imagem de um cachorro ao seu computador e, usando algum software, ele informa que a imagem enviada é de um cachorro. É aí que entra a visão computacional. Esse é um campo inteiro de estudo por si só, e a Vision API oferece diversas utilidades para executar tarefas de visão computacional com total facilidade. O melhor é que desenvolvedores sem qualquer experiência prévia em visão computacional podem usar a Vision API seguindo a sua documentação.
Este tutorial busca apresentar a Vision API e como chamá-la a partir de código em Python.
Observação: se você quiser se aprofundar em APIs de forma geral (pelas perspectivas de Python e Machine Learning) antes de começar este tutorial, confira estes ótimos recursos:
O que é a Vision API do Google? Uma introdução mais detalhada
O Google encapsulou seus modelos de Machine Learning em uma API para permitir que desenvolvedores usem sua tecnologia de Vision. A Vision API consegue classificar imagens rapidamente em milhares de categorias e atribuir rótulos coerentes. Ela também detecta objetos, rostos e trechos de texto dentro de uma imagem.
Em alto nível, a Vision API do Google permite que você faça duas coisas:
- Use a API diretamente no seu código para análises de imagem poderosas — e em escala.
- Crie modelos personalizados usando a API para ter mais flexibilidade conforme o seu caso de uso.
Essa API é especialmente útil porque, no cenário atual, a demanda por profissionais "full stack" cresce muito rápido. Imagine que um desenvolvedor web full stack (ou seja, com domínio de tecnologias de front-end e back-end) precise criar um site que receba imagens e identifique o que elas contêm. Isso exigiria um bom conhecimento em visão computacional (se ele ainda não tiver), já que o back-end deve ser capaz de reconhecer corretamente a imagem. E suponha que o prazo seja curto.
Nesse contexto, se o desenvolvedor começar a aprender visão computacional do zero para então implementar tudo, é bem provável que perca o prazo. Em vez disso, se ele/ela usar modelos pré-treinados e for aprendendo os conceitos no caminho, o processo fica muito mais prático. É exatamente aí que a Vision API ajuda. A API oferece diversos modelos pré-treinados de ponta para atender a vários casos de uso reais de negócio.
O termo "full stack" também tem sido associado a funções como Machine Learning Engineer, Data Scientist etc. Um profissional full stack em Machine Learning/Data Science deve desenhar e desenvolver — ou ao menos conhecer — os processos de negócio ponta a ponta. Isso inclui "colocar modelos em produção" como uma das etapas mais críticas, empacotando o modelo em uma API (ou conjunto de APIs) e implantando no ambiente de produção. O que é "produção" varia conforme o caso, mas a ideia e o framework geral permanecem. A Vision API permite treinar modelos de visão personalizados com o AutoML Vision BETA de forma eficiente.
Legal! A esta altura, você já deve ter uma boa visão geral da Vision API. Um experimento simples que você pode fazer na página da Vision é analisar suas imagens favoritas e extrair insights com a ajuda da ferramenta. Siga estes passos:
- Acesse a página da Vision.
- Há uma seção chamada "Try the API". Ela permite arrastar/enviar uma imagem na interface.

- Depois de enviar a imagem, você recebe várias informações sobre ela:
Como você pode ver, a Vision detecta rapidamente diversos fatos sobre a imagem. Explore também as outras abas para aprender ainda mais.
Agora imagine executar essa tarefa em um conjunto de bilhões de imagens. Usar uma API como esta certamente traz ganhos enormes. Vamos conhecer as funcionalidades da Vision API e ver exemplos de casos de uso reais que ela já atendeu.
Quais são os recursos da Vision API — alguns casos de uso
A Vision API é reconhecida pela precisão de seus resultados. A documentação reúne uma excelente coleção de tutoriais com uma visão bem detalhada da API. Mas, num primeiro contato, pode parecer muita coisa. Para simplificar, veja alguns casos de uso que a Vision API já resolve muito bem:
- Reconhecimento óptico de caracteres (OCR): um clássico da visão computacional, focado na extração de texto a partir de imagens. A Vision API reúne abordagens de ponta para essa tarefa.
- Detecção de propriedades da imagem: é a tarefa que você realizou na seção anterior. Com a Vision API, dá para recuperar atributos gerais da imagem, como cores dominantes.
- Detecção de rótulos: anota a imagem com um rótulo (ou "tag") com base no conteúdo. Por exemplo, a foto de um cachorro pode gerar rótulos como "dog", "animal" ou outros semelhantes. Esse é um passo essencial em Recuperação de Informação Baseada em Conteúdo.
- Detecção de rostos: dado uma imagem ou um conjunto delas, a tarefa é detectar rostos presentes. Tem várias aplicações em larga escala, como sistemas de vigilância.
Esses são alguns casos em que a Vision API entrega resultados com fluidez, e você pode integrar qualquer um deles aos seus apps em pouquíssimo tempo. Para conhecer mais casos, confira estes tutoriais.
A Vision API oferece suporte a várias linguagens, como Go, C#, Java, PHP, Node.js, Python, Ruby. Nas próximas seções, você verá como usar a Vision API em Python.
Biblioteca cliente da Vision API para Python
O primeiro passo para usar a versão Python da Vision API é instalá-la. A melhor forma é via pip.
!pip install google-cloud-vision
Depois de instalar, verifique se deu tudo certo.
from google.cloud import vision
Se a linha acima executar sem erros, você está pronto para continuar. O Google disponibiliza uma série de tutoriais excelentes sobre como usar a Vision API em Python.
Agora, vamos criar um app simples em Python capaz de detectar alguns atributos gerais de uma imagem, como a cor dominante.
Um estudo de caso com a Vision API em Python
Seu aplicativo vai receber o caminho de uma imagem como entrada e exibir os atributos gerais correspondentes. Isso é útil quando as imagens estão no computador onde o app será executado. Mas e se você precisar ler uma imagem da internet? A Vision API também suporta leitura de imagens online.
Neste estudo de caso, você vai cobrir o primeiro cenário. Para lidar com a variante online, é questão de uma linha de código.
Como sempre, começamos importando vision do módulo google.cloud.
from google.cloud import vision
O próximo passo é chamar ImageAnnotatorClient(), que contém as utilidades para extrair propriedades de imagens.
client = vision.ImageAnnotatorClient()
É provável que você encontre um erro se a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS não estiver definida. Isso acontece porque essas bibliotecas usam as Application Default Credentials (ADC) para localizar as credenciais do seu app. Quando seu código usa bibliotecas assim, a estratégia verifica suas credenciais.
Siga este link para aprender a gerar o GOOGLE_APPLICATION_CREDENTIALS. Seu objetivo é gerar um arquivo client_secrets.json, que será usado para autenticação.
Depois de obter o client_secrets.json, execute o código abaixo para definir a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS.
import os
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="client_secrets.json"
Agora, executar o código abaixo não deve gerar erro.
client = vision.ImageAnnotatorClient()
Em seguida, escreva o código para ler uma imagem a partir de um caminho informado.

import io
path = 'Image.jpeg'
with io.open(path, 'rb') as image_file:
content = image_file.read()
Pronto, a imagem foi carregada no seu ambiente. Agora, crie um objeto do tipo vision.types.Image e passe content=content como argumento.
image = vision.types.Image(content=content)
Faltam só os passos finais do seu app de detecção de propriedades de imagem. Você vai:
- Chamar
client.image_propertiescom o argumento(image=image). - Armazenar a resposta de
image_properties()em uma variávelresponsee extrair as propriedades da imagem pelo atributoimage_properties_annotationderesponse. - Exibir diversas propriedades da imagem de forma formatada.
response = client.image_properties(image=image)
props = response.image_properties_annotation
print('Properties of the image:')
for color in props.dominant_colors.colors:
print('Fraction: {}'.format(color.pixel_fraction))
print('\tr: {}'.format(color.color.red))
print('\tg: {}'.format(color.color.green))
print('\tb: {}'.format(color.color.blue))
Você pode ver erros novamente se a Vision API não estiver habilitada para o seu projeto. Habilitar a API é bem simples, e o próprio traceback traz instruções para você ativá-la rapidamente.
Depois de habilitar a API, é preciso ativar o Billing para usar a Vision API. As utilidades de detecção de propriedades de imagem custam apenas US$ 0,60. Feito isso, o código roda com sucesso e gera a saída.

Parabéns!
Você viu como é simples usar a Vision API e o tipo de recurso que ela oferece — com um custo muito acessível. Hoje, muitas empresas e organizações se beneficiam dessa API, seja para negócios ou pesquisa. Neste tutorial, você só arranhou a superfície da Vision API, mas já é um ótimo ponto de partida para usar APIs de Machine Learning nos seus aplicativos.
Não deixe de explorar todo o conjunto de APIs de Machine Learning do Google, conhecido como CloudML.
Com essas APIs fáceis de chamar, dá para construir vários apps incríveis. Os links da Vision API e do CloudML reúnem uma coletânea excelente de tutoriais para você experimentar. Boa sorte!
Se você quer aprender mais sobre Processamento de Imagens, faça o curso da DataCamp Convolutional Neural Networks for Image Processing.


