OCR deutlich beschleunigen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
AP10
User
Beiträge: 2
Registriert: Freitag 19. Juli 2019, 20:15

Hallo Zusammen,

ich beschäftige mich mit der Digitalisierung von PDF-Dokumenten und habe etwas lauffähiges mit pyTesseract geschrieben.

Mein Vorgehen ist sehr einfach und besteht aus folgenden Schritten:

1. PDFs einzeln einlesen und als Bild-Datei abspeichern
2. OCR mit pyTesserace durchführen
3. Erkannte Texte um Noise bereinigen

Da ich einen relativ neuen 6-Core Rechner habe, führe ich alle Schritte per Multiprocessing durch, was die Laufzeiten deutlich reduziert.

Als Projektarbeit in der Uni möchte ich das allerdings als Aufhänger nehmen um noch mehr PDFs in kürzer Zeit zu verarbeiten. Gut wären 100k Seiten PDFs in weniger als 10 Stunden.

Hat jemand von euch einen Ansatz, wie man sowas in Python (ggf. Spark) umsetzen kann? Natürlich habe ich schon gegoogelt, aber scheint wohl nicht gereicht zu haben :)
Hat sowas jemand von euch schon durchgeführt?

Ich danke vorab für alle Tipps und Erfahrungen!
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich bezweifle das du da was findest. Tesseract ist der freie Standard. Wenn du mehr willst wirst du zahlen müssen.
Benutzeravatar
ThomasL
User
Beiträge: 1378
Registriert: Montag 14. Mai 2018, 14:44
Wohnort: Kreis Unna NRW

wie wäre es hiermit?
https://www.chip.de/downloads/Some-PDF- ... 35164.html
der Umweg über Bild-Dateien erscheint mir ziemlich umständlich und zeitaufwändig.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Benutzeravatar
__blackjack__
User
Beiträge: 14045
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@ThomasL: Wenn von „Digitalisierung von PDF-Dokumenten“ die Rede ist, dann muss in den PDF-Dokumenten ja etwas analoges sein, beziehungsweise ein ”rohes” digitales Abbild von analogen Vorlagen. Also in der Regel Scans von analogen Büchern und Dokumenten. Wenn die Texte da schon so einfach als fertige Daten raus zu ziehen wären, würde man ja keine OCR brauchen.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
nezzcarth
User
Beiträge: 1762
Registriert: Samstag 16. April 2011, 12:47

AP10 hat geschrieben: Freitag 19. Juli 2019, 20:30 Als Projektarbeit in der Uni möchte ich das allerdings als Aufhänger nehmen um noch mehr PDFs in kürzer Zeit zu verarbeiten. Gut wären 100k Seiten PDFs in weniger als 10 Stunden.
An vielen größeren Uni Bibliotheken wird professionell digitalisiert. Da es sich ja um eine Projektarbeit handelt, kannst du ja vielleicht bei euch mal unverbindlich anfragen, ob man dir ein paar Tipps zu Software und Arbeitsabläufen geben kann. Die verwenden halt i.d.R. kommerzielle Software wie AbbyyFinreader.
AP10
User
Beiträge: 2
Registriert: Freitag 19. Juli 2019, 20:15

Erstmal:
vielen Dank euch allen für die Beiträge!

Irgendeine Lösung muss es geben. Unternehmen die das im großen Stil auch tun, machen das ja nicht alles per Multiprocessing. Ich habe noch ein bisschen weiter gesucht und Apache Tika (https://tika.apache.org) gefunden. Das werde ich mir mal genauer ansehen.

Kauflösungen kommen nicht in Frage, da ich das ja selber für das Projekt entwickeln muss.
Ich werde mal weitersehen und wenn ich was berichtenswertes erreicht habe, hier posten.

Wenn sich jemand von Euch mit Tika schon auskennt, ich bin dankbar für jeden Tipp, auch wenn er klein ist :)

Beste Grüße!
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wie kommst du darauf, dass Unternehmen kein multi-processing benutzen wuerden? Selbstverstaendlich werden solche Auftraege massiv parallelisiert.

Und Tika benutzt - oh Wunder - fuer OCR Tesseract: https://tika.apache.org/1.21/api/org/ap ... arser.html

Was genau also erhoffst du dir, einfach noch mehr Code drumrum laufen zu lassen? Inwiefern soll das eine Beschleunigung erreichen?
Benutzeravatar
__blackjack__
User
Beiträge: 14045
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Tika verwendet für OCR dann aber auch wieder Tesseract. Und ob das nur schneller wird wenn man einen in Java geschriebenen Server noch zusätzlich dazwischen schaltet…

Und warum denkst Du das Unternehmen die das im grossen Stil machen das nicht auf mehrere Prozesse verteilen? Ich würde sogar vermuten das die das auf mehrere Server verteilen wenn sie das tatsächlich im *grossen* Stil machen.
„A life is like a garden. Perfect moments can be had, but not preserved, except in memory. LLAP” — Leonard Nimoy's last tweet.
Antworten