Text Recognition Model for Portuguese (pt-BR) & English — RTen / Ocrs

Este modelo de reconhecimento de texto óptico (OCR) foi desenvolvido e ajustado via fine-tuning especificamente para uso nativo no PdfCraft (uma aplicação desktop de alta fidelidade para edição e manipulação de PDFs em pure Rust, padrão Acrobat Pro).

O modelo estende os modelos originais do projeto ocrs (desenvolvido por Robert Knight) e é executado diretamente sobre o runtime de inferência ultraleve em Rust RTen.


🎯 Aplicação Principal: PdfCraft

O PdfCraft possui um pipeline nativo de Scan & OCR ▸ Reconhecer texto (pdfcraft-ocr), onde:

  1. Uma página renderizada tem suas caixas de texto detectadas pelo text-detection.rten.
  2. As linhas de texto são recortadas em escala de cinza e enviadas para este modelo (text-recognition.rten).
  3. O modelo transcreve os caracteres com suporte completo à língua portuguesa e gera a camada de texto pesquisável invisível (Searchable Image / Exact em fonte Helvetica WinAnsi).

🧠 Arquitetura do Modelo

O modelo segue a consagrada arquitetura CRNN (Convolutional Recurrent Neural Network):

  • Entrada: Tensor [1, 1, 64, W] (Imagem monocromática de linha de texto, altura normalizada em 64 pixels, largura dinâmica).
  • Backbone Convolucional (CNN): Extração de características visuais e redução espacial (fator de redução 4x na largura).
  • Camada Recorrente (RNN): Bidirectional GRU de 2 camadas com 256 unidades ocultas (total de 512 saídas por passo temporal).
  • Decodificador: Projeção Linear 512 ➔ 135 classes com LogSoftmax decodificado via CTC Greedy Search.
  • Tamanho do Arquivo: Apenas ~9,4 MB (inferência extremamente rápida em CPU).

🔤 Alfabeto Suportado (134 caracteres)

Diferente do modelo padrão original (que lia apenas ASCII sem acentos), este modelo cobre todo o conjunto de caracteres da língua portuguesa:

 0123456789!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~€ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzáàâãéêíóôõúüçÁÀÂÃÉÊÍÓÔÕÚÜÇ«»“”‘’–—°§ªº
  • Inglês / Símbolos: Dígitos 0-9, pontuação padrão, símbolo do Euro €, alfabeto latino maiúsculo e minúsculo.
  • Português (pt-BR):
    • Minúsculas com acento e cedilha: á, à, â, ã, é, ê, í, ó, ô, õ, ú, ü, ç
    • Maiúsculas com acento e cedilha: Á, À, Â, Ã, É, Ê, Í, Ó, Ô, Õ, Ú, Ü, Ç
    • Pontuações e sinais frequentes em documentos e contratos: «, », “, ”, ‘, ’, –, —, °, §, ª, º

⚙️ Detalhes do Treinamento e Fine-Tuning

  • Ponto de Partida: Checkpoint oficial pré-treinado pelo autor (text-rec-checkpoint-s52qdbqt.pt), treinado no dataset HierText.
  • Estratégia de Adaptação:
    • Preservação total dos pesos convolucionais e recorrentes (GRU).
    • Expansão da camada final de projeção de 97 para 135 classes.
    • Inicialização quente (warm-start) para caracteres acentuados herdando representações das letras base correspondentes (ex: á inicializado a partir de a, ç a partir de c), evitando perturbação nos pesos já consolidados.
  • Dados de Treinamento:
    • Amostras sintéticas balanceadas em Português e Inglês (evitando esquecimento catastrófico).
    • 13 famílias de fontes tipográficas TrueType com diferentes pesos, espaçamentos, ruídos e variações de contraste.
  • Otimizador: AdamW (taxa de aprendizado 1.5e-4 com decaimento cosseno e weight_decay = 1e-4).
  • Função de Perda: CTCLoss(blank=0, zero_infinity=True).
  • Hardware Utilizado: GPU NVIDIA L4 (24 GB VRAM) via Google Colab Pro.
  • Métricas Alcançadas:
    • Perda de Validação: 0.0045
    • Character Error Rate (CER): 0.07% (acurácia superior a 99.9%).

📦 Como Usar no PdfCraft

Opção 1: Pasta ao lado do executável (Recomendado)

Coloque o arquivo text-recognition.rten dentro da pasta models/ ao lado do pdfcraft.exe:

pasta-do-app/
├── pdfcraft.exe
└── models/
    ├── text-detection.rten
    └── text-recognition.rten

Opção 2: Variável de Ambiente

Defina a variável apontando para a pasta que contém o modelo:

$env:PDFCRAFT_MODELS = "C:\caminho\para\models"

📜 Licenças e Atribuição

  • Pesos do Modelo: Licenciados sob Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional (CC-BY-SA-4.0), em conformidade com o dataset HierText e com os modelos originais do projeto ocrs.
  • Código de Treinamento e Exportação: Licenciado sob MIT OR Apache-2.0.
  • Base Originária: Projeto robertknight/ocrs-models e robertknight/ocrs.
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support