OCR für PDFs

Quellknoten: 879686

Einleitung

Seit dem weit verbreiteten Einsatz von Computern in den 1970er Jahren, gefolgt von der Erfindung von PDFs im Jahr 1993, hat das Speichern von Textdateien in digitalen Formaten die traditionellen Papiere allmählich, aber stetig dominiert. Dieser unschlagbare Vorteil wurde geschaffen und weiter verbessert, indem der Komfort des Internets per Anhalter genutzt wurde, mit dem digitale Textdateien innerhalb von Sekunden problemlos in die ganze Welt gesendet werden können. Heutzutage werden nicht nur maschinencodierte Texte gespeichert und über PDFs geteilt, sondern auch Papiere handgeschriebener Dokumente werden zur weiteren Verarbeitung und Verteilung in solche Formate gescannt.

Dieser aufkommende Trend hat jedoch einen neuen und derzeit laufenden Forschungsbereich beleuchtet - PDF Optical Character Recognition (OCR). OCR ist der Prozess des Konvertierens von gescanntem oder handgeschriebenem Text in maschinencodierten Text, so dass er von Programmen zur weiteren Verarbeitung und Analyse weiter verwendet werden kann. Während die Anwendung von OCR breit gefächert ist (von Bildern von Verkehrsschildern bis hin zu formalen Textdokumenten), befasst sich dieser Artikel speziell mit PDF OCR, insbesondere PDFs von gescanntem und handgeschriebenem Papier, und erläutert die Technologie und Programme in verschiedenen Sprachen, um die OCR durchzuführen Aufgabe. Eine detaillierte Übersicht und ein Vergleich mehrerer marktüblicher Software für PDF OCR werden als Referenz vorgestellt.


Suchen Sie nach einer OCR-Lösung zum Extrahieren von Informationen aus PDFs? Gib NanonetsEin Dreh für höhere Genauigkeit, größere Flexibilität, Nachbearbeitung und eine breite Palette von Integrationen!


Fortschritte bei OCR-Lösungen

Bevor wir die Codes, Details und Vorteile von OCRs diskutieren, erklären wir zunächst das Konzept der Funktionsweise von OCR, indem wir die Fortschritte in der betreffenden Technologie vorstellen.

Traditionelle OCR

Die elektronische Konvertierung gescannter Dokumente zur weiteren Berechnung vor dem vertieften Lernen, wobei die für solche Aufgaben erforderliche Genauigkeit erreicht wird, erfolgt normalerweise in vier einfachen Schritten:

  1. Sammeln Sie eine Datenbank mit bekannten Zeichen.
  2. Verwenden Sie Fotosensoren, um einzelne Briefe von gescannten Dokumenten zu sammeln und zu trennen.
  3. Vergleichen Sie den Satz von Attributen, der von den Fotosensoren abgerufen wird, mit physikalischen Attributen aus der Datenbank.
  4. Konvertieren Sie jeden Satz von Attributen entsprechend in das bekannte Zeichen mit der höchsten Ähnlichkeit.

Während der traditionelle Ansatz die meiste Zeit effektiv zu sein scheint, ist er anfällig für seine inhärenten regelbasierten Einschränkungen. Ein entscheidender Zwischenschritt der OCR besteht darin, einzelne Buchstaben oder Zeichen erfolgreich aus einem Satz / einer Gruppe von Texten zu extrahieren. Diese Extraktion erfordert bestimmte Vorlagen oder Regeln (dh voreingestellte Schriftgrößen / -stile), damit sie sehr genau ist. Das Auferlegen von immer mehr Regeln zur Erhöhung der Genauigkeit führt zu einem Dilemma der OCR-Überanpassung oder korrigiert nur bestimmte Schriftstile. Jegliche Inkonsistenzen der Beleuchtung während des Scanvorgangs würden auch zu Fehlern führen, wenn die OCR vollständig regelbasiert ist.

Darüber hinaus sind regelbasierte Attributvergleiche beim Umgang mit Handschriften nicht ausreichend. Computergenerierte Schriftarten sind meist mit Attributen fixiert, die oft offensichtlich und leicht zu vergleichen sind. Handgeschriebene Schriftarten sind genau das Gegenteil, mit unbegrenzten Variationen und daher viel schwieriger zu klassifizieren. Da sich ein handgefertigter Charakter jedes Mal geringfügig unterscheidet, ist es auch nicht möglich, alle als Teil der Datenbank aufzunehmen. Dies erfordert häufig, dass OCRs neben dem naiven Attributabgleich komplexere Algorithmen ausführen.

Schließlich besteht die Barriere mehrerer Sprachen auch im traditionellen Ansatz. Zahlreiche Sprachen verwenden ähnliche oder sogar identische Symbole. Wenn wir alle Symbole in der Datenbank speichern, können wir den Unterschied zwischen zwei Symbolen nicht erkennen, indem wir lediglich eine Attributübereinstimmung durchführen, was den traditionellen Ansatz letztendlich häufig auf nur eine Sprache pro Modell beschränkt.

Angesichts der jüngsten Deep-Learning-Ära, die dank der schnell wachsenden Hardware-Berechnungsfunktionen zum Glück eingeführt wurde, haben neuere OCRs Lernmodelle sowohl während des Extrahierens von Text als auch in der Phase ihrer Interpretation integriert.

Deep-Learning-basierte OCR-Engines

Deep Learning, ein wichtiger Zweig des Bereichs des maschinellen Lernens, hat dank zahlreicher renommierter Wissenschaftler, die es in den Vordergrund rücken, große Popularität erlangt. In der traditionellen Technik ist es unser Ziel, ein System / eine Funktion zu entwerfen, die aus einer bestimmten Eingabe eine Ausgabe generiert. Deep Learning hingegen stützt sich auf die Ein- und Ausgänge, um die Zwischenbeziehung zu finden, die durch das sogenannte auf neue unsichtbare Daten erweitert werden kann neuronale Netzwerk.

Neuronale Netzwerkarchitektur

Ein neuronales Netzwerk oder ein mehrschichtiges Perzeptron ahmt die Art und Weise nach, wie das menschliche Gehirn lernt. Jeder Knoten, nämlich Neuronen, innerhalb des Netzwerks sind wie biologische Neuronen, so dass sie Informationen zum „Aktivieren“ erhalten. Sätze von Neuronen bilden Schichten, und mehrere Schichten stapeln sich zu einem Netzwerk, das die Informationen verwendet, um eine Vorhersage zu generieren. Die Vorhersage kann in allen Formen erfolgen, von einer Vorhersage der Klasse für Klassifizierungsprobleme bis zu den Begrenzungsrahmen von Elementen bei Objekterkennungsaufgaben, die alle im Vergleich zur vorherigen Literatur den Stand der Technik erreicht haben. Bei der Aufgabe der OCR werden zwei Arten von Ausgaben zusammen mit zwei Genres von Netzwerken stark angewendet.

  • Faltungsneurale Netze (CNNs) - CNNs sind eine der dominantesten Gruppen von Netzwerken, die heute insbesondere im Bereich der Bildverarbeitung verwendet werden. Es besteht aus mehreren Faltungskernen, die durch das Bild gleiten, um Features zu extrahieren. Begleitet von herkömmlichen Netzwerkschichten am Ende sind CNNs sehr erfolgreich darin, Merkmale aus einem bestimmten Bild abzurufen, um Vorhersagen durchzuführen. Dieser Prozess kann weiter auf die Aufgabe übertragen werden, Begrenzungsrahmen zu finden und Attribute von Zeichen zur weiteren Klassifizierung im OCR-Prozess zu erkennen.
  • Lange Kurzzeitgedächtnisse (LSTMs) - LSTMs sind eine Familie von Netzwerken, die hauptsächlich für Sequenzeingaben verwendet werden. Die Intuition ist einfach: Für alle sequentiellen Daten (z. B. Wetter, Bestände) können neue Ergebnisse stark von früheren Ergebnissen abhängen. Daher wäre es vorteilhaft, frühere Ergebnisse als Teil der Eingabemerkmale bei der Durchführung neuer Vorhersagen ständig weiterzugeben . Im Fall von OCR können zuvor erkannte Buchstaben eine große Hilfe sein, um die nächsten vorherzusagen, da eine Reihe von Zeichen in der Regel sinnvoll sein sollte, wenn sie zusammengesetzt werden (z. B. kommt ein englischer Buchstabe „g“ eher nach „do“). als eine Zahl "9", trotz ihrer ähnlichen Attribute).

Neben den Hauptaufgaben in der OCR, die tiefes Lernen beinhalten, waren viele Vorverarbeitungsstufen zur Eliminierung regelbasierter Ansätze auch Nutznießer der florierenden neuronalen Netzwerktechnologien:

  • Entrauschen - Wenn ein Dokument nicht ordnungsgemäß gescannt wird, können regelbasierte Methoden leicht zu kurz kommen. Ein neuerer Ansatz der OCR-Technologien besteht darin, ein generatives kontradiktorisches Netzwerk (GAN) anzuwenden, um die Eingabe zu „entstören“. GAN besteht aus zwei Netzwerken, einem Generator und einem Diskriminator. Der Generator erzeugt ständig neue Eingaben, damit der Diskriminator zwischen den tatsächlichen und den erzeugten Eingaben unterscheiden kann, so dass sich der Generator bei der Erstellung idealer Inhalte ständig verbessern kann. In diesem Fall wird das GAN aus einem Paar von entrauschten und verrauschten Dokumenten trainiert, und das Ziel für den Generator besteht darin, ein entrauschtes Dokument zu erzeugen, das der Grundwahrheit so nahe wie möglich kommt. Während der Anwendungsphase kann das GAN, wenn es gut trainiert ist, bei jeder Eingabe verwendet werden, um schlecht gescannte Dokumente zu optimieren.
  • Dokumentidentifikation - OCR-Aufgaben, insbesondere OCR-Aufgaben in PDFs, werden häufig verwendet, um Daten ordnungsgemäß aus Formularen und Dokumenten zu extrahieren. Daher kann die Kenntnis der Art des Dokuments, das das OCR-Gerät derzeit verarbeitet, die Genauigkeit der Datenextraktion erheblich erhöhen. Neuere Künste haben ein siamesisches Netzwerk oder ein Vergleichsnetzwerk integriert, um die Dokumente mit bereits vorhandenen Dokumentformaten zu vergleichen, sodass die OCR-Engine zuvor eine Dokumentklassifizierung durchführen kann. Es wurde empirisch gezeigt, dass dieser zusätzliche Schritt die Genauigkeit beim Abrufen von Text verbessert.

Zusammenfassend lässt sich sagen, dass das Fortschreiten der OCR durch das exponentielle Wachstum der Hardwarefähigkeiten und das tiefe Lernen positiv beeinflusst wurde. PDF-OCRs haben jetzt für zahlreiche Anwendungen Genauigkeiten auf erstaunlichem Standard erreicht.


Suchen Sie nach einer OCR-Lösung zum Extrahieren von Informationen aus PDFs? Gib NanonetsEin Dreh für höhere Genauigkeit, größere Flexibilität, Nachbearbeitung und eine breite Palette von Integrationen!


Anwendungen der PDF OCR Software

Das Hauptziel von OCR ist das Abrufen von Daten aus unstrukturierten Formaten, sei es numerische Zahlen oder tatsächliche Zahlen. Wenn der Abruf erfolgreich und sehr genau ist, können Programme OCR für Arbeitsaufgaben wie das Erkennen und Interpretieren von Text verwenden, insbesondere für numerische und kontextbezogene Analysen.

Numerische Datenanalyse

Wenn PDFs numerische Daten enthalten, hilft OCR, diese zu extrahieren, um statistische Analysen durchzuführen. Insbesondere kann OCR mithilfe von Tabellen- oder Schlüssel-Wert-Paar-Extraktionen (KVPs) angewendet werden, um aussagekräftige Zahlen aus verschiedenen Regionen eines bestimmten Textes zu finden. Wir können dann statistische oder sogar maschinelle Lernmethoden (dh KNN, K-Means, lineare / logistische Regression) auf Modelle verschiedener Anwendungen anwenden

Interpretation von Textdaten

Andererseits kann die Textdatenverarbeitung mehr Rechenstufen erfordern, mit dem ultimativen Ziel, dass Programme die „Bedeutungen“ hinter Wörtern verstehen. Ein solcher Prozess der Interpretation von Textdaten in ihre semantischen Bedeutungen wird als Natural Language Processing (NLP) bezeichnet.

Vorteile von PDF OCR

PDF OCR dient auf Anwendungsebene zahlreichen Zwecken. In den folgenden Abschnitten werden einige Anwendungsbeispiele beschrieben, von so klein wie ein persönlicher Gebrauch bis so groß wie der eines Unternehmens.

Persönliche Anwendungsfälle

PDF-OCRs bieten immensen Komfort bei lästigen Aufgaben wie dem Scannen von IDs und der persönlichen Finanzierung.

Persönliche IDs müssen häufig in PDF-Formate konvertiert werden, um an verschiedene Anwendungen gesendet zu werden. Diese Identifikationsdokumente enthalten Informationen wie Geburtsdatum und ID-Nummern, die häufig wiederholt für verschiedene Zwecke eingegeben werden müssen. Daher ist eine hochpräzise PDF-OCR, die die übereinstimmenden Felder und entsprechenden Werte in der ID findet, von großer Bedeutung Hilfe bei der Ausführung trivialer manueller Aufgaben. Die einzige Arbeit, die erforderlich wäre, wäre, nur noch einmal auf Inkonsistenzen zu prüfen.

Persönliche Finanzierung ist ein weiterer Prozess, der Tonnen von Handarbeit erfordert. Obwohl die Entwicklungen bei Excel und Tabellenkalkulationen bereits Aufgaben wie die persönliche Budgetierung erleichtert haben, könnten OCR und das Extrahieren von Daten auf PDF-Rechnungen den Prozess weiter beschleunigen. Diese Daten können automatisch in Tabellenkalkulationen zur Analyse abgelegt werden, wie in den vorherigen Abschnitten erwähnt. Man kann die ursprüngliche Schlüsselzeit leicht nutzen, um über bessere Finanzpläne nachzudenken.

Anwendungsfälle für Unternehmen

Sowohl große Unternehmen als auch kleinere Organisationen müssen sich mit Tausenden von Papierkram in ähnlichen Formaten befassen, die sehr arbeitsintensiv und dennoch unproduktiv sind (dh alle Arbeitskräfte werden für etwas eingesetzt, das weniger Brainstorming erfordert). Bei automatisierten Dokumentklassifizierungen und Umfragesammlungen / -analysen ist OCR hilfreich.

Mit OCRs können Computer gescannte Texte in maschinencodierte Texte konvertieren. Der Inhalt der konvertierten Texte kann dann zur Klassifizierung von Dokumenten verwendet werden, unabhängig davon, ob es sich um Anträge für verschiedene Rollen oder Formulare handelt, die auf ihre Genehmigung warten. Wenn sie gut trainiert sind, können OCRs zu minimalen Fehlern führen, die aufgrund unvermeidlicher menschlicher Müdigkeit häufig auftreten können. Aus geschäftlicher Sicht können die Arbeitsausgaben ebenfalls erheblich reduziert werden.

In Bezug auf Umfragen oder Rückmeldungen, die Unternehmen häufig benötigen, um ihre aktuellen Produkte oder Pläne zu verbessern, spielt OCR ebenfalls eine wichtige Rolle. Daten können schnell extrahiert und zur statistischen Analyse umfassend ausgewertet werden. Bei gutem Design kann sogar handgeschriebener Text automatisch extrahiert und analysiert werden.


Suchen Sie nach einer OCR-Lösung zum Extrahieren von Informationen aus PDFs? Gib NanonetsEin Dreh für höhere Genauigkeit, größere Flexibilität, Nachbearbeitung und eine breite Palette von Integrationen!


Ein einfaches Tutorial

PDF-OCRs können tatsächlich einfach persönlich programmiert werden. Das Folgende ist eine einfache Pipeline zum Durchführen von OCR für PDFs.

Konvertierung von PDF in Bilder

Es gibt zahlreiche Bibliotheken und APIs in mehreren Sprachen, die vorab trainierte OCRs unterstützen. Die meisten von ihnen verarbeiten jedoch Bilder und nicht direkt PDFs. Um die folgenden Schritte zu vereinfachen, können wir die PDFs vor der Zeichenerkennung in Bildformate vorverarbeiten.

Eine der am häufigsten verwendeten Bibliotheken ist die pdf2Bild Bibliothek für Python, die einfach über den folgenden Befehl installiert werden kann:

pip install pdf2image

Anschließend kann man die Bibliothek importieren und eine der beiden Codezeilen verwenden, um ein Bild im PIL-Format wie folgt zu erhalten:

from pdf2image import convert_from_path, convert_from_bytes
from pdf2image.exceptions import ( PDFInfoNotInstalledError, PDFPageCountError, PDFSyntaxError
) images = convert_from_path('/home/belval/example.pdf')
images = convert_from_bytes(open('/home/belval/example.pdf','rb').read())

Weitere Informationen zum Code finden Sie in der offiziellen Dokumentation unter https://pypi.org/project/pdf2image/

Bild OCR

Es gibt zahlreiche APIs von großen Technologieunternehmen mit hochpräzisen OCRs. Aufgrund der Annahme, dass PDF-Dateien normalerweise stark mit dichten Textdaten gefüllt sind, ist die Verwendung der Google Vision-API, insbesondere der Dokument_Text_Anmerkung funktionieren, da es speziell für solche Zwecke entwickelt wurde. Speziell, Dokument_Text_Anmerkung sendet den Code an die OCR-Engine, die Google für dichte Texte entwickelt hat, einschließlich Handschriften in verschiedenen Sprachen.

Die gesamte Google Vision-API ist einfach einzurichten. Weitere Informationen finden Sie in der offiziellen Anleitung zu https://cloud.google.com/vision/docs/quickstart-client-libraries für das detaillierte Einrichtungsverfahren.

Danach können wir die folgenden Codes für den OCR-Abruf verwenden:

def detect_document(path): """Detects document features in an image.""" from google.cloud import vision import io client = vision.ImageAnnotatorClient() with io.open(path, 'rb') as image_file: content = image_file.read() image = vision.Image(content=content) response = client.document_text_detection(image=image) for page in response.full_text_annotation.pages: for block in page.blocks: print('nBlock confidence: {}n'.format(block.confidence)) for paragraph in block.paragraphs: print('Paragraph confidence: {}'.format( paragraph.confidence)) for word in paragraph.words: word_text = ''.join([ symbol.text for symbol in word.symbols ]) print('Word text: {} (confidence: {})'.format( word_text, word.confidence)) for symbol in word.symbols: print('tSymbol: {} (confidence: {})'.format( symbol.text, symbol.confidence)) if response.error.message: raise Exception( '{}nFor more info on error messages, check: ' 'https://cloud.google.com/apis/design/errors'.format( response.error.message))

Alternativ unterstützt die Google Vision-API auch mehrere Sprachen wie Java und Go. Weitere Codes zur Verwendung der Google API finden Sie hier: https://cloud.google.com/vision  

Es gibt auch andere OCR-Dienste / APIs von Amazon und Microsoft, und Sie können immer die verwenden PyTesseract Bibliothek, um Ihr Modell für bestimmte Zwecke zu trainieren.


Suchen Sie nach einer OCR-Lösung zum Extrahieren von Informationen aus PDFs? Gib NanonetsEin Dreh für höhere Genauigkeit, größere Flexibilität, Nachbearbeitung und eine breite Palette von Integrationen!


Vergleich

Derzeit sind auf dem Markt zahlreiche PDF-OCRs verfügbar. Während einige kostenlos, schnell und sofort online verwendet werden können, bieten andere genauere und besser gestaltete Produkte für den professionellen Gebrauch. Hier beschreiben wir einige Optionen sowie deren Vor- und Nachteile.

Online-PDF-OCRs

Wenn Sie PDF-OCRs für den persönlichen Gebrauch bei schnellen Konvertierungen verwenden, ist kostenlos und schnell möglicherweise wünschenswerter als Genauigkeit. Es gibt zahlreiche Online-PDF-OCR-Dienste, die diese Anforderungen erfüllen. Man kann einfach PDF-Dokumente hochladen und schnell und bequem in geschriebenen Text verwandeln.

Das Hauptproblem dabei ist jedoch die Qualitätskontrolle der OCR. Diese kostenlose Online-OCR-Software funktioniert zwar die meiste Zeit gut, liefert jedoch nicht jedes Mal die beste Ausgabequalität im Vergleich zu anderer Offline-Software, die ständig gewartet werden muss

Offline-Software

Derzeit gibt es mehrere Unternehmen, die hochpräzise PDF-OCR-Dienste anbieten. Hier sehen wir uns verschiedene Optionen von PDF OCR an, die sich auf verschiedene Aspekte spezialisiert haben, sowie einige aktuelle Forschungsprototypen, die vielversprechende Ergebnisse zu liefern scheinen:

Es gibt mehrere OCR-Dienste, die auf Aufgaben wie Images-in-the-Wild ausgerichtet sind. Wir haben diese Dienste übersprungen, da wir uns derzeit nur auf das Lesen von PDF-Dokumenten konzentrieren.

  • ABBYY - ABBYY FineReader PDF ist eine von ABBYY entwickelte OCR. Die Software verfügt über eine benutzerfreundliche Benutzeroberfläche zum Lesen von PDFs und zur Textkonvertierung. Aufgrund seines nicht-technischen Charakters (die Zielkunden sind Non-Tech-Spezialisten in anderen Bereichen, die PDF-OCR benötigen) wäre es jedoch schwieriger, es zur weiteren Verarbeitung in andere Programme zu integrieren.
  • Kofax - Ähnlich wie ABBYY ist Kofax ein benutzerfreundlicher PDF-Reader, für den ein Kauf erforderlich ist. Der Preis ist für den individuellen Gebrauch festgelegt, mit Rabatten für große Unternehmen. Bei technischen Schwierigkeiten steht Ihnen auch rund um die Uhr Unterstützung zur Verfügung.
  • Tiefenleser - Deep Reader ist eine Forschungsarbeit, die auf der ACCV-Konferenz 2019 veröffentlicht wurde. Sie enthält mehrere hochmoderne Netzwerkarchitekturen, um Aufgaben wie das Abgleichen von Dokumenten, das Abrufen von Text und das Entrauschen von Bildern auszuführen. Es gibt zusätzliche Funktionen wie Tabellen und Schlüssel-Wert-Paar-Extraktionen, mit denen Daten auf organisierte Weise abgerufen und gespeichert werden können.
  • Nanonets ™ - Nanonets ™ PDF OCR verwendet Deep Learning und ist daher vollständig vorlagen- und regelunabhängig. Nanonets können nicht nur mit bestimmten PDF-Typen arbeiten, sondern auch auf jeden Dokumenttyp zum Abrufen von Text angewendet werden.

Zusammenfassung

Abschließend haben wir in diesem Artikel die Grundlagen der Funktionsweise einer OCR sowie die Zeitachse der OCR-Entwicklung erläutert, gefolgt von einfachen Tutorials und Anwendungsfällen. Wir haben auch eine Reihe praktikabler Optionen für PDF-OCRs sowie deren Vor- und Nachteile für die weitere Verwendung vorgestellt.

Quelle: https://nanonets.com/blog/pdf-ocr/

Zeitstempel:

Mehr von KI & Maschinelles Lernen