Zum Fußzeileninhalt springen
VERWENDUNG VON IRONOCR

Tesseract OCR für mehrere Sprachen (Entwickler-Tutorial)

OCR ist eine Technologie, mit der Dokumente unterschiedlicher Art in bearbeitbare und durchsuchbare Daten umgewandelt werden können. Sie wandelt gescannte Bilder, PDF-Dateien und Fotos von Digitalkameras in Daten um, die bearbeitet und durchsucht werden können. Diese Technologie wird häufig bei der Umwandlung von gedruckten Dokumenten in digitale Form zur Bearbeitung, Suche und Speicherung eingesetzt, wodurch der physische Platzbedarf von Dokumenten verringert wird. OCR spielt eine große Rolle bei der Automatisierung der Dateneingabe und spart Unternehmen und Organisationen viel Zeit, indem es den Arbeitsaufwand der Mitarbeiter reduziert.

Es handelt sich um einen Prozess, bei dem fortschrittliche Techniken des maschinellen Lernens und der Mustererkennung eingesetzt werden, um Text präzise aus Bildern zu extrahieren. Die neuesten Entwicklungen in Bezug auf OCR haben die Genauigkeit erhöht, so dass mehr Sprachen und komplexe Schriften wie die arabische Schrift unterstützt werden. OCR ist in den Bereichen Finanzen, Gesundheit, Gesetzgebung und Bildung ein unverzichtbares Werkzeug, wenn es um die schnelle Verarbeitung mehrerer gedruckter Dokumente geht. In diesem Artikel wird Tesseract zur OCR von Bildern in mehrsprachigen Daten verwendet.

Wie man Tesseract OCR mit mehreren Sprachen verwendet

  1. Installieren Sie zunächst das IronOCR/Tesseract NuGet-Paket in Ihrem .NET-Projekt.
  2. Erstellen Sie eine Instanz der Klasse IronTesseract, die die OCR-Engine initialisieren wird.
  3. Die Spracheigenschaft unterstützt mehr als eine Sprache.
  4. Geben Sie den Pfad der Bilddatei an, die Sie verarbeiten möchten, und erstellen Sie dann ein OcrInput-Objekt.
  5. Führen Sie nun mit der Funktion Lesen der Instanz IronTesseract eine OCR für das Eingabebild durch.
  6. Nehmen Sie das Ergebnis und zeigen Sie den erkannten Text an.

Was ist Tesseract?

Tesseract ist eine offene Optical Character Recognition Engine, die von Hewlett-Packard entwickelt und später von Google gepflegt wurde. Das Programm ist für seine hohe Genauigkeit und Anpassungsfähigkeit bekannt, was es zu einem der bekanntesten OCR-Programme macht. Tesseract unterstützt Skripterkennung, erkennt Text in vielen Sprachen und kann mehrere Sprachen verarbeiten; daher wird sie im Allgemeinen für Projekte verwendet, die mehrsprachige Dokumente und Unterstützung erfordern.

Die OCR-Engine von Tesseract arbeitet mit Informationen, die in jedem einzelnen Pixel des Bildes enthalten sind, und folgt Mustern, die Zeichen, Wörter und Sätze darstellen, die schließlich in maschinenlesbaren Text umgewandelt werden. Die vielen unterstützten Bilddateitypen wie TIFF, JPEG und PNG ermöglichen es Tesseract, Texte in Formaten wie einfachem Text, HTML und durchsuchbarem PDF zu erstellen.

Einer der großen Vorteile von Tesseract ist, dass es so trainiert werden kann, dass es auf bestimmte Schriftarten oder neu hinzugefügte Sprachen reagiert. Sie wird auch häufig in verschiedenen Anwendungen eingesetzt, von der einfachen Textextraktion bis hin zu komplexen Aufgaben bei der Digitalisierung historischer Dokumente, der Bearbeitung von Rechnungen oder auch bei barrierefreier Software, die das Lesen für Sehbehinderte ermöglicht.

Erstellen eines neuen Projekts in Visual Studio

Öffnen Sie das Programm Visual Studio. Wenn Sie das Programm öffnen, gehen Sie zum "Dateimenü" Unter dem Menü "Datei" befindet sich die Option "Neues Projekt" Klicken Sie unter "neues Projekt" auf "Konsolenanwendung" In diesem Beitrag werden wir PDF-Dokumente mithilfe eines Konsolenprogramms erstellen.

Tesseract OCR for Multiple Languages (Developer Tutorial): Abbildung 1 - Erstellen eines neuen Projekts

Geben Sie den Namen Ihres Projekts und den Speicherort der Datei in die vorgesehenen Textfelder ein. Klicken Sie dann, wie in der Abbildung unten dargestellt, auf die Schaltfläche Erstellen und wählen Sie das gewünschte .NET Framework aus.

Tesseract OCR for Multiple Languages (Developer Tutorial): Abbildung 2 - Wählen Sie das .NET Framework und geben Sie ein Projekt und einen Speicherort an.

Nachdem nun die Anwendungsversion ausgewählt wurde, wird die Struktur des Visual Studio-Projekts erstellt. Wenn Sie die Konsolen-, Windows- oder Web-Version gewählt haben, wird die program.cs-Datei geöffnet, um Code hinzuzufügen und die Anwendung zu erstellen/auszuführen.

Tesseract OCR für .NET installieren

Der erste Schritt ist das Herunterladen und Installieren der Tesseract OCR-Software auf Ihrem Computer. Hier ist das offizielle Tesseract GitHub Repository mit dem Tesseract Installer: https://github.com/tesseract-ocr/tesseract.

Am besten installieren Sie Tesseract OCR auf Ihrem Computer, indem Sie die für Ihr Betriebssystem spezifischen Installationsanweisungen befolgen - egal, ob es sich um Windows, macOS oder Linux handelt. Nach der Installation fügen Sie das Tesseract.NET-Paket mithilfe des NuGet-Paketmanagers von Visual Studio zu Ihrem C#-Projekt hinzu.

Öffnen Sie den NuGet Package Manager in Ihrem Visual Studio-Projekt unter Tools -> NuGet Package Manager -> Manage NuGet Packages for Solution. Suchen Sie anschließend im NuGet-Paketmanager nach "Tesseract", um entweder das Paket "Tesseract" oder "Tesseract.NET" zu erhalten. Wählen Sie dieses Paket aus und klicken Sie auf die Schaltfläche Installieren, um es in Ihrem Projekt zu installieren.

Tesseract OCR for Multiple Languages (Developer Tutorial): Abbildung 3 - Suche nach Tesseract in der Registerkarte Browse

Tesseract OCR mit C#

Nach der Installation des Tesseract.NET-Wrappers müssen Sie Tesseract in Ihrem C#-Projekt einrichten, um den Speicherort der ausführbaren Tesseract-OCR- und Sprachdateien anzugeben. Hier ist ein Beispiel:

using System;
using System.Drawing;
using Tesseract;

class Program
{
    static void Main()
    {
        // Set the path to the Tesseract data files (traineddata files)
        string tessDataPath = @"./tessdata"; // Ensure this directory contains the language data files

        // Load the image
        string imagePath = @"path_to_your_image.png";
        using (var img = Pix.LoadFromFile(imagePath))
        {
            // Add languages to the Tesseract engine
            using (var engine = new TesseractEngine(tessDataPath, "eng+spa+fra", EngineMode.Default))
            {
                using (var page = engine.Process(img))
                {
                    // Extract the text
                    string text = page.GetText();
                    Console.WriteLine("Recognized Text:");
                    Console.WriteLine(text);
                }
            }
        }
    }
}
using System;
using System.Drawing;
using Tesseract;

class Program
{
    static void Main()
    {
        // Set the path to the Tesseract data files (traineddata files)
        string tessDataPath = @"./tessdata"; // Ensure this directory contains the language data files

        // Load the image
        string imagePath = @"path_to_your_image.png";
        using (var img = Pix.LoadFromFile(imagePath))
        {
            // Add languages to the Tesseract engine
            using (var engine = new TesseractEngine(tessDataPath, "eng+spa+fra", EngineMode.Default))
            {
                using (var page = engine.Process(img))
                {
                    // Extract the text
                    string text = page.GetText();
                    Console.WriteLine("Recognized Text:");
                    Console.WriteLine(text);
                }
            }
        }
    }
}
Imports System
Imports System.Drawing
Imports Tesseract

Friend Class Program
	Shared Sub Main()
		' Set the path to the Tesseract data files (traineddata files)
		Dim tessDataPath As String = "./tessdata" ' Ensure this directory contains the language data files

		' Load the image
		Dim imagePath As String = "path_to_your_image.png"
		Using img = Pix.LoadFromFile(imagePath)
			' Add languages to the Tesseract engine
			Using engine = New TesseractEngine(tessDataPath, "eng+spa+fra", EngineMode.Default)
				Using page = engine.Process(img)
					' Extract the text
					Dim text As String = page.GetText()
					Console.WriteLine("Recognized Text:")
					Console.WriteLine(text)
				End Using
			End Using
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Der obige Code erklärt, wie Tesseract OCR Text aus Bildern, die mehrere Sprachen enthalten, erkennen und extrahieren kann. Zunächst wird der Pfad zu den Tesseract-Sprachdateien festgelegt. Die erforderlichen .traineddata-Dateien für jede entsprechende Sprache, z. B. Englisch, Spanisch und Französisch, sollten im Pfad vorhanden sein.

Tesseract OCR for Multiple Languages (Developer Tutorial): Abbildung 4 - Beispieleingabe

Es lädt ein durch imagePath angegebenes Bild mit Hilfe der Methode Pix.LoadFromFile. Konkret wird ein Bild mit englischem, spanischem und französischem Text erwartet. Dann wird eine Instanz der TesseractEngine mit Pfaden zu Sprachdateien und Sprachen von Interesse, "eng+spa+fra", initialisiert, um den Text zu erkennen. Die Engine wird im Standardmodus arbeiten.

Tesseract OCR for Multiple Languages (Developer Tutorial): Abbildung 5 - Beispiel einer Konsolenausgabe

Das Bild wird dann mit der Methode Process der Engine-Klasse verarbeitet, wo es analysiert, der Textinhalt extrahiert und in der Variablen text gespeichert wird. Der extrahierte Text wird dann auf der Konsole ausgedruckt, um zu veranschaulichen, wie die OCR funktioniert.

Was ist IronOCR?

IronOCR ist eine proprietäre OCR-Bibliothek mit Schwerpunkt auf .NET. Es fügt OCR-Funktionen zu .NET-Anwendungen hinzu und ermöglicht die Textextraktion aus Bildern, gescannten Dokumenten, PDFs und allen anderen visuellen Medien. IronOCR setzt auf modernste Texterkennung mit der unglaublich erfolgreichen Tesseract-Engine und bietet darüber hinaus einige zusätzliche Funktionen, die es für den Einsatz in Unternehmensanwendungen geeignet machen.

IronOCR bietet eine enorme Sprachunterstützung - mehr als 120 Sprachen mit Unterstützung für die automatische Spracherkennung und die Verarbeitung von Dokumenten, die mehrere Sprachen gleichzeitig enthalten. Dadurch ist IronOCR sehr vielseitig und kann weltweit eingesetzt werden, wo die Verarbeitung mehrsprachiger Dokumente äußerst wichtig ist.

Tesseract OCR for Multiple Languages (Developer Tutorial): Abbildung 6 - IronOCR: Die C# OCR-Bibliothek

Andererseits legt IronOCR großen Wert auf die Einfachheit der Nutzung und Integration. Die extrem einfach zu bedienende API wird durch eine ausführliche Dokumentation und eine Reihe von Beispielprojekten ergänzt, die jedem Entwickler helfen, schnell loszulegen. Es wird eine Vielzahl von Bildformaten und PDF-Dokumenten unterstützt. Integrierte erweiterte Funktionen zur Bildvorverarbeitung, Rauschunterdrückung und Fehlerkorrektur verbessern die OCR-Genauigkeit und -Leistung.

IronOCR installieren

Sie können die Pakete mit dem NuGet-Paketverwaltungstool von Visual Studio direkt in Ihrer Lösung installieren. Der folgende Schnappschuss zeigt, wie man den NuGet Package Manager öffnet.

Tesseract OCR for Multiple Languages (Developer Tutorial): Abbildung 7 - Wie man über Visual Studio zum NuGet-Paketmanager gelangt

Sie verfügt über ein eingebettetes Suchfeld, das eine Liste von Paketen von der NuGet-Website anzeigt. Wie im Screenshot unten zu sehen, suchen wir im Paketmanager nach dem Ausdruck IronOCR:

Tesseract OCR for Multiple Languages (Developer Tutorial): Abbildung 8 - Suche nach IronOCR im Lösungsexplorer

Die Suchergebnisse könnten eine Liste möglicher Lösungen enthalten. Sie müssen das erforderliche Lösungspaket für die Installation auswählen.

Installieren Sie außerdem die erforderlichen Tesseract-Sprachpakete nacheinander, wie z. B. das unten stehende für dieses Beispiel.

In diesem Beispiel werden wir spanische, französische und englische Sprachcodes verwenden. Englisch ist das Standard-Sprachpaket und muss nicht installiert werden.

Tesseract OCR for Multiple Languages (Developer Tutorial): Abbildung 9 - Installation des französischen Sprachpakets

Installieren Sie Spanisch aus dem NuGet-Paket.

Tesseract OCR for Multiple Languages (Developer Tutorial): Abbildung 10 - Installation des spanischen Sprachpakets

Mehrere Sprachen lesen mit IronOCR mit Tesseract Engine

Das folgende Beispiel zeigt, wie man mit C# und der IronOCR- und Tesseract-Engine Text in mehreren Sprachen aus einem Bild erkennen kann.

using IronOcr;

class Program
{
    static void Main(string[] args)
    {
        // Initialize IronTesseract engine
        var Ocr = new IronTesseract();

        // Add multiple languages
        Ocr.Language = OcrLanguage.English + OcrLanguage.Spanish + OcrLanguage.French;

        // Path to the image
        var inputFile = @"path\to\your\image.png";

        // Read the image and perform OCR
        using (var input = new OcrInput(inputFile))
        {
            // Perform OCR
            var result = Ocr.Read(input);

            // Display the result
            Console.WriteLine("Recognized Text:");
            Console.WriteLine(result.Text);
        }
    }
}
using IronOcr;

class Program
{
    static void Main(string[] args)
    {
        // Initialize IronTesseract engine
        var Ocr = new IronTesseract();

        // Add multiple languages
        Ocr.Language = OcrLanguage.English + OcrLanguage.Spanish + OcrLanguage.French;

        // Path to the image
        var inputFile = @"path\to\your\image.png";

        // Read the image and perform OCR
        using (var input = new OcrInput(inputFile))
        {
            // Perform OCR
            var result = Ocr.Read(input);

            // Display the result
            Console.WriteLine("Recognized Text:");
            Console.WriteLine(result.Text);
        }
    }
}
Imports IronOcr

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Initialize IronTesseract engine
		Dim Ocr = New IronTesseract()

		' Add multiple languages
		Ocr.Language = OcrLanguage.English + OcrLanguage.Spanish + OcrLanguage.French

		' Path to the image
		Dim inputFile = "path\to\your\image.png"

		' Read the image and perform OCR
		Using input = New OcrInput(inputFile)
			' Perform OCR
			Dim result = Ocr.Read(input)

			' Display the result
			Console.WriteLine("Recognized Text:")
			Console.WriteLine(result.Text)
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Das obige C#-Programm verwendet die IronOCR-Bibliothek, um eine optische Zeichenerkennung für ein Bild mit englischen, spanischen und französischen Zeichen durchzuführen. Das Programm beginnt mit dem Import des erforderlichen Namespace für IronOCR und der Deklaration einer Klasse namens Programm mit einer Main-Methode, die den Einstiegspunkt der Anwendung darstellt.

In der Methode Main wird eine Instanz der Klasse IronTesseract instanziiert und der Variablen Ocr zugewiesen. Die Eigenschaft Sprache wird so eingestellt, dass sie Englisch, Spanisch und Französisch umfasst, indem OcrLanguage.English, OcrLanguage.Spanish und OcrLanguage.French kombiniert werden. Dadurch wird sichergestellt, dass die OCR-Engine Text in jeder dieser drei Sprachen erkennen und verarbeiten kann.

Der Pfad zur Eingabebilddatei wird über die Variable inputFile festgelegt. Das Bild wird dann innerhalb einer using-Anweisung mit einer Instanz der OcrInput-Klasse geladen, um die Ressourcen ordnungsgemäß zu verwalten und zu entsorgen. Schließlich wird die Lesen-Methode der IronTesseract-Instanz mit dem Eingabeobjekt aufgerufen, um die OCR des Bildes durchzuführen.

Der erkannte Text wird dann mit der Methode Console.WriteLine auf der Konsole ausgegeben. Dieses Programm veranschaulicht eine effektive Methode zur Nutzung der mehrsprachigen Fähigkeit von IronOCR, um Text aus Bildern zu extrahieren, die Wörter in verschiedenen Sprachen enthalten.

Tesseract OCR for Multiple Languages (Developer Tutorial): Abbildung 11 - Erkannte Textausgabe

Warum IronOCR besser ist als Tesseract?

IronOCR ist im Vergleich zu Tesseract benutzerfreundlicher und bietet einige Vorteile. Erstens bietet IronOCR eine hervorragende Sprachunterstützung mit 125 Sprachen direkt nach dem Auspacken, während Tesseract für eine optimale Leistung mit einigen seiner 100 unterstützten Sprachen komplexe Konfigurationen und zusätzliches Training erfordern kann. Außerdem lässt sich IronOCR leicht in .NET-Anwendungen integrieren und wird mit einer umfassenden Dokumentation geliefert.

IronOCR hat eine weniger steile Lernkurve und erfordert weniger technische Einstellungen als Tesseract. IronOCR bietet außerdem eine fortschrittliche Bildvorverarbeitung und regelmäßige Aktualisierungen für eine bessere Genauigkeit und Zuverlässigkeit bei komplexen Dokumenttypen. IronOCR ist eine gute Wahl für Entwickler, die eine solide, vielseitige und einfach anzuwendende OCR-Lösung suchen.

Abschluss

Tesseract OCR for Multiple Languages (Developer Tutorial): Abbildung 12 - IronOCR-Lizenzierungsseite

Sowohl Tesseract als auch IronOCR sind robuste OCR-Technologien, die jedoch jeweils über einzigartige Fähigkeiten und Stärken verfügen. Tesseract ist als Open-Source-Software verlässlich für jeden, der eine kostenlose Lösung sucht, und verfügt über aktive Communities und kontinuierliche Verbesserungen.

Im Gegensatz dazu ist IronOCR eine proprietäre Bibliothek für das .NET Framework, die eine verbesserte Benutzerfreundlichkeit durch einfachere Integration und Unterstützung für die meisten Bilddateitypen bietet. Auch bei der Texterkennung zeigt sie gute Leistungen, insbesondere bei Bildinhalten von geringer Qualität. IronOCR unterstützt viele Sprachen und verfügt über zusätzliche Funktionen, die es noch benutzerfreundlicher machen.

IronOCR bietet eine kostengünstige Entwicklungsversion an, die beim Kauf mit einer lebenslangen Lizenz ausgestattet ist. Das IronOCR-Paket beginnt bei $liteLicense als einmalige Kosten für mehrere Systeme und bietet ein ausgezeichnetes Preis-Leistungs-Verhältnis und 24/7 Online-Support für lizenzierte Benutzer. Weitere Informationen finden Sie auf der IronOCR-Website.

Häufig gestellte Fragen

Wie kann ich Tesseract OCR mit mehreren Sprachen in einem .NET-Projekt verwenden?

Sie können die IronOCR-Bibliothek verwenden, die die Integration von Tesseract OCR zum Verarbeiten von Bildern mit Text in mehreren Sprachen vereinfacht. Fügen Sie das IronOCR/Tesseract NuGet-Paket zu Ihrem .NET-Projekt hinzu und konfigurieren Sie die Sprachen über die Language-Eigenschaft der IronTesseract-Klasse.

Welche Vorteile bietet IronOCR gegenüber dem Standard-Tesseract?

IronOCR bietet eine benutzerfreundlichere API für .NET-Anwendungen, unterstützt über 120 Sprachen von Haus aus und bietet erweiterte Bildvorverarbeitung zur Verbesserung der Genauigkeit. Es integriert sich nahtlos in .NET-Projekte und bietet umfassende Dokumentation sowie Unterstützung für Entwickler.

Kann IronOCR Dokumente in mehreren Sprachen gleichzeitig verarbeiten?

Ja, IronOCR kann mehrsprachige Dokumente verarbeiten, indem man mehrere Sprachen in der Language-Eigenschaft festlegt. Diese Funktion ist besonders nützlich für globale Anwendungen, bei denen Dokumente Texte in verschiedenen Sprachen enthalten können.

Wie ist der Prozess zur Einrichtung von IronOCR in einem C#-Projekt?

Um IronOCR in einem C#-Projekt einzurichten, installieren Sie zuerst das IronOCR/Tesseract NuGet-Paket über den NuGet-Paket-Manager von Visual Studio. Erstellen Sie dann eine Instanz der IronTesseract-Klasse in Ihrem Code und verwenden Sie deren Methoden, um Bilder mit Text zu verarbeiten.

Wie verbessert IronOCR die Genauigkeit der OCR-Ergebnisse?

IronOCR verbessert die Genauigkeit durch erweiterte Bildvorverarbeitungstechniken, die die Bildqualität vor der Texterkennung verbessern. Diese Funktion hilft, Texte aus Bildern unterschiedlicher Qualität genau zu erkennen.

Welche Dokumenttypen kann IronOCR verarbeiten?

IronOCR kann eine Vielzahl von Dokumenttypen verarbeiten, darunter gescannte Bilder, PDFs und Fotos, die mit Digitalkameras aufgenommen wurden. Es wandelt diese Dokumente in bearbeitbare und durchsuchbare Datenformate um.

Ist IronOCR geeignet für die Automatisierung von Dateneingabeaufgaben?

Ja, IronOCR ist äußerst effektiv bei der Automatisierung der Dateneingabe, indem gedruckte Dokumente in digitalen Text umgewandelt werden, was manuelle Arbeit reduziert und Zeit spart. Es wird häufig in Bereichen wie Finanzen, Gesundheit und Bildung eingesetzt.

Wie unterstützt IronOCR Entwickler bei der Implementierung von OCR-Technologie?

IronOCR bietet umfassende Dokumentation, eine benutzerfreundliche API und 24/7 Online-Ingenieurunterstützung, was es Entwicklern erleichtert, OCR-Technologie in ihren .NET-Anwendungen zu implementieren.

Was sind die Hauptanwendungsfälle für IronOCR?

IronOCR wird verwendet zur Digitalisierung gedruckter Dokumente, Automatisierung von Dateneingaben, Verarbeitung von Rechnungen und Entwicklung von Zugangssoftware für sehbehinderte Benutzer. Es ist in verschiedenen Branchen anwendbar, einschließlich Finanzen, Gesundheitswesen und Bildung.

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