OCR su sistemi Linux [chiuso]


14

Ho sempre trovato la tecnologia OCR in ritardo sui sistemi open source. Ho anche visto il progetto Ocropus sin dalla sua infanzia. Ho provato quello che ho sentito è il miglior motore OCR disponibile per Linux, Tesseract , e l'ho trovato dolorosamente carente per i documenti aziendali. Ci sono altre implementazioni OCR più promettenti? Che dire dell'obiettivo ancora più promettente per l'interpretazione della calligrafia? Cosa è possibile su sistemi * nix in questo campo?


1
Questo dovrebbe essere migrato su software?
Jeff Schaller

@Jeff probabilmente no, dato che ha quasi sette anni. Tanto è successo da allora. Alcuni di questi in OCR ... ;-)
roaima,

Risposte:


4

Tesseract

A partire dal 2018, il miglior software OCR open source disponibile è Tesseract 4 (beta) con il suo nuovo modello OCR di rete neurale LSTM . Le sue prestazioni OCR sono molto migliori rispetto al precedente modello OCR utilizzato nella versione 3.

Esempio (produrre un file PDF output.pdfcon un livello di testo per un documento tedesco scansionato):

$ echo page-*.png > input.list
$ tesseract --oem 1 -l deu input.list output pdf

Stampa il testo riconosciuto su stdout:

$ tesseract --oem 1 -l deu page page-0001.png stdout

Elenca le lingue installate:

$ tesseract --list-langs

Il supporto per molte lingue / script è disponibile sotto forma di set di dati addestrati scaricabili , ad esempio esiste anche un set di dati per Fraktur.

Con il nuovo modello LSTM, Tesseract prende ispirazione dal progetto di ricerca OCRopus .

La versione 3 di Tesseract ha prestazioni relativamente scarse anche con immagini di input di buona qualità, cioè spesso rileva falsamente singoli caratteri nei pixel di polvere (al di fuori di qualsiasi contesto testuale) e introduce facilmente errori di singoli caratteri in parole ben note.

Cuneiforme

Le prestazioni dell'OCR cuneiforme non sono poi così male, ma non sono attivamente mantenute (ultima versione nel 2011, versione 1.1) e si bloccano facilmente e hanno alcuni altri problemi:

  • Errori di segmentazione con vari pacchetti e versioni
  • il suo algoritmo di layout è semplicemente rotto, cioè nei documenti a una colonna i paragrafi vengono spesso mescolati casualmente
  • non si sbaglia su opzioni sconosciute

È possibile disabilitare l'algoritmo di layout in questo modo:

$ cuneiform --singlecolumn -l ger -f text -o foo.txt image-0001

( -lspecifica la lingua del documento di origine)

ocrad

$ ocrad -F utf8 image-0001

Il testo viene stampato per impostazione predefinita su stdout.

In un documento commerciale, mancava una parola sottolineata, dove cuneiforme / tesseract / gocr no.

gocr

$ gocr image-0001

Il testo viene stampato per impostazione predefinita su stdout.

Hardware

Sane ha un ottimo supporto per molti scanner di alimentazione automatica dei documenti (ADF), ad esempio quelli Avision e Fujitsu .

Incluso con Sane è il scanimageprogramma da riga di comando che puoi usare per costruire pipeline di scansione con script (vedi ad esempio il mio adf2pdf.pyscript).


Ho provato Cuneiform. Funziona bene se è necessario riconoscere l'immagine acquisita (non le foto). Ho usato Yagf come una GUI.
Sergei,

3

Ho trovato una domanda simile su StackOverflow e Asprise OCR SDK , uno dei prodotti commerciali collegati , vanta una versione Linux.


Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il collegamento come riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia. - Dalla recensione
Thomas,

1
@Thomas il link è l'unica risposta possibile poiché il link punta a uno strumento specifico come richiesto dal PO. Non tutte le risposte solo link sono cattive. Questo dà il nome di un software specifico e un collegamento alla sua pagina web. Anche se il collegamento si interrompe, dovresti comunque riuscire a trovarlo dal nome.
Terdon

1

Esistono pochi strumenti popolari della riga di comando OCR:

  • Tesseract ( Leggimi , FAQ ) (Python)

    Disponibile anche per: Tesseract .NET , Tesseract iOS

    Un motore OCR sviluppato negli HP Labs tra il 1985 e il 1995 ... e ora presso Google. Tesseract è probabilmente il motore OCR open source più accurato disponibile.

    Uso:

    tesseract [inputFile] [outputFile] [-l optionalLanguageFile] [PathTohOCRConfigFile]
    

    Esempio: rendere ricercabile il PDF esistente (OCR) tramite riga di comando / script

  • GOCR

    Riconoscimento dei caratteri open source. Converte le immagini scansionate del testo in file di testo. GOCR può essere utilizzato con diversi front-end, il che rende molto facile il porting su diversi sistemi operativi e architetture. Può aprire molti formati di immagine diversi e la sua qualità è migliorata quotidianamente.

  • OCRopus ™ ( FAQ ) (scritto in Python, NumPy e SciPy)

    Sistema OCR incentrato sull'uso dell'apprendimento automatico su larga scala per affrontare i problemi nell'analisi dei documenti, con analisi del layout innestabile, riconoscimento dei caratteri innestabile, modellistica statistica del linguaggio naturale e capacità multilingue.

    Il motore OCRopus si basa su due progetti di ricerca: un riconoscimento della calligrafia ad alte prestazioni sviluppato a metà degli anni '90 e distribuito dall'Ufficio censimento degli Stati Uniti e nuovi metodi di analisi del layout ad alte prestazioni.

    OCRopus è lo sviluppo è sponsorizzato da Google ed è inizialmente destinato a sforzi di conversione di documenti ad alto volume di produzione. Prevediamo che sarà anche un eccellente sistema OCR per molte altre applicazioni.

  • Tessnet2 (Open source, OCR, Tesseract, .NET, DOTNET, C #, VB.NET, C ++ / CLI)

    Tesseract è un motore OCR open source C ++. Tessnet2 è un assembly .NET che espone metodi molto semplici per eseguire l'OCR. Tessnet2 è sotto licenza Apache 2 (come tesseract), il che significa che puoi usarlo come vuoi, incluso nei prodotti commerciali.

Altro già suggerito: ABBYY CLI OCR per Linux , Asprise OCR .

Leggi anche:

Per un elenco più completo, consultare: Elenco dei software di riconoscimento ottico dei caratteri su Wikipedia.


0

... OCR è più che "solo riconoscimento dei caratteri". Gestione delle immagini, preelaborazione: analisi di pagine / layout per trovare testi, immagini, tabelle o codici a barre. Per il riconoscimento, devi trattare diversi tipi di carattere, dimensioni e lingue. Questo è importante perché per ottenere buoni risultati devi usare dizionari e definizioni linguistiche. Infine, le persone si aspettano più opzioni di esportazione rispetto al testo (ad es. XML, RTF o PDF ricercabile). Esistono alcune opzioni commerciali per gli SDK, ma non sono economiche e gratuite.

Recentemente ho trovato un CLI OCR per Linux da ABBYY . C'è una prova gratuita di 100 pagine.


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.