Schnelle OCR-Konfiguration in C# für optimale Leistung

This article was translated from English: Does it need improvement?
Translated
View the article in English

Die schnelle Konfiguration von IronOCR ermöglicht eine bis zu 17 % schnellere OCR-Verarbeitungsgeschwindigkeit ohne Genauigkeitsverlust, indem der Sprachmodus EnglishFast verwendet und unnötige Funktionen wie das Lesen von Barcodes deaktiviert werden. Diese Optimierung ist ideal für die Bearbeitung großer Mengen, bei denen Zeit eine wichtige Rolle spielt.

IronOCR funktioniert sofort nach dem Auspacken. Wenn Geschwindigkeit Vorrang vor absoluter Genauigkeit hat, bietet IronOCR eine schnelle Konfiguration. Diese Einstellung bietet erhebliche Leistungssteigerungen beim Scannen mit minimalen Auswirkungen auf die Genauigkeit und ist damit viel schneller als die standardmäßige OCR-Konfiguration.

Dieser Artikel zeigt, wie man eine schnelle Konfiguration einrichtet und vergleicht Benchmark-Ergebnisse zwischen schnellen und Standard-IronOCR-Konfigurationen. Ob Sie gescannte Dokumente, PDFs oder Bilder verarbeiten, diese Optimierungen können die Leistung Ihrer Anwendung erheblich verbessern.

Erste Schritte mit IronOCR


als-Überschrift:2(Schnellstart: Konfigurieren von Fast OCR in C#)

Die wichtigste Komponente für eine schnelle Konfiguration ist die Sprache-Eigenschaft. Die Einstellung der Eigenschaft Sprache auf OcrLanguage.EnglishFast gibt der Geschwindigkeit den Vorrang vor einem kleinen potenziellen Preis für die Genauigkeit. Auf diese Weise kann IronOCR in großen Mengen viel schneller lesen, was vor allem bei geschäftskritischen Anwendungen, bei denen Zeit eine wichtige Rolle spielt, von Vorteil ist.

Neben der Einstellung der schnellen Sprache können Sie weitere Geschwindigkeitsvorteile erzielen, indem Sie unnötige Konfigurationen deaktivieren, z. B. ReadBarCodes. Lassen Sie IronOCR die Seitensegmentierung automatisch erkennen, um die Einrichtung einfach zu halten. Weitere fortgeschrittene Konfigurationsoptionen finden Sie in unserem Tesseract detailed configuration guide.

Das folgende Codebeispiel verarbeitet das folgende Eingabebild:

Welches Eingabeformat sollte ich verwenden?

Moby Dick-Eröffnungstext in Weiß auf dunklem Hintergrund mit Ishmaels Einleitung

Welchen Code benötige ich für eine schnelle Konfiguration?

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronOCR mit dem NuGet-Paketmanager.

    PM > Install-Package IronOcr

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    /* :path=/static-assets/ocr/content-code-examples/how-to/ocr-fast-configuration.cs */
    using IronOcr;
    using System;
    
    var ocrTesseract = new IronTesseract();
    
    // Fast Dictionary
    ocrTesseract.Language = OcrLanguage.EnglishFast;
    
    // Turn off unneeded options
    ocrTesseract.Configuration.ReadBarCodes = false;
    
    // Assume text is laid out neatly in an orthogonal document
    ocrTesseract.Configuration.PageSegmentationModus = TesseractPageSegmentationModus.Auto;
    
    using var ocrInput = new OcrInput();
    ocrInput.LoadImage("image.png");
    
    var ocrResult = ocrTesseract.Read(ocrInput);
    Console.WriteLine(ocrResult.Text);
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronOCR in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer

Welches Ergebnis kann ich erwarten?

Visual Studio-Editor zeigt den Anfangstext des Romans Moby Dick an

Dies ist die aus dem obigen Text extrahierte Ausgabe. Die OCR-Engine erfasst den literarischen Text genau und behält dabei die ursprüngliche Formatierung und Struktur bei. Die schnelle Konfiguration liefert hervorragende Ergebnisse für klare, kontrastreiche Texte wie dieses Beispiel.


Wie ist die Schnellkonfiguration im Vergleich zum Standard?

Um die Auswirkungen in der Praxis zu demonstrieren, vergleichen wir die Leistung von Standard- und Schnellkonfiguration. Wir verwenden eine Reihe von 10 Beispielbildern, die jeweils mehrere Absätze enthalten, um die Leistung zu vergleichen und die Nachteile der Verwendung einer schnellen Konfiguration zu veranschaulichen.

Für die Standardkonfiguration initialisieren wir IronTesseract mit seinen Standardeinstellungen, ohne irgendwelche geschwindigkeitsorientierten Eigenschaften anzuwenden. Dieser Benchmark-Ansatz ähnelt unserem Leitfaden zur Leistungsverfolgung, der zeigt, wie OCR-Vorgänge in Echtzeit überwacht werden können.

Hier sind die Beispieleingaben, die wir zur Durchführung des Tests verwenden. Diese Bilder stellen typische Dokumentenszenarien dar, die bei der Verarbeitung von mehrseitigen Dokumenten oder Stapelverarbeitungsvorgängen auftreten können.

Wie führe ich den Benchmark durch?

:path=/static-assets/ocr/content-code-examples/how-to/ocr-fast-configuration-benchmark.cs
using IronOcr;
using System;
using System.Diagnostics;
using System.IO;

// --- Tesseract Engine Setup ---
var ocrTesseract = new IronTesseract();
ocrTesseract.Language = OcrLanguage.EnglishFast;
ocrTesseract.Configuration.ReadBarCodes = false;
ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;

// --- 1. Define folder and get files ---
string folderPath = @"images"; // IMPORTANT: Set this to your image directory
string filePattern = "*.png";    // Change to "*.jpg", "*.bmp", etc. as needed
string outputFilePath = "ocr_results.txt"; // The new results file

// Get all image files in the directory
var imageFiles = Directory.GetFiles(folderPath, filePattern);

Console.WriteLine($"Found {imageFiles.Length} total images to process...");
Console.WriteLine($"Results will be written to: {outputFilePath}");

// --- 2. Start timer and process images, writing to file ---
// Open the output file *before* the loop for efficiency
using (StreamWriter writer = new StreamWriter(outputFilePath))
{
    var stopwatch = Stopwatch.StartNew();

    foreach (var file in imageFiles)
    {
        string fileName = Path.GetFileName(file);

        using var ocrInput = new OcrInput();
        ocrInput.LoadImage(file);

        var ocrResult = ocrTesseract.Read(ocrInput);

        // Check if any text was actually found
        if (!string.IsNullOrEmpty(ocrResult.Text))
        {
            // Write to Console
            Console.WriteLine($"--- Text found in: {fileName} ---");
            Console.WriteLine(ocrResult.Text.Trim());
            Console.WriteLine("------------------------------------------");

            // Write to File
            writer.WriteLine($"--- Text found in: {fileName} ---");
            writer.WriteLine(ocrResult.Text.Trim());
            writer.WriteLine("------------------------------------------");
            writer.WriteLine(); // Add a blank line for readability
        }
        else
        {
            // Write to Console
            Console.WriteLine($"No text found in: {fileName}");

            // Write to File
            writer.WriteLine($"No text found in: {fileName}");
            writer.WriteLine();
        }
    }

    stopwatch.Stop();

    // --- 3. Print and write final benchmark summary ---
    string lineSeparator = "\n========================================";
    string title = "Batch OCR Processing Complete";
    string summary = $"Fast configuration took {stopwatch.Elapsed.TotalSeconds:F2} seconds";

    // Write summary to Console
    Console.WriteLine(lineSeparator);
    Console.WriteLine(title);
    Console.WriteLine("========================================");
    Console.WriteLine(summary);

    // Write summary to File
    writer.WriteLine(lineSeparator);
    writer.WriteLine(title);
    writer.WriteLine("========================================");
    writer.WriteLine(summary);

    if (imageFiles.Length > 0)
    {
        string avgTime = $"Average time per image: {(stopwatch.Elapsed.TotalSeconds / (double)imageFiles.Length):F3} seconds";
        Console.WriteLine(avgTime);
        writer.WriteLine(avgTime);
    }
}

Console.WriteLine($"\nSuccessfully saved results to {outputFilePath}");
$vbLabelText   $csharpLabel

Dieser Benchmark-Code demonstriert mehrere wichtige Konzepte:

  1. Stapelverarbeitung: Der Code verarbeitet mehrere Bilder in einem einzigen Vorgang, ähnlich wie unser Multithreaded OCR-Beispiel, das zeigt, wie man die parallele Verarbeitung für noch größere Geschwindigkeitssteigerungen nutzen kann.

  2. Leistungsmessung: Die Verwendung der Klasse Stopwatch ermöglicht genaue Zeitmessungen bis auf Millisekunden genau, was für den Vergleich verschiedener Konfigurationen unerlässlich ist.

  3. Ergebnisprotokollierung: Sowohl die Konsolen- als auch die Dateiausgabe stellen sicher, dass Sie die Ergebnisse später analysieren und Genauigkeitsunterschiede zwischen Konfigurationen überprüfen können.

Welche Leistungssteigerungen kann ich erwarten?

Modus Gesamtzeit Durchschnittliche Zeit / Bild Zeitgewinn vs. Standard Genauigkeitsgewinn im Vergleich zum Standard
Standard 10,40 s 1,040 s Grundlegendes Grundlegendes
Schnell 8,60 s 0,860 s +17,31 % (Schneller) +0 % (Identisch)

Der Benchmark-Vergleich zwischen Standard- und Schnellkonfigurationen zeigt einen deutlichen Leistungsvorteil für die Schnellkonfiguration. Durch die Festlegung des Standardmodus als Basis (10,40 Sekunden Gesamtzeit) konnte die schnelle Konfiguration denselben Stapel von 10 Bildern in nur 8,60 Sekunden abschließen. Dies entspricht einer erheblichen Zeitersparnis von 17,31 %. Entscheidend ist, dass diese Geschwindigkeitsverbesserung nicht zu Lasten der Qualität ging; die Genauigkeit war in beiden Modi identisch, wobei beide Konfigurationen die gleiche Textausgabe lieferten.

Um die Ergebnisse zu überprüfen, können Sie sowohl die schnelle Textausgabe als auch die Standardtextausgabe herunterladen.

Wann sollte ich Fast Configuration verwenden?

Eine schnelle Konfiguration ist besonders vorteilhaft für:

  • Hochvolumige Dokumentenverarbeitung, bei der Tausende von Seiten schnell verarbeitet werden müssen
  • Echtzeitanwendungen, bei denen die Reaktionszeit entscheidend ist
  • Webanwendungen, die reaktionsfähige Benutzererfahrungen bieten müssen
  • Stapelverarbeitungssysteme, die nach einem engen Zeitplan ablaufen

Für komplexere Szenarien, die mehrere Sprachen, Scans von geringer Qualität oder spezielle Dokumenttypen wie Lizenzschilder oder Reisepässe beinhalten, sollten Sie eine Standardkonfiguration verwenden, um maximale Genauigkeit zu gewährleisten.

IronOCR macht den Wechsel zwischen verschiedenen Konfigurationen einfach - es müssen nur ein paar Eigenschaften geändert werden, und Ihre Anwendung kann sich ohne größere Codeänderungen an unterschiedliche Leistungsanforderungen anpassen.

Häufig gestellte Fragen

Wie viel schneller ist die schnelle OCR-Konfiguration im Vergleich zu den Standardeinstellungen?

Die schnelle Konfiguration von IronOCR kann im Vergleich zu Standard-OCR-Einstellungen eine bis zu 17 % schnellere Verarbeitungsgeschwindigkeit erreichen, bei minimalen Auswirkungen auf die Genauigkeit. Dieser Leistungsgewinn wird durch den EnglishFast-Sprachmodus und durch die Deaktivierung unnötiger Funktionen erreicht.

Was ist die wichtigste Einstellung, die eine schnelle OCR-Verarbeitung ermöglicht?

Die wichtigste Komponente für eine schnelle Konfiguration in IronOCR ist die Einstellung der Eigenschaft Language auf OcrLanguage.EnglishFast. Dies gibt der Geschwindigkeit den Vorrang vor einem geringen potenziellen Verlust an Genauigkeit und ist daher ideal für die Massenverarbeitung und zeitkritische Anwendungen.

Wie kann ich die OCR-Geschwindigkeit über die Verwendung des EnglishFast-Modus hinaus weiter optimieren?

Sie können zusätzliche Geschwindigkeitssteigerungen erzielen, indem Sie unnötige Funktionen in IronOCR deaktivieren, z. B. ReadBarCodes auf false setzen, wenn Sie die Barcode-Erkennung nicht benötigen. Außerdem können Sie IronOCR die Seitensegmentierung automatisch erkennen lassen, indem Sie TesseractPageSegmentationMode.Auto.

Wann sollte ich die schnelle OCR-Konfiguration anstelle der Standardeinstellungen verwenden?

Die schnelle OCR-Konfiguration in IronOCR eignet sich ideal für Szenarien mit hohem Verarbeitungsvolumen, bei denen Zeit eine entscheidende Rolle spielt und ein leichter Kompromiss bei der Genauigkeit akzeptabel ist. Sie ist besonders nützlich für unternehmenskritische Anwendungen, die gescannte Dokumente, PDFs oder Bilder schnell verarbeiten müssen.

Funktioniert die Schnellkonfiguration bei allen Dokumenttypen?

Ja, die schnelle Konfiguration von IronOCR arbeitet effektiv mit verschiedenen Dokumenttypen, einschließlich gescannter Dokumente, PDFs und Bilder. Die Optimierungsvorteile gelten unabhängig von dem Eingabeformat, das Sie verarbeiten.

Gibt es bei der Verwendung des schnellen OCR-Modus einen Verlust an Genauigkeit?

Die schnelle Konfiguration von IronOCR sorgt für erhebliche Leistungssteigerungen beim Scannen mit minimalen Auswirkungen auf die Genauigkeit. Zwar kann es bei der Verwendung des EnglishFast-Modus zu geringen Einbußen bei der Genauigkeit kommen, doch lohnt sich dieser Kompromiss oft für Anwendungen, bei denen Geschwindigkeit im Vordergrund steht.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 5,299,091 | Version: 2025.12 gerade veröffentlicht