Benutzerdefiniertes Schrifttraining für Tesseract 5 in C#

C# Custom Font Training for Tesseract 5 (for Windows Users)

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

Nutzen Sie benutzerdefiniertes Schriftart-Training für Tesseract 5, um die Genauigkeit und Erkennungsfähigkeiten der OCR-Engine zu verbessern, wenn Sie mit bestimmten Schriftarten oder Schriftstilen arbeiten, die standardmäßig möglicherweise nicht gut unterstützt werden.

Der Prozess beinhaltet das Bereitstellen von Trainingsdaten für Tesseract, wie Schriftartmuster und entsprechender Text, damit es die spezifischen Merkmale und Muster der benutzerdefinierten Schriftarten lernen kann.

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

Hier erfahren Sie, wie Sie Ihre benutzerdefinierte Tesseract-Schriftart-Datei in IronOCR mit nur ein paar Zeilen verwenden können. Ideal, um schnell genaue OCR für spezielle oder dekorative Schriftarten zu erhalten.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. Copy and run this code snippet.

    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. Deploy to test on your live environment

    Start using IronOCR in your project today with a free trial
    arrow pointer
class="hsg-featured-snippet">

Minimaler Workflow (5 Schritte)

  1. Laden Sie eine C#-Bibliothek herunter, um benutzerdefinierte Schriftarten mit Tesseract zu trainieren
  2. Bereiten Sie die Ziel-Schriftart-Datei vor, die für das Training verwendet werden soll
  3. Befolgen Sie die im Artikel angegebenen Schritte
  4. Enthält Lösungen für häufig auftretende Fehler
  5. Exportieren Sie die trainierte Datendatei zur weiteren Verwendung

Schritt 1: Laden Sie die neueste Version von IronOCR herunter

Installation über DLL

Laden Sie die IronOcr DLL direkt auf Ihren Rechner herunter.

Installation über NuGet

Alternativ können Sie über NuGet mit folgendem Befehl installieren:

Install-Package IronOcr

Schritt 2: Installieren und Einrichten von WSL2 und Ubuntu

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

Hinweis:Benutzerdefiniertes Schriftart-Training kann derzeit nur unter Linux durchgeführt werden.

Schritt 3: Installieren Sie Tesseract 5 auf Ubuntu

Verwenden Sie die folgenden 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

Schritt 4: Laden Sie die Schriftart herunter, die Sie trainieren möchten

Wir verwenden die AMGDT-Schriftart für dieses Tutorial. Die Schriftart-Datei kann entweder .ttf oder .otf sein. Beispiel einer heruntergeladenen Schriftart-Datei

Schritt 5: Montieren Sie das Laufwerk Ihres Arbeitsbereichs für benutzerdefiniertes Schriftart-Training

Verwenden Sie die folgenden Befehle, um Laufwerk D: als Ihren Arbeitsbereich zu montieren.

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

Schritt 6: Kopieren Sie die Schriftart-Datei in den Ubuntu-Schriftartenordner

Kopieren Sie die Schriftart-Datei in die folgenden 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.

Ubuntu-Ordnerverzeichnis

Fehlerbehebung: Zugriff auf Zielordner verweigert

Wenn Sie auf Prüfungsfehler zugreifen, lösen Sie dies, indem Sie die Befehlszeile verwenden, um die 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

Schritt 7: Klonen Sie tesseract_tutorial von GitHub

Klonen Sie das tesseract_tutorial-Repository mit dem folgenden Befehl:

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

Schritt 8: Klonen Sie tesstrain und tesseract von GitHub

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 die "Makefile", die verwendet wird, um die .traineddata-Datei zu erstellen.
  • tesseract enthält den "tessdata"-Ordner, der die Original-.traindata-Dateien für die Referenz während des benutzerdefinierten Schriftart-Trainings beinhaltet.

Schritt 9: Erstellen Sie einen "data"-Ordner zum Speichern der Ausgaben

Erstellen Sie einen "data"-Ordner innerhalb von tesseract_tutorial/tesstrain.

Schritt 10: Führen Sie split_training_text.py aus

Kehren Sie zum tesseract_tutorial-Ordner zurück und führen Sie den folgenden Befehl aus:

python split_training_text.py
python split_training_text.py
SHELL

Nachdem Sie split_training_text.py ausgeführt haben, werden .box- und .tif-Dateien im "data"-Ordner erstellt.

Fehlerbehebung: Fontconfig-Warnung

Font Config Warnung Wenn Sie die Warnung Fontconfig warning: "/tmp/fonts.conf, line 4: Leerzeichen im Verzeichnisnamen ignoriert" sehen, liegt dies an fehlenden Schriftverzeichnissen. Lösen Sie dies, indem Sie die Datei tesseract_tutorial/fonts.conf bearbeiten und:

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

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

/etc/fonts

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

Aktualisieren Sie zusätzlich split_training_text.py:

Hinweis: Anzahl der Trainings (.box und .tif) Dateien

Die aktuelle Anzahl der Trainingsdateien ist auf 100 gesetzt. Sie können dies in split_training_text.py ändern.

Stellen Sie die Anzahl der Trainingsdateien ein

Schritt 11: Downloaden Sie eng.traineddata

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

Schritt 12: Erstellen Sie Ihre benutzerdefinierte Schriftart .traineddata

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

Navigieren Sie zum tesstrain-Ordner und verwenden Sie den Befehl unten in WSL2:

  • MODEL_NAME ist Ihr benutzerdefinierter Schriftname.
  • START_MODEL ist die originale .traineddata-Referenz.

  • MAX_ITERATIONS definiert die Anzahl der Iterationen (mehr Iterationen können die Genauigkeit von .traineddata verbessern).

Fehlerbehebung: "Fehler beim Lesen von Daten" in 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

Um "Fehler beim Lesen von Daten"-Probleme zu lösen, ändern Sie die Makefile:

Fehlerbehebung: "Fehler beim Laden des Skripts Unicharset" Fügen Sie Latin.unicharset in den tesstrain/data/langdata-Ordner ein.

Das Latin.unicharset finden Sie hier.

Schritt 13: Überprüfen Sie die Genauigkeit der erstellten .traineddata

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

Traineddata-Genauigkeit

Häufig gestellte Fragen

Wie trainiere ich eine benutzerdefinierte Schriftart für Tesseract in C#?

Um eine benutzerdefinierte Schriftart für Tesseract mit C# zu trainieren, müssen Sie zuerst IronOCR herunterladen, Ihre Schriftartdatei vorbereiten und eine Linux-Umgebung über WSL2 und Ubuntu unter Windows einrichten, da das Training benutzerdefinierter Schriften nur auf Linux unterstützt wird.

Was sind die Schritte zur Installation von Tesseract 5 auf einem Windows-System mit WSL2?

Um Tesseract 5 unter Windows mit WSL2 zu installieren, müssen Sie Ubuntu einrichten und dann die Befehle sudo apt install tesseract-ocr und sudo apt install libtesseract-dev verwenden, um die Installation abzuschließen.

Was soll ich tun, wenn ich beim Kopieren von Schriftdateien auf 'Zugriff auf Zielordner verweigert' stoße?

Wenn Sie auf Fehler 'Zugriff auf Zielordner verweigert' stoßen, verwenden Sie die Befehlszeile mit Root-Zugriff, um die Schriftdateien in die erforderlichen Verzeichnisse zu kopieren, um Berechtigungsprobleme zu umgehen.

Warum ist eine Linux-Umgebung für die benutzerdefinierte Schriftartentrainierung in Tesseract notwendig?

Eine Linux-Umgebung ist erforderlich für die benutzerdefinierte Schriftartentrainierung in Tesseract, da die Trainingswerkzeuge darauf ausgelegt sind, auf Unix-ähnlichen Systemen ausgeführt zu werden, und WSL2 kann zur Emulation dieser Umgebung unter Windows verwendet werden.

Wie behebe ich 'Fontconfig-Warnung'-Fehler beim Training benutzerdefinierter Schriftarten?

Um 'Fontconfig-Warnung'-Fehler zu beheben, sollten Sie die Pfade zu den Schriftverzeichnissen zur fonts.conf Datei hinzuzufügen und sicherstellen, dass sie in das Verzeichnis /etc/fonts kopiert wird.

Was ist der Zweck des 'tesstrain'-Repositorys bei der benutzerdefinierten Schriftartentrainierung?

Das 'tesstrain'-Repository wird verwendet, um die .traineddata-Datei zu erstellen, die für das benutzerdefinierte Schriftartentraining in Tesseract benötigt wird, und stellt Skripte und Makefile bereit, die für den Prozess erforderlich sind.

Wie kann ich den Fehler 'Failed to Load Script Unicharset' beheben?

Um den Fehler 'Failed to Load Script Unicharset' zu beheben, müssen Sie die Latin.unicharset in den Ordner tesstrain/data/langdata einfügen, um sicherzustellen, dass der notwendige Zeichensatz verfügbar ist.

Wie überprüfe ich die Genauigkeit meiner benutzerdefinierten Trainingsdaten in Tesseract?

Sie können die Genauigkeit Ihrer benutzerdefinierten Trainingsdaten überprüfen, indem Sie die Trainingsfehlerrate, bekannt als BCER, prüfen und sicherstellen, dass sie nach ausreichenden Iterationen und Anpassungen der Trainingsdateien minimal ist.

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,044,537 | Version: 2025.11 gerade veröffentlicht