Técnicas de Pré Processamento de Imagens para OCR

Mirela Domiciano
June 4, 2025

Este estudo tem como objetivo principal investigar e avaliar diversas técnicas de pré-processamento de imagens e seu impacto direto na latência e precisão da extração de dados de documentos. Através desta análise, buscamos compreender como cada técnica influencia o processo de reconhecimento óptico de caracteres (OCR) e quais métodos ou combinações oferecem o melhor desempenho em termos de velocidade e exatidão na obtenção de informações relevantes.

O estudo foi dividido em duas etapas:

  1. Principais Técnicas
  2. Experimentação

Principais Técnicas

A qualidade da imagem está diretamente relacionada à presença ou ausência de ruído, distorções, alinhamento, resolução e contraste entre o texto e o fundo. A seguir, apresentamos algumas técnicas aplicadas para melhorar a imagem em soluções de extração de texto de documentos.

Diagrama circular: 7 etapas do pré-processamento de imagem para OCR, incluindo normalização e remoção de ruído.
7 Passos para realizar o pré-processamento de imagem para OCR. Fonte: nextgeninvent.com

Normalization

Este processo altera o intervalo dos valores de intensidade dos pixels, melhorando a qualidade da imagem para que as informações possam ser extraídas de maneira mais precisa. É especialmente útil em imagens que apresentam variações de iluminação, contraste ou ruído, convertendo os valores para um intervalo específico, geralmente de 0 a 1 ou 0 a 255. Embora a normalização seja mais utilizada no treinamento de modelos, estudos sobre OCR indicam que a binarização é mais relevante. No entanto, a normalização pode auxiliar a binarização a ser mais assertiva, pois melhora o contraste global da imagem, ajuda a lidar com variações de iluminação e torna o texto mais distinto do fundo.

Resolution

A resolução da imagem pode influenciar tanto o tempo de processamento quanto a precisão do resultado. Resoluções maiores podem aumentar significativamente o tempo de processamento, enquanto resoluções menores podem prejudicar a precisão da solução. Para garantir a precisão do OCR, uma resolução de 300 DPI geralmente é recomendada. No entanto, é interessante utilizar a fonte do texto para determinar a resolução mínima adequada, seguindo um padrão estimado:

  • Fonte > 8, 300 DPI
  • Fonte <=8, 400–600 DPI, acima de 600 DPI já prejudica o tempo de processamento.

Image Binarization

Este processo converte imagens coloridas em imagens preto e branco, e a maioria das soluções de OCR já possui essa funcionalidade integrada. Uma técnica bastante utilizada é a binarização adaptativa, que usa os pixels vizinhos como base para realizar essa conversão. Diferentemente da normalização, a binarização converte os pixels para um valor específico, geralmente 0 e 1, ou 0 e 255.

Contrast and Sharpness

O aumento do contraste local entre o texto e o fundo facilita a distinção do caractere em relação ao restante da imagem. Além disso, caracteres com bordas nítidas possibilitam uma segmentação mais fácil. A utilização de contraste local é mais benéfica que o contraste global, visto que diferentes partes da imagem podem ter contrastes distintos. Uma técnica usada para isso é o Contrast Limited Adaptive Histogram Equalization (CLAHE).

Image Geometric Transformations

A forma como é feita a captura, como camêra ou digitalização, tem forte relação com os diferentes tipos de desalinhamentos de uma imagem. Podem ocorrer problemas com a orientação da imagem, inclinações e angulações, perspectiva de profundidade, entre outros. Algumas transformações geométricas podem auxiliar na correção desses problemas:

Orientação

Essa etapa de ajuste de orientação já está embutida na maioria das soluções de OCR, e alguns Vision Language Models também não parecem ter problemas com imagens rotacionadas. Porém, para alguns casos, é uma etapa muito importante.

Nível e Inclinação

Na captura de imagens, seja por digitalização ou com a utilização de câmeras, podem ocorrer distorções. Por isso, é importante detectar e ajustar o ângulo de inclinação para que o texto não fique inclinado.

Documento antigo com ruído visual e baixa qualidade de digitalização.
Figura 2: Exemplo de imagem de documento com distorção antes e após pré-processamento. Fonte: tesseract-ocr.github.io

Efeito Keystone/Distorção Trapezoidal

Na captura com câmeras, é provável que a imagem não fique paralela ao objeto, o que gera o Efeito Keystone. Nesse efeito, a página se assemelha a um trapézio em vez de um retângulo. Para corrigir isso, primeiro detecta-se o trapézio, transforma-o em um retângulo e, em seguida, removem-se as bordas que não possuem informação.

Documento com distorção de perspectiva (efeito keystone), contornado em vermelho.
Exemplo de efeito keystone em um documento antes da correção. Fonte: recogniform.net

Perspectiva de Profundidade

Esse problema ocorre mais frequentemente com imagens capturadas por câmeras, onde o tamanho da fonte do documento varia da parte superior para a inferior, tornando o texto do topo mais difícil de reconhecer. Corrigir essa distorção e ajustar o tamanho da fonte melhora a precisão do reconhecimento.

Documento com distorção de perspectiva de profundidade, texto superior menor e menos nítido.
Exemplo de distorção de perspectiva de profundidade em um documento. Fonte: medium.com/technovators

Linhas Curvadas

Linhas curvadas podem ser prejudiciais, causando a segmentação incorreta da linha e a reorganização inadequada do texto. Portanto, é importante endireitá-las antes do processamento.

 Texto com linhas curvadas, prejudicando a legibilidade para OCR.
Exemplo de texto com linhas curvadas antes do endireitamento. Fonte: researchgate.net

Noise Removal

A maior parte dos ruídos são tratados nas etapas de binarização, ajustes de contraste e nitidez. No entanto, alguns tipos necessitam ser tratados de maneira mais específica.

Efeito de Blur

  • Median Blur: Funciona bem para remover pequenos ruídos (pontos) ao longo de documentos digitalizados. Utiliza a mediana dos valores dos pixels vizinhos para definir o valor do pixel central.
  • Bilateral Filtering: É eficiente para remover ruídos, pois não altera as bordas, como ocorre no Gaussian Blur. O filtro bilateral utiliza um filtro gaussiano baseado na diferença de intensidade, o que garante que apenas os pixels próximos e semelhantes sejam considerados para o desfoque, preservando assim as bordas. No entanto, é um processo mais lento devido à sua complexidade computacional.

Image Despeckling

É bastante usado em OCR para remover ruídos da imagem e é uma adaptação do filtro bilateral. Essa técnica é usada para remover granulações na imagem, mas pode remover vírgulas e apóstrofos se não for utilizada corretamente. Também não consegue remover as granulações quando estão muito próximas ao texto, mas não afeta as bordas do texto.

Comparativo lado a lado: texto com ruído (granulação) e texto após remoção de ruído (despeckling).
Demonstração do efeito da técnica de "despeckling" para remoção de ruído. Fonte: https://www.google.com/search?q=largeformatscanners.com

Manipulação do Blur Original da Imagem

Apesar de existirem técnicas que utilizam o desfoque (“blur”) para melhorar a imagem, também há ruídos causados pelo desfoque original e pela falta de nitidez, que prejudicam o OCR. Aplicar técnicas para melhorar a nitidez ou as bordas auxilia na resolução desse problema.

ISO Noise Correction

O nível ISO é a sensibilidade do sensor de imagem da câmera à luz. O ganho de ISO, que atua como um amplificador para melhorar a qualidade da imagem em condições de pouca luz, também acaba amplificando o ruído, o que pode afetar a etapa de binarização e, consequentemente, reduzir a qualidade do OCR. Ao suavizar o fundo da imagem, é possível reduzir o ruído proveniente do ISO e obter melhores resultados no OCR.

Auto Encoders

Autoencoders são redes neurais utilizadas para melhorar imagens, como na remoção de ruídos. Eles possuem um codificador que comprime a imagem e um decodificador que a reconstrói, aprendendo assim as características mais importantes da imagem original.

OpenCV

OpenCV (Open Source Computer Vision Library) é uma biblioteca de processamento de imagens de código aberto amplamente utilizada, com associações para diversas linguagens de programação, como C++, C, Python e Java. Projetada para eficiência computacional, o OpenCV se destaca por seu forte foco em aplicações em tempo real, tornando-a uma ferramenta essencial em áreas como visão computacional, robótica, análise de vídeo, reconhecimento facial, e muitas outras. Ela pode ser usada para aplicar grande parte das técnicas apresentadas anteriormente. A biblioteca oferece um vasto conjunto de funções e algoritmos para diversas tarefas, incluindo:

  • Processamento de Imagem: Filtros, transformações geométricas, segmentação, detecção de bordas, análise de histogramas, e correção de cores.
  • Detecção de Objetos: Implementação de algoritmos como Haar cascades, HOG (Histogram of Oriented Gradients), YOLO (You Only Look Once) e SSD (Single Shot Detector) para identificar objetos específicos em imagens e vídeos.
  • Reconhecimento Facial: Detecção e reconhecimento de faces em imagens e vídeos.
  • Aprendizado de Máquina: Integração com bibliotecas de aprendizado de máquina como TensorFlow e PyTorch, permitindo o desenvolvimento de aplicações de visão computacional baseadas em aprendizado profundo.
  • Calibração de Câmeras: Estimação dos parâmetros intrínsecos e extrínsecos de câmeras.

Experimentação

O principal objetivo desta experimentação foi avaliar o impacto de diferentes técnicas de pré-processamento de imagens na latência, tempo de execução, porcentagem de acerto e eficiência do processo de extração de dados. A busca é identificar quais técnicas, ou combinações destas, proporcionam um equilíbrio ideal entre rapidez e precisão na extração de informações a partir de imagens de documentos. Para isso, foram utilizadas 5 imagens, as quais foram pré-processadas individualmente com cada técnica e também com combinações delas:

  • Resize
  • Grayscale
  • Correção de Perspectiva
  • Normalização
  • CLAHE (Ajuste de Contraste)
  • Remoção de Ruído
  • Binarização

Métricas de Desempenho:

  • Latência: Tempo total necessário para aplicar a técnica de pré-processamento à imagem.
  • Tempo de Execução: Parte do tempo de latência especificamente dedicada à execução da técnica.
  • Correspondências (matches): Quantidade de campos extraídos corretamente após a aplicação do OCR.
  • Porcentagem de Acerto: Calculada como a razão entre os campos correspondidos e o total de campos, multiplicada por 100. Representa a precisão da extração.
  • Eficiência: Medida que relaciona a precisão com o tempo de processamento total (soma do tempo de execução e da latência). Quanto maior a eficiência, melhor o desempenho global da técnica em termos de precisão e rapidez.

Os resultados foram:

Gráfico de barras: Top 10 técnicas isoladas mais eficientes para OCR, como perspective e normalize.
Top 10 Técnicas Isoladas Mais Eficientes em termos de eficiência (Porcentagem de Acerto / (Tempo de Execução + Latência)). Fonte: Elaborado pela autora.
Gráfico de barras: Top 10 combinações de técnicas mais eficientes para OCR.
Top 10 Combinações de Técnicas Mais Eficientes em termos de eficiência (Porcentagem de Acerto / (Tempo de Execução + Latência)). Fonte: Elaborado pela autora.

Os resultados podem apresentar um certo viés, visto que houve dificuldade na forma de analisar a base de teste. A técnica de correção de perspectiva (“perspective”) é um exemplo que pode ter introduzido viés, pois ela não é aplicada em todas as imagens, mas apenas naquelas em que uma margem da imagem é detectada. Essa condição não foi mapeada inicialmente durante a geração das imagens pré-processadas. Portanto, para um bom uso dessas ferramentas, é necessário realizar testes para constatar quais técnicas são adequadas para cada caso de uso.

Sobre a Tech4Humans

Somos uma startup inovadora com duas áreas de negócios: SaaS e AIaaS. No SaaS, oferecemos soluções avançadas para a hiperautomação de atendimento, facilitando a gestão, automação e acompanhamento de solicitações. No AIaaS, nossa plataforma Tech4.ai capacita empresas a construir e implementar soluções de inteligência artificial com tecnologias open source, garantindo agilidade, governança e alto desempenho.

Referências

Leia também por aqui:
Mirela Domiciano
Desenvolvedora de IA na Tech4Humans e graduanda em Engenharia de Computação na UNIFEI. Atuando com foco em pesquisa, desenvolvimento e implementação de soluções com Inteligência Artificial Generativa, abrangendo tanto a criação de produtos quanto a exploração de novas tecnologias. Possui experiência nas áreas de Visão Computacional e Processamento de Imagem e conhecimento em desenvolvimento full-stack.