Wie man benutzerdefinierte Schriftartschulungen für Tesseract 5 in C# durchführt

C# Benutzerdefinierte Schriftartenschulung in Tesseract 5 für Windows-Entwickler

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

Benutzerdefiniertes Schriftartentraining in Tesseract 5 verbessert die OCR-Genauigkeit für bestimmte Schriftarten. Bei diesem Prozess werden Trainingsdaten erstellt, mit denen die Engine Schriftmerkmale erlernt. Die resultierende .traineddata-Datei arbeitet mit IronOCR zusammen, um dekorative oder spezielle Schriftarten genau zu erkennen.

als-Überschrift:2(Schnellstart: Verwenden Sie Ihre .traineddata-Schriftart-Datei in C#)

Verwenden Sie Ihre selbst erstellte Tesseract-Schriftdatei in IronOCR mit nur wenigen Zeilen. Perfekt für die genaue OCR von speziellen oder dekorativen Schriftarten.

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.

    var ocr = new IronOcr.IronTesseract();
    ocr.UseCustomTesseractLanguageFile("path/to/YourCustomFont.traineddata");
    string text = ocr.Read(new IronOcr.OcrInput("image-with-special-font.png")).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

Wie kann ich die neueste Version von IronOCR herunterladen?

Welche Installationsmethode sollte ich verwenden?

Laden Sie die IronOCR DLL direkt auf Ihren Rechner herunter.

Warum NuGet stattdessen verwenden?

Alternativ können Sie die Software auch über NuGet mit diesem Befehl installieren:

Install-Package IronOcr

IronOCR bietet umfassende Unterstützung für Tesseract 5-Funktionen und angepasste Sprachimplementierungen und ist damit ideal für spezielle OCR-Anforderungen.


Wie kann ich WSL2 und Ubuntu installieren und einrichten?

Verweisen Sie auf das Tutorial über Einrichten von WSL2 und Ubuntu.

Hinweis:Für die Schulung in benutzerdefinierten Schriften ist Linux erforderlich.

Für die Schulung ist Linux erforderlich, aber die resultierenden .traineddata-Dateien funktionieren nahtlos auf allen Plattformen. Ausführliche Anweisungen zur Einrichtung von Linux finden Sie in unserem Linux-Einrichtungsleitfaden.

Wie installiere ich Tesseract 5 auf Ubuntu?

Verwenden Sie diese Befehle, um Tesseract 5 zu installieren:

sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
SHELL

Diese Pakete enthalten den Kern der Tesseract OCR-Engine und die für die Schulung benötigten Entwicklungsbibliotheken. Erweiterte Konfigurationsoptionen für Tesseract finden Sie in unserem detaillierten Konfigurationsleitfaden.

Welche Schriftart sollte ich für die Schulung herunterladen?

In diesem Tutorial wird die Schriftart AMGDT verwendet. Die Schriftart-Datei kann entweder .ttf oder .otf sein. Windows File Explorer zeigt die heruntergeladene Schriftdatei AMGDT Regular.ttf, die für die Schulung in einem roten Kasten hervorgehoben ist

Bei der Auswahl von Schriftarten für die Schulung:

  • Wählen Sie Schriftarten, die sich deutlich von den Standard-Tesseract-Modellen unterscheiden
  • Sicherstellung einer ordnungsgemäßen Lizenzierung für die Schriftart
  • Ziehen Sie dekorative, handschriftliche oder spezielle Industrieschriften in Betracht
  • Testen Sie mit Schriftarten, auf die Ihre Anwendung in der Produktion trifft

Wie baue ich das Laufwerk für das Training mit benutzerdefinierten Schriften ein?

Verwenden Sie diese Befehle, um das Laufwerk D: als Arbeitsbereich einzurichten:

cd /
cd /mnt/d
cd /
cd /mnt/d
SHELL

So können Sie mit Dateien, die auf Windows-Laufwerken gespeichert sind, direkt in der Ubuntu WSL2-Umgebung arbeiten.

Wie kopiere ich die Schriftdatei in den Ubuntu-Schriftordner?

Kopieren Sie die Schriftdatei in diese Ubuntu-Verzeichnisse: /usr/share/fonts und /usr/local/share/fonts.

Zugriff auf Dateien in Ubuntu, indem Sie \wsl$ in die Adressleiste des Datei-Explorers eingeben.

Windows File Explorer zeigt den Netzwerkpfad für den Zugriff auf das Ubuntu-Dateisystem von Windows aus

Was ist, wenn mir der Zugriff auf den Zielordner verweigert wird?

Wenn Sie Fehler bei der Zugriffsverweigerung feststellen, verwenden Sie die Befehlszeile, um Dateien zu kopieren:

cd /
su root
cd /c/Users/Admin/Downloads/'AMGDT Regular'
cp 'AMGDT Regular.ttf' /usr/share/fonts
cp 'AMGDT Regular.ttf' /usr/local/share/fonts
exit
cd /
su root
cd /c/Users/Admin/Downloads/'AMGDT Regular'
cp 'AMGDT Regular.ttf' /usr/share/fonts
cp 'AMGDT Regular.ttf' /usr/local/share/fonts
exit
SHELL

Die Installation von Schriftarten ist für den Schulungsprozess entscheidend. Das System muss Zugang zum Rendern der Schriftart haben, wenn es Schulungsbilder erzeugt.

Wie kann ich tesseract_tutorial von GitHub klonen?

Klonen Sie das tesseract_tutorial Repository mit diesem Befehl:

git clone https://github.com/astutejoe/tesseract_tutorial.git
git clone https://github.com/astutejoe/tesseract_tutorial.git
SHELL

Dieses Repository enthält wichtige Python-Skripte und Konfigurationsdateien für den Schulungsprozess. Die Skripte automatisieren viele manuelle Schritte bei der Schriftartenschulung.

Wie kann ich tesstrain und tesseract von GitHub klonen?

Navigieren Sie zum tesseract_tutorial-Verzeichnis und klonen Sie dann die tesstrain und tesseract-Repositories:

git clone https://github.com/tesseract-ocr/tesstrain
git clone https://github.com/tesseract-ocr/tesseract
git clone https://github.com/tesseract-ocr/tesstrain
git clone https://github.com/tesseract-ocr/tesseract
SHELL
  • tesstrain enthält das Makefile, mit dem die Datei .traineddata erstellt wird
  • tesseract enthält den tessdata-Ordner mit den originalen .traineddata-Dateien, die während des Trainings der benutzerdefinierten Schriftarten als Referenzen verwendet wurden

Weitere Informationen zur Arbeit mit mehreren Sprachpaketen und benutzerdefinierten Trainingsdaten finden Sie in unserem Leitfaden für internationale Sprachen.

Wie erstelle ich einen "data"-Ordner zum Speichern von Ausgaben?

Erstellen Sie einen Datenordner innerhalb von tesseract_tutorial/tesstrain:

mkdir tesseract_tutorial/tesstrain/data
mkdir tesseract_tutorial/tesstrain/data
SHELL

In diesem Ordner werden alle generierten Schulungsdateien gespeichert, einschließlich .box, .tif und zwischengeschalteter Schulungsartefakte.

Wie führe ich split_training_text.py aus?

Kehren Sie zum Ordner tesseract_tutorial zurück und führen Sie diesen Befehl aus:

python split_training_text.py
python split_training_text.py
SHELL

Nach der Ausführung von split_training_text.py werden im Datenordner die Dateien .box und .tif erstellt.

Wie kann ich die Fontconfig-Warnung beheben?

Terminal zeigt Fontconfig-Warnungen über fehlende Apex-Schriften und leere Font-Verzeichnisse an Wenn Sie die Warnung Fontconfig warning: "/tmp/fonts.conf, Zeile 4: empty font directory name ignored", weist dies auf fehlende Schriftartenverzeichnisse hin. Beheben Sie dies, indem Sie die Datei tesseract_tutorial/fonts.conf bearbeiten und hinzufügen:

<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>
<!-- the following element will be removed in the future -->
<dir>~/.fonts</dir>
<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>
<!-- the following element will be removed in the future -->
<dir>~/.fonts</dir>
XML

Kopieren Sie es nach /etc/fonts mit:

cp fonts.conf /etc/fonts
cp fonts.conf /etc/fonts
SHELL

/etc/fonts

fontconf_dir = '/etc/fonts'
fontconf_dir = '/etc/fonts'
PYTHON

Wie viele Schulungsdateien sollte ich erstellen?

Die aktuelle Konfiguration erzeugt 100 Trainingsdateien. Sie können dies in split_training_text.py ändern.

Python-Code, der count=100 und slicing lines array setzt, um die Größe der Trainingsdaten zu begrenzen

Für Schulungen in Produktionsqualität:

  • Beginnen Sie mit 100-500 Beispielen zum Testen
  • Verwenden Sie 1000-5000 Beispiele für eine bessere Genauigkeit
  • Fügen Sie verschiedene Textbeispiele bei, die alle erforderlichen Zeichen abdecken
  • Gleichgewicht zwischen Trainingszeit und Genauigkeitsanforderungen

Wo kann ich eng.traineddata herunterladen?

Laden Sie eng.traineddata aus diesem Repository herunter und platzieren Sie es in tesseract_tutorial/tesseract/tessdata.

Das Basismodell bietet einen linguistischen Kontext, der die Erkennungsgenauigkeit verbessert. Wählen Sie ein Basismodell, das zu Ihrer Zielsprache passt. Zur Behebung von Problemen mit benutzerdefinierten Sprachpaketen lesen Sie unseren Leitfaden für benutzerdefinierte OCR-Sprachpakete.

Wie erstelle ich meine eigene Schriftart .traineddata?

Navigieren Sie zum Ordner tesstrain und verwenden Sie diesen Befehl in WSL2:

TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
SHELL
  • MODELL_NAME ist der Name Ihrer benutzerdefinierten Schriftart
  • START_MODEL ist die ursprüngliche .traineddata Referenz
  • MAX_ITERATIONS definiert die Anzahl der Iterationen (mehr Iterationen verbessern die Genauigkeit)

Was ist, wenn ich die Meldung "Failed to Read Data" in Makefile erhalte?

Um Probleme mit "Daten konnten nicht gelesen werden" zu lösen, ändern Sie das Makefile:

WORDLIST_FILE := $(OUTPUT_DIR2)/$(MODEL_NAME).lstm-word-dawg
NUMBERS_FILE := $(OUTPUT_DIR2)/$(MODEL_NAME).lstm-number-dawg
PUNC_FILE := $(OUTPUT_DIR2)/$(MODEL_NAME).lstm-punc-dawg

Diese Änderung stellt sicher, dass das Makefile nach Dateien in der richtigen Ausgabeverzeichnisstruktur sucht.

Wie behebe ich die Fehlermeldung "Failed to Load Script Unicharset"?

Fügen Sie Latin.unicharset in den Ordner tesstrain/data/langdata ein. Sie finden Latin.unicharset hier.

Die unicharset-Datei definiert den Zeichensatz für Ihre Sprache oder Ihr Skript. Stellen Sie sicher, dass die Übersetzung mit der Zeichenabdeckung Ihrer Schriftart übereinstimmt.

Wie überprüfe ich die Genauigkeit der erstellten .traineddata?

Mit 1000 .box und .tif Dateien und 3000 Trainingsiterationen erreicht die Ausgabe AMGDT.traineddata eine minimale Trainingsfehlerrate (BCER) von etwa 5,77 %.

Tesseract-Trainingsprotokoll zeigt BCER-Verbesserung von 6,388 % auf 5,771 % über die Iterationen 2194-2298

So testen Sie Ihr trainiertes Modell mit IronOCR:

using IronOcr;

// Initialize IronOCR with custom trained data
var ocr = new IronTesseract();

// Load your custom trained font
ocr.UseCustomTesseractLanguageFile(@"path\to\AMGDT.traineddata");

// Configure for optimal results
ocr.Configuration.BlackListCharacters = "";
ocr.Configuration.WhiteListCharacters = "";
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Process an image with your custom font
using var input = new OcrInput();
input.LoadImage("test-image-with-amgdt-font.png");

// Optional: Apply filters if needed
input.EnhanceResolution(300);
input.DeNoise();

// Perform OCR
var result = ocr.Read(input);
Console.WriteLine($"Recognized Text: {result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");
using IronOcr;

// Initialize IronOCR with custom trained data
var ocr = new IronTesseract();

// Load your custom trained font
ocr.UseCustomTesseractLanguageFile(@"path\to\AMGDT.traineddata");

// Configure for optimal results
ocr.Configuration.BlackListCharacters = "";
ocr.Configuration.WhiteListCharacters = "";
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Process an image with your custom font
using var input = new OcrInput();
input.LoadImage("test-image-with-amgdt-font.png");

// Optional: Apply filters if needed
input.EnhanceResolution(300);
input.DeNoise();

// Perform OCR
var result = ocr.Read(input);
Console.WriteLine($"Recognized Text: {result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Für die Implementierung benutzerdefinierter Schriftarten in Produktionsanwendungen lesen Sie unseren Leitfaden zur Verwendung benutzerdefinierter Sprachdateien.

Traineddata-Genauigkeit

Häufig gestellte Fragen

Wie verwende ich eine benutzerdefinierte trainierte Schriftartdatei in C#?

Sie können Ihre selbst erstellte Tesseract-Schriftdatei in IronOCR mit nur wenigen Zeilen Code verwenden. Erstellen Sie einfach eine IronTesseract-Instanz, rufen Sie UseCustomTesseractLanguageFile() mit dem Pfad zu Ihrer .traineddata-Datei auf und verwenden Sie dann die Read()-Methode, um OCR für Bilder mit Ihrer speziellen Schriftart durchzuführen.

Was sind die Anforderungen für die Schulung benutzerdefinierter Schriftarten für OCR?

Für das Training benutzerdefinierter Schriften ist eine Linux-Umgebung (für Windows-Anwender wird WSL2 mit Ubuntu empfohlen), Tesseract 5 mit den Entwicklungsbibliotheken und die zu trainierende Schriftdatei (entweder im Format .ttf oder .otf) erforderlich. Die unter Linux erstellten .traineddata-Dateien funktionieren nahtlos mit IronOCR auf allen Plattformen.

Warum sollte ich benutzerdefinierte Schriftarten trainieren, anstatt die Standard-OCR zu verwenden?

Das Training von benutzerdefinierten Schriftarten verbessert die OCR-Genauigkeit für bestimmte Schriftarten, insbesondere für dekorative oder spezielle Schriftarten, die sich erheblich von den Standardmodellen von Tesseract unterscheiden. IronOCR kann dann diese trainierten Schriftdateien verwenden, um Text in Bildern, die diese einzigartigen Schriftarten enthalten, genau zu erkennen, der sonst mit Standard-OCR-Modellen schwer zu lesen wäre.

Kann ich benutzerdefinierte, trainierte Schriftarten für verschiedene Plattformen verwenden?

Ja, der Schulungsprozess erfordert zwar Linux, aber die resultierenden .traineddata-Dateien funktionieren mit IronOcr nahtlos auf allen Plattformen. Das bedeutet, dass Sie einmal auf Linux trainieren und die trainierte Datendatei auf Windows-, macOS- oder Linux-Implementierungen verwenden können.

Welche Installationsmethode wird für die ersten Schritte empfohlen?

Für eine schnelle Einrichtung können Sie die IronOCR DLL direkt herunterladen oder über den NuGet Package Manager installieren. NuGet wird empfohlen, da es Abhängigkeiten automatisch verwaltet und Aktualisierungen erleichtert. IronOCR bietet umfassende Unterstützung für Tesseract 5-Funktionen und benutzerdefinierte Sprachimplementierungen.

Kannaopat Udonpant
Software Ingenieur
Bevor er Software-Ingenieur wurde, absolvierte Kannapat ein PhD in Umweltressourcen an der Hokkaido University in Japan. Während seines Studiums wurde Kannapat auch Mitglied des Vehicle Robotics Laboratory, das Teil der Fakultät für Bioproduktionstechnik ist. Im Jahr 2022 nutzte er seine C#-Kenntnisse, um dem Engineering-Team von Iron Software ...
Weiterlesen
Rezensiert von
Jeff Fritz
Jeffrey T. Fritz
Principal Program Manager - .NET Community Team
Jeff ist außerdem Principal Program Manager für das .NET- und Visual Studio-Team. Er ist der ausführende Produzent der .NET Conf Virtual Conference Series und moderiert ‚Fritz and Friends‘, einen Livestream für Entwickler, der zweimal wöchentlich ausgestrahlt wird. Dort spricht er über Technik und schreibt gemeinsam mit den Zuschauern Code. Jeff schreibt Workshops, Präsentationen und plant Inhalte für die größten Microsoft-Entwicklerveranstaltungen, einschließlich Microsoft Build, Microsoft Ignite, .NET Conf und dem Microsoft MVP Summit.
Bereit anzufangen?
Nuget Downloads 5,246,844 | Version: 2025.12 gerade veröffentlicht