O Reconhecimento Óptico de Caracteres (OCR) é uma ferramenta indispensável para converter informações de PDFs e imagens escaneadas em conteúdo editável e pesquisável. Essa tecnologia automatiza processos e agiliza o gerenciamento de informações, sendo amplamente usada em tarefas como digitalização de contratos e processamento em larga escala.
Motivação
O estudo comparativo entre diferentes soluções de OCR e modelos de Vision AI foi motivado pela busca por melhorias em sistemas de extração de dados de documentos, visando principalmente a redução de latência e o aumento da precisão no processamento. A análise focou em avaliar alternativas que pudessem oferecer um melhor equilíbrio entre velocidade de processamento e qualidade na extração de informações.
Em um cenário onde a eficiência e precisão na extração automatizada de dados são cruciais, torna-se fundamental compreender as capacidades e limitações das diferentes tecnologias disponíveis. O benchmark buscou não apenas comparar o desempenho técnico das soluções, mas também identificar abordagens que possam oferecer resultados mais consistentes e confiáveis no processamento de documentos diversos.
Como o OCR funciona para extração de dados?
Soluções modernas seguem etapas bem estruturadas para garantir maior eficiência e precisão na identificação de caracteres. Essas etapas incluem:
Pré-processamento da imagem:
Antes da identificação, a imagem é aprimorada por meio de técnicas como redimensionamento, ajuste de contraste e brilho, binarização e remoção de ruídos. Esses ajustes preparam o arquivo para uma extração de dados mais precisa.Detecção de texto:
Modelos de aprendizado de máquina identificam as áreas que contêm caracteres, direcionando o foco do processamento para o conteúdo relevante.Análise de layout:
Uma vez identificadas as regiões de texto, o sistema analisa a estrutura do documento, organizando o conteúdo de forma lógica. Essa etapa é especialmente útil para documentos com layouts mais complexos.Pós-processamento:
Após o reconhecimento, é feito o refinamento para corrigir ruídos e possíveis erros. Além disso, modelos de linguagem avançados são usados para ajustar palavras e frases, melhorando a qualidade final do resultado.
Essas etapas, suportadas por técnicas como aprendizado profundo, tornam o processo mais robusto e adaptado a diferentes tipos de arquivos.
Técnicas de OCR
O processo de identificação de caracteres varia conforme o tipo do material analisado, já que formatos padronizados e layouts variados apresentam desafios diferentes. Para lidar com essas demandas, destacam-se duas estratégias principais:
Reconhecimento de padrões (Pattern Recognition)
Essa metodologia compara caracteres capturados com exemplos pré-definidos. Cada caractere identificado é confrontado com um banco de dados de padrões conhecidos, permitindo que o sistema determine com precisão o caractere mais semelhante, o que é ideal para materiais com fontes padronizadas, garantindo maior eficiência.
Análise de características (Feature Analysis)
A Análise de Características foca nas particularidades de cada caractere, como linhas, curvas e traços, o que é especialmente eficaz para lidar com estilos variados de escrita, incluindo manuscritos, oferecendo flexibilidade e alta precisão em contextos mais complexos.
Abordagens de OCR: Principais Tecnologias e Modelos
Tesseract
Esta ferramenta é amplamente reconhecida, criada inicialmente pela HP nos anos 1980 e mantida atualmente pela Google como um projeto open-source. Desde sua versão 4.0, passou a utilizar redes neurais LSTM (Long Short-Term Memory), trazendo avanços significativos no reconhecimento de padrões e sequências de caracteres.
Funcionamento do Tesseract

Vantagens:
Open-Source: Disponível gratuitamente e mantido por uma comunidade ativa.
Suporte multilíngue: Reconhece texto em uma ampla gama de idiomas.
Alta precisão: Ótimo para documentos padronizados, como contratos e materiais administrativos.
Limitações:
Requer imagens de alta qualidade (300 DPI) para melhores resultados.
Dificuldade em lidar com layouts complexos ou imagens de baixa resolução.
Necessidade de integrações externas, já que não possui interface gráfica própria.
Licença: Apache-2.0
docTR
O docTR é uma solução moderna desenvolvida sobre os frameworks TensorFlow 2 e PyTorch, projetada para oferecer eficiência e personalização em diferentes contextos. É especialmente eficaz em situações que envolvem rotação ou distorção de elementos visuais.
É possível fazer testes rápidos com:
https://huggingface.co/spaces/mindee/doctr
Detecção de Texto
Possui a capacidade de localizar elementos textuais em uma imagem, identificando palavras como sequências de caracteres sem interrupções. A extração de dados pode ser feita de diversas formas, como caixas delimitadoras, polígonos ou segmentação binária (onde os pixels são ou não pertencentes ao elemento textual). Isso torna a ferramenta eficiente mesmo para documentos rotacionados ou distorcidos.
As principais arquiteturas para incluem:
LinkNet (resnet18, resnet34, resnet50
DB (resnet50, mobilenet_v3_large)
Fast (tiny, small, base)
Os modelos base disponíveis são:
DBNet -“Real-time Scene Text Detection with Differentiable Binarization”
LinkNet — “LinkNet: Exploiting Encoder Representations for Efficient Semantic Segmentation”
FAST — “FAST: Faster Arbitrarily-Shaped Text Detector with Minimalist Kernel Representation”
Tabela de comparação dessas arquiteturas usando o PyTorch e o Tensor Flow:
2. Reconhecimento de Texto
Após localizar os elementos textuais, a próxima etapa consiste em transcrever a sequência de caracteres identificados na imagem. O DocTR oferece várias arquiteturas para esta tarefa, como:
CRNN (vgg16_bn, mobilenet_v3_small, mobilenet_v3_large)
SAR (resnet31)
MASTER
ViTSTR (small, base)
PARSeq
Os modelos base incluem:
SAR — “Show, Attend and Read: A Simple and Strong Baseline for Irregular Text Recognition”
MASTER — “MASTER: Multi-Aspect Non-local Network for Scene Text Recognition”
ViTSTR — “Vision Transformer for Fast and Efficient Scene Text Recognition”
PARSeq — “Scene Text Recognition with Permuted Autoregressive Sequence Models”
As tabelas comparativas dessas arquiteturas, tanto para detecção quanto para reconhecimento, podem ser visualizadas no seguinte link:
Parâmetros importantes
straighten_pages: Endireita a orientação das páginas antes do processamento.
assume_straight_pages: Ajusta caixas delimitadoras retas se o material já estiver corretamente orientado.
preserve_aspect_ratio: Mantém a proporção visual ao redimensionar.
symmetric_pad: Adiciona preenchimento simétrico às imagens ao preservar proporções.
export_as_straight_boxes: Gera caixas retas mesmo em casos de rotação ou inclinação.
resolve_lines: Agrupa palavras automaticamente em linhas (padrão: True).
resolve_blocks: Agrupa linhas em blocos automaticamente (padrão: False).
paragraph_break: Define o espaço mínimo relativo que separa parágrafos (padrão: 0,035).
disable_page_orientation: Desativa a correção automática da orientação das páginas.
disable_crop_orientation: Desativa o ajuste de orientação ao recortar.
Licença: Apache-2.0
EasyOCR
Essa é uma biblioteca de OCR em Python, baseada no framework PyTorch, projetada para ser simples e eficiente. Suporta aproximadamente 80 idiomas e oferece a possibilidade de treinar modelos personalizados para reconhecimento e detecção de texto.
Seu funcionamento combina diferentes técnicas de deep learning para garantir resultados precisos. A detecção utiliza o modelo CRAFT, enquanto o reconhecimento é realizado pelo CRNN, que une redes neurais convolucionais e recorrentes. Esse modelo é composto por três etapas principais:
Extração de características: Redes como ResNet e VGG capturam detalhes visuais do texto na imagem.
Rotulagem de sequência: Usando LSTM, processa sequências para manter o contexto e gerar probabilidades para cada caractere.
Decodificação: A função CTC transforma essas probabilidades em texto legível, lidando com alinhamento e repetição de caracteres.
Com licença MIT, o EasyOCR é uma solução acessível e adaptável para diversos projetos de extração de dados.
Vantagens:
Simples implementação;
Suporte a múltiplas linguagens;
Open-Source;
Possibilita integração com outros modelos de detecção e reconhecimento.
Possui suporte para português
Limitações:
Menor precisão em layouts complexos ou em documentos manuscritos.
Licença: Apache-2.0
Keras-OCR
Essa é uma biblioteca de OCR baseada em deep learning e construída sobre Keras e TensorFlow. Sua abordagem permite a extração de texto em materiais com layouts complexos e a personalização para tarefas específicas.
Vantagens
Eficiente em documentos com layouts não convencionais, como tabelas e gráficos.
Suporte para Transfer Learning, que permite reutilizar modelos pré-treinados para diferentes aplicações de extração de dados.
Limitações:
A customização pode ser complexa, exigindo maior conhecimento técnico.
Suporte limitado para idiomas fora do padrão.
Licença: Apache-2.0
PaddleOCR
O PaddleOCR, desenvolvido sobre a plataforma PaddlePaddle, uma plataforma de aprendizado profundo, projetada para ser altamente eficiente e flexível, suportando desde a detecção de texto em imagens até o reconhecimento e recuperação de informações textuais.
Vantagens
Excelente acurácia em projetos que envolvem tabelas e layouts estruturados.
Fácil de usar.
Limitações:
Integrações limitadas com ferramentas de terceiros.
Licença: Apache-2.0
Modelos de Linguagem Visual (Vision Languages Models)
Os Modelos de Linguagem Visual são ferramentas avançadas que integram aprendizado a partir de imagens e textos, permitindo a realização de tarefas como responder perguntas baseadas em elementos visuais e gerar legendas para imagens. Eles unem técnicas de visão computacional e processamento de linguagem natural, proporcionando uma análise abrangente e contextual de dados visuais e textuais.
Experimentação na Extração de Dados: Testes e Avaliações
Para os testes eu estou usando uma base com documentos reais.
Para padronizar os testes, transformei os arquivos .pdf para .png, permitindo que os modelos trabalhassem exclusivamente com imagens. Optei por testar primeiro os modelos de vision, considerando a previsão de mudanças na API. Para isso, criei uma classe básica que possibilita as chamadas pelo LiteLLM e formato o prompt de imagem, além de uma estrutura base para testes que permite processar todos os documentos e salvar os resultados em uma tabela.
Até o momento, realizei testes com os modelos GPT-4o, GPT-4o-Mini, gemini-1.5-flash-001 e Gemini-1.5-flash-002. Pretendo ainda executar testes com o Pixtral-12B-2409, para o qual já tenho o necessário configurado, e com o Llama-3–2–90b-vision-instruct-maas, que requer apenas ajuste da URL para o Google. Para esses testes, forneci os campos do schema do documento e suas descrições como guia para o modelo (sem solicitar retorno em JSON). Essa abordagem facilitaria a avaliação posterior, já que a base de dados possuía documentos com dados extraídos manualmente.
Na avaliação dos dados extraídos, analisei por códigos ou campos faltantes na extração e, para verificar a coerência com os valores da base, utilizei um modelo para revisão de inconsistências, incluindo os motivos quando encontrados. Embora essa metodologia tenha funcionado bem na maioria dos casos, foi necessária uma revisão manual das respostas, pois o modelo falhava em algumas vezes apontando valores incorretos ou dados que estavam corretos com excessivamente variadas.
Resultados
Foram 19 dados de comprovantes de pagamento.
Gráficos de resultantes
Segunda Experimentação na Extração de Dados
Resultados com modelos de Vision
Tabela de Métricas e Campos:
Gráficos de resultados:
Tempo médio e Percentual de Acertos
Eficiência (porcentagem/tempo)
Resultados com Soluções de OCR
Tabela de Métricas e Campos:
Gráficos de Resultados
Tempo médio e Percentual de Acertos
Eficiência (porcentagem/tempo)
Conclusões sobre Testes com OCR e IA
A análise comparativa entre diferentes soluções de OCR e modelos de Vision revelou insights importantes sobre o desempenho e limitações de cada abordagem. O Pytessercact destacou-se em termos de eficiência computacional, apresentando o menor tempo médio de processamento entre todas as soluções testadas. No contexto dos modelos de Vision, o Gemini-1.5-flash-002 demonstrou superioridade geral, seguido de perto pelo GPT-4 Mini. No entanto, foram identificadas algumas limitações no GPT-4-Vision, principalmente relacionadas à extração de certas imagens, possivelmente devido a filtros de conteúdo, que podem ser contornadas através de ajustes no prompt ou configurações dos filtros.
Um ponto crítico comum a todas as soluções foi a dificuldade na extração precisa de códigos de barras, manifestando-se através de erros como troca de números, contagem incorreta de zeros e omissão de dígitos. Neste aspecto específico, o Gemini apresentou um desempenho superior ao GPT-4-Vision. A análise também evidenciou que a abordagem de extração direta de campos pode não ser a mais adequada, pois alguns problemas identificados, especialmente no campo “banco_pagador”, estavam mais relacionados à estruturação dos dados do que à extração em si. Foi observada a necessidade de refinamento dos schemas para reduzir ambiguidades e melhorar a estruturação das informações extraídas.
Entre as versões do Gemini, o modelo 002 demonstrou maior consistência e eficácia, superando o modelo 001 tanto na extração da maioria dos campos quanto na coerência geral dos resultados.
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 hyperautomaçã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.
A autora deste texto foi a Mirela Domiciano, AI Engineer na Tech4Humans.
Links Relevantes
Para quem deseja se aprofundar nas tecnologias de OCR e explorar outras práticas e ferramentas, seguem alguns links úteis:
Base de OCR: Artigo de referência sobre OCR e suas aplicações.
What is OCR?: Explicação detalhada do funcionamento da tecnologia de OCR.
Best OCR Models — Roboflow: Comparação entre os melhores modelos de OCR disponíveis no mercado.
Doctr — Medium: Guia e aplicação do docTR para extração de dados.
Tesseract — Medium: Análise do Tesseract como ferramenta open-source de OCR.
GitHub DocTR: Repositório do docTR com documentações e exemplos de uso.
Prática DocTR: Implementações práticas para extração com docTR.
Pytesseract vs EasyOCR: Comparativo entre as ferramentas de OCR para diversas aplicações.
Documentação PaddleOCR: Documentação oficial do PaddleOCR e suas funcionalidades avançadas.
Vídeo Tutorial OCR — Introdução ao OCR e suas práticas avançadas.
Palavras-chave:
extração de dados, OCR, reconhecimento óptico de caracteres, modelos de OCR, processamento de documentos, visão computacional, precisão na extração de dados, testes de OCR, Tesseract OCR, docTR, EasyOCR, Keras OCR, PaddleOCR, modelos de IA.














