Zum Fußzeileninhalt springen
OCR-WERKZEUGE
Wie man OCR in C# mit Open-Source-Bibliotheken implementiert

OCR C# Open Source (Liste für Entwickler)

OCR (Optical Character Recognition) ist eine bahnbrechende Technologie, die die Verwendung von gescannten Dokumenten in der heutigen digitalen Welt komplett transformiert. Es ermöglicht Computern, Text aus verschiedenen Quellen, einschließlich gescannter PDF-Dokumente, zu erkennen und zu extrahieren, wodurch wir PDF-Dokumente effektiv bearbeiten und mit ihnen interagieren können. Eines der Programme zur optischen Zeichenerkennung (OCR) ist Adobe Acrobat, mit dem Sie schnell Text aus gescannten Dokumenten extrahieren und in bearbeitbare PDFs und durchsuchbare Bild-PDFs umwandeln können.

Entwickler können auf leistungsstarke Werkzeuge und APIs zugreifen, die modernste Algorithmen und Ansätze des maschinellen Lernens mithilfe von OCR-Bibliotheken wie Tesseract und IronOCR nutzen. Diese Bibliotheken ermöglichen eine genaue Texterkennung und erleichtern das Verwalten und Abrufen nützlicher Informationen sowohl aus bereits gescannten als auch aus neuen Dokumenten. OCR ermöglicht nahtlose Inhaltsanalysen und hilft Unternehmen und Einzelpersonen, ihre Produktivität zu maximieren, indem sie das Beste aus ihren gescannten Dokumenten und Seitenbildern herausholen. OCR ist ein unverzichtbares Werkzeug in der aktuellen Technologie, sei es zur Digitalisierung papierbasierter Aufzeichnungen, zur Datenauswertung aus Rechnungen oder einfach zur Verbesserung der Dokumentenzugänglichkeit.

Tesseract

Die bekannteste Open-Source-OCR-Engine heißt Tesseract und wurde ursprünglich von Hewlett-Packard entwickelt. Seit 2006 wird dieses freie Softwareprojekt von Google unterstützt, welches unter der Apache-Lizenz veröffentlicht wird.

Eine der genauesten verfügbaren Open-Source- und kostenlosen Systeme ist die Tesseract OCR-Engine. Tesseract unterstützt jetzt 116 Sprachen mit seiner neuesten stabilen Version 4.1.1, die auf LSTM basiert.

Tesseract benötigt Unterstützung von einem separaten GUI (grafische Benutzeroberfläche), wenn es von einer Kommandozeilenschnittstelle ausgeführt wird, da es keine eigene integrierte Schnittstelle hat. Es kann neue Informationen mithilfe seiner neuronalen Netze lernen und verfügt über eine fortschrittliche Bildvorverarbeitungspipeline. Das effektivste Verfahren zur Hinzufügung von OCR-Fähigkeiten zu Ihrer .NET-Anwendung ist das Tesseract .NET SDK, das eine der besten Lösungen zur Bereitstellung von Texterkennungsfähigkeiten darstellt. Obwohl Tesseract zweifellos die beste OCR-Bibliothek auf dem Markt ist.

GOCR

Das unter der GNU General Public License erstellte Programm zur optischen Zeichenerkennung (OCR) ist als GOCR bekannt. Es verwandelt Textdateien zurück in gescannte Bilder von Dokumenten. Nach dem Starten des Programms und der Verwaltung des Entwicklungsteams auf SF, verwaltet Joerg Schulenburg das Paket heute auf einer (sehr) niedrigen Zeitbasis.

Da GOCR mit mehreren Front-Ends verwendet werden kann, ist es relativ einfach, es auf andere Betriebssysteme, Netzwerkapplikationen und Architekturen zu portieren. Es kann eine Vielzahl von Bilddateitypen lesen und seine Qualität verbesserte sich bis 2010 kontinuierlich.

Laut GOCR kann es einkolumnige serifenlose Schriftarten mit einer Höhe von 20–60 Pixeln verarbeiten. Es berichtet über Schwierigkeiten mit Texten, die in anderen Alphabeten als lateinisch, Serifenschriftarten, überlappenden Buchstaben, verschiedenen Schriften, rauschenden Bildern und übermäßigen Schrägstellungswinkeln geschrieben sind. GOCR kann auch Barcodes übersetzen.

CuneiForm

CuneiForm, eine kostenlose und Open-Source-Technologie, ist jetzt auch als 'Cognitive OpenOCR' bekannt. Es verfügt über integrierten Output und eine Datenbank. Es deckt 23 verschiedene Sprachen ab und führt auch Aufgaben wie Textformatscanning, Dokumentenlayoutanalyse und -identifizierung aus.

Cognitive Technologies hat die Lizenzen für OpenOCR entwickelt, die Freeware und BSD sind. Während es plattformübergreifende Verwendung unterstützt, erhalten Linux-Nutzer keine grafische Oberfläche.

Um die Arbeit der Zeichenerkennung in jeder Anwendung von Dot NET Framework 2.0 oder neuer zu vereinfachen, wird die Wrapper-Bibliothek Puma Dot NET verwendet. Es führt eine Wörterbuchprüfung durch, während es Daten verarbeitet, um die Qualität der Erkennung zu verbessern.

CuneiForm ist eine Technologie, die entwickelt wurde, um elektronische Kopien von Papierdokumenten und Bilddateien automatisch oder halbautomatisch in eine bearbeitbare Form zu konvertieren, ohne die Struktur und die ursprünglichen Dokumentenschriften zu beeinflussen. Das System besteht aus zwei Teilen zur Verarbeitung von elektronischen Dokumenten in Stapeln und einem Dokument auf einmal. Außerdem unterstützt das System eine Kombination aus russischer und englischer Sprache. Nur der Zweig, der 2009 von Andrei Borovsky erstellt wurde, unterstützt die Erkennung anderer hybrider Sprachen. Da jede Sprache mit einer dat-Datei verknüpft ist, deren Struktur und Erstellungsprozess von den Entwicklern nicht offengelegt werden, ist es schwierig, dem System die Erkennung anderer Sprachen beizubringen.

Kraken

Kraken wurde entwickelt, um die Probleme von Ocropus zu beheben, ohne seine anderen Funktionen zu beeinträchtigen. Es nutzt seine CLSTM-Neuronalnetzbibliothek und nutzt wertvolle Erfahrungen aus früheren Projekten mit neuen Daten. Es erfordert die Verwendung bestimmter externer Bibliotheken, um plattformübergreifend effektiv arbeiten zu können. Mit den gespeicherten Informationen kann es genauere Vorhersagen bezüglich potenzieller Datenvalidierungsprobleme treffen. Darüber hinaus erleichtert seine Arbeitsmethodik die einfache Bereitstellung und Schulung neuer Modelle.

A9T9

A9T9 ist eine kostenlose OCR-Software, die zum Extrahieren von Text aus Bilddateien sowie zum Konvertieren von Bildern und PDF-Dokumenten verwendet werden kann. Es bietet eine grafische Benutzeroberfläche (GUI) für die Tesseract OCR-Engine.

Das Programm ist einfach einzurichten. Am wichtigsten ist, dass es vollständig kostenlos und Open-Source ist. Es enthält keine Spyware und Adware.

Sie können eine PDF-Datei oder ein Bild öffnen, und die Inhalte der Quelldatei werden im linken Fenster angezeigt. Wenn Ihr Dokument mehrere Seiten oder ein mehrseitiges Dokument umfasst, können Sie die Pfeile unten auf der Seite verwenden, um zwischen den Seiten zu navigieren.

Um den OCR-Prozess zu starten, klicken Sie einfach auf den grünen OCR-Button, und das Ergebnis wird im zweiten rechten Bereich angezeigt. Sie haben die Möglichkeit, den Ausgangstext sowohl als Textdateien als auch als Word-Dokumente zu speichern.

IronOCR

Im Gegensatz zur Standard-Tesseract-Bibliothek erweitert IronOCR Tesseract und bietet eine native C# OCR-Bibliothek mit höherer Genauigkeit, verbesserter Leistung und erhöhter Stabilität. IronOCR kann in .NET-Programmen und Websites verwendet werden, um Text aus PDFs und Bildern zu extrahieren. Es unterstützt eine breite Palette von Fremdsprachen und kann sowohl Klartext als auch strukturierte Datenausgaben generieren. Es ist in der Lage, Barcodes und Bilder mit eingebettetem Text zu scannen. Die Bibliothek kann in Anwendungen genutzt werden, die in .NET für Konsole, Web, MVC und Desktop entwickelt werden. Das Entwicklerteam bietet direkte Unterstützung beim Lizenzierungsprozess für kommerzielle Einsätze. IronOCR ist kompatibel mit den neuesten Versionen von Visual Studio.

Vorteile von IronOCR

  • Mit der neuesten Tesseract 5-Engine kann IronOCR Papierdokumente, Barcodes und QR-Codes aus verschiedenen Bild- oder PDF-Dateien lesen. Dieses Paket vereinfacht die Integration von OCR in Desktop-, Konsolen- und Webanwendungen.
  • IronOCR ermöglicht es uns, OCR durchzuführen und dadurch gescannte PDFs in durchsuchbare PDFs zu konvertieren.
  • Zusätzlich zu Wortlisten und benutzerdefinierten Sprachen unterstützt IronOCR weltweit 125 verschiedene Sprachen.
  • IronOCR kann über 20 verschiedene Arten von Barcodes und QR-Codes scannen.
  • IronOCR kann sowohl Klartext- als auch Barcodedaten ausgeben. Entwickler können mit einem alternativen strukturierten Datenobjekt-Paradigma alle Inhalte für die direkte Eingabe in ein System abrufen. Dies umfasst strukturierte Überschriften, Absätze, Zeilen, Wörter und Zeichen in Webanwendungen.

Nachfolgend ist der Beispielcode, den wir verwenden werden, um den Textinhalt aus dem gegebenen Bild zu erkennen und in Text umzuwandeln.

using IronOcr;

// Instantiate an IronTesseract object to utilize its OCR capabilities
var Ocr = new IronTesseract();

// Set the language to English for better accuracy
Ocr.Language = OcrLanguage.EnglishBest;

// Optionally specify the Tesseract version to ensure compatibility
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

// Create an OcrInput object to add images for OCR processing
using (var Input = new OcrInput())
{
    // Add the image to be processed; specify the image's path
    Input.AddImage(@"Demo.png");

    // Perform the OCR and store the result
    var Result = Ocr.Read(Input);

    // Output the extracted text to the console
    Console.WriteLine(Result.Text);

    // Pause the console to keep it open
    Console.ReadKey();
}
using IronOcr;

// Instantiate an IronTesseract object to utilize its OCR capabilities
var Ocr = new IronTesseract();

// Set the language to English for better accuracy
Ocr.Language = OcrLanguage.EnglishBest;

// Optionally specify the Tesseract version to ensure compatibility
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

// Create an OcrInput object to add images for OCR processing
using (var Input = new OcrInput())
{
    // Add the image to be processed; specify the image's path
    Input.AddImage(@"Demo.png");

    // Perform the OCR and store the result
    var Result = Ocr.Read(Input);

    // Output the extracted text to the console
    Console.WriteLine(Result.Text);

    // Pause the console to keep it open
    Console.ReadKey();
}
Imports IronOcr

' Instantiate an IronTesseract object to utilize its OCR capabilities
Private Ocr = New IronTesseract()

' Set the language to English for better accuracy
Ocr.Language = OcrLanguage.EnglishBest

' Optionally specify the Tesseract version to ensure compatibility
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5

' Create an OcrInput object to add images for OCR processing
Using Input = New OcrInput()
	' Add the image to be processed; specify the image's path
	Input.AddImage("Demo.png")

	' Perform the OCR and store the result
	Dim Result = Ocr.Read(Input)

	' Output the extracted text to the console
	Console.WriteLine(Result.Text)

	' Pause the console to keep it open
	Console.ReadKey()
End Using
$vbLabelText   $csharpLabel

Im obigen Code-Beispiel entwickeln wir eine Funktion mit IronTesseract. Zuerst instanziieren wir ein neues OcrInput-Objekt, um die Hinzufügung eines oder mehrerer Bilddateien zu ermöglichen. Sie können beliebig viele Bilder hinzufügen, indem Sie den Pfad jedes Bildes mit der AddImage-Methode angeben. Nach dem Hinzufügen Ihrer Bilder wird die Read-Methode auf dem IronTesseract-Objekt aufgerufen, um OCR auf den bereitgestellten Eingaben auszuführen. Der resultierende Text wird dann extrahiert und über die Konsole angezeigt.

Der untenstehende Output zeigt den aus dem zuvor bereitgestellten Bild extrahierten Text, was demonstriert, dass der Text erfolgreich aus dem Bild extrahiert wurde.

OCR C# Open Source (Liste für Entwickler) Abbildung 1 - Ausgabe

Siehe diesen Beitrag für eine ausführliche IronOCR-Anleitung.

Abschluss

OCR-Open-Source-Tools ermöglichen es uns, unsere eigenen Programme unter Verwendung ihres Quellcodes zu erstellen. Allerdings haben einige Tools keine offizielle Bibliothek oder ein dediziertes Team, das bei Codierungsproblemen Unterstützung bietet. Tesseracts Dokumentation fehlt es auch an Beispielcode oder Tutorials für häufige Nutzungsszenarien, was es Anfängern erschwert, den Code und die Bibliotheken zu verstehen.

IronOCR unterstützt verschiedene .NET-Projekte wie .NET Framework Standard 2, .NET Framework 4.5 und .NET Core 2, 3 und 5. Es funktioniert auch mit neueren Technologien wie Mono, Xamarin und Azure. Durch die Nutzung von IronOCR-Technologien können wir Tesseracts Ergebnisse verbessern und falsch gescannte Dokumente oder Bilder korrigieren. Das komplexe Tesseract-Wörterbuchsystem wird über das NuGet-Paket verwaltet. Wir nutzen die Iron OCR-Bibliothek, um ein OCR-Werkzeug zu entwickeln.

Mit IronOCR können wir das Programm ohne zusätzliche Konfiguration verwenden, und es unterstützt PDF-Dateien, mehrrahmige TIFFs und alle gängigen Bildformate. Es bietet auch Barcodelesefähigkeiten und ermöglicht es uns, Barcode-Daten zu extrahieren und Barcode-Werte aus Bildern zu lesen. IronOCR bietet eine kostengünstige Entwicklerversion mit einer kostenlosen Testversion, und die lebenslange Lizenz ist im IronOCR-Paket ohne zusätzlichen Kosten enthalten. Das IronOCR-Paket bietet Unterstützung für mehrere Plattformen mit einer einzigen Zahlung. Für weitere Informationen zu den Preisen von IronOCR besuchen Sie bitte diese Seite.

Kannaopat Udonpant
Software Ingenieur
Bevor er Software-Ingenieur wurde, absolvierte Kannapat ein PhD in Umweltressourcen an der Hokkaido University in Japan. Während seines Studiums wurde Kannapat auch Mitglied des Vehicle Robotics Laboratory, das Teil der Fakultät für Bioproduktionstechnik ist. Im Jahr 2022 nutzte er seine C#-Kenntnisse, um dem Engineering-Team von Iron Software ...
Weiterlesen