C# Formation aux polices de caractères personnalisées 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écharger une bibliothèque C# pour former des polices de caractères personnalisées 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écharger le DLL IronOCR directement sur votre machine.
Installation via NuGet
Vous pouvez également procéder à l'installation par l'intermédiaire de NuGet .
Install-Package IronOcr
Étape 2 : Installer et configurer WSL2 et Ubuntu
Ici est le tutoriel pour l'installation de WSL2 et Ubuntu
** Actuellement, la formation aux polices personnalisées ne peut se faire que sous 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:`" en tant qu'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 \\\N-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é à partir de 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
Allez dans le répertoire tesseract_tutorial
, puis git clonez https://github.com/tesseract-ocr/tesstrain et https://github.com/tesseract-ocr/tesseract
- tesstrain contient un fichier "Makefile" qui permet de créer le 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
et compilez la commande suivante ;
python split_training_text.py
Après avoir exécuté split_training_text.py
, il 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 polices 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
<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">polices de caractères</dir>
<!-- l'élément suivant sera supprimé à l'avenir -->
<dir>~/.fonts</dir>
Puis copiez-le dans /etc/fonts
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
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
Allez dans le répertoire tesstrain
et mettez la ligne de commande suivante dans le WSL2
TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
- Faire de l'entraînement = exécuter le code dans
tesstrain/Makefile
- MODEL_NAME = le nom de votre police personnalisée
- START_MODEL = le nom du fichier
.traineddata
original MAX_ITERATIONS = nombre d'itérations(un nombre plus élevé signifie que
.traineddata
est plus précis
"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
FICHIER_DE_LA_LISTE_DE_MOTS := $(OUTPUT_DIR2)/$(NOM_MODÈLE).lstm-mot-dawg
FICHIER_CHIFFRES := $(OUTPUT_DIR2)/$(NOM_MODÈLE).lstm-number-dawg
PUNC_FILE := $(OUTPUT_DIR2)/$(NOM_MODÈLE).lstm-punc-dawg
"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
Latin.unicharset
peut être trouvé dans l'url suivante ; https://github.com/tesseract-ocr/langdata_lstm
Étape 13 : Précision des .traineddata
créées
Avec 1000 fichiers .box
et .tif
et 3000 itérations d'entraînement, le résultat .traineddta
(AMGDT.traineddata) a un taux d'erreur d'apprentissage minimal(BCER) environ 5,77
Pour plus d'informations et de références : ref : https://www.youtube.com/watch?v=KE4xEzFGSU8ustom