Introdução ao EASYOCR: uma biblioteca Python simples e precisa para reconhecimento óptico de caracteres

Feb 15 2023
OCR significa Reconhecimento Óptico de Caracteres e refere-se à tecnologia usada para converter imagens digitalizadas, PDFs ou outros documentos em arquivos de texto editáveis ​​e pesquisáveis. Com o OCR, os caracteres e o texto são capturados de um documento, traduzidos para o formato digital e depois transformados em um documento editável, como um arquivo de processamento de texto, que pode ser editado, pesquisado e compartilhado.

OCR significa Reconhecimento Óptico de Caracteres e refere-se à tecnologia usada para converter imagens digitalizadas, PDFs ou outros documentos em arquivos de texto editáveis ​​e pesquisáveis. Com o OCR, os caracteres e o texto são capturados de um documento, traduzidos para o formato digital e depois transformados em um documento editável, como um arquivo de processamento de texto, que pode ser editado, pesquisado e compartilhado.

Como funciona um OCR:

O processo de OCR começa com a digitalização de um documento em uma imagem digital. Depois que o documento é digitalizado, o software OCR analisa a imagem e identifica cada caractere ou símbolo, como letras, números e sinais de pontuação. Esse processo é obtido usando algoritmos de aprendizado de máquina e tecnologia de reconhecimento de padrões.

Depois que os caracteres são reconhecidos, o software OCR usa vários algoritmos para converter a imagem em texto. Esse processo envolve o reconhecimento da estrutura do texto e suas relações com outros elementos da página, como linhas, parágrafos e colunas.

O arquivo de texto resultante é limpo para remover quaisquer imprecisões residuais e problemas de formatação, resultando em uma saída final que é uma representação precisa, editável e pesquisável do documento original.

Aqui, usaremos uma biblioteca python chamada EASYOCR, que oferece uma solução simples e precisa para reconhecer texto de imagens. Ele é construído sobre os conhecidos mecanismos de OCR Tesseract e Kraken e fornece uma API de alto nível para tarefas de OCR. Com o EASYOCR, você pode extrair texto de uma imagem com apenas algumas linhas de código, tornando-o uma solução ideal para quem deseja começar a usar o OCR de forma rápida e fácil.

Uma das principais vantagens do EASYOCR é a sua precisão. Ele usa mecanismos avançados de OCR para reconhecer texto com alta precisão e foi testado em uma ampla variedade de imagens do mundo real. Além disso, o EASYOCR suporta vários idiomas, incluindo inglês, espanhol, alemão, francês e muitos outros, tornando-o uma ferramenta versátil para uma ampla gama de aplicações.

Riffusion: geração de música usando IA

Usaremos o Google Colab para demonstrar o uso da biblioteca EASYOCR.

Vá para o seguinte url,https://colab.research.google.com/github/vistec-AI/colab/blob/master/easyocr.ipynb#scrollTo=lIYdn1woOS1n
este é um notebook tutorial que nos orientará na instalação e no uso desta biblioteca.

Execute a primeira célula com o seguinte código

pip install easyocr

Execute a segunda célula com o seguinte código

!npx degit JaidedAI/EasyOCR/examples -f

O código a seguir lista todos os arquivos disponíveis, que baixamos para testar a instalação.

# list them
!ls -l

      
                

import easyocr
reader = easyocr.Reader(['th','en'])

O código a seguir recebe o URL da imagem e gera os textos detectados e seus limites.

bounds = reader.readtext('english.png')

      
                

[([[231, 32], [674, 32], [674, 64], [231, 64]],
  'reduce your risk of coronavirus infection:',
  0.5894071496633547),
 ([[326, 98], [598, 98], [598, 124], [326, 124]],
  ' clean hands with soap and water',
  0.7988865737854121),
 ([[328, 124], [542, 124], [542, 148], [328, 148]],
  'or alcohol based hand rub',
  0.7621980847128819),
 ([[246, 169], [595, 169], [595, 196], [246, 196]],
  ' cover nose and mouth when coughing and',
  0.8521979877343081),
 ([[245, 194], [546, 194], [546, 222], [245, 222]],
  ' sneezing with tissue or flexed elbow',
  0.6378814357959204),
 ([[320, 240], [624, 240], [624, 266], [320, 266]],
  ' avoid close contact with anyone with',
  0.5482533550201348),
 ([[318, 266], [528, 266], [528, 292], [318, 292]],
  ' cold or flu like symptoms',
  0.47991910573600205),
 ([[248, 322], [510, 322], [510, 348], [248, 348]],
  'thoroughly cook meat and eggs',
  0.5092207103620182),
 ([[332, 370], [640, 370], [640, 396], [332, 396]],
  ' no unprotected contact with live wild',
  0.5229541950054118),
 ([[334, 396], [464, 396], [464, 420], [334, 420]],
  'or farm animals',
  0.5031101512400155),
 ([[595, 427], [683, 427], [683, 447], [595, 447]],
  'world health',
  0.9955542471370129),
 ([[595, 445], [685, 445], [685, 463], [595, 463]],
  ' organization',
  0.7367930498732257)]

Outro exemplo:

Outro exemplo com a língua hindi

Outro exemplo com francês

Aqui está, uma biblioteca python que pode ler texto de imagens para mais de 80 idiomas. Siga-me para mais artigos como este.
Aqui está o link para o repositório github para EasyOcr.
https://github.com/JaidedAI/EasyOCR

Codificação de nível

Obrigado por fazer parte da nossa comunidade! Antes de você ir:

  • Bata palmas para a história e siga o autor
  • Veja mais conteúdo na publicação Level Up Coding
  • Siga-nos: Twitter | Linkedin | Boletim de Notícias