Tesseract OCR — Motor de Reconhecimento Óptico de Caracteres Open Source
O Tesseract OCR é um motor baseado em deep learning projetado para extrair texto de imagens e arquivos PDF. Utilize esta documentação técnica para dominar a instalação no Windows, Linux e macOS, configurar os modos neurais e integrar o OCR em seus softwares e pipelines de dados.
O que é o Tesseract?
O Tesseract é um motor que converte pixels brutos em dados de texto estruturados e pesquisáveis. Nascido nos laboratórios da Hewlett-Packard em 1985, atualmente é mantido pela comunidade global de código aberto e oferece suporte nativo a mais de 100 idiomas através de redes neurais LSTM (Long Short-Term Memory).
Instalação
Por ser uma biblioteca em C++ otimizada, a maneira mais simples de instalar o Tesseract é utilizando o gerenciador de pacotes do seu sistema operacional.
macOS
O Homebrew é o método oficialmente recomendado para macOS (chips Apple Silicon e Intel).
brew install tesseract
brew install tesseract-lang
Ubuntu / Debian
Os repositórios oficiais apt contêm versões estáveis do Tesseract.
sudo apt install tesseract-ocr
sudo apt install tesseract-ocr-por tesseract-ocr-all
Windows
Instaladores pré-compilados são disponibilizados pelo projeto UB Mannheim. Gerenciadores como scoop ou winget também suportam o Tesseract nativamente.
scoop install tesseract
scoop install tesseract-languages
Início Rápido e Comandos CLI Básicos
O Tesseract opera primariamente por linha de comando. Extrair texto de uma imagem requer apenas uma linha.
tesseract nome_imagem base_saida [-l idioma] [-psm modoseg] [arquivo_config...]
Exemplo: Extrair Texto em Português
Para extrair texto de fatura.png e salvá-lo em resultado.txt:
tesseract fatura.png resultado -l por
.txt no nome de saída. O Tesseract a adiciona automaticamente ao salvar texto comum.
Modos de Segmentação de Página (PSM)
Os Modos de Segmentação de Página (PSM) definem como o Tesseract divide o layout visual da imagem para encontrar blocos de texto. Por padrão, o Tesseract espera uma página completa (PSM 3). Se a sua entrada for uma única linha, texto esparso ou uma coluna, use a flag --psm correspondente.
- 0: Apenas detecção de orientação e escrita (OSD).
- 1: Segmentação automática com OSD.
- 3: Segmentação automática completa, sem OSD. *(Padrão)*
- 4: Assume uma coluna única de texto com tamanhos variáveis.
- 6: Assume um único bloco uniforme de texto.
- 7: Trata a imagem como uma única linha de texto.
- 11: Texto esparso. Localiza o máximo de texto possível sem ordem fixa.
- 13: Linha pura. Processa como linha única ignorando heurísticas internas.
Para forçar o processamento como linha individual:
tesseract codigo_barras.png stdout --psm 7
Modos do Motor de OCR (OEM)
Os Modos do Motor (OEM) permitem alternar entre o algoritmo legado de correspondência de padrões e a moderna rede neural LSTM. Você pode alternar os modos através da flag --oem para calibrar velocidade e precisão.
- 0: Apenas motor clássico legado. (Visão computacional tradicional).
- 1: Apenas motor de rede neural LSTM. (Rápido e de altíssima precisão).
- 2: Motores legado e LSTM combinados.
- 3: Padrão, de acordo com o modelo
.traineddatacarregado.
Formatos de Saída
Além de emitir texto simples no terminal ou em arquivos .txt, o Tesseract é um analisador de documentos completo capaz de gerar PDFs pesquisáveis e geometrias de layout.
PDFs com Texto Pesquisável
Para converter uma imagem digitalizada em um arquivo PDF pesquisável com texto invisível perfeitamente alinhado:
tesseract documento.tif saida_pdf pdf
PDF Apenas de Texto Invisível
Útil para sobrepor texto a PDFs já existentes em um pipeline de automação:
tesseract digitalizacao.png saida textonly_pdf
hOCR / TSV / ALTO
Para obter coordenadas exatas em pixels de cada palavra e seus respectivos níveis de confiança:
tesseract imagem.png saida hocr
tesseract imagem.png saida tsv
Bibliotecas e Wrappers de Programação
Deseja integrar o Tesseract em um aplicativo web, script ou microsserviço? A comunidade desenvolveu bibliotecas para quase todas as linguagens modernas.
Python (pytesseract)
Requer o binário CLI do Tesseract instalado na máquina.
import pytesseract
from PIL import Image
img = Image.open('recibo.png')
texto = pytesseract.image_to_string(img, lang='por')
print(texto)
pytesseract.
Node.js e JavaScript (tesseract.js)
Port completo em WebAssembly do código C++. Executa diretamente no navegador ou no ambiente Node.js sem necessidade de binários locais.
const Tesseract = require('tesseract.js');
Tesseract.recognize(
'https://tesseractocr.org/exemplo.png',
'por',
{ logger: m => console.log(m) }
).then(({ data: { text } }) => {
console.log(text);
});
Treinamento de Modelos OCR Customizados
O Tesseract 5 utiliza a infraestrutura do projeto tesstrain para treinar e ajustar redes neurais LSTM.
O Repositório tesstrain
Ao contrário da versão 3, o treinamento na versão 5 é automatizado através de Makefiles que organizam a geração em larga escala de dados de treino.
git clone https://github.com/tesseract-ocr/tesstrain
cd tesstrain
make tesseract-langdata
Para instruções completas sobre Ground Truth (GT) e épocas de treinamento, consulte o repositório oficial tesstrain no GitHub.
Ferramentas e Motores Relacionados
Embora o Tesseract seja a referência de código aberto consolidada, soluções modernas costumam combiná-lo com bibliotecas complementares:
- PaddleOCR: Motor baseado em deep learning avançado (PP-OCR) com excelente capacidade de reconhecimento de tabelas e texto curvilíneo.
- Docling: Analisador de documentos para IA generativa e RAG que converte PDFs, imagens e arquivos do Office em Markdown e JSON estruturados.
- Python Pillow: Biblioteca padrão para tratamento e pré-processamento de imagens (ajuste de brilho, limiarização e corte) antes do OCR.
Fim da Documentação Principal do Tesseract.
Aviso Legal: TesseractOCR.org é um projeto de documentação independente criado pela comunidade e não é afiliado, endossado ou conectado formalmente com o projeto oficial Tesseract OCR nem seus mantenedores.