Tesseract » History » Version 1
Version 1/5
-
Next » -
Current version
Gabriel Winckler, 05 May 2016 12:51
Tesseract¶
Envio local, exemplos de scripts¶
Informações sobre o uso direto do cluster local estão em aqui.
Exemplo simples¶
Exemplo para processar todos os .tiff de um diretório usando apenas um core (serial). Verifica se já existe um arquivo processado antes.
ocr.sh:
#!/bin/bash
module load tesseract
for INPUT in *.tiff
do
BASENAME=$(basename $INPUT .tiff)
if [ ! -f "${BASENAME}.pdf" ]
then
echo "Processing $INPUT"
tesseract "$INPUT" "$BASENAME" -l por pdf
fi
done
sbatch ocr.sh
Exemplo paralelo¶
Exemplo para processar todos os .tiff de um diretório usando múltiplos cores(paralelo).
#!/bin/bash
module load tesseract
for INPUT in *.tiff
do
BASENAME=$(basename $INPUT .tiff)
if [ ! -f "${BASENAME}.pdf" ] && [ ! -f "${BASENAME}.lock" ]
then
# lock and wait 5 seconds (to reduce concurrency)
echo "$SLURM_ARRAY_TASK_ID" > "${BASENAME}.lock"
sleep 5
if [ "$(cat ${BASENAME}.lock)" = "$SLURM_ARRAY_TASK_ID" ]
then
echo "Processing $INPUT -- (task $SLURM_ARRAY_TASK_ID)"
TMPNAME=".$BASENAME-$SLURM_ARRAY_TASK_ID"
tesseract "$INPUT" "$TMPNAME" -l por pdf
mv "$TMPNAME.pdf" "$BASENAME.pdf"
rm "${BASENAME}.lock"
else
echo "Lost lock on $INPUT"
fi
fi
done
Para usar 30 cores:
sbatch --array=0-30 ocr.sh