OCR-WERKZEUGE

Windows OCR Engine vs. Tesseract: Ein detaillierter Vergleich

Veröffentlicht 3. April 2024
Teilen Sie:

Im heutigen digitalen Zeitalter ist die optische Zeichenerkennung (Optical Character Recognition(OCR) technologie ist aus verschiedenen Branchen nicht mehr wegzudenken und ermöglicht die Umwandlung von Bildern und gescannten Dokumenten in bearbeitbaren und durchsuchbaren Text.

Unter den vielen verfügbaren OCR-Programmen, wie z. B. Google Cloud Vision(Cloud Vision API)adobe Acrobat Pro DC, ABBYY Finereader und viele andere, Windows OCR Engine vs. Tesseract, undIronOCR heben sich als herausragende Konkurrenten hervor, die jeweils einzigartige Funktionen und Möglichkeiten zur Unterstützung der Dokumentenanalyse bieten.

Ziel dieses Artikels ist es, eine umfassende vergleichende Analyse dieser drei OCR-Engines vorzunehmen und ihre Genauigkeit, Leistung und einfache Integration zu bewerten.

1. Einführung in OCR-Engines

OCR-Engines sind Softwaretools zur Erkennung und Extraktion von Klartext aus Bildern, PDF-Dateien und anderen gescannten Dokumenten. Sie verwenden hochentwickelte Algorithmen und maschinelle Lerntechniken, um Zeichen genau zu erkennen und in eine maschinenlesbare Textdatei zu konvertieren. Windows OCR Engine, Tesseract und IronOCR sind drei weit verbreitete OCR-Lösungen, die jeweils ihre Stärken und Anwendungen haben.

2. Windows OCR-Engine

DieWindows OCR Enginedie in das Windows-Betriebssystem integrierte Software bietet eine komfortable und benutzerfreundliche Lösung für die Extraktion von Text aus Eingabebildern und gescannten Dokumenten. Mithilfe fortschrittlicher Bildverarbeitungstechniken kann es Text in verschiedenen Sprachen und Schriftarten genau erkennen. Die Windows OCR Engine ist über die Windows Runtime API zugänglich, was eine nahtlose Integration in Windows-Anwendungen mit den Möglichkeiten eines Befehlszeilen-Tools ermöglicht.

2.1 Hauptmerkmale der Windows OCR Engine

  • Sprachunterstützung: Die Windows-OCR-Engine unterstützt viele Sprachen und eignet sich daher für mehrsprachige Dokumente.
  • Bildverarbeitung: Es verwendet hochentwickelte Bildverarbeitungsalgorithmen, um die Erkennungsgenauigkeit von gedrucktem Text zu verbessern, selbst bei Bildern von schlechter Qualität.
  • Integration in Windows-Anwendungen: Die Windows OCR Engine lässt sich nahtlos in Windows-Anwendungen integrieren, so dass Entwickler OCR-Funktionen vollständig in ihre Software einbinden können.

2.2 Code Beispiel

using System;
using System.IO;
using System.Text;
using System.Threading.Tasks;
class Program
{
    static async Task Main(string [] args)
    {
        // Provide the path to the image file
        string imagePath = "sample.png";
        try
        {
            // Instantiate the program class
            Program program = new Program();
            // Call the ExtractText method to extract text from the image
            string extractedText = await program.ExtractText(imagePath);
            // Display the extracted text
            Console.WriteLine("Extracted Text:");
            Console.WriteLine(extractedText);
        }
        catch (Exception ex)
        {
            Console.WriteLine("An error occurred: " + ex.Message);
        }
    }
    public async Task<string> ExtractText(string image)
    {
        // Initialize StringBuilder to store extracted text
        StringBuilder text = new StringBuilder();
        try
        {
            // Open the image file stream
            using (var fileStream = System.IO.File.OpenRead(image))
            {
                Console.WriteLine("Extracted Text:");
                // Create a BitmapDecoder from the image file stream
                var bmpDecoder = await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(fileStream.AsRandomAccessStream());
                // Get the software bitmap from the decoder
                var softwareBmp = await bmpDecoder.GetSoftwareBitmapAsync();
                // Create an OCR engine from user profile languages
                var ocrEngine = Windows.Media.Ocr.OcrEngine.TryCreateFromUserProfileLanguages();
                // Recognize text from the software bitmap
                var ocrResult = await ocrEngine.RecognizeAsync(softwareBmp);
                // Append each line of recognized text to the StringBuilder
                foreach (var line in ocrResult.Lines)
                {
                    text.AppendLine(line.Text);
                }
            }
        }
        catch (Exception ex)
        {
            throw ex; // Propagate the exception
        }
        // Return the extracted text
        return text.ToString();
    }
}
using System;
using System.IO;
using System.Text;
using System.Threading.Tasks;
class Program
{
    static async Task Main(string [] args)
    {
        // Provide the path to the image file
        string imagePath = "sample.png";
        try
        {
            // Instantiate the program class
            Program program = new Program();
            // Call the ExtractText method to extract text from the image
            string extractedText = await program.ExtractText(imagePath);
            // Display the extracted text
            Console.WriteLine("Extracted Text:");
            Console.WriteLine(extractedText);
        }
        catch (Exception ex)
        {
            Console.WriteLine("An error occurred: " + ex.Message);
        }
    }
    public async Task<string> ExtractText(string image)
    {
        // Initialize StringBuilder to store extracted text
        StringBuilder text = new StringBuilder();
        try
        {
            // Open the image file stream
            using (var fileStream = System.IO.File.OpenRead(image))
            {
                Console.WriteLine("Extracted Text:");
                // Create a BitmapDecoder from the image file stream
                var bmpDecoder = await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(fileStream.AsRandomAccessStream());
                // Get the software bitmap from the decoder
                var softwareBmp = await bmpDecoder.GetSoftwareBitmapAsync();
                // Create an OCR engine from user profile languages
                var ocrEngine = Windows.Media.Ocr.OcrEngine.TryCreateFromUserProfileLanguages();
                // Recognize text from the software bitmap
                var ocrResult = await ocrEngine.RecognizeAsync(softwareBmp);
                // Append each line of recognized text to the StringBuilder
                foreach (var line in ocrResult.Lines)
                {
                    text.AppendLine(line.Text);
                }
            }
        }
        catch (Exception ex)
        {
            throw ex; // Propagate the exception
        }
        // Return the extracted text
        return text.ToString();
    }
}
Imports System
Imports System.IO
Imports System.Text
Imports System.Threading.Tasks
Friend Class Program
	Shared Async Function Main(ByVal args() As String) As Task
		' Provide the path to the image file
		Dim imagePath As String = "sample.png"
		Try
			' Instantiate the program class
			Dim program As New Program()
			' Call the ExtractText method to extract text from the image
			Dim extractedText As String = Await program.ExtractText(imagePath)
			' Display the extracted text
			Console.WriteLine("Extracted Text:")
			Console.WriteLine(extractedText)
		Catch ex As Exception
			Console.WriteLine("An error occurred: " & ex.Message)
		End Try
	End Function
	Public Async Function ExtractText(ByVal image As String) As Task(Of String)
		' Initialize StringBuilder to store extracted text
		Dim text As New StringBuilder()
		Try
			' Open the image file stream
			Using fileStream = System.IO.File.OpenRead(image)
				Console.WriteLine("Extracted Text:")
				' Create a BitmapDecoder from the image file stream
				Dim bmpDecoder = Await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(fileStream.AsRandomAccessStream())
				' Get the software bitmap from the decoder
				Dim softwareBmp = Await bmpDecoder.GetSoftwareBitmapAsync()
				' Create an OCR engine from user profile languages
				Dim ocrEngine = Windows.Media.Ocr.OcrEngine.TryCreateFromUserProfileLanguages()
				' Recognize text from the software bitmap
				Dim ocrResult = Await ocrEngine.RecognizeAsync(softwareBmp)
				' Append each line of recognized text to the StringBuilder
				For Each line In ocrResult.Lines
					text.AppendLine(line.Text)
				Next line
			End Using
		Catch ex As Exception
			Throw ex ' Propagate the exception
		End Try
		' Return the extracted text
		Return text.ToString()
	End Function
End Class
VB   C#

2.2.1 Ausgabe

Windows OCR Engine vs. Tesseract (Vergleich der OCR-Funktionen): Abbildung 1 - Konsolenausgabe für den Code der Windows OCR-Engine

3. Tesserakt

*Tesserakt, eine von Google entwickelte Open-Source-OCR-Engine, hat aufgrund ihrer Genauigkeit und Vielseitigkeit große Popularität erlangt. Es unterstützt über 100 Sprachen und kann verschiedene Bildformate verarbeiten, darunter TIFF, JPEG und PNG. Die Tesseract OCR Engine nutzt Deep-Learning-Algorithmen und neuronale Netze, um eine hohe Texterkennungsgenauigkeit zu erreichen, so dass sie für eine Vielzahl von Anwendungen geeignet ist.

3.1 Hauptmerkmale von Tesseract

  • Sprachunterstützung: Die Tesseract-Engine unterstützt über 100 Sprachen, einschließlich komplexer Schriften wie Arabisch und Chinesisch.
  • Bildvorverarbeitung: Die Software bietet umfangreiche Bildvorverarbeitungsfunktionen, einschließlich Entzerrung, Binarisierung und Rauschunterdrückung, um die Genauigkeit der Texterkennung zu verbessern.
  • Anpassungsoptionen: Mit Tesseract können Benutzer die OCR-Parameter feinabstimmen und benutzerdefinierte Modelle für bestimmte Anwendungsfälle trainieren, um die Genauigkeit und Leistung zu verbessern.

3.2 Code Beispiel

using Patagames.Ocr;
using (var api = OcrApi.Create())
{
    api.Init(Patagames.Ocr.Enums.Languages.English);
    string plainText = api.GetTextFromImage(@"C:\Users\buttw\source\repos\ironqr\ironqr\bin\Debug\net5.0\Iron.png");
    Console.WriteLine(plainText);
}
using Patagames.Ocr;
using (var api = OcrApi.Create())
{
    api.Init(Patagames.Ocr.Enums.Languages.English);
    string plainText = api.GetTextFromImage(@"C:\Users\buttw\source\repos\ironqr\ironqr\bin\Debug\net5.0\Iron.png");
    Console.WriteLine(plainText);
}
Imports Patagames.Ocr
Using api = OcrApi.Create()
	api.Init(Patagames.Ocr.Enums.Languages.English)
	Dim plainText As String = api.GetTextFromImage("C:\Users\buttw\source\repos\ironqr\ironqr\bin\Debug\net5.0\Iron.png")
	Console.WriteLine(plainText)
End Using
VB   C#

3.2.1 Ausgabe

Windows OCR Engine vs. Tesseract (Vergleich der OCR-Funktionen): Abbildung 2 - Konsolenausgabe für den Tesserat-Code

4. IronOCR

IronOCR, eine von Iron Software entwickelte leistungsstarke OCR-Engine, zeichnet sich durch ihre außergewöhnliche Genauigkeit, Benutzerfreundlichkeit und vielseitige Sprachunterstützung aus. Es bietet OCR-Funktionalität vor Ort und unterstützt über 127 Sprachen, wodurch es sich für globale Anwendungen eignet. IronOCR nutzt fortschrittliche Algorithmen des maschinellen Lernens und Cloud-Vision-Technologie, um selbst in schwierigen Szenarien präzise Texterkennungsergebnisse zu liefern.

4.1 Hauptmerkmale von IronOCR

  • Hohe Genauigkeit: IronOCR bietet eine branchenführende Genauigkeit bei der Texterkennung und gewährleistet zuverlässige Ergebnisse bei verschiedenen Dokumenttypen und Sprachen.
  • Vielseitige Sprachunterstützung: Die Software unterstützt über 127 Sprachen und bietet umfassende Sprachpakete für eine nahtlose mehrsprachige Texterkennung.
  • Einfache Integration: IronOCR bietet eine unkomplizierte Integration in .NET-Anwendungen, mit intuitiven APIs und einer umfangreichen Dokumentation, um den Entwicklungsprozess mit Vorverarbeitung und Nachverarbeitung von Originalbildern zur Textextraktion zu optimieren.

4.2 IronOCR installieren

Bevor wir uns dem Programmierbeispiel zuwenden, wollen wir sehen, wie IronOCR mit dem NuGet Package Manager installiert wird.

  1. Gehen Sie in Visual Studio zum Menü Tools und wählen Sie NuGet Package Manager.

    1. Es erscheint eine neue Liste, in der Sie den NuGet Package Manager für Lösungen auswählen.

    Windows OCR Engine vs. Tesseract (Vergleich der OCR-Funktionen): Abbildung 3 - Wo finden Sie den Visual Studio NuGet Paketmanager?

  2. Es öffnet sich ein neues Fenster. Gehen Sie auf die Registerkarte 'Durchsuchen' und geben Sie 'IronOCR' in die Suchleiste ein.

    1. Es erscheint eine Liste von Paketen Wählen Sie das neueste IronOCR-Paket aus und klicken Sie auf Installieren.

    Windows OCR Engine vs. Tesseract (Vergleich der OCR-Funktionen): Abbildung 4 - Installation des IronOCR-Pakets

4.3 Codebeispiel (C#)

using IronOcr;
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
var result = ocr.Read("C:\\Users\\buttw\\source\\repos\\ironqr\\ironqr\\bin\\Debug\\net5.0\\Iron.png");
Console.WriteLine(result.Text);
using IronOcr;
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
var result = ocr.Read("C:\\Users\\buttw\\source\\repos\\ironqr\\ironqr\\bin\\Debug\\net5.0\\Iron.png");
Console.WriteLine(result.Text);
Imports IronOcr
Private ocr = New IronTesseract()
ocr.Language = OcrLanguage.English
Dim result = ocr.Read("C:\Users\buttw\source\repos\ironqr\ironqr\bin\Debug\net5.0\Iron.png")
Console.WriteLine(result.Text)
VB   C#

4.3.1 Ausgabe

Windows OCR Engine vs. Tesseract (Vergleich der OCR-Funktionen): Abbildung 5 - Konsolenausgabe für den IronOCR-Code

5. Vergleichende Bewertung

5.1 Genauigkeit und Leistung

  • Windows OCR Engine und Tesseract bieten eine gute Genauigkeit, haben aber möglicherweise Probleme mit komplexen Layouts und handgeschriebenem Text.
  • IronOCR: Hervorragende Genauigkeit und zuverlässige Ergebnisse bei verschiedenen Dokumenttypen und Sprachen, einschließlich handschriftlichem Text und verrauschten Bildern.

5.2 Leichtigkeit der Integration

  • Windows OCR-Engine: Lässt sich nahtlos in Windows-Anwendungen integrieren, bietet aber keine Anpassungsmöglichkeiten.
  • Tesseract: Erfordert zusätzliche Konfiguration und Abhängigkeiten für die Integration, bietet aber umfangreiche Anpassungsmöglichkeiten.
  • IronOCR: Bietet eine einfache Integration in .NET-Anwendungen, mit intuitiven APIs und umfassender Dokumentation.

5.3 Sprachunterstützung

  • Die Windows OCR Engine und Tesseract unterstützen im Vergleich zu Tesseract und IronOCR eine begrenzte Anzahl von Sprachen.
  • IronOCR: Unterstützt über 127 Sprachen und eignet sich damit für globale Anwendungen.

    6. Schlussfolgerung

    Zusammenfassend lässt sich sagen, dass die Windows OCR Engine und Tesseract zwar eine beliebte Wahl für die Texterkennung sind,IronOCR entwickelt sich zur genauesten und vielseitigsten OCR-Engine. Die branchenführende Genauigkeit, die umfassende Sprachunterstützung und die einfache Integration machen sie zu einer herausragenden Lösung für Unternehmen und Entwickler, die zuverlässige OCR-Funktionen suchen. Durch den Einsatz von IronOCR können Unternehmen ihre Arbeitsabläufe in der Dokumentenverarbeitung optimieren, die Genauigkeit der Datenextraktion verbessern und wertvolle Erkenntnisse aus gescannten Dokumenten und Bildern gewinnen.

    IronOCR bietet einekostenlos testen. Um mehr über IronOCR und seine Funktionen zu erfahren, besuchen Sie*hier.

< PREVIOUS
Cloud-basierte OCR (OCR-Funktionen im Vergleich)
NÄCHSTES >
Azure OCR vs. Google OCR (Vergleich der OCR-Funktionen)

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

Gratis NuGet-Download Downloads insgesamt: 2,791,504 Lizenzen anzeigen >