Estrai il testo da un documento scansionato


10

Esiste un modo per selezionare il testo da un documento acquisito? (l'output è un jpg) Che tipo di strumenti offre Ubuntu per svolgere un simile compito? Esistono librerie che posso usare al posto dei binari software pre-compilati per fare la stessa cosa? Ho provato a convertirlo in un .pdf usando Imagemagick e poi ho cercato di selezionare il testo, che ovviamente non ha funzionato.

Risposte:


9

Il nome per questo tipo di procedura è OCR (Optical Character Recognition). Quel link offre anche un paio di scelte:

gocr - Un OCR a riga di comando
fuzzyocr - plugin spamassassin per controllare gli allegati delle immagini
libhocr0 - OCR ebraico
ocrad - Programma di riconoscimento ottico dei caratteri
ocrfeeder - Analisi del layout del documento e sistema di riconoscimento ottico dei caratteri
ocropus - analisi dei documenti e sistema OCR
tesseract-ocr
cuneiforme - sistema OCR multilingue 

E suggerisce che Tesseract ( tutorial molto vecchio ) è l'opzione migliore di questi. Quindi provalo.


3

Qualche tempo fa ha valutato i vari pacchetti OCR in Ubuntu, ha scoperto che Tesseract era il meno male di loro (ma abbastanza male) e ha scritto uno script wrapper per l'OCR (dal momento che Tesseract vuole oscuri formati di input come TIFF). Ecco il mio ~/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"

La preelaborazione delle immagini con GIMP (conversione in bianco e nero mediante lo strumento Soglia) sembrava aiutare molto.

Spero che le cose siano migliorate da allora. Ho visto il nome OCR Feeder nei post di blog di recente, ci proverei.


2

Il pacchetto Tesseract-ocr è a riga di comando. Se vuoi un programma con una GUI, io uso "gscan2pdf" e puoi trovarlo in Ubuntu Software Center.

In gscan2pdf non devi fare altro che fare clic sulla piccola icona di scansione nella parte superiore. Penso che ti dia due o tre opzioni, GOCR che non è molto buono, e Tesseract che funziona egregiamente. Scegli Tesseract e da questo punto devi fare clic sulla scheda appropriata in modo da poter trovare le impostazioni di risoluzione. La tua scommessa migliore è 300 o anche 600 e Tesseract farà bene.

I documenti scansionati male, storti o vecchi non vengono convertiti bene. In bocca al lupo!

PS .. continuo a leggere che Tesseract può leggere solo immagini TIFF. Questo non è il caso per me. Posso importare anche JPG o PNG.

PPS ... scusate le modifiche! Potresti provare OCRFeeder anche nel centro software. Devo ancora provarlo però.



0

Ho Linux Mint 17.2 x32 Cannella. Probabilmente questi passaggi funzionerebbero anche in Ubuntu 14.04 x32.

  1. Installa Tesseract OCR sudo apt-get install -y tesseract-ocr tesseract-ocr-eng Puoi aggiungere altre lingue installando pacchetti aggiuntivi. Questo screenshot è tratto da synaptic: pacchetti in lingua Tesseract in Synaptic

Usando Tesseract

OPZIONE 1 - dal terminale aperto della riga di comando, quindi vai alla cartella in cui tieni i file di immagine (jpg, png) ed esegui il comando:

a) per convertire tutti i file di immagine in testo

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

Per unire tutti i file di testo in uno, eseguire un comando cat *.txt >> all.txt

b) convertire tutti i file di immagine in file hocr (aprire con Firefox)

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

OPZIONE 2 - dalla GUI

a) Installa gImageReader e usalo

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

b) La seconda applicazione è VietOCR. La versione effettiva è 4.0, quindi scarica VietOCR-4.0.zip

Scompatta file e apri VietOCR.jar di Java:

Apri VietOCR di Java Se non hai Java installato, puoi installarlo dal repository o Puoi installare Oracle Java 8. ufficiale Procedura per installare Oracle Java 8 in 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

Raccomando VietOCR, perché ti consente di OCR file pdf, anche la conversione in blocco è un'opzione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.