Extrair texto de um documento digitalizado

10

Existe alguma maneira de selecionar o texto de um documento digitalizado? (a saída é um jpg) Que tipo de ferramentas o Ubuntu oferece para executar essa tarefa? Existe alguma biblioteca que eu possa usar em vez de binários de software de pré-compilação para fazer a mesma coisa? Tentei convertê-lo para um .pdf usando o Imagemagick e depois tentei selecionar o texto, o que obviamente não funcionou.

Dananjaya
fonte

Respostas:

9

O nome para esse tipo de procedimento é OCR (reconhecimento óptico de caracteres). Esse link também oferece algumas opções:

gocr - Um OCR da linha de comando
fuzzyocr - plugin spamassassin para verificar anexos de imagem
libhocr0 - OCR hebraico
ocrad - programa de reconhecimento óptico de caracteres
ocrfeeder - Análise de layout de documentos e sistema óptico de reconhecimento de caracteres
ocropus - análise de documentos e sistema de OCR
tesseract-ocr
cuneiforme - sistema OCR multilíngue 

E sugere que o Tesseract ( tutorial muito antigo ) é a melhor opção deles. Então dê uma chance.

Rinzwind
fonte
3

Há um tempo, avaliamos os vários pacotes de OCR no Ubuntu, descobrimos que o Tesseract era o menos ruim deles (mas ruim o suficiente) e escrevi um script de wrapper para o OCRing (já que o Tesseract deseja formatos de entrada obscuros como o TIFF). Aqui está o meu ~/bin/ocr:

#!/bin/sh
# usage: ocr filename.jpg
if test -z "$1"; then
    echo "usage: ocr filename.jpg [...]"
    echo "needs imagemagick and tesseract-ocr"
    echo "if tesseract fails, check if you've got tesseract-ocr-eng installed"
fi
tmpdir="$(mktemp -d)"
for fn in "$@"; do
  convert "$fn" "$tmpdir/page.tif"
  tesseract "$tmpdir/page.tif" "$tmpdir/page" 2>&1 | grep -v '^Tesseract Open Source OCR Engine$'
  cat "$tmpdir/page.txt"
  cp -i "$tmpdir/page.txt" "${fn%.jpg}.txt"
  rm "$tmpdir/page.tif" "$tmpdir/page.txt"
done
rm -r "$tmpdir"

O pré-processamento das imagens com o GIMP (conversão para P&B usando a ferramenta Threshold) pareceu ajudar bastante.

Espero que as coisas tenham melhorado desde então. Eu vi o nome OCR Feeder em posts recentemente, eu experimentaria.

Marius Gedminas
fonte
2

O pacote Tesseract-ocr é linha de comando. Se você quer um programa com uma GUI, eu uso "gscan2pdf" e você pode encontrá-lo no Ubuntu Software Center.

No gscan2pdf, tudo o que você precisa fazer é clicar no pequeno ícone de digitalização próximo à parte superior. Eu acho que oferece duas ou três opções: GOCR, que não é muito bom, e Tesseract, que funciona admiravelmente. Escolha Tesseract e, a partir deste ponto, clique na guia apropriada para encontrar as configurações de resolução. Sua melhor aposta é 300 ou mesmo 600 e o Tesseract se sairá bem.

Documentos mal digitalizados, tortos ou antigos não se convertem bem. Boa sorte!

PS .. Continuo lendo que o Tesseract só pode ler imagens TIFF. Este não é o caso para mim. Também posso importar JPG ou PNG.

PPS ... desculpe pelas edições! Você também pode experimentar o OCRFeeder no centro de software. Ainda não tentei.

I Heart Ubuntu
fonte
0

Eu tenho o Linux Mint 17.2 x32 Cinnamon. Provavelmente, essas etapas também funcionariam no Ubuntu 14.04 x32.

  1. Instalar o Tesseract OCR sudo apt-get install -y tesseract-ocr tesseract-ocr-eng Você pode adicionar outros idiomas instalando pacotes adicionais. Esta captura de tela é da synaptic: Pacotes de idiomas do Tesseract no Synaptic

Usando o Tesseract

OPÇÃO 1 - pelo terminal aberto da linha de comando, vá para a pasta onde você mantém os arquivos de imagem (jpg, png) e execute o comando:

a) converter todos os arquivos de imagem em texto

for i in *png; do b=`basename "$i" .png`; tesseract -l eng "$i" "$b" text; done

Para mesclar todos os arquivos de texto em um, execute um comando cat *.txt >> all.txt

b) converter todos os arquivos de imagem em arquivos hocr (abra com o Firefox)

for i in *png; do b=`basename "$i" .png`; tesseract -l eng "$i" "$b" hocr; done

OPÇÃO 2 - por GUI

a) Instale o gImageReader e use-o

sudo add-apt-repository -y ppa:sandromani/gimagereader
sudo apt-get update
sudo apt-get install -y gimagereader

b) A segunda aplicação é o VietOCR. A versão real é 4.0, então faça o download do VietOCR-4.0.zip

Descompacte os arquivos e abra o VietOCR.jar por Java:

Abra o VietOCR by Java Se você não possui o Java instalado, pode instalá-lo a partir do repositório ou o Oracle Java 8. oficial. Etapas para instalar o Oracle Java 8 no Ubuntu 14.04

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default

Eu recomendo o VietOCR, porque permite OCR arquivos PDF, a conversão em massa também é uma opção.

anthony0013
fonte