O problema

Extração manual de dados de documentos — notas fiscais, recibos, formulários — ainda é um dos gargalos operacionais mais comuns em empresas de médio e grande porte: lento, propenso a erro humano e caro de escalar.

Este projeto é um protótipo funcional (não um projeto conceitual) que resolve isso ponta a ponta: captura do documento, pré-processamento de imagem, OCR, extração estruturada e saída pronta para BI ou ERP.

// ARCHITECTURE

Arquitetura

Cada etapa é isolada e substituível — em especial o motor de OCR, que é uma interface plugável: troca entre processamento local e APIs de visão em nuvem é uma linha de código, sem tocar no resto do pipeline.

PDF / Imagem Pré-processamento motor plugável Tesseract (local) Azure Doc. Intelligence Google Document AI Parser estruturado JSON/CSV BI/ERP

Pré-processamento

OpenCV: remoção de ruído + limiarização Otsu, preservando espaçamento de colunas e números para o OCR.

OCR plugável

Interface comum (OCREngine): Tesseract local por padrão, com adaptadores prontos para Azure AI Document Intelligence e Google Document AI em produção.

Extração estruturada

Heurísticas de parsing extraem fornecedor, data, número do documento, itens de linha e valor total do texto bruto.

Saída pronta para uso

JSON estruturado por documento + CSV agregado, prontos para alimentar um BI, ERP ou banco de dados.

// RESULTS

Resultado no lote de teste

Medido localmente com 8 recibos sintéticos, rodando em CPU única, sem GPU e sem nenhuma API paga:

100% acerto em fornecedor, data, nº do documento e total
100% reconciliação item a item com o total extraído
~7.100 documentos/hora em CPU única
~57k documentos/hora com 8 workers em paralelo

Os números acima são de um benchmark local sobre este protótipo de demonstração — não uma carga de produção real. Ainda assim, já superam com folga a marca de 1.000 documentos/hora mesmo sem paralelização, o que mostra que a arquitetura escala horizontalmente sem depender de APIs pagas.

Entrada

Recibo de exemplo

Saída estruturada

{
  "vendor": "Loja Casa & Cia",
  "date": "06/10/2026",
  "invoice_number": "378585",
  "items": [
    { "description": "Acucar 1kg", "qty": 1, "unit_price": 5.8 },
    { "description": "Papel Higienico", "qty": 2, "unit_price": 12.9 },
    { "description": "Oleo de Soja", "qty": 3, "unit_price": 7.3 },
    { "description": "Sabonete", "qty": 2, "unit_price": 3.2 }
  ],
  "total": 59.9
}

Tecnologias

PythonOpenCVTesseract OCRPyMuPDF Azure Document Intelligence*Google Document AI*Regex Parsing

* adaptador pronto na arquitetura, ativado com uma chave de API

Tem um problema parecido de dados presos em documentos?