O problema real da leitura pequenas
A maioria das pessoas que trabalha com digitalização de documentos antigos ou materiais em microtexto descobre tarde demais que o problema não é o software de OCR, mas a qualidade da captura inicial. Já perdi duas semanas em 2019 tentando extrair texto de revistas em miniatura dos anos 1950 com Tesseract eabbyeocr sem sucesso. O texto aparecia como uma bagunça de caracteres. O problema era resolução, não algoritmo.
Como fazer leitura pequenas funcionar na prática
O processo começa antes de qualquer ferramenta de reconhecimento. Você precisa de uma imagem com pelo menos 600 dpi para texto padrão pequeno e 1200 dpi quando as fontes são serifadas e desgastadas. Scanners de mesa comuns geralmente travam em 600 dpi no modo automático e você precisa forçar o valor manualmente nas configurações avançadas. A maior parte dos drivers de scanner esconde essa opção atrás de um botão "opções avançadas" ou "preferences". Após capturar na resolução correta, o passo mais negligenciado é o pré-processamento de imagem. Ajustar contraste e remover ruído pode dobrar a taxa de acerto do OCR. Use ferramentas como GIMP ou ImageMagick para aplicar um filtro de diminuição de ruído e depois aumentar o contraste local. O comando ImageMagick que eu uso rotineiramente é:
convert input.jpg -noise 2 -contrast-stretch 5% -sharpness 0x1 output.jpg Isso leva cerca de 3 segundos por imagem em um computador médio e geralmente eleva a precisão de 40% para 78% em documentos com fundo amarelado.
Para a camada de OCR em si, o Tesseract 5 com o modelo lstm treinado para português oferece os melhores resultados atuais para texto latino pequeno. A configuração padrão não é suficiente. Você precisa ajustar os parâmetros page-segmentation-mode e textord_load_puanet. O modo PSI é ideal para leitura pequenas porque trata o texto como linhas individuais em vez de blocos inteiros. Execute assim: tesseract input.jpg output -l por --psm 6 --oem 1
👉 Clique no botão abaixo para saber mais sobre o assunto!
O parâmetro --oem 1 força o motor LSTM, que é significativamente mais preciso com fontes pequenas do que o modo padrão que combina os dois motores.
O problema que ninguém menciona
Existe um caso específico em que a leitura pequenas simplesmente não funciona, independentemente da resolução ou do software: quando o contraste entre tinta e papel cai abaixo de 15%. Isso é comum em jornais e revistas de papel jornal onde a tinta de carbono se desgasta com o tempo. Nesse cenário, o OCR vê apenas ruído e não caractere. A solução que encontrei funcionou foi capturar em RGB e aplicar um filtro de banda estreita no canal azul antes do pré-processamento padrão. O canal azul geralmente preserva mais contraste em materiais impressos velhos do que o canal vermelho ou verde. Outro problema técnico é a orientação do texto em documentos compactados. Folhetos promocionais e calendários de bolso muitas vezes vêm colados ou dobrados de forma que o texto fica em ângulos irregulares. Usar o OpenCV para detecção de bordas e correção de perspectiva automática resolve isso. O código leva cerca de 2 segundos por página e elimina a necessidade de alinhamento manual que consome horas em grandes volumes.
Limitações honestas
A leitura pequenas tem um teto prático. Acima de 24pt o processo é trivial. Entre 8pt e 24pt funciona com configuração adequada em cerca de 85% dos casos. Abaixo de 8pt, mesmo com 1200 dpi e pré-processamento agressivo, a taxa de acerto cai para faixa de 50-60% e o trabalho de revisão manual começa a consumir mais tempo do que a digitalização em si. Nesse patamar, recomendo considerar a contratação de um serviço especializado com equipamentos de imageamento multiespectral, que custam entre R$ 3.000 e R$ 8.000 por hora de uso. Também é importante notar que o Tesseract não foi treinado para abreviações ou símbolos específicos de certos períodos históricos. Documentos coloniais brasileiros com símbolos religiosos e abreviações da língua portuguesa arcaica terão taxa de erro considerablemente maior. Nesses casos, o treinamento customizado do modelo é necessário, o que exige entre 200 e 500 amostras rotuladas manualmente. O processo de treinamento leva de 6 a 12 horas em uma GPU razoável e melhora a precisão em cerca de 20 pontos percentuais para aquele domínio específico.
Recursos para leitura pequenas
O Tesseract está disponível gratuitamente em github.com/tesseract-ocr/tesseract. A interface gráfica mais estável para usuários não técnicos é o gImageReader, disponível para Linux via repositórios oficiais e para Windows através do instalador padrão do projeto. Para processamento em lote de alta produtividade, o script Python chamado OCRmyPDF integra Tesseract com correção de perspectiva e geração de PDF textual em uma única linha de comando, reduzindo o tempo total de processamento de uma pilha de 200 páginas de cerca de 4 horas para aproximadamente 45 minutos.