Tesseract
Nesta seção:
Descrição
De acordo com a página do Tesseract, Tesseract é um mecanismo de reconhecimento óptico de caracteres (OCR) de código aberto, disponível sob licença Apache 2.0.
Versões Disponíveis
tesseract/4.00.00alpha (default)
Carregando o Módulo
# Carregar Tesseract
module load tesseract/4.00.00alpha
# Verificar instalação
tesseract --version
# Variáveis disponíveis
echo $TESSDATA # Diretório com dados de treinamento
echo $LEPTONICA # Caminho para o Leptonica
Nota
O Tesseract no GridUnesp foi instalado com dependência para o Leptonica/1.75.3, que inclui ferramentas para conversão de formatos de imagem.
Conversão de PDF para Imagem
O Leptonica inclui ferramentas para conversão de arquivos PDF para formatos de imagem processáveis pelo Tesseract.
#!/bin/bash
#SBATCH -J convert_pdf
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 02:00:00
#SBATCH --mem=4G
export INPUT="documento.pdf"
export OUTPUT="paginas/"
module load tesseract/4.00.00alpha
mkdir -p paginas
# Converter PDF para formato de imagem (usando Leptonica)
# O comando convertfilestopdf ou convertformat podem ser usados
$LEPTONICA/bin/convertformat documento.pdf paginas/pagina.png
Submissão de Jobs Básica
#!/bin/bash
#SBATCH -J tesseract
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 23:00:00
#SBATCH --mem=4G
export INPUT="$TESSDATA"
export OUTPUT="out.txt"
module load tesseract/4.00.00alpha
job-nanny tesseract --tessdata-dir $TESSDATA -l heb hebrew.png out
Processamento em Lote de Imagens
#!/bin/bash
#SBATCH -J tesseract_batch
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 48:00:00
#SBATCH --mem=8G
export INPUT="imagens/"
export OUTPUT="texto/"
module load tesseract/4.00.00alpha
mkdir -p texto
# Processar todas as imagens
for img in imagens/*.png imagens/*.jpg imagens/*.tiff; do
if [ -f "$img" ]; then
base=$(basename "$img" | sed 's/\.[^.]*$//')
echo "Processando $img ..."
job-nanny tesseract --tessdata-dir $TESSDATA -l por "$img" "texto/${base}"
fi
done
Job Array para Múltiplas Imagens
#!/bin/bash
#SBATCH -J tesseract_array
#SBATCH --array=1-50
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 12:00:00
#SBATCH --mem=4G
IMAGENS=($(ls imagens/*.png imagens/*.jpg 2>/dev/null))
IMAGEM=${IMAGENS[$SLURM_ARRAY_TASK_ID-1]}
BASE=$(basename "$IMAGEM" | sed 's/\.[^.]*$//')
export INPUT="$IMAGEM"
export OUTPUT="texto/${BASE}.txt"
module load tesseract/4.00.00alpha
mkdir -p texto
job-nanny tesseract --tessdata-dir $TESSDATA -l por "$IMAGEM" "texto/${BASE}"
Múltiplos Idiomas
#!/bin/bash
#SBATCH -J tesseract_langs
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 24:00:00
#SBATCH --mem=4G
export INPUT="documento.tiff"
export OUTPUT="documento_*.txt"
module load tesseract/4.00.00alpha
# Português
job-nanny tesseract --tessdata-dir $TESSDATA -l por documento.tiff documento_por
# Inglês
job-nanny tesseract --tessdata-dir $TESSDATA -l eng documento.tiff documento_eng
# Espanhol
job-nanny tesseract --tessdata-dir $TESSDATA -l spa documento.tiff documento_spa
# Múltiplos idiomas
job-nanny tesseract --tessdata-dir $TESSDATA -l por+eng+spa documento.tiff documento_multi
Configurações Avançadas
#!/bin/bash
#SBATCH -J tesseract_advanced
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 24:00:00
#SBATCH --mem=8G
export INPUT="documento.tiff"
export OUTPUT="documento_advanced"
module load tesseract/4.00.00alpha
# Criar arquivo de configuração
cat > config.txt << 'EOF'
tessedit_char_whitelist 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
tessedit_pageseg_mode 6
textord_heavy_nr 1
edges_max_children_per_outline 40
EOF
# Executar com configurações personalizadas
job-nanny tesseract --tessdata-dir $TESSDATA -l por \
documento.tiff documento_advanced \
config.txt
# Modos de segmentação de página:
# 0 = Orientação e detecção de script
# 1 = Segmentação automática com OSD
# 2 = Segmentação automática sem OSD
# 3 = Total automático (padrão)
# 4 = Coluna única de texto de tamanhos variáveis
# 5 = Bloco único de texto vertical alinhado
# 6 = Bloco único de texto uniforme (recomendado para documentos)
# 7 = Linha única de texto
# 8 = Palavra única
# 9 = Palavra única em círculo
# 10 = Caractere único
Processamento de PDF com Leptonica
O Leptonica, disponível como dependência do Tesseract, oferece ferramentas para conversão de PDF.
#!/bin/bash
#SBATCH -J pdf_to_text
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 48:00:00
#SBATCH --mem=16G
export INPUT="documento.pdf"
export OUTPUT="texto/"
module load tesseract/4.00.00alpha
mkdir -p texto paginas
# Converter PDF para imagens usando Leptonica
# O executável convertformat pode converter entre vários formatos
$LEPTONICA/bin/convertformat documento.pdf paginas/pagina.png
# OCR em cada página
for pagina in paginas/*.png; do
base=$(basename "$pagina" .png)
job-nanny tesseract --tessdata-dir $TESSDATA -l por \
"$pagina" "texto/${base}"
done
# Combinar textos
cat texto/*.txt > documento_completo.txt
echo "OCR concluído. Resultado em documento_completo.txt"
Ferramentas Leptonica Disponíveis
O Leptonica fornece várias ferramentas de linha de comando para manipulação de imagens:
# Listar ferramentas disponíveis
ls $LEPTONICA/bin/
# Ferramentas principais:
# convertformat - Converte entre formatos de imagem (PNG, TIFF, JPEG, etc.)
# convertfilestopdf - Converte imagens para PDF
# convertfilestops - Converte imagens para PostScript
# converttopdf - Converte para PDF
# fileinfo - Informações sobre arquivos de imagem
Exemplo de Conversão com Leptonica
#!/bin/bash
#SBATCH -J convert_images
#SBATCH -N 1
#SBATCH -n 1
#SBATCH -t 02:00:00
#SBATCH --mem=4G
export INPUT="scan.tiff"
export OUTPUT="scan.png"
module load tesseract/4.00.00alpha
# Converter TIFF para PNG
$LEPTONICA/bin/convertformat scan.tiff scan.png
# Converter para PDF (múltiplas imagens)
$LEPTONICA/bin/convertfilestopdf imagem1.png imagem2.png documento.pdf
Referências
Documentação Tesseract: https://tesseract-ocr.github.io/tessdoc/
Dados de treinamento: https://github.com/tesseract-ocr/tessdata
Leptonica: http://www.leptonica.org/
Ver também
Processando Simulações - Como submeter jobs