OCR-WERKZEUGE

Wie man mit Tesseract Text aus Bildern gewinnt

Kannaopat Udonpant
Kannapat Udonpant
6. Juni 2023
Aktualisiert 28. Januar 2024
Teilen Sie:

Durch den Einsatz von Bibliotheken wie IronOCR und Tesseract erhalten Entwickler Zugang zu fortschrittlichen Algorithmen und maschinellen Lerntechniken für die Extraktion von Textinformationen aus Bildern und gescannten Dokumenten. Dieses Tutorial zeigt den Lesern, wie man die Tesseract-Bibliothek zur Textextraktion aus Bildern verwendet, und stellt abschließend den einzigartigen Ansatz von IronOCR vor.

1. OCR mit Tesseract

1.1. Tesseract installieren

Geben Sie in der NuGet-Paketmanager-Konsole den folgenden Befehl ein.

Install-Package Tesseract

Oder laden Sie das Paket über den NuGet Package Manager herunter.

So erhalten Sie OCR-Text-Erkennung, Abbildung 1: Installieren Sie das Tesseract-Paket im NuGet-Paketmanager

Installieren Sie das Tesseract-Paket im NuGet-Paket-Manager

Sie müssen die Sprachdateien nach der Installation des NuGet-Pakets manuell installieren und im Projektordner speichern. Dies kann als ein Manko dieser speziellen Bibliothek angesehen werden.

Besuchen Sie die folgende Website, um die Sprachdateien herunterzuladen. Nach dem Herunterladen entpacken Sie die Dateien und fügen den Ordner "tessdata" dem Debug-Ordner Ihres Projekts hinzu.

1.2. Tesseract benutzen (Schnellstart)

OCR für ein bestimmtes Bild kann mit dem unten stehenden Quellcode durchgeführt werden:

using Tesseract;

var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);
var img = Pix.LoadFromFile("Demo.png");
var res = ocrEngine.Process(img);
Console.WriteLine(res.GetText());
Console.ReadKey();
using Tesseract;

var ocrEngine = new TesseractEngine(@"tessdata", "eng", EngineMode.Default);
var img = Pix.LoadFromFile("Demo.png");
var res = ocrEngine.Process(img);
Console.WriteLine(res.GetText());
Console.ReadKey();
Imports Tesseract

Private ocrEngine = New TesseractEngine("tessdata", "eng", EngineMode.Default)
Private img = Pix.LoadFromFile("Demo.png")
Private res = ocrEngine.Process(img)
Console.WriteLine(res.GetText())
Console.ReadKey()
$vbLabelText   $csharpLabel

Zuerst muss ein TerreractEngine-Objekt erstellt werden, und die Sprachdaten müssen in die Engine geladen werden. Dann wird die gewünschte Bilddatei mit Hilfe von Tesseract Pix geladen. Anschließend wird dieses Bild in die TerreractEngine übergeben, um den korrekt erkannten Text mithilfe der im TesseractEngine verfügbaren GetText-Methode zu extrahieren. Dies ist die Ausgabe des Codes.

Wie man OCR-Text-Erkennung erhält, Abbildung 2: Extrahierter Text aus dem Bild

Aus dem Bild extrahierter Text

1.3 Überlegungen zum Tesserakt

  1. Tesseract unterstützt ab Version 3.00 die Formatierung von Ausgabetext, OCR-Positionsdaten und die Analyse des Seitenlayouts.

  2. Tesseract ist für Windows, Linux und Mac OS X verfügbar. Es wurde jedoch bestätigt, dass Tesseract aufgrund der begrenzten Entwicklungsunterstützung nur unter Windows und Ubuntu wie vorgesehen funktioniert.

  3. Tesseract kann zwischen monospaced und proportional spaced Text unterscheiden.

  4. Durch die Verwendung eines Front-Ends wie OCRopus ist Tesseract ideal für den Einsatz als Back-End und kann für anspruchsvollere OCR-Aufgaben, wie z. B. Layout-Analysen, verwendet werden.

  5. Einige der Unzulänglichkeiten von Tesseract:

    • Die neuesten Builds wurden nicht für die Kompilierung unter Windows entwickelt

    • Die C#-API-Wrapper von Tesseract werden nur selten gepflegt und hinken neuen Versionen von Tesseract um Jahre hinterher

    Um mehr über Tesseract in C# zu erfahren, besuchen Sie bitte das Tesseract-Tutorial.

2. OCR mit IronOCR

2.1. Installation von IronCR

Geben Sie den folgenden Befehl in die NuGet-Paketmanager-Konsole ein.

Install-Package IronOcr

Sie können die IronOCR-Bibliothek auch über den NuGet Package Manager installieren, zusammen mit zusätzlichen Paketen für andere Sprachen, die einfach und bequem zu verwenden sind.

So erhalten Sie OCR-Texterkennung, Abbildung 3: Installieren Sie IronOCR und Sprachpakete über den NuGet-Paketmanager

Installieren Sie IronOcr und Sprachpakete über den NuGet-Paket-Manager

2.2. Verwendung von IronOCR

Nachfolgend finden Sie einen Beispielcode zur Erkennung des Textes aus dem angegebenen Bild.

var ocr = new IronTesseract();
ocr.Language = OcrLanguage.EnglishBest;
ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var input = new OcrInput())      
{          
    input.LoadImage(@"Demo.png");
    var result = ocr.Read(input);
    Console.WriteLine(result.Text);
    Console.ReadKey();
}
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.EnglishBest;
ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var input = new OcrInput())      
{          
    input.LoadImage(@"Demo.png");
    var result = ocr.Read(input);
    Console.WriteLine(result.Text);
    Console.ReadKey();
}
Dim ocr = New IronTesseract()
ocr.Language = OcrLanguage.EnglishBest
ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using input = New OcrInput()
	input.LoadImage("Demo.png")
	Dim result = ocr.Read(input)
	Console.WriteLine(result.Text)
	Console.ReadKey()
End Using
$vbLabelText   $csharpLabel

Der obige Code instanziiert ein IronTesseract-Objekt. Zusätzlich wird ein OcrInput-Objekt erstellt, um eine oder mehrere Bilddateien hinzuzufügen, wobei der lokale Dateipfad mit der LoadImage-Methode angegeben wird. Sie können so viele Bilder hochladen, wie Sie möchten. Die Funktionalität Read im Objekt IronTesseract wird die Bilddatei analysieren und das Ergebnis in das OCR-Ergebnis extrahieren.

Wie man OCR-Textkennung erhält, Abbildung 4: Extrahierter Textausgabe mit der IronOCR-Bibliothek

Extrahierter Textausgabe mit der IronOCR-Bibliothek

2.3 IronOCR Überlegungen

  1. IronOCR ist eine Erweiterung der Tesseract-Bibliothek, die für mehr Stabilität und höhere Genauigkeit sorgt.

  2. IronOCR kann Textinhalte aus PDFs und Fotos lesen. IronOCR kann auch mehr als 20 verschiedene Arten von Barcodes und QR-Codes lesen.

  3. Die Ausgabe kann entweder als reiner Text, als strukturierte Daten, als Barcodes oder als QR-Codes erfolgen.

  4. Die Bibliothek erkennt 127 Sprachen weltweit.

  5. IronOCR funktioniert flexibel in allen .NET-Umgebungen (Konsole, Web, Desktop usw.) und unterstützt auch die neuesten mobilen Frameworks wie Mono, Xamarin, Azure und MAUI.

  6. IronOCR bietet eine kostenlose Testversion an und hat eine Entwicklungsversion, die günstiger ist. Erfahren Sie mehr über Lizenzierung.

    Für ein detailliertes IronOCR-Tutorial lesen Sie diesen Artikel zum Auslesen von Text aus einem Bild in C#.

Kannaopat Udonpant
Software-Ingenieur
Bevor er Software-Ingenieur wurde, promovierte Kannapat an der Universität Hokkaido in Japan im Bereich Umweltressourcen. Während seines Studiums wurde Kannapat auch Mitglied des Vehicle Robotics Laboratory, das Teil der Abteilung für Bioproduktionstechnik ist. Im Jahr 2022 wechselte er mit seinen C#-Kenntnissen zum Engineering-Team von Iron Software, wo er sich auf IronPDF konzentriert. Kannapat schätzt an seiner Arbeit, dass er direkt von dem Entwickler lernt, der den Großteil des in IronPDF verwendeten Codes schreibt. Neben dem kollegialen Lernen genießt Kannapat auch den sozialen Aspekt der Arbeit bei Iron Software. Wenn er nicht gerade Code oder Dokumentationen schreibt, kann man Kannapat normalerweise beim Spielen auf seiner PS5 oder beim Wiedersehen mit The Last of Us antreffen.
< PREVIOUS
OCR C# Open Source (Liste für Entwickler)
NÄCHSTES >
Beste OCR-API (Aktualisierter Listenvergleich)