C# Schulung für benutzerdefinierte Schriftarten für Tesseract 5 (für Windows-Benutzer)

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

von Kannapat Udompant

Verwenden Sie das benutzerdefinierte Schriftartentraining für Tesseract 5, um die Genauigkeit und die Erkennungsfähigkeiten der OCR-Engine zu verbessern, wenn Sie mit bestimmten Schriftarten oder Schriftschnitten arbeiten, die standardmäßig nicht gut unterstützt werden.

Dabei werden Tesseract Trainingsdaten wie Schriftmuster und entsprechender Text zur Verfügung gestellt, damit es die spezifischen Eigenschaften und Muster der benutzerdefinierten Schriftarten erlernen kann.


## Schritt 1: Laden Sie die neueste Version von IronOCR herunter
C# NuGet-Bibliothek für OCR

Installieren mit NuGet

Install-Package IronOcr
oder
Java PDF JAR

Herunterladen DLL

DLL herunterladen

Manuelle Installation in Ihr Projekt

C# NuGet-Bibliothek für OCR

Installieren mit NuGet

Install-Package IronOcr
oder
Java PDF JAR

Herunterladen DLL

DLL herunterladen

Manuelle Installation in Ihr Projekt

Fangen Sie noch heute an, IronPDF in Ihrem Projekt mit einer kostenlosen Testversion zu verwenden.

Erster Schritt:
green arrow pointer

Schau dir an IronOCR an Nuget Für schnelle Installation und Bereitstellung. Mit über 8 Millionen Downloads verwandelt es OCR mit C#.

C# NuGet-Bibliothek für OCR nuget.org/packages/IronOcr/
Install-Package IronOcr

Erwägen Sie die Installation der IronOCR DLL direkt. Laden Sie es herunter und installieren Sie es manuell für Ihr Projekt oder die GAC-Form: IronOcr.zip

Manuelle Installation in Ihr Projekt

DLL herunterladen

Installation über DLL

Herunterladen der IronOcr DLL direkt auf Ihr Gerät.

Installation über NuGet

Alternativ können Sie die Installation auch über NuGet . ```shell :ProductInstall ```
## Schritt 2: Installieren und Einrichten von WSL2 und Ubuntu [Hier](https://ubuntu.com/tutorials/install-ubuntu-on-wsl2-on-windows-10) ist die Anleitung zum Einrichten von WSL2 und Ubuntu ** Derzeit kann das Training für benutzerdefinierte Schriften nur unter Linux durchgeführt werden ## Schritt 3: Tesseract 5 auf Ubuntu installieren ```bash sudo apt install tesseract-ocr sudo apt install libtesseract-dev ``` ## Schritt 4: Laden Sie die Schriftart herunter, die Sie trainieren möchten Wir verwenden für dieses Tutorial die Schriftart AMGDT. Die Schriftdatei kann sowohl .ttf als auch .otf sein ![](/static-assets/ocr/how-to/ocr-custom-font-training/example_of_downloaded_font_file.png) ## Schritt 5: Mounten Sie das Laufwerk Ihres Arbeitsbereichs für das Training der benutzerdefinierten Schriftart Der folgende Befehl zeigt, wie man das Laufwerk `D:` als Arbeitsbereich einbindet. ```bash cd / cd /mnt/d ``` ## Schritt 6: Kopieren Sie die Schriftdatei in den Ubuntu-Schriftordner Hier ist das Verzeichnis des Ubuntu-Schriftartenordners; `Ubuntu/usr/share/fonts` und `Ubuntu/usr/local/share/fonts`. ** Um auf die Datei unter Ubuntu zuzugreifen, geben Sie im Dateiexplorer-Verzeichnis `\\wsl$` ein ![](/static-assets/ocr/how-to/ocr-custom-font-training/ubutu_folder_directory.png) ### Fehlersuche: Zugriff auf Zielordner verweigert ![](/static-assets/ocr/how-to/ocr-custom-font-training/destination_folder_access_denied.png) Dieses Problem kann durch Kopieren der Datei über die Befehlszeile gelöst werden ```bash 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 su username ``` ## Schritt 7: Klonen Sie tesseract_tutorial von Github das `tesseract_tutorial` Repository kann über die folgende URL geklont werden; [https://github.com/astutejoe/tesseract_tutorial.git](https://github.com/astutejoe/tesseract_tutorial.git) indem Sie den folgenden Befehl verwenden; ```bash git clone https://github.com/astutejoe/tesseract_tutorial.git ``` ## Schritt 8: Klonen Sie tesstrain und tesseract von Github Wechseln Sie in das Verzeichnis "tesseract_tutorial" und klonen Sie mit git die Verzeichnisse https://github.com/tesseract-ocr/tesstrain und https://github.com/tesseract-ocr/tesseract - tesstrain enthält die Datei "Makefile", die zur Erstellung der Datei "traineddata" verwendet wird(ziel dieses Tutoriums) - tesseract enthält den Ordner "tessdata", der die ursprüngliche .traindata-Datei enthält, die als Referenz für das Training der benutzerdefinierten Schriftarten dient ## Schritt 9: Erstellen des Ordners "data" zum Speichern der Ausgaben Die "Daten" sollten in `tesseract_tutorial/tesstrain` erstellt werden. ## Schritt 10: Split_training_text.py ausführen Kehren Sie zum Verzeichnis `tesseract_tutorial` zurück und kompilieren Sie den folgenden Befehl; ```bash python split_training_text.py ``` Nach der Ausführung von `plit_training_text.py` werden die Dateien `.box` und `.tif` im Ordner "data" erstellt. ### Fehlersuche: Fontconfig-Warnung: "/tmp/fonts.conf, Zeile 4: leerer Font-Verzeichnisname ignoriert ![](/static-assets/ocr/how-to/ocr-custom-font-training/fontconfig_warning.png) Dieses Problem wird dadurch verursacht, dass das Schriftartenverzeichnis im Ubuntu-Ordner nicht gefunden werden kann und kann durch Einfügen dieser Codezeilen in `tesseract_tutorial/fonts.conf` gelöst werden ![](/static-assets/ocr/how-to/ocr-custom-font-training/fontconfig_dir.png.png) und ``` /usr/share/schriftarten/usr/local/share/schriftartenschriftarten ~/.fonts ``` Dann kopieren Sie sie nach `/etc/fonts` ```bash cp fonts.conf /etc/fonts ``` Fügen Sie schließlich die folgenden Codezeilen zu `split_training_text.py` hinzu ![](/static-assets/ocr/how-to/ocr-custom-font-training/fontconfig_sol.png) und ``` fontconf_dir = '/etc/fonts` ``` ### Hinweis: Anzahl der Schulungsdateien (.box und .tif) Derzeit beträgt die Anzahl der Trainingsdateien 100. Diese Anzahl von Trainingsdateien kann durch Bearbeiten oder Löschen dieser Codezeilen in split_training_text.py eingestellt werden. ![](/static-assets/ocr/how-to/ocr-custom-font-training/number_of_trainfile.png) ## Schritt 11: Herunterladen von eng.traineddata die Datei `eng.traineddata` kann unter der folgenden Adresse abgerufen werden:[https://github.com/tesseract-ocr/tessdata_best](https://github.com/tesseract-ocr/tessdata_best). Laden Sie sie in den Ordner `tesseract_tutorial/tesseract/tessdata` herunter, da diese `eng.traineddata` in `tessdata_best` besser ist als die Originaldaten im Ordner `tessdata`. ## Schritt 12: Erstellen Sie Ihre eigene Schriftart .traineddata Gehen Sie in das Verzeichnis `tesstrain` und geben Sie folgende Befehlszeile in die WSL2 ein ``` TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100 ``` - Training durchführen = Code in `tesstrain/Makefile` ausführen - MODEL_NAME = der Name der benutzerdefinierten Schriftart - START_MODEL = der Name der ursprünglichen `.traineddata` - MAX_ITERATIONS = Anzahl der Iterationen(eine größere Zahl bedeutet eine höhere Genauigkeit der "trainierten Daten" ![](/static-assets/ocr/how-to/ocr-custom-font-training/makefile_issues.png) ### "Failed to read data from: " kann durch Bearbeiten von Codezeilen im Makefile gelöst werden Vorher: ![](/static-assets/ocr/how-to/ocr-custom-font-training/makefile_sol_before.png) Danach: ![](/static-assets/ocr/how-to/ocr-custom-font-training/makefile_sol_after.png) und ``` make - Makefile WORTLISTE_DATEI := $(OUTPUT_DIR2)/$(MODELL_NAME).lstm-word-dawg ZAHLEN_DATEI := $(OUTPUT_DIR2)/$(MODELL_NAME).lstm-nummer-dawg PUNC_FILE := $(OUTPUT_DIR2)/$(MODELL_NAME).lstm-punc-dawg ``` ### die Meldung "Failed to load script unicharset from:data/langdata/Latin.unicharset" kann durch Einfügen von `Latin.unicharset` in den Ordner `tesstrain/data/langdata` behoben werden - latin.unicharset" ist unter der folgenden Adresse zu finden; https://github.com/tesseract-ocr/langdata_lstm ## Schritt 13: Die Genauigkeit der erstellten `.traineddata` Mit 1000 "box"- und "tif"-Dateien und 3000 Iterationen des Trainings wird die Ausgabe "traineddta" erzeugt(AMGDT.trainierteDaten) hat eine minimale Fehlerquote beim Training(BCER) rund 5,77 ![](/static-assets/ocr/how-to/ocr-custom-font-training/traineddata_accuracy.png) Für weitere Lektüre und weitere Hinweise: **ref**: https://www.youtube.com/watch?v=KE4xEzFGSU8ustom

Kannapat Udonpant

Software-Ingenieur

Bevor er Software-Ingenieur wurde, promovierte Kannapat an der Universität Hokkaido in Japan im Bereich Umweltressourcen. Während seines Studiums wurde Kannapat auch Mitglied des Vehicle Robotics Laboratory, das Teil der Abteilung für Bioproduktionstechnik ist. Im Jahr 2022 wechselte er mit seinen C#-Kenntnissen zum Engineering-Team von Iron Software, wo er sich auf IronPDF konzentriert. Kannapat schätzt an seiner Arbeit, dass er direkt von dem Entwickler lernt, der den Großteil des in IronPDF verwendeten Codes schreibt. Neben dem kollegialen Lernen genießt Kannapat auch den sozialen Aspekt der Arbeit bei Iron Software. Wenn er nicht gerade Code oder Dokumentationen schreibt, kann man Kannapat normalerweise beim Spielen auf seiner PS5 oder beim Wiedersehen mit The Last of Us antreffen.