Tesseract OCR: ler um documento digitalizado localmente (guia francês)
Tesseract é o motor de OCR livre de referência (Apache 2.0, mais de 70.000 estrelas no GitHub, versão 5.5.3 em 2026): gratuito, offline, disponível em qualquer lugar, e sua precisão depende muito mais da qualidade da imagem — resolução, correção de inclinação, contraste — do que de seus próprios ajustes. Em texto limpo, ele continua rápido e confiável; em um layout complexo ou um documento levemente inclinado, sua precisão pode despencar de repente.
Um PDF escaneado não contém texto: é uma imagem de texto. Enquanto não for processado por reconhecimento óptico, ele será indexado como vazio e o assistente documental jurará que o documento não diz nada. O Tesseract é o motor livre de referência para esse passo: gratuito, offline, disponível em qualquer lugar, e muito mais dependente da qualidade da imagem do que de seus próprios ajustes.
#O que é o Tesseract e o que não é
Tesseract é um motor de reconhecimento óptico de caracteres publicado sob licença Apache 2.0. O repositório oficial, descrito pelos mantenedores como o “Tesseract Open Source OCR Engine”, tem hoje mais de 70.000 estrelas no GitHub. A versão 4 adicionou a ele um motor baseado em redes neurais LSTM, focado no reconhecimento de linhas; o motor histórico, que reconhece padrões de caracteres, continua disponível como opção. Ele lê formatos de imagem comuns (PNG, JPEG, TIFF) e gera texto bruto, hOCR, PDF ou TSV. A versão estável mais recente, a 5.5.3, foi lançada em 24 de julho de 2026. Na prática: instale o arquivo de idioma, prepare bem a imagem (300 pontos por polegada, página alinhada, contraste nítido), escolha o modo correto de segmentação e, em seguida, verifique o resultado em cerca de vinte páginas antes de iniciar um lote.
O que ele não é: uma ferramenta de compreensão de documentos. Ele retorna texto, possivelmente com posições. Não indica que um bloco é um título, não reconstrói uma tabela em linhas e colunas e não entende o que lê. Para um documento estruturado, o OCR é apenas uma peça entre outras.
#O francês: o arquivo de idioma
Seu ChatGPT privado e gratuito na sua máquina em 1 hora — LM Studio, Ollama, Open WebUI, seus documentos, sem nuvem.
- Espaço online vitalício
- PDF + arquivos
- Atualizações vitalícias
Por padrão, o Tesseract lê textos em inglês. Em um documento em francês, isso resulta em acentos perdidos e palavras reconhecidas de forma aproximada — e muitas pessoas concluem que o mecanismo é ruim. A documentação esclarece que, sem a opção -l, o idioma presumido é o inglês. Portanto, é necessário instalar o arquivo de dados do idioma e especificar esse idioma explicitamente na execução. O projeto afirma reconhecer mais de cem idiomas quando os pacotes corretos estão instalados.
#A qualidade da imagem é determinante
Esse é o ponto que você descobre tarde demais: a documentação oficial dedica sua página « Improve quality » ao tratamento da imagem antes dos ajustes do motor. O Tesseract já realiza operações internas (biblioteca Leptonica), mas elas nem sempre são suficientes, e um pré-processamento com algumas linhas de código muitas vezes basta para tornar legível uma digitalização de baixa qualidade. A Koncile, uma empresa que desenvolve software de extração de faturas, ilustra a dimensão desse fenômeno em seus próprios testes, publicados em 2026: em uma fatura inclinada apenas três a cinco graus, a taxa de leitura correta passa de 100% para 31%. Não se trata de um estudo independente, mas a ordem de grandeza corresponde ao alerta da documentação oficial. Nenhum ajuste do motor consegue compensar uma queda assim; apenas uma correção prévia da inclinação pode fazê-lo.
- Resolução
- A documentação oficial indica que o Tesseract funciona melhor em imagens com pelo menos 300 pontos por polegada e sugere redimensionar caso contrário.
- Retificação
- A documentação alerta que a qualidade da segmentação em linhas cai significativamente quando a página está muito inclinada: é necessário girar a imagem para que as linhas fiquem horizontais. Ver o número acima.
- Contraste e binarização
- O Tesseract faz a binarização internamente (algoritmo de Otsu), com resultados às vezes ruins quando o fundo tem tonalidade irregular. A versão 5.0 adicionou dois métodos, Adaptive Otsu e Sauvola, ajustáveis pelos parâmetros thresholding_*. Para um mecanismo na versão 4 ou superior, é necessário texto escuro sobre fundo claro.
- Bordas
- Bordas muito largas atrapalham o mecanismo de OCR, mas um texto recortado rente demais também: a documentação recomenda adicionar uma pequena borda branca (10 pixels no exemplo apresentado) ao redor de um trecho sem margem.
- 01Corrigir a inclinação da páginaDetectar o ângulo dominante do texto e girar a imagem antes de qualquer outra etapa; um simples script com base na transformada de Hough é suficiente para a maioria dos scanners de escritório.
- 02Ajustar o contrasteConverter para tons de cinza e depois binarizar (com limiarização adaptativa em vez de um limiar fixo, que falha sob iluminação irregular) para obter preto puro sobre branco puro.
- 03Recortar e iniciar o OCRRemover as bordas geradas pelo scanner e as grandes margens em branco, deixar uma fina borda branca ao redor do texto e depois chamar o Tesseract com o idioma e o modo de segmentação adequados ao tipo de documento processado.
#Configurações que alteram o resultado
| Opção | Para que serve | Quando ajustar |
|---|---|---|
| Modo de segmentação de página (--psm) | Indica ao motor como é a página: bloco único, coluna, linha isolada (7), texto disperso (11) | Em um recibo, uma etiqueta, uma coluna estreita, um pequeno recorte: o modo padrão espera uma página inteira |
| Modo do mecanismo (--oem) | 1: apenas a rede neural LSTM; 0: mecanismo legado | Raramente: os arquivos de idioma dos pacotes Linux comuns (tessdata_fast) suportam apenas o LSTM, e os modos 0 e 2 não funcionam com eles |
| Lista de caracteres permitidos (tessedit_char_whitelist) | Restringe o reconhecimento a um subconjunto de caracteres | Em um campo puramente numérico, para reduzir confusões entre letras e algarismos |
| Dicionários (load_system_dawg, load_freq_dawg) | Duas variáveis que ativam as listas de palavras do motor | Em recibos, listas de preços, códigos: desativá-los pode ajudar quando a maioria do texto não é composta por palavras comuns |
O modo de segmentação é a configuração mais frequentemente esquecida. A documentação lembra: por padrão, o Tesseract espera uma página de texto, e para ler uma pequena região é preciso escolher outro modo. Em uma imagem com apenas uma linha, o modo 7 a trata como uma linha única. Para texto disperso sem ordem específica — uma captura de tela com rótulos espalhados — o modo correspondente evita o mesmo problema. O modo do mecanismo, por sua vez, raramente altera o resultado, por uma razão prática: o mecanismo legado está presente apenas nos arquivos de idioma do repositório tessdata, não nas variantes rápidas ou precisas fornecidas pela maioria das distribuições.
Em texto impresso limpo e bem enquadrado, o Tesseract continua competitivo: o FastOCR, um serviço de OCR online que vende uma alternativa na nuvem, informa uma precisão de 95 a 97,2% para o Tesseract v5 em texto limpo em inglês, contra 98,2 a 99,1% para o Google Cloud Vision. São números de uma empresa com interesse comercial, sem protocolo publicado: considere-os como uma ordem de grandeza, não como uma medição. A escolha do motor deveria se basear na natureza real dos documentos: se forem limpos e impressos, o Tesseract atende com folga; se forem danificados, manuscritos ou densamente estruturados, ele se torna o elo fraco da cadeia.
#Tesseract ou um modelo de visão
| Critério | Tesseract | Modelo de visão local |
|---|---|---|
| Recursos | Apenas processador | GPU recomendável, vários gigabytes |
| Velocidade | Muito rápido | Muito mais lento |
| Texto limpo em uma coluna | Excelente | Equivalente, mais caro |
| Layout complexo, tabelas | Baixa: a documentação do projeto reconhece um problema conhecido com tabelas | Muito melhor |
| Escrita manuscrita | Muito baixo: 25 a 40 % de acordo com o FastOCR | Muito melhor |
| Compreensão do conteúdo | Nenhum | Pode responder a uma pergunta sobre o documento |
| Risco de invenção | Baixa: confunde caracteres em vez de criar valores | Real: um modelo pode inventar um valor plausível |
Essa última linha é importante para qualquer verificação documental: o Tesseract erra ao confundir caracteres, enquanto um modelo de visão pode produzir um número perfeitamente formado, mas falso. A diferença não é absoluta, pois um 0 lido como 8 em um valor monetário também pode passar despercebido, mas um texto absurdo denuncia um motor de OCR com mais frequência do que um valor plausível inventado. Um comparativo publicado em 2026 resume o cenário que mudou: as verdadeiras alternativas já não são motores OCR tradicionais, mas modelos de visão-linguagem de código aberto, citando nominalmente o PaddleOCR-VL entre eles — com um custo em contrapartida, pois esses modelos exigem uma GPU, enquanto o Tesseract se contenta com um processador comum.
- Modelos multimodais locais, o que eles sabem ler
- Extraia os dados de uma fatura: a cadeia completa
- Converter documentos estruturados com Docling
- PaddleOCR: o motor que gerencia layouts complexos
- Fonte: repositório oficial Tesseract no GitHub
- Fonte: Koncile, comparativo do Tesseract de 2026 (fornecedor de software de extração de faturas)
- Fonte: página do manual do Tesseract (opções --psm e --oem)
- Fonte: documentação Tesseract, melhorar a qualidade
- Fonte: documentação Tesseract, arquivos de dados
#O verdadeiro custo de um projeto Tesseract
O mecanismo de OCR em si não custa nada, o que muitas vezes esconde onde o tempo de um projeto de OCR é realmente gasto. O verdadeiro trabalho está nas etapas que envolvem esse mecanismo: pré-processamento de imagens (correção de inclinação, binarização, bordas) e verificação do resultado. Um orçamento realista prevê tempo para essas duas etapas desde o início, em vez de descobri-las após um primeiro lote de resultados decepcionantes.
- Scanner ou foto tirada com o celular
- Um scanner de mesa produz páginas mais retas e mais bem iluminadas do que uma foto tirada com a câmera na mão; dar preferência ao scanner sempre que o volume justificar.
- Formato de saída
- O texto bruto é suficiente para indexação; o formato hOCR conserva as posições, o que é útil para destacar um trecho na interface original.
- Controle de qualidade
- Uma amostra revisada manualmente após cada mudança na origem das digitalizações permite detectar um desvio antes que ele afete todo o lote.
- Volume e paralelização
- Tesseract é multithread por padrão (OpenMP), o que não é adequado para grandes lotes. A FAQ do projeto recomenda iniciar um processo por núcleo com a variável OMP_THREAD_LIMIT=1, o que elimina o custo adicional do multithreading.
Um último ponto frequentemente esquecido: a nomeação dos arquivos gerados. Em vários milhares de páginas, é necessário conseguir identificar qual texto corresponde a qual digitalização; manter o mesmo nome de base entre a imagem e o texto reconhecido resolve o problema desde o início.
#Inseri-lo em uma cadeia de processamento local
Em uma instalação local de processamento de documentos, o Tesseract atua em apenas um ponto: imediatamente antes da indexação, nos documentos sem camada de texto. O teste a ser automatizado é simples — se a extração de texto de um PDF resultar em menos de algumas dezenas de caracteres por página (limiar a ser ajustado conforme seu corpus), trata-se provavelmente de um documento digitalizado, e ele é encaminhado para o OCR. Sem esse teste, documentos inteiros entram silenciosamente vazios no índice, e ninguém percebe até que um usuário estranhe.
Vale a pena automatizar a correção de inclinação e a binarização nesse mesmo pipeline, em vez de decidir caso a caso para cada página: um script que detecta o ângulo dominante e faz a correção antes da chamada ao motor evita boa parte das surpresas desagradáveis descritas acima. Em um lote homogêneo — sempre o mesmo scanner, o mesmo tipo de documento — esse pré-processamento é configurado uma vez e depois funciona sem supervisão.
#FAQ
O Tesseract é gratuito?+
Como fazer com que ele leia francês?+
Por que meu resultado é ilegível?+
O Tesseract sabe ler tabelas?+
É melhor optar por um modelo de visão?+
O que é o modo de segmentação de página?+
Como tornar um PDF escaneado pesquisável com o Tesseract?+
Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.