VERGLEICH MIT ANDEREN KOMPONENTEN

Tesseract vs. Microsoft OCR (Vergleich der OCR-Funktionen)

Veröffentlicht 26. März 2024
Teilen Sie:

Einführung

Entwickler müssen sich häufig zwischen dem OCR-Tool von Tesseract und der OCR-Engine von Microsoft entscheiden, wenn es um die optische Zeichenerkennung geht (OCR) in C#. Trotz ihrer unterschiedlichen Fähigkeiten, Effizienz, Integration und Einfachheit sind beide effektive OCR-Tools für die Extraktion von Text aus Fotos oder gescannten Dokumenten. Im Rahmen der C#-Entwicklung werden wir in diesem Artikel die Vorzüge, Nachteile und Anwendbarkeit verschiedener OCR-Tools wie Tesseract vs. Microsoft OCR gründlich untersuchen.

Was ist OCR?

Die optische Zeichenerkennung wird als OCR bezeichnet. Diese Technologie ermöglicht es, verschiedene Dokumentenformate wie gescannte Bilddokumente, PDF-Dateien oder Digitalkamerafotos in bearbeitbare und durchsuchbare Daten zu verwandeln. Um die Formen und Muster eines Bildes in maschinenlesbaren Text umzuwandeln, analysieren verschiedene OCR-Tools wie Google Cloud Vision oder Google Vision OCR die Bilder. Mit dieser Technik können Benutzer Text von Fotos abrufen und den Inhalt wie bei einem digitalen Dokument bearbeiten, suchen und ändern.

Tesseract OCR

Tesseract OCR ist eine Open-Source-Software zur optischen Zeichenerkennung (OCR) engine, die manchmal auch nur als Tesseract bezeichnet wird. Tesseract, das ursprünglich in den 1980er Jahren von den Hewlett-Packard Laboratories entwickelt wurde und heute von Google gepflegt wird, ist eine der beliebtesten OCR-Engines, die heute verwendet werden.

Die Hauptfunktion von Tesseract besteht darin, den in Bildern oder gescannten Dokumenten enthaltenen Text zu erkennen und in maschinenlesbaren Text zu übersetzen. Dadurch wird Text bearbeitbar, durchsuchbar und manipulierbar, da die Benutzer Text aus einer Vielzahl von Quellen extrahieren können, einschließlich der Analyse gescannter Dokumente, Fotos und PDF-Dateien.

Hauptmerkmale von Tesseract OCR

  • Open-Source: Tesseract ist unter den Bedingungen der Apache License 2.0 für jedermann zur Nutzung, Veränderung und Verbreitung frei verfügbar. Sein Open-Source-Design hat dank der Beiträge der Gemeinschaft zu seiner breiten Akzeptanz und ständigen Verbesserung beigetragen.
  • Sprachunterstützung: Tesseract ist in der Lage, zusätzlich zu diesen Sprachen mehr als 100 verschiedene Schriften und Zeichensätze zu erkennen. Aufgrund seiner Mehrsprachigkeit ist es für eine Vielzahl von OCR-Anwendungen in verschiedenen Sprachen und geografischen Gebieten geeignet.
  • Genauigkeit: Tesseract ist bekannt für seine exzellente Texterkennungsgenauigkeit, insbesondere wenn es korrekt eingerichtet und mit einschlägigen Daten trainiert wurde. Es kann zuverlässig Text aus Fotos mit einer Vielzahl von Problemen extrahieren, darunter verzerrte Winkel, schlechte Qualität und unzureichende Beleuchtung.
  • Optionen: Tesseract bietet eine Vielzahl von Konfigurations- und Anpassungsmöglichkeiten. Für bestimmte Anwendungssituationen können die Benutzer verschiedene Parameter anpassen, um die OCR-Leistung zu maximieren. Darüber hinaus kann Tesseract mit einer Vielzahl von Plattformen und Computersprachen gekoppelt werden, wie z.B. Java, C++, Python und C#, so dass Entwickler die Möglichkeiten von Tesseract in einer breiten Palette von Anwendungen nutzen können.
  • Tesseract wird ständig weiterentwickelt und gewartet. Regelmäßig werden neue Funktionen hinzugefügt, um die Genauigkeit, die Leistung und die Sprachunterstützung zu verbessern. Die Open-Source-Gemeinschaft unterstützt die kontinuierliche Weiterentwicklung von Tesseract und garantiert, dass das OCR-Tool immer auf dem neuesten Stand der Technik ist.

Tesseract OCR für .NET installieren

Die Installation von Tesseract OCR auf Ihrem Computer ist der erste Schritt. Das offizielle Tesseract GitHub Repository ist der Ort, an dem Sie das Tesseract Installationsprogramm erhalten können: https://github.com/tesseract-ocr/tesseract.

Um Tesseract OCR auf Ihrem Computer zu installieren, befolgen Sie die für Ihr Betriebssystem spezifischen Installationsanweisungen (Windows, macOS oder Linux). Nach der Installation von Tesseract OCR verwenden Sie den NuGet-Paketmanager von Visual Studio, um den Tesseract.NET-Wrapper zu Ihrem C#-Projekt hinzuzufügen.

Navigieren Sie nach dem Öffnen Ihres C#-Projekts in Visual Studio zu Tools -> NuGet Package Manager -> Manage NuGet Packages for Solution. Sie sollten in der Lage sein, das Paket mit dem Namen "Tesseract" oder "Tesseract.NET" zu finden, indem Sie im NuGet Package Manager nach "Tesseract" suchen. Um das Paket in Ihr Projekt einzubinden, wählen Sie es aus und klicken Sie auf Installieren.

Tesseract vs. Microsoft OCR (Vergleich der OCR-Funktionen): Abbildung 1 - Tesseract

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-Datei und der Sprachdateien anzugeben. Hier ist ein Beispiel:

using Tesseract;
class Program
{
    static void Main(string [] args)
    {
        using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
        {
            using (var img = Pix.LoadFromFile("image.png"))
            {
                using (var page = engine.Process(img))
                {
                    var text = page.GetText();
                    Console.WriteLine(text);
                }
            }
        }
    }
}
using Tesseract;
class Program
{
    static void Main(string [] args)
    {
        using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
        {
            using (var img = Pix.LoadFromFile("image.png"))
            {
                using (var page = engine.Process(img))
                {
                    var text = page.GetText();
                    Console.WriteLine(text);
                }
            }
        }
    }
}
Imports Tesseract
Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Using engine = New TesseractEngine("path_to_tesseract_folder", "eng", EngineMode.Default)
			Using img = Pix.LoadFromFile("image.png")
				Using page = engine.Process(img)
					Dim text = page.GetText()
					Console.WriteLine(text)
				End Using
			End Using
		End Using
	End Sub
End Class
VB   C#

Geben Sie dazu in den TesseractEngine-Konstruktoroptionen den Ort Ihres Tesseract-Installationsverzeichnisses und die Sprache(n) an, die Sie verwenden möchten. Ersetzen Sie "eng" durch den Sprachencode für die gewünschte(n) Sprache(n) (z. B. "eng" für Englisch) und "path_to_tesseract_folder" mit dem tatsächlichen Pfad zu Ihrem Tesseract-Installationsverzeichnis.

Nachdem Sie Tesseract in Ihrem C#-Projekt eingerichtet haben, können Sie nun die OCR-Funktionen nutzen, um Text aus Bildern zu extrahieren. Die TesseractEngine-Instanz kann zur Verarbeitung eines Bildes verwendet werden, nachdem es mit der Pix-Klasse geladen wurde, um Text zu extrahieren oder OCR auf eine Bilddatei anzuwenden, wobei "image.png" durch den Pfad der Bilddatei ersetzt wird.

Was ist Microsoft OCR?

Das Cognitive Services-Paket von Microsoft umfasst Microsoft OCRdie manchmal auch als Microsoft Optical Character Recognition bezeichnet wird. Microsoft Azure bietet eine cloudbasierte optische Zeichenerkennung (OCR) lösung, die Text aus Dokumenten und Fotos mit erweiterten Texterkennungsfunktionen extrahieren kann. Microsoft OCR nutzt tiefe neuronale Netze und maschinelle Lernverfahren, um Text aus einer Vielzahl von Quellen mit hervorragender Genauigkeit zu erkennen.

Wesentliche Merkmale

  • Integration mit Azure Cognitive Services: Microsoft OCR funktioniert im Einklang mit Azure Cognitive Services, einer Sammlung von KI-gestützten Microsoft Azure APIs und Diensten. Dank dieser Verbindung können Entwickler Microsoft OCR-Funktionen mit Hilfe von REST-APIs, SDKs und Client-Bibliotheken problemlos in Anwendungen und Workflows integrieren.
  • Hohe Genauigkeit und Leistung: Aufgrund seiner ausgefeilten maschinellen Lernmodelle, die auf enormen Datensätzen trainiert wurden, bietet Microsoft OCR eine Texterkennung mit hoher Genauigkeit und Leistung. Mit seiner Fähigkeit, Text aus Fotos mit komplizierten Layouts, verschiedenen Schriftarten und handgeschriebenem Text präzise zu extrahieren, ist er für ein breites Spektrum von OCR-Anwendungen geeignet.
  • Skalierbarkeit und Verlässlichkeit: Microsoft OCR, eine Komponente von Azure Cognitive Services, bietet Skalierbarkeit und Zuverlässigkeit und eignet sich daher für Anwendungen mit unterschiedlichen Verarbeitungsanforderungen. Es kann große Dokumentenmengen und mehrere Anfragen gleichzeitig effektiv verwalten und garantiert Betriebszeit und stabile Leistung.
  • Mehrsprachige Unterstützung: Microsoft OCR ermöglicht, wie andere OCR-Programme auch, eine mehrsprachige Erkennung, die es dem Benutzer ermöglicht, Text aus Fotos in einer Vielzahl von Sprachen und Zeichensätzen zu extrahieren. Dank seiner mehrsprachigen Unterstützung ist es für weltweite Anwendungen mit einer Vielzahl von Sprachanforderungen geeignet.

    Sie müssen Microsoft OCR mit Azure Cognitive Services - insbesondere der Computer Vision API - kombinieren, um es in einem C#-Projekt zu verwenden. So können Sie beginnen:

Ein Azure-Konto erstellen

Sie müssen ein Azure-Konto erstellen, wenn Sie noch keins haben. Sie können ein kostenloses Azure-Konto erstellen und während der Testphase Zugang zu verschiedenen Diensten erhalten.

Azure Cognitive Services konfigurieren

Der Computer Vision-Dienst in Azure Cognitive Services muss konfiguriert werden, wenn Sie ein Azure-Konto haben.

  • Öffnen Sie die Azure-Portal.
  • Suchen Sie nach "Computer Vision", indem Sie auf "Create a resource" klicken.
  • Klicken Sie auf "Erstellen", nachdem Sie den Dienst Computer Vision ausgewählt haben.
  • Um den Dienst zu konfigurieren, wählen Sie das Abonnement und die Preisstufe, indem Sie den Aufforderungen folgen.
  • Nachdem der Dienst erstellt wurde, gehen Sie zur Ressource und speichern den Abonnementschlüssel und die Endpunkt-URL; sie brauchen sie, um die Echtheit Ihrer Abfragen zu überprüfen.

Installieren Sie das Azure Cognitive Services SDK

Die Nutzung von Microsoft Azure ist möglich. Um mit der Computer Vision API in Ihrem C#-Projekt zu kommunizieren, verwenden Sie das NuGet-Paket CognitiveServices.Vision.ComputerVision.

Navigieren Sie nach dem Öffnen Ihres C#-Projekts in Visual Studio zu Tools -> NuGet Package Manager und dann zu Manage NuGet Packages for Solution.

Installieren Sie das Paket, indem Sie eine Suche nach "Microsoft.Azure.CognitiveServices.Vision.ComputerVision" durchführen.

Tesseract vs. Microsoft OCR (Vergleich der OCR-Funktionen): Abbildung 2 - Microsoft.Azure.CognitiveServices.Vision.ComputerVision

Microsoft OCR mit C#

Nach der Installation des SDK können Sie die Computer Vision API verwenden, um OCR durchzuführen. Ein einführendes Beispiel für die Verwendung der Computer Vision API für die OCR eines Bildes finden Sie unten:

using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
class Program
{
    static async System.Threading.Tasks.Task Main(string [] args)
    {
        var endpoint = "YOUR_ENDPOINT";
        var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
        var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
        {
            Endpoint = endpoint
        };
        var result = await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed);
        foreach (var region in result.Regions)
        {
            foreach (var line in region.Lines)
            {
                foreach (var word in line.Words)
                {
                    Console.WriteLine(word.Text);
                }
            }
        }
    }
}
using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
class Program
{
    static async System.Threading.Tasks.Task Main(string [] args)
    {
        var endpoint = "YOUR_ENDPOINT";
        var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
        var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
        {
            Endpoint = endpoint
        };
        var result = await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed);
        foreach (var region in result.Regions)
        {
            foreach (var line in region.Lines)
            {
                foreach (var word in line.Words)
                {
                    Console.WriteLine(word.Text);
                }
            }
        }
    }
}
Imports System
Imports Microsoft.Azure.CognitiveServices.Vision.ComputerVision
Imports Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models
Friend Class Program
	Shared Async Function Main(ByVal args() As String) As System.Threading.Tasks.Task
		Dim endpoint = "YOUR_ENDPOINT"
		Dim subscriptionKey = "YOUR_SUBSCRIPTION_KEY"
		Dim client = New ComputerVisionClient(New ApiKeyServiceClientCredentials(subscriptionKey)) With {.Endpoint = endpoint}
		Dim result = Await client.RecognizeTextAsync("image.png", TextRecognitionMode.Printed)
		For Each region In result.Regions
			For Each line In region.Lines
				For Each word In line.Words
					Console.WriteLine(word.Text)
				Next word
			Next line
		Next region
	End Function
End Class
VB   C#

Um OCR an einer Bilddatei durchzuführen, ersetzen Sie "image.png" im obigen Codebeispiel durch den Pfad zur Bilddatei. Dieser Code ruft den erkannten Text aus dem Bild ab, indem er ihn an die Computer Vision API sendet. Die Endpunkt-URL und der Abonnementschlüssel, die Sie nach der Konfiguration des Computer Vision-Dienstes in Azure Cognitive Services erhalten haben, sollten durch "YOUR_ENDPOINT" und "YOUR_SUBSCRIPTION_KEY" ersetzt werden.

Was ist IronOCR?

Entwickler können mit IronOCR, einer OCR-Bibliothek für .NET, Texterkennungsfunktionen in ihre C#- oder VB.NET-Anwendungen einbauen. Es bietet eine benutzerfreundliche API für die Textextraktion aus PDFs, Bildern und anderen Medientypen. Iron Software, ein Softwareentwicklungsunternehmen, das sich auf .NET-Komponenten und -Bibliotheken spezialisiert hat, erstellt und pflegt IronOCR.

Hauptmerkmale von IronOCR

  • Einfache Integration: Sie können IronOCR mit Leichtigkeit in Ihre C#- oder VB.NET-Projekte integrieren, indem Sie NuGet-Pakete verwenden oder direkt in Ihrem Projekt auf die Bibliothek zugreifen.
  • Vielseitige OCR: IronOCR kann Text aus einer Vielzahl von Quellen erkennen, z. B. aus Screenshots, gescannten Dokumenten, PDF-Dateien und Fotos. Es kann mehrere Bildtypen verarbeiten, darunter BMP, TIFF, PNG und JPEG.
  • Präzise Texterkennung: IronOCR erreicht durch den Einsatz hochentwickelter OCR-Algorithmen eine hervorragende Texterkennungsgenauigkeit. Text in Fotos mit unterschiedlichen Auflösungen, Schriftarten und Hintergründen kann damit zuverlässig extrahiert werden.
  • Unterstützung für mehrere Sprachen: IronOCR ist für mehrsprachige Anwendungen geeignet, da es mehrere Sprachen erkennen kann. Es ermöglicht ein individuelles Sprachtraining und verfügt über integrierte Sprachpakete für gängige Sprachen.
  • PDF-Text-Extraktion: Sowohl bei gescannten als auch bei bildbasierten PDFs kann IronOCR den Text extrahieren. Beim Entfernen von Text aus PDF-Dokumenten können die ursprüngliche Formatierung und das Layout des Inhalts beibehalten werden.
  • Bildvorverarbeitung: Vor der OCR-Verarbeitung kann IronOCR die Qualität der eingehenden Bilder durch Bildvorverarbeitungsfunktionen verbessern. Dazu gehören Aufgaben wie Schräglagenkorrektur, Kontraständerung und Rauschunterdrückung.

IronOCR mit C#

Hier ist ein einfaches C#-Beispiel:

var Ocr = new IronTesseract(); // nothing to configure            
Ocr.Language = OcrLanguage.EnglishBest;                                     
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;            
using (var Input = new OcrInput())      
{          
    Input.AddImage(@"Demo.png");         
    var Result = Ocr.Read(Input);       
    Console.WriteLine(Result.Text);        
    Console.ReadKey();          
}
var Ocr = new IronTesseract(); // nothing to configure            
Ocr.Language = OcrLanguage.EnglishBest;                                     
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;            
using (var Input = new OcrInput())      
{          
    Input.AddImage(@"Demo.png");         
    var Result = Ocr.Read(Input);       
    Console.WriteLine(Result.Text);        
    Console.ReadKey();          
}
Dim Ocr = New IronTesseract() ' nothing to configure
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using Input = New OcrInput()
	Input.AddImage("Demo.png")
	Dim Result = Ocr.Read(Input)
	Console.WriteLine(Result.Text)
	Console.ReadKey()
End Using
VB   C#

Mit dem oben genannten Code können wir Daten aus dem Bild mit der höchsten OCR-Genauigkeit extrahieren. Darüber hinaus erleichtert IronOCR die Konvertierung von Text aus handschriftlichen Dokumenten in editierbare Dateiformate, einschließlich Word. Das gescannte Dokument kann von uns auch in eine durchsuchbare PDF-Datei umgewandelt werden. Mit IronOCR kann das Ergebnis in verschiedenen OCR-Ausgabeformaten gespeichert werden. Weitere Informationen über den Code finden Sie unter hier.

Bildquelle:

Tesseract vs. Microsoft OCR (Vergleich der OCR-Funktionen): Abbildung 3 - Eingabebild

Ergebnis:

Tesseract vs. Microsoft OCR (Vergleich der OCR-Funktionen): Abbildung 4 - Konsolenausgabe

Schlussfolgerung

Zusammenfassend lässt sich sagen, dass Tesseract und Microsoft OCR mit ihren jeweiligen Vor- und Nachteilen starke OCR-Funktionen für C#-Entwickler bieten. Da Tesseract anpassbar und flexibel ist, ist es eine gute Wahl für Anwendungen, die ein hohes Maß an Feinabstimmung erfordern. Microsoft OCR ist jedoch die beste Option für C#-Anwendungen, die anspruchsvolle Texterkennungsfunktionen benötigen, da es eine hohe Genauigkeit, Skalierbarkeit und eine nahtlose Verbindung mit Azure-Diensten bietet. Für ihre C#-Projekte sollten Entwickler ihre individuellen Bedürfnisse, Änderungsanforderungen und finanziellen Grenzen abwägen, bevor sie sich zwischen Tesseract und Microsoft OCR entscheiden.

Und schließlich ist IronOCR eine bemerkenswerte OCR-Lösung, die sich durch hervorragende Integration, Flexibilität und Genauigkeit auszeichnet. IronOCR ist aufgrund seiner unvergleichlichen Genauigkeit, seiner fortschrittlichen Algorithmen und seiner Fähigkeit, eine Vielzahl von Dokumenttypen, einschließlich handgeschriebener Dokumente, zu erkennen, die derzeit beste OCR-Lösung auf dem Markt. Da sich IronOCR nahtlos in zahlreiche Dokumente und gängige Computersprachen integrieren lässt, gewährleistet es die Zugänglichkeit für Entwickler und bietet gleichzeitig eine intuitive Benutzeroberfläche.

Sie können die kostengünstige Entwicklungsversion von IronOCR kostenlos testen, und wenn Sie das IronOCR-Paket kaufen, erhalten Sie eine lebenslange Lizenz. Mit einem Startpreis von $749 ist das IronOCR-Bundle ein hervorragendes Angebot, da es einen einzigen Preis für mehrere Geräte bietet. Um mehr über die Kosten zu erfahren, besuchen Sie das IronOCR website. Klicken Sie hier link um mehr über die Produkte von Iron Software zu erfahren.

< PREVIOUS
Abbyy Finereader vs. Tesseract (Vergleich der OCR-Funktionen)
NÄCHSTES >
Invoice OCR Open Source (Vergleich kostenloser und kostenpflichtiger Tools)

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 2,561,036 Lizenzen anzeigen >