IRONSOFTWAREHOME

Wie man eine benutzerdefinierte Schriftart mit Tesseract 5 in C# trainiert

Kannaopat Udonpant
Kannapat Udonpant
Updated: 4. Juni 2026

Das Standard-Tesseract-Englischmodell liest viele reale Eingaben falsch: handschriftliche Aufnahmeformulare im Krankenhaus, die Digitalisierung alter Bücher, eine individuelle dekorative Schrift eines Spieleentwicklers oder branchenspezifische Symbole, die eine generische OCR-Engine noch nie gesehen hat. Die Lösung besteht darin, Tesseract selbst auf der genauen Schriftart zu trainieren und ein einzelnes .traineddata Artefakt zu erzeugen, das Sie überall einsetzen können, wo IronOCR läuft.

Dieses Handbuch führt durch das Tesseract 5 Custom Font Training von Anfang bis Ende in C#: Installation der WSL2 Ubuntu-Toolchain, Erstellung von .box und .tif Trainingsdateien aus Ihrem .ttf oder .otf, Aufbau des .traineddata Modells mit tesstrain gegen ein Basis-eng.traineddata, und dann Laden des Ergebnisses in IronOCR. Sobald das Training abgeschlossen ist, ist die Datei auf Windows, macOS, Linux und Docker portabel.

Schnellstart: Verwenden Sie Ihre trainierte Schriftdatei in C#

Konfigurieren Sie IronOCR, indem Sie UseCustomTesseractLanguageFile auf Ihre trainierte .traineddata Datei zeigen, und dann Read auf jedes Bild anwenden, wie Sie es mit einem Standard-Sprachpaket tun würden.

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

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

    using IronOcr;
    
    var ocr = new IronTesseract();
    ocr.UseCustomTesseractLanguageFile("path/to/YourCustomFont.traineddata");
    string text = ocr.Read(new OcrInput("image-with-special-font.png")).Text;
    C#
  3. 3Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute, IronOCR in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
    arrow pointer

Wie richte ich die Trainingsumgebung ein?

Wie installiere ich IronOCR?

Installieren Sie IronOCR über NuGet:

PM > Install-Package IronOcr

Das DLL-Paket ist eine manuelle Alternative, falls Sie NuGet nicht verwenden können. Für die zugrunde liegende Engine sehen Sie sich den Tesseract 5-Funktionsleitfaden und die benutzerdefinierte Sprachreferenz an.

Wie installiere und richte ich WSL2 und Ubuntu ein?

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

Hinweis:: Benutzerdefiniertes Schriftarten-Training erfordert Linux.

WSL2 reicht aus: Sobald das Training abgeschlossen ist, wird die resultierende .traineddata Datei mit Ihrer IronOCR-App auf Windows, macOS, Linux oder Docker bereitgestellt. Für Einzelheiten zum Deployment siehe den Linux-Deployment-Leitfaden.

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
SHELL

Das tesseract-ocr Paket ist der Motor, der die Erkennung ausführt; libtesseract-dev stellt die Header bereit, die tesstrain benötigt, um ein Modell zu erstellen. Sobald Ihre trainierte Datei verwendet wird, deckt der Tesseract-Konfigurationsleitfaden die Abstimmung zur Laufzeit ab.

Wie bereite ich die Schrift für das Training vor?

Welche Schriftart soll ich herunterladen?

Dieses Tutorial verwendet die AMGDT Schriftart, entweder im .ttf oder .otf Format.

Windows-Dateiexplorer zeigt heruntergeladene AMGDT Regular.ttf Schriftartdatei an, die im roten Kasten für das Training hervorgehoben ist

Wenn Sie eine Schriftart zum Trainieren auswählen:

  • Wählen Sie Schriftarten, die das Standard-Englischmodell bereits falsch liest. Das Training einer Schriftart, die bereits erkannt wird, verschwendet Zeit.
  • Bestätigen Sie, dass die Lizenz der Schriftart die Weiterverbreitung erlaubt, wenn Ihr .traineddata mit einer Anwendung ausgeliefert wird.
  • Dekorative, handgeschriebene und branchenspezifische Schriftarten (medizinisch, rechtlich, kartografisch) gewinnen durch das Training die meiste Genauigkeit.
  • Passen Sie die Trainingsproben an das an, was in der Produktion tatsächlich gesehen wird, einschließlich Auflösung und Beleuchtung.

Wie binde ich das Laufwerk ein?

Binden Sie Laufwerk D: als Ihren Arbeitsbereich ein:

cd /
cd /mnt/d
SHELL

WSL2 bindet jedes Windows-Laufwerk unter /mnt/<Buchstabe> ein, sodass Sie Dateien unter Windows bearbeiten und Trainingsbefehle gegen sie im selben Sitzungsabschnitt ausführen können.

Wie kopiere ich die Schriftdatei in den Ubuntu-Schriftenordner?

Tesseract rendert Beispieltext in Ihrer Schriftart, um Trainingsbilder zu erstellen, daher muss die Schrift auf der Linux-Seite installiert sein, nicht nur auf Windows. Kopieren Sie die Schriftdatei in beide Ubuntu-Schriftverzeichnisse: /usr/share/fonts und /usr/local/share/fonts. Der einfachste Weg ist, \wsl$ in die Adressleiste des Dateiexplorers einzugeben, um das Ubuntu-Dateisystem von Windows aus zu durchsuchen, und dann das .ttf herüberzuziehen.

Windows-Datei-Explorer mit dem Netzwerkpfad \wsl$ für den Zugriff auf das Ubuntu-Dateisystem von Windows aus

So sollte das Kopieren der Schriftart aussehen, sobald sie im Ubuntu-Schriftverzeichnis angekommen ist:

AMGDT-Schriftdatei wird in den Ubuntu-Schriftartenordner kopiert und vom System erkannt

Was, wenn ich Zugriff auf das Zielverzeichniss verweigert bekomme?

Wenn der Datei-Explorer das Kopieren ablehnt, führen Sie es stattdessen von einer Root-Shell aus aus:

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

Wie klone ich die Trainings-Repositories von GitHub?

Die Trainingspipeline hängt von drei Repositories ab. Klonen Sie zunächst den Tutorial-Wrapper, dann die beiden ursprünglichen Tesseract-Repos darin und erstellen Sie dann den Ausgabeordner:

git clone https://github.com/astutejoe/tesseract_tutorial.git
cd tesseract_tutorial
git clone https://github.com/tesseract-ocr/tesstrain
git clone https://github.com/tesseract-ocr/tesseract
mkdir tesstrain/data
SHELL
  • Tesseract_tutorial bündelt die Python-Skripte und Konfigurationsdateien, die jeden Trainingsschritt steuern (Textgenerierung, Bild-Rendering, Erstellung von Trainingspaaren).
  • tesstrain enthält das Makefile, das den eigentlichen Trainingslauf steuert.
  • Tesseract enthält den Tessdata-Ordner mit Standard-.traineddata Dateien, die als Ausgangsmodell für das benutzerdefinierte Training verwendet werden.
  • tesstrain/data ist der Ort, an dem generierte .box Dateien (Zeichenbegrenzungsrahmen), .tif Bilder und Zwischen-LSTM-Checkpoints landen.

So sollte die Klonsequenz im Terminal aussehen:

Terminal, das die vier git-clone-Befehle ausführt und den tesstrain-Datenordner erstellt

Für die Arbeit mit mehreren Sprachpaketen zusammen mit einem benutzerdefinierten, siehe unseren internationalen Sprachleitfaden.

Wie erstelle ich Trainingsdateien?

Wie starte ich das split_training_text.py-Skript?

Aus dem Tesseract_tutorial-Ordner heraus führen Sie:

python split_training_text.py
SHELL

Das Skript erzeugt pro Trainingsprobe ein .box / .tif Paar und schreibt es in den Datenordner.

So sollte der Skriptlauf aussehen, während er die Trainingspaare generiert:

Terminal, das split_training_text.py ausführt und .box- und .tif-Dateien im Datenordner erzeugt

Wie behebe ich die Fontconfig-Warnung?

Terminal zeigt fontconfig-Warnungen über fehlende Apex-Schriftart und leere Schriftart-Verzeichnisfehler

Wenn Sie die Warnung sehen Fontconfig warning: "/tmp/fonts.co/nf, line 4: empty font directory name ignored", kann fontconfig die Schriftverzeichnisse nicht auflösen. Beheben Sie es durch Bearbeiten von tesseract_tutorial/fonts.co/nf:

<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:

cp fonts.co/nf /etc/fonts
SHELL

Zeigen Sie dann split_training_text.py auf denselben Pfad:

fontconf_dir = '/etc/fonts'
Python

Wie viele Trainingsdateien sollte ich erstellen?

Standardmäßig generiert das Skript 100 Trainingspaare. Ändern Sie die Anzahl oben in split_training_text.py:

Python-Code setzen count=100 und Zeilen-Array schneiden, um die Größe der Trainingsdaten zu begrenzen

Größenanleitung:

  • 100-500 Proben reichen aus, um die Ende-zu-Ende-Funktionalität der Pipeline zu bestätigen.
  • 1000-5000 Proben sind der Arbeitsbereich für Produktionsgenauigkeit.
  • Der Trainingsinhalt muss jedes Zeichen abdecken, das Ihre Schrift erkennen muss, idealerweise mehrmals.
  • Mehr Proben bedeuten längere Trainingszeit; wählen Sie die kleinste Menge, die Ihr Genauigkeitsziel erreicht.

Wo lade ich die eng.traineddata-Datei herunter?

Laden Sie eng.traineddata von der tessdata_best Repository herunter und platzieren Sie es in Tesseract_tutorial/tesseract/tessdata.

Das Basismodell gibt dem Trainer einen linguistischen Kontext (welche Zeichenfolgen plausible Wörter bilden), dadurch ist die Genauigkeit viel besser als bei einem Training von Grund auf. Wählen Sie ein Basismodell in derselben Sprache wie Ihr Trainingsinhalt. Wenn Sie auf Probleme stoßen, sehen Sie im Leitfaden zur Fehlersuche bei benutzerdefinierten OCR-Sprachpaketen nach.

Wie erstelle ich meine benutzerdefinierte Schriftart-Trainingsdatendatei?

Aus dem tesstrain-Ordner heraus führen Sie:

TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
SHELL
  • MODEL_NAME ist der Name Ihrer benutzerdefinierten Schrift (wird für den Ausgabedateinamen verwendet).
  • START_MODEL ist das Basis-.traineddata, das Sie oben heruntergeladen haben.
  • MAX_ITERATIONS begrenzt den Trainingslauf; höhere Werte reduzieren in der Regel die Fehlerquote.

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

Um "Failed to read data"-Fehler zu beheben, patchen 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
Text

Der Patch zeigt das Makefile auf das tatsächliche Ausgabeverzeichnis, damit es die Wörterbuchdateien finden kann.

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

Laden Sie Latin.unicharset von langdata_lstm herunter und platzieren Sie es im Verzeichnis tesstrain/data/langdata.

Die .unicharset Datei definiert, welche Zeichen vom Trainer ausgegeben werden dürfen. Verwenden Sie die Datei, die jedes Zeichen Ihrer Schriftart abdeckt, zum Beispiel Cyrillic.unicharset für kyrillische Schriften oder Devanagari.unicharset für Devanagari.

So sollte ein erfolgreicher Trainingsdurchlauf aussehen, während tesstrain die .traineddata Datei produziert:

tesstrain-Build-Pipeline, die Trainingsiterationen durchläuft und die Datei AMGDT.traineddata erzeugt

Wie überprüfe ich die Genauigkeit meiner trainierten Datendatei?

Mit 1.000 .box und .tif Dateien und 3.000 Trainingsiterationen erreicht die Ausgabe AMGDT.traineddata eine Trainingsfehlerquote (BCER) von etwa 5,77%.

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

Um das trainierte Modell mit IronOCR zu testen, zeigen Sie UseCustomTesseractLanguageFile auf die Datei und lesen Sie ein Beispielbild:

using IronOcr;

// Load the trained model; AutoOsd handles orientation
var ocr = new IronTesseract();
ocr.UseCustomTesseractLanguageFile("path/to/AMGDT.traineddata");
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Preprocess so the model sees clean glyphs
using var input = new OcrInput();
input.LoadImage("test-image-with-amgdt-font.png");
input.EnhanceResolution(300);
input.DeNoise();

// Confidence reflects training quality
var result = ocr.Read(input);
Console.WriteLine($"Text: {result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");

Die Confidence Eigenschaft ist die Punktzahl pro Dokument; wenn sie niedrig bleibt, auch auf sauberen Eingaben, sind die häufigsten Ursachen zu wenige Trainingsproben oder ein Basismodell, das nicht zum Skript passt. Sobald Ihr .traineddata verifiziert ist, sehen Sie sich unseren Leitfaden für benutzerdefinierte Sprachen an, um den allgemeinen Workflow zum Laden einer beliebigen benutzerdefinierten Sprachdatei zu verstehen.

Was sind die wichtigsten Erkenntnisse beim Training benutzerdefinierter Schriftarten?

Das Training einer benutzerdefinierten Schriftart ist eine einmalige Einrichtung: Generieren Sie .box / .tif Paare aus Ihrer Zielschriftart, erstellen Sie ein .traineddata Modell mit tesstrain und laden Sie es dann über UseCustomTesseractLanguageFile. Von da an liest IronOCR Bilder mit dem neuen Modell genauso wie mit Standard-Englisch.

Die wichtigsten Vorteile der Verwendung von IronOCR mit einem benutzerdefinierten Tesseract-Modell:

  • Verwendet Standard-Tesseract-Artefakte erneut: Jede .traineddata Datei, die Sie mit tesstrain erstellen können, funktioniert in IronOCR ohne Konvertierung.
  • Plattformübergreifende Ausgabe: Das Training erfordert Linux (oder WSL2), aber die trainierte Datei wird mit Ihrer Anwendung auf Windows, macOS, Linux und Docker geliefert.
  • Nahtlos mit dem Rest der API: Kombinieren Sie benutzerdefinierte Schriftarten mit mehreren Sekundärsprachen, Bildqualitätskorrektur und DPI-Abstimmung ohne Änderung des Erkennungspfads.
  • Anpassbare Genauigkeit: Die Fehlerquote ist eine Funktion von Trainingsproben mal Iterationen. Beide Schalter sind (die Stichprobenanzahl des Skripts plus MAX_ITERATIONS) freigelegt, sodass Sie den Kompromiss zwischen Trainingszeit und BCER innerhalb von Tesseract feinabstimmen können.

Für größere Pipelines ziehen Sie Fortschrittsüberwachung und asynchrone Verarbeitung in Betracht, wenn Sie Ihr trainiertes Modell über viele Dokumente hinweg anwenden.

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.

Can I deploy my custom-trained Tesseract model on multiple platforms?

Yes, once trained on a Linux environment, the `.traineddata` file is portable and can be used in applications running on Windows, macOS, Linux, and Docker.

What accuracy can I expect from a custom-trained font model in IronOCR?

The accuracy depends on training samples and iterations during the training process. More samples and iterations generally enhance accuracy, and IronOCR provides confidence scores to evaluate the model.

How can I troubleshoot 'Failed to Read Data' errors during training?

This error can often be resolved by patching the Makefile to correctly point it toward the output directory for dictionary files.

What is the role of the `eng.traineddata` file in custom font training?

`eng.traineddata` serves as the base language model providing linguistic context, which improves the accuracy of the custom-trained font over models built entirely from scratch.

What should I do if I encounter permission issues copying font files during setup?

If you receive a 'Destination Folder Access Denied' message, perform the file copy operation from a root shell in the terminal to ensure proper permissions.

Bereit anzufangen?

Nuget Downloads 6,236,385Version:2026.9gerade veröffentlicht

Holen Sie sich Ihre KOSTENLOSE

30-Tage-Testlizenz sofort.

bullet_checkedKeine Kreditkarte oder Kontoerstellung erforderlich
bullet_testTesten Sie in der Produktion
ohne Wasserzeichen
bullet_calendar30 Tage voll
funktionsfähiges Produkt
bullet_support24/5 technischer
Support während der Testphase
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.
C# NuGet-Bibliothek für PDF
Installation mit NuGet

Version: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. Rechtsklick auf Referenzen, NuGet-Pakete verwalten
  2. Wählen Sie Durchsuchen und suchen Sie nach "IronOCR"
  3. Paket auswählen und installieren
C# PDF DLL
Download DLL

Version: 2026.9

oder laden Sie den Windows Installer hier herunter.

  1. Laden Sie IronOCR herunter und entpacken Sie es in einem Ordner wie ~/Libs in Ihrem Lösungsverzeichnis.
  2. Klicken Sie im Visual Studio Solution Explorer mit der rechten Maustaste auf Referenzen. Wählen Sie Durchsuchen, "IronOCR.dll"

Lizenzen von $999

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Kundenlogos von Iron Software
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.