Modelos OCR: Tesseract, PaddleOCR-VL ou um VLM de documentos?
Tradução automática
Este artigo foi traduzido automaticamente a partir da versão original em inglês.
Escolha um sistema de reconhecimento ótico de caracteres (OCR) com base no documento e no resultado necessário. Páginas impressas limpas, formulários, tabelas, recibos, artigos de investigação, capturas de ecrã e manuscritos colocam problemas diferentes. Decida primeiro se precisa de texto bruto, disposição da página, campos estruturados ou respostas fundamentadas no documento.
Num PDF, verifique primeiro se o texto incorporado e a disposição da página são utilizáveis. Extraia-os diretamente se forem adequados à tarefa. Teste OCR clássico como o Tesseract para digitalizações limpas de páginas impressas. Teste o PaddleOCR-VL 1.6 para processar a disposição da página, texto, tabelas e fórmulas na sua própria infraestrutura. Teste o dots.mocr para gráficos estruturados. Um modelo geral de visão-linguagem (VLM) é outro candidato quando a tarefa também exige responder a perguntas visuais.
Compare os candidatos segundo os seus tipos de documentos, campos necessários, controlos de dados, latência e custo.
Tabela de decisão
| Problema do documento | Ponto de partida | Motivo |
|---|---|---|
| PDF com texto incorporado utilizável | Extração do texto e da disposição da página do PDF | Evita reconhecer texto que já está armazenado no ficheiro. |
| Digitalizações impressas limpas em grande volume | Pipeline de OCR clássico | Barato, previsível, adequado para CPU e fácil de processar em lotes. |
| PDFs complexos com tabelas, fórmulas e figuras | PaddleOCR-VL 1.6 ou um VLM de documentos alojado | Teste um parser especializado contra um modelo geral nas mesmas páginas. |
| Extração de campos estruturados | VLM com structured output ou um parser de domínio | O esquema do resultado é tão importante como o reconhecimento do texto. |
| Documentos sensíveis do ponto de vista dos dados | OCR alojado na própria infraestrutura ou VLM aberto | Mantém os documentos dentro do seu ambiente. |
| Reconstrução da disposição da página | PaddleOCR-VL, dots.mocr ou outro parser de disposição da página | O texto OCR simples perde a ordem de leitura, tabelas, legendas e secções. |
| Processos de revisão humana | OCR com confiança e proveniência dos fragmentos | Os revisores precisam de rastreabilidade da página, caixa, campo e fonte. |
OCR e compreensão de documentos
O OCR tradicional extrai caracteres. A análise de documentos com AI também precisa de disposição da página e significado. Células de tabelas, caixas de seleção, assinaturas, legendas e notas de rodapé podem conter texto, mas reduzir esses elementos a uma única cadeia de texto destrói as relações entre eles. Essa perda compromete depois a extração de campos e a resposta a perguntas.
Os modelos de visão-linguagem podem extrair campos e responder a perguntas sobre diagramas ou tabelas. Os seus resultados continuam a precisar de verificação na página. PaddleOCR-VL 1.6 combina análise da disposição da página com um componente VLM de 0.9B, enquanto o dots.mocr também analisa gráficos estruturados. Compare estes pipelines com OCR clássico nas páginas e nos campos de que precisa; um modelo maior não justifica substituir um extrator que funciona.
Classes de modelos e ferramentas
| Classe | Ponto forte | Limitação | Use-o quando |
|---|---|---|---|
| OCR ao estilo do Tesseract | Custo, transparência e execução sem ligação à rede | Fraco em manuscritos, disposição da página, digitalizações ruidosas e documentos complexos | A entrada é texto impresso limpo e a tarefa é extração de texto. |
| VLM de documentos na nuvem | Lida com PDFs, gráficos, tabelas e contexto multimodal complexos | Custo, latência, localização dos dados e dependência de API | Precisa de extração de elevada qualidade ou resposta a perguntas sobre documentos variados. |
| PaddleOCR-VL 1.6 | Texto, tabelas, fórmulas, gráficos, disposição da página e 109 idiomas | O pipeline completo é mais complexo do que apenas o seu componente VLM | Precisa de um parser de documentos alojado na própria infraestrutura e mantido. |
| dots.mocr | Texto de documentos e análise de gráficos estruturados | Recursos para o serving de um modelo de 3B e qualidade do resultado dependente da tarefa | Os gráficos, figuras ou a reconstrução orientada a SVG são importantes. |
| VLM geral aberto | Controlo dos dados, personalização e raciocínio visual mais abrangente | Complexidade de serving e variabilidade entre modelos | Precisa de alojamento próprio para além da análise de documentos. |
| Parser de disposição da página | Caixas, ordem de leitura e estrutura do documento | Normalmente requer orquestração com OCR ou VLM | A fidelidade da disposição da página é importante. |
| Pipeline híbrido | Controlo de custos e encaminhamento | Mais engenharia | Pode encaminhar páginas simples para OCR barato e páginas difíceis para VLMs. |
Um pequeno teste da ordem de leitura
A extração de texto pode recuperar todas as palavras e, ainda assim, perder a ordem das linhas de uma tabela. Este PDF sintético contém duas colunas:
| Item | Price |
|---|---|
| Cable | 10 |
| Adapter | 25 |
As associações necessárias são Cable → 10 e Adapter → 25. O código escreve primeiro a coluna da esquerda e depois a da direita. Compare a extração predefinida do PyMuPDF com a extração ordenada por posição na mesma página. Guarde este código como reading_order.py e execute-o com uv run --with pymupdf==2.0 python reading_order.py; cria o PDF em memória e não precisa de um ficheiro de entrada.
import pymupdf
with pymupdf.open() as document:
page = document.new_page(width=400, height=220)
for x, values in [(40, ["Item", "Cable", "Adapter"]), (240, ["Price", "10", "25"])]:
for y, value in zip([50, 80, 110], values):
page.insert_text((x, y), value)
stored = page.get_text().split()
ordered = page.get_text(sort=True).split()
assert stored == ["Item", "Cable", "Adapter", "Price", "10", "25"]
assert ordered == ["Item", "Price", "Cable", "10", "Adapter", "25"]
print("stored:", " ".join(stored))
print("sorted:", " ".join(ordered))
Resultado observado com PyMuPDF 2.0:
stored: Item Cable Adapter Price 10 25
sorted: Item Price Cable 10 Adapter 25
O resultado predefinido preserva o texto, mas agrupa-o por coluna. A ordenação repõe a ordem das linhas neste exemplo, pelo que o OCR é desnecessário. Este teste verifica um comportamento de extração numa página criada para o exemplo; não compara a precisão dos modelos OCR. O PyMuPDF documenta o problema da ordem de leitura e a opção de ordenação. As células com várias linhas, as células unidas e as tabelas múltiplas precisam de testes separados. Para um documento real, defina os campos e as relações esperados antes de comparar um extrator de texto, um motor OCR e um VLM de documentos.
Arquitetura prática
Para análise de documentos com AI em produção, não enviaria todas as páginas para o modelo mais caro por defeito.
- Inspecione o ficheiro e registe metadados ao nível da página. Nos PDFs, verifique se o texto existente e a ordem de leitura são adequados à tarefa.
- Extraia diretamente o texto incorporado utilizável. O PyMuPDF recomenda verificar se é necessário OCR antes de o executar numa página.
- Encaminhe digitalizações impressas limpas sem texto utilizável para OCR clássico.
- Encaminhe tabelas, páginas com baixa confiança, regiões manuscritas e disposições complexas da página para um VLM ou parser especializado.
- Exija structured output para os campos e valide depois os valores na página. Um esquema pode impor a estrutura dos campos sem provar que um valor aparece no documento.
- Armazene fragmentos de origem, números de página, caixas delimitadoras quando disponíveis e a versão do modelo.
- Faça amostragem para revisão humana por confiança, tipo de documento e impacto a jusante.
Adicione encaminhamento quando os testes mostrarem que diferentes tipos de página precisam de métodos diferentes. Verifique se o encaminhador não encaminha uma página difícil para um percurso que perca campos necessários.
Lista de verificação de avaliação
Não avalie o OCR apenas com a taxa de erro de caracteres. Para análise de documentos com AI, acompanhe:
- precisão ao nível dos campos extraídos
- preservação das células das tabelas
- precisão da ordem de leitura
- cobertura das páginas
- taxa de campos sem confirmação no documento
- suporte por citações ou fragmentos para as afirmações extraídas
- taxa de correções humanas
- custo por página e latência por documento
Leitura adicional
- OCR em 2026 aborda pipelines, VLMs, disposição da página, avaliação e custos.
- Métricas de avaliação de RAG é relevante quando o OCR alimenta um sistema de recuperação.