Puoi estrarre il testo dalle immagini sulla riga di comando di Linux usando il motore Tesseract OCR. È veloce, preciso e funziona in circa 100 Le lingue. Ecco come usarlo.
Accreditamento ottico dei caratteri
Riconoscimento ottico dei caratteri (OCR) è la capacità di guardare e trovare parole in un'immagine e quindi estrarle come testo modificabile. Questo semplice compito per gli esseri umani è molto difficile da eseguire per i computer.. I primi sforzi sono stati goffi, per non dire altro. I computer erano spesso confusi se il carattere o la dimensione non erano di gradimento del software OCR.
Nonostante questo, i pionieri in questo campo erano ancora molto stimati. Se hai perso una copia elettronica di un documento, ma avevo ancora una versione stampata, L'OCR potrebbe ricreare una versione elettronica e modificabile. Anche se i risultati non lo fossero 100 accurato al cento, questo è stato un enorme risparmio di tempo.
Con un piccolo ordine manuale, recupererebbe il tuo documento. Le persone hanno perdonato gli errori commessi perché hanno compreso la complessità del compito affrontato da un pacchetto OCR. Allo stesso tempo, era meglio che riscrivere l'intero documento.
Le cose sono migliorate notevolmente da allora. L'applicazione Tesseract OCR, scritto da Hewlett Packard, iniziato nel decennio di 1980 come applicazione commerciale. Era open source in 2005 e ora ha il sostegno di Google. Ha capacità multilingue, è considerato uno dei sistemi OCR più accurati disponibili e puoi usarlo gratuitamente.
Installazione di Tesseract OCR
Per installare Tesseract OCR su Ubuntu, usa questo comando:
sudo apt-get install tesseract-ocr
In Fedora, il comando è:
sudo dnf install tesseract
A Manjaro, deve scrivere:
sudo pacman -Syu tesseract
Usando Tesseract OCR
Presenteremo una serie di sfide per Tesseract OCR. La nostra prima immagine contenente testo è un estratto dal recital 63 a partire dal Norme generali sulla protezione dei dati. Vediamo se l'OCR può leggerlo (e stai sveglio).
È un'immagine fuorviante perché ogni frase inizia con un numero debole in apice, che è tipico nei documenti legislativi.
Dobbiamo dare il tesseract
ordinare determinate informazioni, cosa include?:
- Il nome del file immagine che vogliamo che elabori.
- Il nome del file di testo che creerai per contenere il testo estratto. Non è necessario fornire l'estensione del file (sarà sempre .txt). Se esiste già un file con lo stesso nome, verrà sovrascritto.
- Possiamo usare il
--dpi
opzione di conteggiotesseract
Quello punti per pollice (dpi) la risoluzione dell'immagine è. Se non forniamo un valore dpi,tesseract
proverò a risolverlo.
Il nostro file immagine si chiama "considerando-63.png" e la sua risoluzione è 150 dpi. Creiamo un file di testo chiamato “considerando.txt”.
Il nostro comando è simile a questo:
tesseract recital-63.png recita --dpi 150
I punteggi sono molto buoni. L'unico problema sono gli apici: erano troppo deboli per leggere correttamente. Un'immagine di buona qualità è fondamentale per ottenere buoni risultati.
tesseract
ha interpretato i numeri in apice come virgolette (“) e simboli di grado (°), ma il testo vero e proprio è stato magnificamente estratto (il lato destro dell'immagine doveva essere ritagliato per adattarsi qui).
Il carattere finale è un byte con il valore esadecimale di 0x0C, cos'è un ritorno a capo?.
Di seguito è riportata un'altra immagine con testo di diverse dimensioni, sia in grassetto che in corsivo.
Il nome di questo file è “bold-italic.png”. Vogliamo creare un file di testo chiamato “bold.txt”, quindi il nostro comando è:
tesseract bold-italic.png grassetto --dpi 150
Questo non è stato un problema e il testo è stato estratto magnificamente.
Utilizzo di lingue diverse
Supporta Tesseract OCR di 100 Le lingue. Per usare una lingua, devi prima installarlo. Quando trovi la lingua che desideri utilizzare nell'elenco, guarda la sua abbreviazione. Installiamo il supporto per il gallese. La sua abbreviazione è “cim”, che è l'abbreviazione di “Galles”, cosa significa gallese?.
Il pacchetto di installazione si chiama "tesseract-ocr-" con l'abbreviazione della lingua contrassegnata alla fine. Per installare il file di lingua gallese su Ubuntu, noi useremo:
sudo apt-get install tesseract-ocr-cym
L'immagine con il testo è sotto. È la prima strofa dell'inno nazionale del Galles.
Vediamo se Tesseract OCR è all'altezza della sfida. Useremo il -l
(idioma) possibilità di partire tesseract
conoscere la lingua in cui vogliamo lavorare:
tesseract old-country-my-fathers.png inno -l cym --dpi 150
tesseract
si adatta magnificamente, come mostrato nel testo estratto di seguito. Alba, Tesseract OCR.
Se il tuo documento contiene due o più lingue (come un dizionario dal gallese all'inglese, come esempio), puoi usare un segno più (+
) raccontare tesseract
per aggiungere un'altra lingua, Così:
tesseract image.png file di testo -l eng+cym+fra
Utilizzo di Tesseract OCR con file PDF
il tesseract
Il comando è progettato per funzionare con i file di immagine, ma non riesco a leggere i file PDF. Nonostante questo, se hai bisogno di estrarre il testo da un PDF, puoi usare prima un'altra utility per generare un set di immagini. Una singola immagine rappresenterà una singola pagina del PDF.
il pdftppm
utilità di cui hai bisogno dovrebbe essere già installato sul tuo computer Linux. Il PDF che useremo per il nostro esempio è una copia del post seminale di Alan Turing sull'intelligenza artificiale, “Macchinari e intelligenza informatica”.
Noi usiamo il -png
opzione per specificare che vogliamo creare file PNG. Il nome del file del nostro PDF è “turing.pdf”. Chiameremo i nostri file di immagine “turare-01.png”, “turare-02.png”, e così via:
pdftoppm -png turing.pdf turing
Correre tesseract
in ogni file immagine utilizzando un singolo comando, dobbiamo usare a di continuo. Per ognuno dei nostri “turare-nn.png", file che eseguiamo tesseract
e creare un file di testo chiamato “testo-” più “turare-nn"Come parte del nome del file immagine:
per io in Turing-??.png; fare tesseract "$io" "testo-$i" -l ita; fatto;
Per combinare tutti i file di testo in uno, possiamo usare cat
:
gatto che scrive testo* > complete.txt
Quindi, com'è andata? Ottimo, come puoi vedere qui sotto. Nonostante questo, la prima pagina sembra piuttosto impegnativa. Ha diversi stili e dimensioni di testo e decorazioni. Inoltre c'è un “filigrana” verticale sul bordo destro della pagina.
Nonostante questo, l'output è vicino all'originale. Apparentemente, il formato è stato perso, ma il testo è corretto.
La filigrana verticale è stata trascritta come una linea incomprensibile in fondo alla pagina. Il testo era troppo piccolo per essere letto da tesseract
con precisione, ma sarebbe abbastanza facile trovarlo e rimuoverlo. Il peggior risultato sarebbe stato caratteri vaganti alla fine di ogni riga.
curiosamente, singole lettere all'inizio dell'elenco di domande e risposte a pagina due sono state ignorate. La sezione PDF è mostrata di seguito.
Come puoi vedere qui sotto, restano le domande, ma la "Q" e la "A" sono andate perse all'inizio di ogni riga.
Anche i diagrammi non verranno trascritti correttamente. Vediamo cosa succede quando proviamo ad estrarre quello mostrato sotto dal PDF di Turing.
Come puoi vedere dal nostro risultato qui sotto, i caratteri sono stati letti, ma il formato del diagramma è andato perso.
Ancora, tesseract
lottato con le piccole dimensioni dei pedici, e sono stati resi in modo errato.
Nonostante questo, ad essere onesti, è stato un buon risultato. Non siamo riusciti a estrarre un testo semplice, ma dopo, questo esempio è stato scelto deliberatamente perché presentava una sfida.
Una buona soluzione quando ne hai bisogno
L'OCR non è qualcosa che devi usare quotidianamente. Nonostante questo, quando se ne presenta la necessità, piacere di sapere che hai uno dei migliori motori OCR a tua disposizione.