Verbesserung unzureichender OCR-Ergebnisse
Die OCR-Qualität hängt stark vom Eingangsmaterial ab. Eine Konfiguration, ein Filter oder eine Einstellung, die ein Dokument sauber liest, kann bei einem anderen versagen, sodass Sie mit unleserlichem oder unvollständigem Text zurückbleiben. Wenn der Standard-Read enttäuscht, schließt das IronOcr.Extensions.AdvancedScan-Paket normalerweise die Genauigkeitslücke.
Der Unterschied liegt im Motor. Standard-IronOCR läuft auf dem Tesseract-Motor, während IronOcr.Extensions.AdvancedScan durch PaddleOCR betrieben wird und maschinelles Lernen hinzufügt. Das macht es gut geeignet für laute Eingaben wie Screenshots und für strukturierte Quellen wie Pässe und Kennzeichen.
Das Paket bietet speziell entwickelte Lesemethoden für diese Fälle an:
Lösung
1. Beginnen Sie mit ReadDocumentAdvanced() und EnhanceResolution()
Bevor Sie zu einer anderen Konfiguration greifen, kombinieren Sie die ReadDocumentAdvanced()-Methode mit dem EnhanceResolution()-Vorverarbeitungsfilter. Diese Kombination löst die meisten Genauigkeitsprobleme, auf die Benutzer beim Standardlesen stoßen.
Wenden Sie den Filter auf das OcrInput an und übergeben Sie dann denselben Input an ReadDocumentAdvanced():
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadPdf("document.pdf");
// Upscale and sharpen low-resolution input before reading
input.EnhanceResolution();
var result = ocr.ReadDocumentAdvanced(input);
Console.WriteLine(result.Text);
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadPdf("document.pdf");
// Upscale and sharpen low-resolution input before reading
input.EnhanceResolution();
var result = ocr.ReadDocumentAdvanced(input);
Console.WriteLine(result.Text);
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput()
input.LoadPdf("document.pdf")
' Upscale and sharpen low-resolution input before reading
input.EnhanceResolution()
Dim result = ocr.ReadDocumentAdvanced(input)
Console.WriteLine(result.Text)
End Using
ReadDocumentAdvanced() führt die PaddleOCR-Maschinenlern-Engine aus, um layoutbewusste, textlastige Dokumente zu analysieren, während EnhanceResolution() die Eingabe mit niedriger Auflösung hochskaliert und schärft, bevor der Read erfolgt. Niedrige Auflösung ist eine häufige Ursache für schlechte Ergebnisse, daher ist dieser Vorverarbeitungsschritt oft genauso wichtig wie der Motoraustausch.
2. Ziel x64 auf .NET Framework
Konfigurieren Sie .NET Framework Projekte, um als x64 zu kompilieren. AdvancedScan benötigt eine beträchtliche Menge an Speicher und das Ausführen unter einer anderen Architektur kann Laufzeitfehler auslösen. Siehe den Advanced Scan auf .NET Framework Leitfaden für die vollständige Einrichtung.
Einschränkungen
AdvancedScan liefert starke Genauigkeit, aber heute gelten einige Einschränkungen:
- Weniger Ergebnismerkmale: AdvancedScan-Ergebnisobjekte bieten weniger Eigenschaften als das Standard-
OcrResult-Objekt. - Unterschiedliche Rückgabetypen: Jede Lesemethode gibt einen anderen Ergebnisobjekttyp zurück, überprüfen Sie also die API Referenz für die Details des von Ihnen aufgerufenen Objekts.
- Keine durchsuchbaren PDFs: Das Erstellen durchsuchbarer PDFs aus AdvancedScan-Ausgaben wird noch nicht unterstützt, obwohl die Funktion in Entwicklung ist.
- Begrenzte Sprachen: Das Paket unterstützt derzeit Englisch, Chinesisch, Japanisch, Koreanisch und lateinische Alphabets.

