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

C#-Schulung zu benutzerdefinierten Schriftarten in Tesseract 5 für Windows-Entwickler

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

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:Das Training benutzerdefinierter Schriftarten ist derzeit nur unter Linux möglich.

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: Schriftart-Datei nach Ubuntu kopieren

Kopieren Sie die Schriftartdatei 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: empty font directory name ignored" sehen, liegt dies an fehlenden Schriftartenverzeichnissen. 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 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

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.

Schritt 11: eng.traineddata herunterladen

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

Schritt 12: Eigene Schriftart .traineddata erstellen

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

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

Problembehebung: "Daten konnten nicht gelesen werden" im Makefile

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

Fehlerbehebung: "Script Unicharset konnte nicht geladen werden"

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

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

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

Genauigkeit von Traineddata

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