Introdução ao reconhecimento óptico de caracteres [OCR] para iniciantes

Publicados: 2021-02-08

OCR ou reconhecimento óptico de caracteres (OCR) é usado para extrair informações de imagens de contas e recibos, ou qualquer coisa que tenha conteúdo escrito neles. Para desenvolver esta solução, o OpenCV pode ser usado para processar as imagens que podem ser posteriormente alimentadas em um mecanismo Tesseract OCR que pode extrair o texto dessas imagens.

No entanto, o processo de remoção de texto pode ser eficiente apenas se a imagem estiver clara e os textos estiverem visíveis o suficiente. Em aplicativos de varejo, para extração de textos de faturas, a fatura pode ficar inundada de marcas d'água, ou pode haver uma sombra na fatura que dificulta a captura das informações.

Capturar informações de páginas mais longas de textos também pode ser uma tarefa árdua. Para enfrentar esses problemas, é prudente que no pipeline de extração de informações haja um local do módulo de processamento de imagens que lide com as dificuldades mencionadas.

Ele compreende vários subprocessos, ou seja, localização de textos, segmentação de caracteres e reconhecimento desses caracteres. Embora poucos sistemas gerenciem sem segmentação. Tais métodos são produzidos utilizando diversos procedimentos, como a aplicação do método dos mínimos quadrados para reduzir a taxa de erro e suportar máquinas de vetores para combinar os caracteres.

Ainda assim, muitas vezes para identificar a ocupação de um personagem em uma imagem, são empregadas Redes Neurais Convolucionais (CNN). Os textos podem ser vistos como uma sequência consistente de caracteres. Detectar e identificar esses caracteres com maior precisão é uma dificuldade que pode ser resolvida usando um tipo especial de rede neural, a saber, redes neurais recorrentes (RNNs) e memória de longo prazo (LSTM).

As palavras são coletadas ajustando textos em blobs. Além disso, essas linhas e regiões são examinadas em busca de texto equivalente. As linhas de texto são divididas em palavras apenas de acordo com o tipo de espaçamento entre elas. O método de identificação é dividido em duas etapas. Primeiramente, cada palavra é identificada. Cada palavra perfeita ou corretamente identificada é adicionalmente passada para um classificador adaptativo como dados de treinamento.

A imagem recebida como entrada é examinada e processada em partes. O texto é alimentado no modelo LSTM linha por linha. O Tesseract, que é um mecanismo de reconhecimento óptico de caracteres, está disponível para vários sistemas operacionais. Ele usa uma combinação de arquitetura CNN e LSTM para identificar e derivar textos de dados de imagem com precisão. No entanto, imagens com ruídos ou sombras prejudicam a precisão da recuperação.

Para minimizar o ruído ou melhorar a qualidade da imagem, o pré-processamento da imagem pode ser realizado usando a biblioteca OpenCV. Tais etapas de pré-processamento podem compreender a descoberta da ROI ou da região de interesse, corte da imagem, remoção de ruído (ou regiões indesejadas), limiarização, dilatação e erosão, detecção de contornos ou bordas. Depois que essas etapas são concluídas, os mecanismos de OCR podem ler a imagem e extrair textos relevantes dela perfeitamente.

Índice

Ferramentas usadas

1. OpenCV

OpenCV é uma biblioteca originalmente compatível com as linguagens C/C++ e python. É comumente usado para processar dados com amostras de imagem. Uma infinidade de funções úteis predefinidas está presente na biblioteca que implementa as transformações necessárias nas amostras de imagem. Todas as funções acima mencionadas, como dilatação, erosão, fatiamento, detecção de bordas e muitas outras, podem ser feitas facilmente usando esta biblioteca.

2. Mecanismo de OCR Tesseract

Lançado pelo Google, é uma biblioteca de código aberto amplamente utilizada para reconhecimento de texto. Ele pode ser usado para detectar e identificar textos em vários idiomas. O processamento é bastante rápido e fornece a saída textual de uma imagem quase que imediatamente. Muitos aplicativos de varredura aproveitam essa biblioteca e contam com suas técnicas de extração.

Etapas envolvidas no processo de extração de texto

(1) Em primeiro lugar, técnicas de processamento de imagem possíveis, como detecção de contorno, remoção de ruído e funções de erosão e dilatação, são aplicadas à amostra de imagem com ruído de entrada.

(2) Após esta etapa, é feita a remoção de marcas d'água e sombras da conta.

(3) Além disso, a conta é segmentada em partes.

(4) As partes segmentadas são passadas pelo mecanismo Tesseract OCR para obter o texto completo.

(5) Finalmente, usando Regex, obtemos todas as informações vitais, como valor total, data de compra e despesas por item.

deixe-me falar sobre uma imagem específica com textos – faturas e contas. Eles geralmente têm marcas d'água neles, a maioria da empresa que está emitindo as contas. Como mencionado anteriormente, essas marcas d'água são impedimentos no caminho da extração de texto eficiente. Muitas vezes, essas próprias marcas d'água contêm o texto.

Isso pode ser considerado ruído, pois o mecanismo do Tesseract reconhece textos de todos os tamanhos em uma linha. Assim como as marcas d'água, as sombras também inibem a precisão do mecanismo para extrair textos com eficiência. As sombras são removidas aumentando o contraste e o brilho da imagem.

Para imagens com adesivos ou marcas d'água, é realizado um processo de várias etapas. O processo envolve converter uma imagem em escala de cinza, aplicar transformações morfológicas, aplicar thresholding (pode ser uma inversão binária ou uma transformação otsu), extrair pixels mais escuros na região mais escura e, por último, colar os pixels mais escuros na região da marca d'água. Voltando ao processo de remoção de sombras.

Em primeiro lugar, a dilatação é aplicada à imagem em tons de cinza. Acima disso, um azul médio com um kernel apropriado suprime o texto. A saída desta etapa é uma imagem que contém porções de sombras e quaisquer outras descolorações presentes. Agora uma simples operação de diferença é calculada entre a imagem original e a imagem obtida. Finalmente, após aplicar o thresholding, obtemos uma imagem sem sombras.

Reconhecimento e Extração de Texto

Um modelo de Rede Neural Convolucional pode ser construído e treinado no texto impresso encontrado nas imagens. O modelo também pode ser usado para detectar texto de outras imagens semelhantes com a mesma fonte. Um mecanismo Tesseract OCR é usado para recuperar o texto das imagens que foram processadas usando os algoritmos de visão computacional.

Para o Reconhecimento Óptico de Caracteres, temos que realizar a localização do texto, seguida da segmentação dos caracteres e, em seguida, o reconhecimento dos caracteres. Todas essas etapas são realizadas pelo Tesseract OCR. O mecanismo Tesseract OCR prova ser altamente preciso quando usado em texto impresso em vez de texto manuscrito.

Obtendo informações relevantes

Falando especificamente sobre faturas, de todo o texto extraído, informações vitais como a data da compra, valor total, etc. podem ser prontamente obtidas usando várias expressões regulares. O valor total que está impresso na fatura pode ser extraído aplicando expressões regulares devido ao fato de que geralmente aparece no final da fatura. Muitas dessas informações úteis podem ser armazenadas de acordo com suas datas para que sejam facilmente acessíveis.

Precisão

A precisão para recuperação de texto pode ser definida como a razão entre o número correto de informações que são obtidas pelo Tesseract OCR e que já estão na fatura e o número acumulado de palavras realmente presentes na imagem textual. Maior precisão significa maior eficiência das técnicas de pré-processamento e a capacidade do Tesseract OCR de extrair informações.

Qual o proximo?

Se você estiver interessado em aprender mais sobre aprendizado de máquina, confira o PG Diploma in Machine Learning & AI do IIIT-B e upGrad, projetado para profissionais que trabalham e oferece mais de 450 horas de treinamento rigoroso, mais de 30 estudos de caso e atribuições, IIIT- B Status de ex-aluno, mais de 5 projetos práticos práticos e assistência de trabalho com as principais empresas.

Aprenda ML Course das melhores universidades do mundo. Ganhe Masters, Executive PGP ou Advanced Certificate Programs para acelerar sua carreira.

Lidere a revolução tecnológica orientada por IA

Inscreva-se no Advanced Certificate Program in Machine Learning & NLP