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:
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.
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.
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:
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.
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).
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:
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.
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.
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.
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 podem ser prejudiciais, causando a segmentação incorreta da linha e a reorganização inadequada do texto. Portanto, é importante endireitá-las antes do processamento.
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.
É 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.
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.
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.
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 (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:
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:
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.
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.
E acesse, em primeira mão, nossos principais conteúdos diretamente do seu e-mail.