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 : Installer et configurer WSL2 et Ubuntu
Ici se trouve le tutoriel pour configurer WSL2 et Ubuntu
** Actuellement, la formation de polices personnalisées ne peut être effectuée que sur Linux
Étape 3 : Installer Tesseract 5 sur Ubuntu
sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
Étape 4 : Téléchargez la police de caractères que vous souhaitez former
Nous utilisons la police AMGDT pour ce tutoriel. Le fichier de police peut être au format .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
Étape 6 : Copier le fichier de police dans le dossier des polices d'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
É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
Étape 8 : Cloner tesstrain et tesseract depuis Github
Accédez au répertoire du dossier tesseract_tutorial
, puis exécutez la commande git clone https://github.com/tesseract-ocr/tesstrain et https://github.com/tesseract-ocr/tesseract
- tesstrain contient un fichier "Makefile" qui est utilisé pour créer un fichier .traineddata (objectif de ce tutoriel)
- tesseract contient le dossier "tessdata" qui contient le fichier .traindata original utilisé comme référence pour l'apprentissage des polices personnalisées
Étape 9 : Création d'un dossier "data" pour le stockage des résultats
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
Après l'exécution de split_training_text.py
, il créera un fichier .box
et .tif
dans le dossier “data”.
Dépannage : Avertissement Fontconfig : "/tmp/fonts.conf, ligne 4 : nom de répertoire de polices vide ignoré
Ce problème est causé par le fait que le répertoire de 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` ``
Note : 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
Le fichier eng.traineddata
est disponible à 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 de
.traineddata
original MAX_ITERATIONS = nombre d'itérations (un nombre plus élevé signifie des
.traineddata
plus précises)
"Failed to read data from : " peut être résolu en éditant des lignes de code dans le Makefile
Avant :
Après :
et ``
make - Fichier 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 ``
« Échec du chargement du script unicharset depuis : data/langdata/Latin.unicharset » peut être résolu en insérant Latin.unicharset
dans le dossier tesstrain/data/langdata
- Le fichier
Latin.unicharset
peut ê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 : ref : https://www.youtube.com/watch?v=KE4xEzFGSU8ustom