Pitch: Crow Docs — OCR de alta precisão para documentos brasileiros, 100% offline e gratuito
Fala pessoal! Sou o Caio e venho compartilhar uma atualização grande do Crow Docs — uma PWA gratuita e offline-first para ferramentas de PDF e documentos.
O problema que eu queria resolver: fazer OCR de qualidade em documentos do setor público brasileiro (aqueles PDFs escaneados de prefeitura, cartório, tribunal) direto no navegador, sem enviar nada para servidor nenhum.
Implementei um sistema de 4 fases que transforma o pipeline de OCR da ferramenta:
Fase 1 — Pré-processamento com OpenCV.js
O OpenCV.js (~9.9 MB) é carregado sob demanda apenas quando o usuário ativa o modo avançado. O pipeline aplica:
- Conversão para escala de cinza
- Filtro bilateral (denoise preservando bordas)
- Correção de inclinação (deskew via minAreaRect)
- CLAHE para equalização de contraste adaptativa
- Binarização adaptativa com threshold proporcional
Tudo isso antes do texto sequer chegar no Tesseract. A diferença em documentos escaneados tortos ou com baixo contraste é brutal.
Fase 2 — Tesseract otimizado para PT-BR
- Modelos
tessdata_best(LSTM de alta precisão) para português (7.8 MB) e inglês (15 MB) - PSM configurável por painel (auto, coluna, bloco, texto esparso)
- Normalizador pós-OCR para texto brasileiro: corrige padrões de CPF, CNPJ, CEP, datas (dd/mm/aaaa), valores monetários (R$) e 18 termos administrativos comuns (Prefeitura, Município, Secretaria...)
Fase 3 — Extração estruturada de dados
Uma ferramenta dedicada que recebe imagens ou PDFs e extrai automaticamente:
- CPF, CNPJ, RG
- CEP, datas, telefones
- E-mails, valores em R$, números de protocolo
Tudo com validação (contagem de dígitos, range de datas) e deduplicação. Exporta para JSON, CSV ou copia para a área de transferência.
Fase 4 — Análise de layout heurística
A parte mais recente. Quando ativada, a ferramenta:
- Detecta tabelas usando morfologia OpenCV (detecção de linhas horizontais e verticais)
- Detecta zonas de texto via perfil de projeção horizontal (conta pixels escuros por linha)
- Ordena as regiões na ordem de leitura (cima→baixo, esquerda→direita)
- Faz OCR independente em cada região
- Gera Markdown estruturado — tabelas viram tabelas Markdown com
|e---, texto vira parágrafos
O resultado é um documento Markdown que preserva a estrutura do original, exportável com um clique.
Stack técnica
- Zero backend — tudo roda no navegador (Web Workers)
- PWA offline-first — Service Worker com cache versionado, funciona sem internet após primeiro acesso
- Libs pesadas sob demanda — OpenCV.js e tessdata_best só baixam quando o usuário realmente precisa
- Fallbacks em cascata — se OpenCV falha, usa preprocessamento normal; se modelo best não existe para um idioma, usa standard
Links
- Site: crowdocs.com.br
- GitHub: o projeto é open source
O Crow Docs tem também outras ferramentas: juntar/dividir PDF, comprimir imagens, converter formatos, PDF para áudio, marca d'água, e mais — tudo no navegador.
Se alguém trabalha com documentos do setor público e sofre com OCR de baixa qualidade, testa e me diz o que achou. Feedback é bem-vindo!
Fonte: https://crowdocs.com.br