Benutzerdefinierte Sprachen für OCR Software – Texterkennung und Bild zu Text in C
IronOCR ermöglicht Texterkennung für benutzerdefinierte Sprachen, spezielle Schriftsysteme oder Chiffren durch das Laden von Tesseract .traineddata-Dateien über die UseCustomTesseractLanguageFile-Methode. So können Sie Text erkennen und Bild zu Text Extraktion aus jedem benutzerdefinierten, trainierten Sprachmodell durchführen.
Schnellstart: Benutzerdefinierte Sprache für OCR laden
-
Installieren Sie IronOCR mit NuGet Package Manager
PM > Install-Package IronOcr -
Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.
using IronOcr; // Initialize OCR engine var ocr = new IronTesseract(); // Load custom language file ocr.UseCustomTesseractLanguageFile("custom.traineddata"); // Process document using var input = new OcrInput(); input.LoadImage("document.png"); // Extract text var result = ocr.Read(input); Console.WriteLine(result.Text); -
Bereitstellen zum Testen in Ihrer Live-Umgebung
Beginnen Sie noch heute, IronOCR in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
- IronOCR über NuGet Package Manager installieren
- Laden Sie Ihre benutzerdefinierte Datei
.traineddatamitUseCustomTesseractLanguageFile - Erstellen Sie ein
OcrInputund laden Sie Ihr Dokument. - Rufen Sie
Read()auf, um Text in Ihrer benutzerdefinierten Sprache zu extrahieren. - Speichern oder verarbeiten Sie den extrahierten Text
Die optische Zeichenerkennung (OCR) erfordert manchmal den Umgang mit benutzerdefinierten Sprachen, speziellen Skripten oder Chiffren. Um ein Eingabebild mit einer benutzerdefinierten Sprache zu lesen, müssen der Tesseract-Engine Trainingsdaten für diese spezifische Sprache bereitgestellt werden. Diese Daten werden in einer speziellen .traineddata Datei gespeichert.
Während der komplexe Prozess der Erstellung (des Trainings) dieser Datei mit den eigenen Tools von Tesseract durchgeführt wird, unterstützt IronOCR die Verwendung dieser benutzerdefinierten Sprachdateien vollständig. Dies ermöglicht es Ihnen, Ihr trainiertes Modell anzuwenden, um Texte aus beliebigen Eingaben zu entschlüsseln und zu lesen. Diese Anleitung zeigt, wie man eine benutzerdefinierte .traineddata-Datei mit IronOCR lädt und verwendet.
Wie man benutzerdefinierte Sprachen mit Tesseract verwendet
- Laden Sie eine C#-Bibliothek zum Lesen einer benutzerdefinierten Sprache herunter
- Initialisieren Sie die OCR-Engine
- Laden Sie die benutzerdefinierten Sprachtrainingsdaten mit `UseCustomTesseractLanguageFile`
- Laden Sie das Eingabebild mit `LoadImage`
- Lesen und extrahieren Sie das Bild der benutzerdefinierten Spracheingabe mit `Lesen`
Wie implementiere ich benutzerdefinierte Sprach-OCR mit Tesseract?
Um eine benutzerdefinierte Sprache mit Tesseract zu verwenden, laden Sie zuerst Ihre .traineddata Datei, indem Sie die Methode UseCustomTesseractLanguageFile aufrufen. Dies ist ein unerlässlicher Schritt, da diese Datei alle Trainingsdaten enthält, die es Tesseract ermöglichen, die einzigartigen Zeichen der benutzerdefinierten Sprache zu erkennen.
Die Unterstützung benutzerdefinierter Sprachen in IronOCR geht über die Standardsprachen hinaus. Unabhängig davon, ob Sie mit historischen Skripten, erfundenen Sprachen oder speziellen Notationssystemen arbeiten, gilt derselbe Prozess. Für Projekte, die mehrere Sprachen erfordern, lesen Sie unseren Leitfaden zum Lesen mehrerer Sprachen oder informieren Sie sich über die 125 internationalen OCR-Sprachen, die von Haus aus unterstützt werden.
Als Nächstes laden Sie Ihr Eingabedokument wie bei einem normalen OCR-Vorgang. Wir laden eine PDF-Datei mit Absätzen in benutzerdefinierter Sprache mithilfe von LoadPdf. IronOCR unterstützt verschiedene Eingabeformate, darunter Bilder (jpg, png, gif, tiff, bmp) und PDFs.
Zum Schluss verwenden Sie die Methode Read, um den Text aus der Eingabe zu extrahieren. Das Ergebnis kann dann auf der Konsole ausgedruckt oder in einer Textdatei zum Nachschlagen gespeichert werden.
Welche Trainingsdaten benötige ich für benutzerdefinierte Sprachen?
Als Eingabe verwenden wir diese PDF-Beispieldatei, die Text in unserer benutzerdefinierten Sprache enthält.
Wir werden für unser Beispiel diese benutzerdefinierte Sprache .traindata verwenden.
Die Qualität und der Umfang Ihrer Trainingsdaten wirken sich direkt auf die OCR-Genauigkeit aus. Bei der Vorbereitung benutzerdefinierter Sprachtrainingsdaten:
- Zeichenabdeckung: Stellen Sie sicher, dass Ihre Trainingsdaten alle Zeichen und Symbole enthalten
- Schriftvariationen: Fügen Sie mehrere Schriftarten ein, wenn Ihre Dokumente in der Typografie variieren
- Bildqualität: Üben Sie mit Bildern, die denen ähneln, die Sie in der Produktion verarbeiten werden
- Kontextmuster: Gemeinsame Wortkombinationen und Phrasen einbeziehen
Erweiterte Konfigurationsoptionen finden Sie in unserem Detaillierten Konfigurationsleitfaden für Tesseract.
Wie kann ich benutzerdefinierte Sprachdokumente laden und verarbeiten?
:path=/static-assets/ocr/content-code-examples/how-to/ocr-custom-language.cs
using IronOcr;
using System;
using System.IO;
var ocrTesseract = new IronTesseract();
// Load the traineddata file for the custom language
ocrTesseract.UseCustomTesseractLanguageFile("AMGDT.traineddata");
using var ocrInput = new OcrInput();
// Load the PDF containing text in the custom language
ocrInput.LoadPdf("custom.pdf");
var ocrResult = ocrTesseract.Read(ocrInput);
// Print text to the console
Console.WriteLine("--- OCR Result ---");
Console.WriteLine(ocrResult.Text);
Console.WriteLine("------------------");
// Pipe text to a .txt file
string outputFilePath = "ocr_output.txt";
File.WriteAllText(outputFilePath, ocrResult.Text);
Console.WriteLine($"\nSuccessfully saved text to {outputFilePath}");
Imports IronOcr
Imports System
Imports System.IO
Dim ocrTesseract As New IronTesseract()
' Load the traineddata file for the custom language
ocrTesseract.UseCustomTesseractLanguageFile("AMGDT.traineddata")
Using ocrInput As New OcrInput()
' Load the PDF containing text in the custom language
ocrInput.LoadPdf("custom.pdf")
Dim ocrResult = ocrTesseract.Read(ocrInput)
' Print text to the console
Console.WriteLine("--- OCR Result ---")
Console.WriteLine(ocrResult.Text)
Console.WriteLine("------------------")
' Pipe text to a .txt file
Dim outputFilePath As String = "ocr_output.txt"
File.WriteAllText(outputFilePath, ocrResult.Text)
Console.WriteLine(vbCrLf & "Successfully saved text to " & outputFilePath)
End Using
Der obige Code veranschaulicht den grundlegenden Arbeitsablauf für benutzerdefinierte Sprach-OCR. Für komplexere Szenarien sollten Sie diese Erweiterungen in Betracht ziehen:
Leistungsoptimierung: Für große Dokumente oder Stapelverarbeitung implementieren Sie Multithreading und async-Unterstützung, um die Leistung zu verbessern.
Bildvorverarbeitung: Wenn Ihre Ausgangsdokumente Qualitätsprobleme aufweisen, wenden Sie Bildkorrekturfilter vor der OCR-Verarbeitung an. Der Filter-Assistent kann Ihnen helfen, die optimalen Vorverarbeitungseinstellungen zu finden.
Regionsspezifische OCR: Bei Dokumenten mit gemischtem Inhalt können Sie die OCR-Region eines Bildes-Technik verwenden, um sich auf bestimmte Bereiche zu konzentrieren, die Ihre eigene Sprache enthalten.
Welche Ergebnisse kann ich von Custom Language OCR erwarten?
Diese Ausgabe zeigt das Ergebnis unseres benutzerdefinierten Sprachmodells. Durch die Bereitstellung der richtigen Trainingsdaten konnte IronOCR den Text erfolgreich entschlüsseln, und das Ergebnis ist in einfachem Englisch. Außerdem ist dies die Ausgabe, die durch den Code erzeugt wird.
Die Genauigkeit der OCR für benutzerdefinierte Sprachen hängt von mehreren Faktoren ab:
- Trainingsdatenqualität: Bessere Trainingsdaten führen zu besseren Ergebnissen
- Dokumentenkonsistenz: Dokumente, die mit den Trainingsdaten übereinstimmen, schneiden am besten ab
- Bildauflösung: Höhere DPI-Bilder liefern genauere Ergebnisse - siehe unseren Leitfaden zu DPI-Einstellungen
Best Practices für die Implementierung benutzerdefinierter Sprachen
Bei der Implementierung von OCR für benutzerdefinierte Sprachen in Produktionsumgebungen sollten Sie diese bewährten Verfahren berücksichtigen:
Fehlerbehandlung und Validierung : Stellen Sie immer sicher, dass Ihre .traineddata-Datei existiert und zugänglich ist, bevor Sie versuchen, sie zu laden. Implementierung einer angemessenen Fehlerbehandlung für Fälle, in denen die benutzerdefinierte Sprachdatei fehlt oder beschädigt ist.
Leistungsoptimierung: Benutzerdefinierte Sprachmodelle können größer sein als Standard-Sprachpakete. Für optimale Leistung:
- Zwischenspeichern des geladenen Sprachmodells bei der Verarbeitung mehrerer Dokumente
- Verwenden Sie die Fortschrittsverfolgung, um lang andauernde OCR-Vorgänge zu überwachen
- Erwägen Sie die Implementierung von Timeouts für die Verarbeitung großer Dokumente
Kombinieren mit Standardsprachen: Wenn Ihre Dokumente sowohl benutzerdefinierte als auch Standardsprachen enthalten, können Sie mehrere Sprachen gleichzeitig laden. Dies ist besonders nützlich für Dokumente mit gemischtem Inhalt.
Prüfung und Validierung: Einrichtung eines Testrahmens zur Validierung der OCR-Genauigkeit:
- Erstellen Sie einen Testdatensatz mit bekannten Ausgaben
- Verwenden Sie Ergebniszuverlässigkeit zur Bewertung der Erkennungsqualität
- Implementierung von Highlight-Texten als Bilder für visuelles Debugging
Fortgeschrittene Anwendungsfälle
OCR für benutzerdefinierte Sprachen eröffnet zahlreiche Möglichkeiten:
Bewahrung historischer Dokumente: Digitalisieren Sie alte Manuskripte oder Texte, die in veralteten Schriften geschrieben sind Spezialisierte Notationssysteme: Verarbeiten Sie mathematische Gleichungen, musikalische Notation oder technische Diagramme - siehe unseren Leitfaden zur Fehlerbehebung bei Gleichungen Sicherheitsanwendungen: Dekodieren proprietärer Verschlüsselungssysteme oder Chiffren Zugänglichkeit: Konvertierung spezieller Braille-Schrift oder taktiler Schriftsysteme in Standardtext
Für fortgeschrittenere Szenarien können Sie unsere umfassenden Codebeispiele lesen, die verschiedene IronOCR-Funktionen mit Tesseract 5 zeigen.
Häufig gestellte Fragen
Wie führe ich OCR für Dokumente mit benutzerdefinierten Sprachen oder Skripten durch?
IronOCR ermöglicht benutzerdefinierte Sprach-OCR durch das Laden von Tesseract .traineddata-Dateien mit der Methode UseCustomTesseractLanguageFile. So können Sie Text aus jedem beliebigen, individuell trainierten Sprachmodell extrahieren, einschließlich spezieller Skripte, historischer Texte oder Chiffren.
Welches Dateiformat wird für die benutzerdefinierte Spracherkennung benötigt?
IronOCR benötigt eine .traineddata-Datei, die die Trainingsdaten für Ihre benutzerdefinierte Sprache enthält. Diese Datei wird mit der Methode UseCustomTesseractLanguageFile geladen und enthält alle notwendigen Informationen, damit Tesseract die einzigartigen Zeichen Ihrer benutzerdefinierten Sprache erkennen kann.
Kann ich mehrere benutzerdefinierte Sprachen in einem einzigen OCR-Vorgang verwenden?
Ja, IronOCR unterstützt die Erkennung mehrerer Sprachen. Sie können mehrere benutzerdefinierte Sprachdateien laden oder benutzerdefinierte Sprachen mit einer der 125 internationalen Sprachen kombinieren, die von IronOCR standardmäßig unterstützt werden.
Welche Arten von benutzerdefinierten Skripten können erkannt werden?
IronOCR kann jede benutzerdefinierte Schrift erkennen, die ordnungsgemäß in einer .traineddata-Datei trainiert wurde, einschließlich historischer Schriften, erfundener Sprachen, spezieller Notationssysteme und Chiffren. Die Flexibilität erstreckt sich auf jedes Schriftsystem, das mit den Werkzeugen von Tesseract trainiert werden kann.
Wie implementiere ich OCR für benutzerdefinierte Sprachen in meiner C#-Anwendung?
Um benutzerdefinierte Sprach-OCR mit IronOCR zu implementieren: 1) Initialisieren Sie eine IronTesseract-Instanz, 2) Laden Sie Ihre benutzerdefinierte .traineddata-Datei mit UseCustomTesseractLanguageFile, 3) Erstellen Sie ein OcrInput-Objekt und laden Sie Ihr Dokument, 4) Rufen Sie die Read()-Methode auf, um Text zu extrahieren, und 5) Verarbeiten Sie den extrahierten Text nach Bedarf.

