C# Schulung für benutzerdefinierte Schriftarten für Tesseract 5 (für Windows-Benutzer)
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.
Legen Sie los mit IronOCR
Beginnen Sie noch heute mit der Verwendung von IronOCR in Ihrem Projekt mit einer kostenlosen Testversion.
Verwendung von Tesseract Custom Font in C#
- Laden Sie eine C#-Bibliothek herunter, um benutzerdefinierte Schriften mit Tesseract zu trainieren
- Bereiten Sie die für die Schulung zu verwendende Schriftartdatei vor
- Befolgen Sie die im Artikel beschriebenen Schritte
- Enthält Lösungen für häufig auftretende Fehler
- Exportieren Sie die trainierte Datendatei zur weiteren Verwendung
Schritt 1: Laden Sie die neueste Version von IronOCR herunter
Installation über DLL
Herunterladen der IronOcr DLL direkt auf Ihr Gerät.
Installation über NuGet
Alternativ können Sie die Installation auch über NuGet .
Install-Package IronOcr
Schritt 2: Installieren und Einrichten von WSL2 und Ubuntu
Hier 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
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
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.
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
Fehlersuche: Zugriff auf Zielordner verweigert
Dieses Problem kann durch Kopieren der Datei über die Befehlszeile gelöst werden
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 indem Sie den folgenden Befehl verwenden;
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;
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
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
und
<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">schriftarten</dir>
<!-- das folgende Element wird in Zukunft entfernt -->
<dir>~/.fonts</dir>
Dann kopieren Sie sie nach /etc/fonts
cp fonts.conf /etc/fonts
Fügen Sie schließlich die folgenden Codezeilen zu split_training_text.py
hinzu
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.
Schritt 11: Herunterladen von eng.traineddata
die Datei eng.traineddata
kann unter der folgenden Adresse abgerufen werden: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"
"Failed to read data from: " kann durch Bearbeiten von Codezeilen im Makefile gelöst werden
Vorher:
Danach:
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.traineddata) hat eine minimale Fehlerquote beim Training(BCER) rund 5,77
Für weitere Lektüre und weitere Hinweise: ref: https://www.youtube.com/watch?v=KE4xEzFGSU8ustom