Formation de polices personnalisées C# pour Tesseract 5 (pour les utilisateurs de Windows)
Utilisez l'apprentissage personnalisé des polices pour Tesseract 5 afin d'améliorer la précision et les capacités de reconnaissance du moteur OCR lorsque vous travaillez avec des polices ou des styles de polices spécifiques qui ne sont pas toujours bien pris en charge par défaut.
Le processus consiste à fournir à Tesseract des données de formation, telles que des échantillons de polices et le texte correspondant, afin qu'il puisse apprendre les caractéristiques et les modèles spécifiques des polices personnalisées.
Commencez avec IronOCR
Commencez à utiliser IronOCR dans votre projet dès aujourd'hui avec un essai gratuit.
Comment utiliser la police personnalisée Tesseract en C#
- Téléchargez une bibliothèque C# pour entraîner une police personnalisée avec Tesseract
- Préparer le fichier de polices ciblé qui sera utilisé pour la formation
- Suivez les étapes spécifiées dans l'article
- Contient des solutions pour les erreurs les plus courantes
- Exporter le fichier de données formées pour une utilisation ultérieure
Étape 1 : Télécharger la dernière version d'IronOCR
Installation via DLL
Téléchargez directement le DLL IronOCR sur votre machine.
Installation via NuGet
Alternativement, vous pouvez installer via NuGet.
Install-Package IronOcr
Étape 2 : Installez et configurez WSL2 et Ubuntu
Ici se trouve le tutoriel pour configurer WSL2 et Ubuntu. Actuellement, l'entraînement de polices personnalisées ne peut être effectué que sous Linux
Étape 3 : Installer Tesseract 5 sur Ubuntu
sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
Étape 4 : Téléchargez la police que vous souhaitez entraîner
Nous utilisons la police AMGDT pour ce tutoriel. Le fichier de police peut être à la fois .ttf ou .otf 
Étape 5 : Montez le disque dur de votre espace de travail pour la formation des polices personnalisées
La commande suivante montre comment monter le lecteur D: comme espace de travail.
cd /
cd /mnt/d
cd /
cd /mnt/d
Étape 6 : Copier le fichier de police dans le dossier de polices Ubuntu
Voici le répertoire du dossier des polices de caractères d'Ubuntu ; Ubuntu/usr/share/fonts et Ubuntu/usr/local/share/fonts.
** Pour accéder au fichier sur Ubuntu, tapez \\\wsl$ dans le répertoire de l'explorateur de fichiers

Dépannage : Accès au dossier de destination refusé

Ce problème peut être résolu en copiant le fichier à l'aide de la ligne de commande
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
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
Étape 7 : Cloner tesseract_tutorial depuis Github
Le dépôt tesseract_tutorial peut être cloné depuis l'URL suivante ; https://github.com/astutejoe/tesseract_tutorial.git en utilisant la commande suivante ;
git clone https://github.com/astutejoe/tesseract_tutorial.git
git clone https://github.com/astutejoe/tesseract_tutorial.git
Étape 8 : Clonez tesstrain et tesseract depuis Github
Accédez au répertoire du dossier tesseract_tutorial, puis exécutez git clone https://github.com/tesseract-ocr/tesstrain et https://github.com/tesseract-ocr/tesseract
tesstraincontient un fichier "Makefile" qui est utilisé pour créer un fichier .traineddata (objectif de ce tutoriel)tesseractcontient le dossier "tessdata", qui est un conteneur de fichiers .traindata d'origine utilisés comme référence pour l'entraînement de polices personnalisées
Étape 9 : Créez un dossier "data" pour stocker les sorties
Les "données" doivent être créées dans tesseract_tutorial/tesstrain.
Étape 10 : Exécuter split_training_text.py
Retournez dans le répertoire du dossier tesseract_tutorial puis compilez la commande suivante ;
python split_training_text.py
python split_training_text.py
Après avoir exécuté split_training_text.py, cela créera des fichiers .box et .tif dans le dossier "data".
Dépannage : Avertissement Fontconfig : "/tmp/fonts.conf, ligne 4 : nom de répertoire de police vide ignoré

Ce problème est causé par le fait que le répertoire des polices dans le dossier Ubuntu ne peut pas être trouvé et peut être résolu en insérant ces lignes de code dans tesseract_tutorial/fonts.conf

et ``
Ensuite, copiez-le dans `/etc/fonts`
```bash
cp fonts.conf /etc/fonts
Enfin, ajoutez ces lignes de code à split_training_text.py

et ``
fontconf_dir = '/etc/fonts` ``
Remarque : Nombre de fichiers de formation (.box et .tif)
Actuellement, le nombre de fichiers d'entraînement est de 100. Ce nombre de fichiers d'entraînement peut être modifié en éditant ou en supprimant ces lignes de code dans split_training_text.py.

Étape 11 : Télécharger eng.traineddata
eng.traineddata peut être trouvé à partir de l'URL suivante : https://github.com/tesseract-ocr/tessdata_best. Téléchargez-le dans tesseract_tutorial/tesseract/tessdata car ce eng.traineddata dans tessdata_best est meilleur que l'original dans le dossier tessdata.
Étape 12 : Créer votre police personnalisée .traineddata
Accédez au répertoire du dossier tesstrain et utilisez cette ligne de commande dans le WSL2
``
TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100 ``
- Effectuer la formation = exécuter le code dans
tesstrain/Makefile - MODEL_NAME = le nom de votre police personnalisée
- START_MODEL = le nom du fichier
.traineddataoriginal -
MAX_ITERATIONS = nombre d'itérations (un nombre plus élevé signifie des
.traineddataplus précises)
Le problème "Échec de la lecture des données depuis : " peut être résolu en modifiant des lignes de code dans le Makefile
Avant :

Après :

et
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
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
Le message d'erreur "Failed to load script unicharset from:data/langdata/Latin.unicharset" peut être résolu en insérant Latin.unicharset dans le dossier tesstrain/data/langdata
- Le fichier
Latin.unicharsetpeut être trouvé à l'adresse URL suivante ; https://github.com/tesseract-ocr/langdata_lstm
Étape 13 : La précision du .traineddata créé
Avec 1000 fichiers .box et .tif et 3000 itérations d'entraînement, le fichier de sortie .traineddata (AMGDT.traineddata) présente un taux d'erreur d'entraînement minimal (BCER) d'environ 5,77.

Pour plus de lecture et de référence supplémentaire : ref : https://www.youtube.com/watch?v=KE4xEzFGSU8ustom

