Público-alvo
O objetivo deste tutorial é ajudar você a desenvolver aplicativos usando a detecção de texto de documentos da API Cloud Vision do Google Cloud. Pressupomos que você tenha familiaridade com construtos e técnicas básicas de programação. No entanto, mesmo que seja um programador iniciante, você pode acompanhar e executar o tutorial sem dificuldade, além de usar a documentação de referência da API Vision para criar aplicativos básicos.
Pré-requisitos
- Configurar um projeto da API Vision no Google Cloud console.
Configure o ambiente para usar o Application Default Credentials.
Python
- Instale o Python.
- Instale o pip.
- Instale a biblioteca de cliente do Google Cloud e a biblioteca de imagens do Python.
Como anotar uma imagem usando o OCR de texto de documento
Neste tutorial, apresentamos um aplicativo básico da API Cloud Vision que faz uma
DOCUMENT_TEXT_DETECTION solicitação e processa a fullTextAnnotation
resposta.
fullTextAnnotation é uma resposta hierárquica estruturada com o texto UTF-8 extraído da imagem, organizada como Páginas → Blocos → Parágrafos → Palavras → Símbolos:
Pageé uma coleção de blocos, além de metainformações sobre a página: tamanhos, resoluções. As resoluções X e Y podem ser diferentes.Blockrepresenta um elemento "lógico" da página. Por exemplo, uma área coberta por texto, uma imagem ou um separador entre colunas. Os blocos de texto e tabela contêm as principais informações necessárias para extrair o texto.Paragraphé uma unidade estrutural do texto que representa uma sequência ordenada de palavras. Por padrão, as palavras são separadas por quebras.Wordé a menor unidade do texto. Ela é representada como uma matriz de símbolos.Symbolrepresenta um caractere ou um sinal de pontuação.
fullTextAnnotation também pode incluir URLs para imagens da Web que correspondam parcial ou totalmente à imagem na solicitação.
Listagem de código completa
Ao ler o código, recomendamos que você acompanhe a referência da API Vision para Python.
Este aplicativo executa as seguintes tarefas:
- Importa as bibliotecas necessárias para executar o aplicativo
- Transmite três argumentos para a função
main():image_file: o arquivo de imagem de entrada a ser anotadooutput_file: o nome do arquivo em que o Cloud Vision vai gerar uma imagem com as polyboxes desenhadas
- Cria uma instância
ImageAnnotatorClientpara interagir com o serviço. - Envia a solicitação e retorna uma resposta.
- Cria uma imagem de saída com caixas desenhadas em torno do texto.
Mais detalhes sobre o código
As seções a seguir examinam os principais componentes do aplicativo de amostra em detalhes.
Como importar bibliotecas
Importamos bibliotecas padrão:
argparsepara permitir que o aplicativo aceite nomes de arquivo de entrada como argumentos;enumpara a enumeração deFeatureType;iopara E/S de arquivos.
Outras importações:
- A classe
ImageAnnotatorClientna bibliotecagoogle.cloud.visionpara acessar a API Cloud Vision. - O módulo
typesna bibliotecagoogle.cloud.visionpara criar solicitações. - As bibliotecas
ImageeImageDrawda bibliotecaPILsão usadas para criar a imagem de saída com caixas desenhadas na imagem de entrada.
Como executar o aplicativo
Neste caso, analisamos os argumentos transmitidos e os passamos para a função render_doc_text().
Como autenticar na API
Antes de se comunicar com o serviço da API Cloud Vision, você precisa autenticar seu serviço usando as credenciais já adquiridas. A maneira mais simples de receber credenciais em um
aplicativo é usar
Application Default Credentials
(ADC). Por padrão, as bibliotecas de cliente do Cloud tentam
receber as credenciais da variável de ambienteGOOGLE_APPLICATION_CREDENTIALS
. Ela precisa ser configurada para indicar o arquivo de chave JSON da conta de serviço.
Para mais informações, consulte
Como configurar uma conta de serviço
.
Como fazer a solicitação de API e ler limites de texto na resposta
Agora que nosso serviço da API Cloud Vision está pronto, podemos acessá-lo chamando o método document_text_detection da instância ImageAnnotatorClient.
A biblioteca de cliente inclui os detalhes das solicitações e respostas para a API. Consulte a Referência da API Cloud Vision para saber informações sobre a estrutura de uma solicitação.
Depois que a solicitação tiver sido processada pela biblioteca de cliente, a resposta conterá um AnnotateImageResponse, para cada imagem enviada em a solicitação. Ele consiste em uma lista de resultados das "Anotações de imagem". Como enviamos apenas uma imagem na solicitação, verificamos todo o TextAnnotation, e coletamos os limites do recurso do documento especificado.
Como executar o aplicativo
Para executar o aplicativo, você pode
fazer o download deste arquivo receipt.jpg
(talvez seja necessário clicar com o botão direito no link) e, em seguida, transmitir o local onde você fez o download do arquivo em sua máquina local
para o aplicativo do tutorial (doctext.py).

Este é o comando do Python, seguido das imagens de saída da anotação de texto.
$ python doctext.py receipt.jpg -out_file out.jpg
A imagem a seguir mostra palavras em caixas amarelas e frases em vermelhas.

Parabéns! Você fez a detecção de texto usando as anotações de texto completo do Cloud Vision.