Entre para a LISTA VIP da Black Friday

00

DIAS

00

HORAS

00

MIN

00

SEG

Clique para saber mais
Alura > Cursos de Data Science > Cursos de Machine Learning > Conteúdos de Machine Learning > Primeiras aulas do curso Visão Computacional: reconhecimento de texto com OCR e OpenCV

Visão Computacional: reconhecimento de texto com OCR e OpenCV

Tesseract OCR - Apresentação

Olá! Boas-vindas ao curso de Reconhecimento de textos com OCR da Alura, com a instrutora Sthefanie Monica.

Sthefanie é uma jovem mulher branca, de cabelos castanhos claros e lisos na altura dos ombros e olhos castanhos. Está usando óculos de grau com armação quadrada, batom vermelho, além de um headphone preto na parte externa, acolchoado e rosa na parte interna. Veste um agasalho de moletom preto com algumas letras brancas estampadas no centro e está sentada em um ambiente que aparenta ser um estúdio, de paredes com placas acústicas. Na parede ao fundo, existem alguns objetos de decoração pendurados: quadros de filmes e bastidores com bordado.

Se você não sabe o que é OCR ou como utilizá-lo no reconhecimento de textos, está no lugar certo! Neste curso, estudaremos o que é OCR, como ele funciona e para que é usado. Também aprenderemos a fazer o reconhecimento de textos desde o princípio.

Vamos trazer as imagens do GitHub para o Google Colaboratory, faremos a análise de cada uma das imagens (preto e branca ou colorida), retirando o texto e avançaremos conforme os módulos, trabalhando com imagens cada vez maiores, com mais textos, acentuações e caracteres diferentes. Também analisaremos como o OCR se comportará e sua capacidade de leitura, que será aperfeiçoada à medida que adicionamos as imagens.

Ao final do curso, desenvolveremos um projeto, que você poderá colocar no portfolio GitHub. Então, além de aprender muito sobre OCR, você construirá um projeto e poderá aplicá-lo em um problema do seu cotidiano.

Você está super convidada e convidado a começar esse curso comigo. Vamos lá?!

Tesseract OCR - Introdução ao Tesseract OCR

Nosso mundo, atualmente, é todo digitalizado. Normalmente, as nossas contas chegam por e-mail ou aplicativos de celular, mas, algumas empresas ainda enviam faturas de papel via Correios e outras exigem que as pessoas levem documentos físicos com cópias para comprovarem que realmente são elas. Neste caso, surge uma questão: onde armazenar esses papéis?

Por exemplo, as empresas de advocacia e afins recebem contratos, faturamentos e outros documentos físicos e precisam armazená-los. O problema principal, portanto, é o armazenamento.

Além disso, em algum momento, as empresas desejarão consultar esse material, seja porque tiveram dúvida em algum ponto ou porque o cliente entrou em contato e pediu alguma informação sobre o contrato, ou por qualquer outro motivo. Então, um segundo problema seria a procura pelos dados armazenados.

Se o documento tem cinco folhas, fica fácil encontrar, mas, imagine o caso de vários documentos, cada um com cinco folhas. Seria bem mais complicado. Para esses casos, podemos aplicar o OCR, que é o Optical Character Recognition ou, em português, o Reconhecimento Ótico de Caracteres. Mas, como aplicaremos o OCR se tudo está no papel?

Primeiro, vamos entender o que é o OCR. Como já dissemos, ele é o Reconhecimento de Caracteres Ópticos e converte uma imagem de texto em um formato de texto legível para a máquina. Então, para que ele funcione, teremos que transformar todos os papéis em um formato de entrada para a máquina.

A primeira parte é a aquisição da imagem. Podemos escanear todas as imagens, tirar fotografias com o celular ou qualquer outra câmera e essa será a etapa de entrada. Depois disso, faremos o pré-processamento. Nesta etapa, trataremos a imagem, nos atentando a alguns detalhes, por exemplo, se a imagem está um pouco rotacionada ou se é necessário ajustar a iluminação, dentre outros.

Em seguida, passamos para o reconhecimento do texto em si. Este reconhecimento é composto por duas etapas distintas, isto é, o reconhecimento pode ser por padrões, quando a ferramenta já viu tantas letras e sabe, por exemplo, o que é uma letra "a" minúscula ou uma letra "A" maiúscula.

O reconhecimento também pode ser detecção de recursos. Neste caso, ele sabe, por exemplo, que quando escrevemos a letra "A" maiúscula, criamos uma intersecção de linhas. Assim, é possível prever que a letra provavelmente será a "A". Desta forma, vai encontrando pontos correlacionados nas letras para reconhecê-las.

O próximo passo é de pós-processamento, que é como entregará a informação. Existem diversas ferramentas que usam o método OCR, mas, desta vez, escolheremos a Pytesseract, uma biblioteca do Python que utiliza o Tesseract OCR, do Google.

O Tesseract OCR é um recurso open source da Google e funciona com a OCR engine. O OCR é um método que utilizamos e podemos treinar. Nós optamos pela Tesseract por ser open source. Em seu repositório do GitHub, conseguimos visualizar todas as línguas que foram treinadas e também podemos treiná-la com outro idioma.

É interessante entendermos como funciona esse processo de aprendizagem e também como funciona o OCR, mas, agora estudaremos especificamente o Tesseract OCR. Vamos lá?

Tesseract OCR - OCR no Colab

Agora que já sabemos o que é o OCR, podemos começar a trabalhar com ele dentro do Colab. Nosso primeiro passo será a instalação das bibliotecas. Nós instalaremos o pytesseract e também utilizaremos o opencv para visualizarmos algumas imagens e realizarmos alguns tratamentos nelas. O Tesseract OCR também será instalado.

!pip install opencv-python==4.6.0
!sudo apt install tesseract-ocr
!pip install pytesseract==0.3.9

Dois dos comandos dessas três bibliotecas que estamos instalando são pip install. O segundo, é um comando que vem do Linux, sudo apt, que usamos para a instalação do tesseract. Depois de rodar, ele enviará uma mensagem bastante grande. Ao final, um aviso, "you must restart the runtime in order to use newly installed versions", isto é, "você precisa restartar o seu runtime", assim, ele conseguirá entender o que está acontecendo.

Então, vamos apertar o botão "Restart Runtime". Fazendo isso, receberemos um warning com a mensagem "Você quer mesmo reiniciar o ambiente de execução? O estado dele e de todas as variáveis locais será perdido". Nós não temos nada rodado ainda, então, podemos apertar "sim". Após o reiniciou, verificaremos que o valor de "RAM" e "Disco rígido" voltaram ao normal.

Todos os dados que usaremos no curso serão importados via git clone, do GitHub. Dentro da pasta "text-recognize", disponível neste link, encontraremos outra pasta, de "imagens". Nela, encontraremos o Projeto e todas as imagens por aula. Na próxima célula, chamaremos ! git clone seguido do link.

! git clone https://github.com/sthemonica/text-recognize

Na lateral superior do Colab, vamos selecionar os arquivos e a pasta "text_recognize" já estará aqui, com todas as nossas imagens. É muito mais simples do que importarmos todas as imagens de uma vez só ou adicionarmos uma a uma.

Agora, importaremos todas as bibliotecas que usaremos: numpy as np; cv2, que é a biblioteca openCV; e cv2_imshow, que mostrará as imagens no Colab.

import pytesseract
import numpy as np
import cv2 # OpenCV
from google.colab.patches import cv2_imshow # para mostrar as imagens no Google Colab

Dentro do openCV, temos o cv2_imshow. Esse comando não funciona no Colab para mostrarmos as imagens. Quando estamos usando o Anaconda ou o Jupyter, ele funcionará corretamente, mas dentro do Google Colab, não, então precisaremos dos patches para evitarmos um erro.

Rodamos a célula e deu tudo certo. Agora podemos conferir se ele instalou corretamente a versão do pytesseract.

pytesseract.__version__

0.3.9

Também vamos conferir a versão do OpenCV.

cv2.__version__

4.6.0

A versão do OpenCV é a 4.6.0 e a do pytesseract é a 0.3.9, exatamente as versões que pedimos anteriormente no código. Nosso ambiente está configurado, então, podemos importar uma imagem. Para isso, utilizaremos o OpenCV, que fará a leitura. Faremos img igual a cv2.imread().

Para importarmos a primeira imagem, na lateral esquerda da tela, acessaremos a pasta "text_recognize > Imagens", que importamos do GitHub, e localizaremos o arquivo "Aula1-teste.png". Em seguida, apertaremos o botão de "três pontinhos (...)" que está à frente do arquivo e selecionaremos a opção "Copiar caminho" e colaremos na célula, entre aspas simples ou duplas.

Na linha abaixo, faremos cv2_imshow(), que é o comando que importamos com o google patches e passaremos img.

img = cv2.imread('/content/text-recognize/Imagens/Aula1-teste.png')
cv2_imshow(img)

Com isso, aparecerá a nossa primeira imagem dentro do Google Colab, portanto, o OpenCV está funcionando.

Fundo branco com frase escrita em letras maiúsculas e fonte preta, "TESTE INICIAL OCR"

A primeira parte está feita. Agora, precisamos conferir se o tesseract está funcionando. Vamos tentar retirar o texto a partir da imagem. Vamos chamar uma variável nova, texto e ela será igual a pytesseract.image_to_string(img). Abaixo, faremos print(texto).

texto = pytesseract.image_to_string(img)
print(texto)

TESTE INICIAL OCR

A resposta foi "TESTE INICAL OCR", portanto, ele já começou a ler a imagem, sem que fosse necessário fazer qualquer tratamento. O próximo passo é testar a reação do tesseract com outras imagens.

Sobre o curso Visão Computacional: reconhecimento de texto com OCR e OpenCV

O curso Visão Computacional: reconhecimento de texto com OCR e OpenCV possui 152 minutos de vídeos, em um total de 56 atividades. Gostou? Conheça nossos outros cursos de Machine Learning em Data Science, ou leia nossos artigos de Data Science.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda Machine Learning acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas