C# Formation aux polices de caractères personnalisées pour Tesseract 5 (pour les utilisateurs de Windows)

This article was translated from English: Does it need improvement?
Translated
View the article in English

par Kannapat Udompant

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.

Première étape :
green arrow pointer



É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

Example Of Downloaded Font File related to Étape 4 : Téléchargez la police de caractères que vous souhaitez former

É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

Ubutu Folder Directory related to Étape 6 : Copier le fichier de police dans le dossier des polices d'Ubuntu

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

Destination Folder Access Denied related to 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é

Fontconfig Warning related to Dépannage : Avertissement Fontconfig : "/tmp/fonts.conf, ligne 4 : nom de répertoir...

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

Fontconfig Dir Png related to Dépannage : Avertissement Fontconfig : "/tmp/fonts.conf, ligne 4 : nom de répertoir...

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

Fontconfig Sol related to Dépannage : Avertissement Fontconfig : "/tmp/fonts.conf, ligne 4 : nom de répertoire de...

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.

Number Of Trainfile related to Note : Nombre de fichiers de formation (.box et .tif)

É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

    Makefile Issues related to Étape 12 : Créer votre police personnalisée .traineddata

"Failed to read data from : " peut être résolu en éditant des lignes de code dans le Makefile

Avant :

Makefile Sol Before related to "Failed to read data from : " peut être résolu en éditant des lignes de code...

Après :

Makefile Sol After related to "Failed to read data from : " peut être résolu en éditant des lignes de code ...

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

É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

Traineddata Accuracy related to Étape 13 : Précision des .traineddata créées

Pour plus d'informations et de références : ref : https://www.youtube.com/watch?v=KE4xEzFGSU8ustom

Kannapat related to Étape 13 : Précision des .traineddata créées

Kannapat Udonpant

Ingénieur logiciel

Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Tout en poursuivant ses études, Kannapat est également devenu membre du Vehicle Robotics Laboratory, qui fait partie du Department of Bioproduction Engineering (département d'ingénierie de la bioproduction). En 2022, il a mis à profit ses compétences en C# pour rejoindre l'équipe d'ingénieurs d'Iron Software, où il se concentre sur IronPDF. Kannapat apprécie son travail car il apprend directement auprès du développeur qui écrit la majeure partie du code utilisé dans IronPDF. Outre l'apprentissage par les pairs, Kannapat apprécie l'aspect social du travail chez Iron Software. Lorsqu'il n'écrit pas de code ou de documentation, Kannapat peut généralement être trouvé en train de jouer sur sa PS5 ou de revoir The Last of Us.