Come eseguire l'OCR dalla riga di comando di Linux utilizzando Tesseract

Contenuti

Una finestra di terminale su un laptop Linux.

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).

estratto di recita 63 GDPR

È 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 conteggio tesseract 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.

Testo tratto dal recital 63.

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.

Immagine con diverse dimensioni di testo in grassetto e 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.

immagine contenente il testo della 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.

Estratto testo in gallese.

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”.

PDF della copertina di

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 tesseracte 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.

Prima pagina di testo estratto da Turing PDF.

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.

Un elenco di domande e risposte dal PDF del documento di Turing.

Come puoi vedere qui sotto, restano le domande, ma la "Q" e la "A" sono andate perse all'inizio di ogni riga.

Testo tratto dalla pagina di domande e risposte del PDF Turing.

Anche i diagrammi non verranno trascritti correttamente. Vediamo cosa succede quando proviamo ad estrarre quello mostrato sotto dal PDF di Turing.

Un diagramma di

Come puoi vedere dal nostro risultato qui sotto, i caratteri sono stati letti, ma il formato del diagramma è andato perso.

Testo estratto da un diagramma nel PDF Turing.

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.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.