Por Mirela Domiciano, desenvolvedora de IA na Tech4Humans.
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:
Principais Técnicas
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.

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.
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.
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.

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.

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.
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:
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.
Por 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.
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.
Excelente trabalho! Obrigado pela partilha.