C# Benutzerdefinierte Schriftartschulung 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 Schriftarten 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
Laden Sie die IronOcr DLL direkt auf Ihren Rechner herunter.
Installation über NuGet
Alternativ können Sie über NuGet installieren.
Install-Package IronOcr
Schritt 2: Installieren und Einrichten von WSL2 und Ubuntu
Hier ist das Tutorial zur Einrichtung von WSL2 und Ubuntu. Derzeit kann das Training von benutzerdefinierten 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 Schriftartdatei 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 das Laufwerk D:
als Arbeitsbereich eingebunden wird.
cd /
cd /mnt/d
Schritt 6: Kopieren Sie die Schriftartdatei in den Ubuntu-Schriftartenordner
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 \\\wsl$
im Dateiexplorer-Verzeichnis 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 Repository tesseract_tutorial
kann von der folgenden URL geklont werden; https://github.com/astutejoe/tesseract_tutorial.git mit folgendem Befehl verwenden;
git clone https://github.com/astutejoe/tesseract_tutorial.git
Schritt 8: Klonen Sie tesstrain und tesseract von GitHub
Gehen Sie zum Verzeichnis tesseract_tutorial
und führen Sie dann git clone https://github.com/tesseract-ocr/tesstrain und https://github.com/tesseract-ocr/tesseract
aus
tesstrain
enthält die Datei "Makefile", die zur Erstellung der .traineddata-Datei verwendet wird (Ziel dieses Tutorials).tesseract
enthält den Ordner "tessdata", der eine Sammlung originaler .traindata-Dateien ist, die als Referenz für das Training von benutzerdefinierten Schriftarten verwendet werden.
Schritt 9: Erstellen Sie den Ordner "data" zur Speicherung der Ausgaben
Die "data" sollte in tesseract_tutorial/tesstrain
erstellt werden.
Schritt 10: Split_training_text.py ausführen
Wechseln Sie zurück zum tesseract_tutorial
-Verzeichnis und kompilieren Sie dann den folgenden Befehl;
python split_training_text.py
Nach dem Ausführen von split_training_text.py
werden im Ordner "data" .box
und .tif
-Dateien erstellt.
Fehlerbehebung: Fontconfig-Warnung: "/tmp/fonts.conf, Zeile 4: leerer Schriftverzeichnispfad ignoriert
Dieses Problem wird dadurch verursacht, dass das Schriftverzeichnis im Ubuntu-Ordner nicht gefunden werden kann, und kann behoben werden, indem diese Codezeilen in tesseract_tutorial/fonts.conf
eingefügt werden.
und
<dir>/usr/share/schriftarten</dir>
<dir>/usr/local/share/schriftarten</dir>
<dir prefix="xdg">schriftarten</dir>
<!-- the following element will be removed in the future -->
<dir>~/.schriftarten</dir>
Dann kopieren Sie es nach /etc/fonts
cp fonts.conf /etc/fonts
Fügen Sie schließlich diese Codezeilen in split_training_text.py
hinzu.
und
fontconf_dir = '/etc/fonts`
Hinweis: Anzahl der Trainingsdateien (.box und .tif)
Zurzeit beträgt die Anzahl der Trainingsdateien 100. Diese Anzahl von Trainingsdateien kann durch Bearbeiten oder Löschen dieser Codezeilen in split_training_text.py angepasst werden.
Schritt 11: Herunterladen von eng.traineddata
eng.traineddata
kann unter der folgenden URL gefunden werden: https://github.com/tesseract-ocr/tessdata_best. Laden Sie es in tesseract_tutorial/tesseract/tessdata
herunter, da diese eng.traineddata
in tessdata_best
besser ist als die ursprüngliche im tessdata
-Ordner.
Schritt 12: Erstellen Sie Ihre eigene Schriftart .traineddata
Gehen Sie zum Verzeichnis tesstrain
und geben Sie diese Befehlszeile in WSL2 ein
TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
- Make-Training = Code im
tesstrain/Makefile
ausführen - MODEL_NAME = der Name Ihrer benutzerdefinierten Schriftart
- START_MODEL = der Name der ursprünglichen
.traineddata
-
MAX_ITERATIONS = Anzahl der Iterationen (höhere Zahl bedeutet genauere
.traineddata
)
„Fehler beim Lesen von Daten von:“ kann durch Bearbeiten der Codezeilen in der Makefile gelöst werden.
Vorher:
Danach:
und
make - 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
Das Problem "Failed to load script unicharset from:data/langdata/Latin.unicharset" kann gelöst werden, indem Latin.unicharset
in den Ordner tesstrain/data/langdata
eingefügt wird.
Latin.unicharset
kann unter der folgenden URL gefunden werden; https://github.com/tesseract-ocr/langdata_lstm
Schritt 13: Die Genauigkeit der erstellten .traineddata
Mit 1000 .box
- und .tif
-Dateien und 3000 Trainingsiterationen hat das Ausgabedatei .traineddta
(AMGDT.traineddata) eine minimale Trainingsfehlerrate (BCER) von etwa 5,77.
Für weiterführende Lektüre und weitere Referenzen: ref: https://www.youtube.com/watch?v=KE4xEzFGSU8ustom