Comment former une police personnalisée pour Tesseract 5 en C#

C&#35 ; Formation sur les polices personnalisées dans Tesseract 5 pour les développeurs Windows

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

L'apprentissage personnalisé des polices dans Tesseract 5 améliore la précision de l'OCR pour des polices spécifiques. Le processus crée des données de formation qui enseignent les caractéristiques des polices de caractères du moteur. Le fichier .traineddata résultant fonctionne avec IronOcr pour reconnaître avec précision les polices décoratives ou spéciales.

Démarrage rapide : Utiliser votre fichier de police .traineddata en C#

Utilisez votre fichier de polices Tesseract formé sur mesure dans IronOcr avec seulement quelques lignes. Parfait pour une reconnaissance optique de caractères précise sur des polices spéciales ou décoratives.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronOCR avec le gestionnaire de packages NuGet

    PM > Install-Package IronOcr

  2. Copiez et exécutez cet extrait de code.

    var ocr = new IronOcr.IronTesseract();
    ocr.UseCustomTesseractLanguageFile("path/to/YourCustomFont.traineddata");
    string text = ocr.Read(new IronOcr.OcrInput("image-with-special-font.png")).Text;
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronOCR dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer

Comment télécharger la dernière version d'IronOCR?

Quelle méthode d'installation dois-je utiliser ?

Téléchargez directement le fichier DLL IronOCR sur votre machine.

Pourquoi utiliser NuGet à la place?

Vous pouvez également procéder à l'installation via NuGet à l'aide de cette commande :

Install-Package IronOcr

IronOCR offre une prise en charge complète des fonctionnalités de Tesseract 5 et des implémentations linguistiques personnalisées , ce qui le rend idéal pour les exigences OCR spécialisées.


Comment installer et configurer WSL2 et Ubuntu?

Consultez le tutoriel sur la configuration de WSL2 et d'Ubuntu .

Veuillez noterLa formation aux polices personnalisées nécessite Linux.

La formation nécessite Linux, mais les fichiers .traineddata qui en résultent fonctionnent de manière transparente sur toutes les plateformes. Pour des instructions détaillées sur l'installation de Linux, consultez notre Guide de déploiement de Linux.

Comment installer Tesseract 5 sur Ubuntu?

Utilisez ces commandes pour installer Tesseract 5 :

sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
SHELL

Ces packages fournissent le moteur OCR de base de Tesseract et les bibliothèques de développement nécessaires à la formation. Pour les options de configuration avancées de Tesseract, consultez notre guide de configuration détaillé.

Quelle police de caractères dois-je télécharger pour la formation ?

Ce tutoriel utilise la police AMGDT. Le fichier de police peut être au format .ttf ou .otf. Explorateur de fichiers Windows montrant le fichier de police AMGDT Regular.ttf téléchargé et mis en évidence dans une boîte rouge pour la formation

Lors de la sélection des polices de caractères pour la formation :

  • Choisissez des polices qui diffèrent sensiblement des modèles Tesseract standard
  • Veiller à ce que la police de caractères soit protégée par une licence en bonne et due forme
  • Envisagez des polices décoratives, manuscrites ou spécialisées
  • Testez avec les polices que votre application rencontre en production

Comment monter le lecteur de disque pour la formation aux polices de caractères personnalisées?

Utilisez ces commandes pour monter le lecteur D: en tant qu'espace de travail :

cd /
cd /mnt/d
cd /
cd /mnt/d
SHELL

Cela vous permet de travailler avec des fichiers stockés sur des lecteurs Windows directement à partir de l'environnement Ubuntu WSL2.

Comment copier le fichier de polices dans le dossier de polices d'Ubuntu?

Copiez le fichier de police dans ces répertoires Ubuntu : /usr/share/fonts et /usr/local/share/fonts.

Accédez aux fichiers sous Ubuntu en saisissant \\wsl$ dans la barre d'adresse de l'explorateur de fichiers.

Explorateur de fichiers Windows montrant le chemin réseau pour accéder au système de fichiers Ubuntu depuis Windows

Que faire si l'accès au dossier de destination est refusé?

Si vous rencontrez des erreurs de refus d'accès, utilisez la ligne de commande pour copier les fichiers :

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
exit
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
exit
SHELL

L'installation des polices de caractères est cruciale pour le processus de formation. Le système doit avoir accès au rendu de la police lors de la génération des images de formation.

Comment cloner le tesseract_tutorial de GitHub?

Clonez le dépôt tesseract_tutorial à l'aide de cette commande :

git clone https://github.com/astutejoe/tesseract_tutorial.git
git clone https://github.com/astutejoe/tesseract_tutorial.git
SHELL

Ce référentiel contient des scripts Python et des fichiers de configuration essentiels pour le processus de formation. Les scripts automatisent de nombreuses étapes manuelles de la formation aux polices de caractères.

Comment cloner tesstrain et tesseract à partir de GitHub?

Accédez au répertoire tesseract_tutorial , puis clonez les dépôts tesstrain et tesseract :

git clone https://github.com/tesseract-ocr/tesstrain
git clone https://github.com/tesseract-ocr/tesseract
git clone https://github.com/tesseract-ocr/tesstrain
git clone https://github.com/tesseract-ocr/tesseract
SHELL
  • tesstrain contient le Makefile utilisé pour créer le fichier .traineddata
  • tesseract contient le dossier tessdata avec les fichiers .traineddata originaux utilisés comme références pendant la formation aux polices personnalisées

Pour plus d'informations sur l'utilisation de packs de langues multiples et de données de formation personnalisées, consultez notre guide des langues internationales.

Comment créer un dossier "data" pour stocker les résultats ?

Créez un dossier de données dans tesseract_tutorial/tesstrain :

mkdir tesseract_tutorial/tesstrain/data
mkdir tesseract_tutorial/tesstrain/data
SHELL

Ce dossier stocke tous les fichiers de formation générés, y compris les fichiers .box, .tif et les artefacts de formation intermédiaires.

Comment exécuter split_training_text.py?

Retournez dans le dossier tesseract_tutorial et exécutez cette commande :

python split_training_text.py
python split_training_text.py
SHELL

Après avoir exécuté split_training_text.py, il crée des fichiers .box et .tif dans le dossier de données.

Comment réparer l'avertissement de Fontconfig?

Terminal affichant des avertissements de fontconfig à propos d'une police Apex manquante et d'erreurs de répertoire de polices vide Si vous voyez l'avertissement Fontconfig warning : "/tmp/fonts.conf, line 4 : empty font directory name ignored", cela indique des répertoires de polices manquants. Corrigez cela en modifiant le fichier tesseract_tutorial/fonts.conf et en ajoutant :

<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>
<!-- the following element will be removed in the future -->
<dir>~/.fonts</dir>
<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>
<!-- the following element will be removed in the future -->
<dir>~/.fonts</dir>
XML

Copiez-le dans /etc/fonts avec :

cp fonts.conf /etc/fonts
cp fonts.conf /etc/fonts
SHELL

De plus, mettez à jour split_training_text.py :

fontconf_dir = '/etc/fonts'
fontconf_dir = '/etc/fonts'
PYTHON

Combien de fichiers de formation dois-je générer?

La configuration actuelle génère 100 fichiers de formation. Vous pouvez modifier ceci dans split_training_text.py.

Code Python définissant count=100 et découpant le tableau de lignes pour limiter la taille des données de formation

Pour une formation de qualité :

  • Commencez avec 100-500 échantillons pour les tester
  • Utilisez 1000 à 5000 échantillons pour une meilleure précision
  • Inclure divers échantillons de texte couvrant tous les caractères requis
  • Équilibrer le temps de formation et les exigences de précision

Où puis-je télécharger fr.traineddata?

Téléchargez eng.traineddata depuis ce dépôt et placez-le dans tesseract_tutorial/tesseract/tessdata .

Le modèle de base fournit un contexte linguistique qui améliore la précision de la reconnaissance. Choisissez un modèle de base correspondant à votre langue cible. Pour résoudre les problèmes liés aux packs linguistiques personnalisés, consultez notre guide des packs linguistiques OCR personnalisés.

Comment créer ma police personnalisée .traineddata?

Naviguez jusqu'au dossier tesstrain et utilisez cette commande dans WSL2 :

TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
SHELL
  • NOM_MODÈLE est le nom de votre police personnalisée
  • START_MODEL est la référence originale .traineddata
  • MAX_ITERATIONS définit le nombre d'itérations (un plus grand nombre d'itérations améliore la précision)

Que faire si j'obtiens "Failed to Read Data" dans le fichier Makefile ?

Pour résoudre les problèmes de " lecture des données impossible ", modifiez le 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

Cette modification permet de s'assurer que le Makefile recherche les fichiers dans la bonne structure de répertoire de sortie.

Comment corriger le message "Failed to Load Script Unicharset" ?

Insérez le fichier Latin.unicharset dans le dossier tesstrain/data/langdata . Trouvez Latin.unicharset ici.

Le fichier unicharset définit le jeu de caractères pour votre langue ou votre script. Veillez à ce qu'elle corresponde à la couverture de caractères de votre police.

Comment vérifier l'exactitude des .traineddata créés ?

Avec 1000 fichiers .box et .tif et 3000 itérations de formation, le résultat AMGDT.traineddata atteint un taux d'erreur de formation minimal (BCER) d'environ 5,77 %.

Journal de formation Tesseract montrant l'amélioration du BCER de 6,388 % à 5,771 % sur les itérations 2194-2298

Pour tester votre modèle formé avec IronOCR :

using IronOcr;

// Initialize IronOCR with custom trained data
var ocr = new IronTesseract();

// Load your custom trained font
ocr.UseCustomTesseractLanguageFile(@"path\to\AMGDT.traineddata");

// Configure for optimal results
ocr.Configuration.BlackListCharacters = "";
ocr.Configuration.WhiteListCharacters = "";
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Process an image with your custom font
using var input = new OcrInput();
input.LoadImage("test-image-with-amgdt-font.png");

// Optional: Apply filters if needed
input.EnhanceResolution(300);
input.DeNoise();

// Perform OCR
var result = ocr.Read(input);
Console.WriteLine($"Recognized Text: {result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");
using IronOcr;

// Initialize IronOCR with custom trained data
var ocr = new IronTesseract();

// Load your custom trained font
ocr.UseCustomTesseractLanguageFile(@"path\to\AMGDT.traineddata");

// Configure for optimal results
ocr.Configuration.BlackListCharacters = "";
ocr.Configuration.WhiteListCharacters = "";
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Process an image with your custom font
using var input = new OcrInput();
input.LoadImage("test-image-with-amgdt-font.png");

// Optional: Apply filters if needed
input.EnhanceResolution(300);
input.DeNoise();

// Perform OCR
var result = ocr.Read(input);
Console.WriteLine($"Recognized Text: {result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");
$vbLabelText   $csharpLabel

Pour mettre en œuvre des polices personnalisées dans des applications de production, consultez notre guide sur l'utilisation de fichiers de langue personnalisés.

Pour plus d'informations, consultez le tutoriel : vidéo YouTube

Questions Fréquemment Posées

Comment utiliser un fichier de police formé sur mesure dans C# ?

Vous pouvez utiliser votre fichier de polices Tesseract formé sur mesure dans IronOcr avec seulement quelques lignes de code. Il vous suffit de créer une instance IronTesseract, d'appeler UseCustomTesseractLanguageFile() avec le chemin d'accès à votre fichier .traineddata, puis d'utiliser la méthode Read() pour effectuer l'OCR sur les images contenant votre police spéciale.

Quelles sont les exigences en matière de formation de polices personnalisées pour l'OCR ?

L'entraînement personnalisé des polices nécessite un environnement Linux (WSL2 avec Ubuntu est recommandé pour les utilisateurs de Windows), Tesseract 5 installé avec les bibliothèques de développement et le fichier de police que vous souhaitez entraîner (au format .ttf ou .otf). Les fichiers .traineddata créés sous Linux fonctionnent parfaitement avec IronOCR sur toutes les plateformes.

Pourquoi devrais-je former des polices personnalisées au lieu d'utiliser l'OCR standard ?

L'entraînement des polices personnalisées améliore la précision de l'OCR pour des polices spécifiques, en particulier les polices décoratives ou spéciales qui diffèrent considérablement des modèles Tesseract standard. IronOcr peut alors utiliser ces fichiers de polices entraînées pour reconnaître avec précision le texte dans les images contenant ces polices uniques qui seraient autrement difficiles à lire avec les modèles OCR standard.

Puis-je utiliser des polices formées sur mesure sur différentes plateformes ?

Oui, bien que le processus de formation nécessite Linux, les fichiers .traineddata résultants fonctionnent de manière transparente sur toutes les plateformes avec IronOcr. Cela signifie que vous pouvez former une fois sur Linux et utiliser le fichier de données formées sur des déploiements Windows, macOS ou Linux.

Quelle méthode d'installation est recommandée pour commencer ?

Pour une installation rapide, vous pouvez télécharger directement la DLL IronOCR ou l'installer via le gestionnaire de paquets NuGet. NuGet est recommandé car il gère automatiquement les dépendances et facilite les mises à jour. IronOCR offre une prise en charge complète des fonctionnalités de Tesseract 5 et des implémentations de langages personnalisés.

Kannaopat Udonpant
Ingénieur logiciel
Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Pendant qu'il poursuivait son diplôme, Kannapat est également devenu membre du laboratoire de robotique de véhicules, qui fait partie du département de bioproduction. En 2022, il a utilisé ses compé...
Lire la suite
Revu par
Jeff Fritz
Jeffrey T. Fritz
Responsable principal du programme - Équipe de la communauté .NET
Jeff est également responsable principal du programme pour les équipes .NET et Visual Studio. Il est le producteur exécutif de la série de conférences virtuelles .NET Conf et anime 'Fritz and Friends', une diffusion en direct pour développeurs qui est diffusée deux fois par semaine où il parle de technologie et écrit du code avec les téléspectateurs. Jeff écrit des ateliers, des présentations et prévoit du contenu pour les plus grands événements de développement Microsoft, y compris Microsoft Build, Microsoft Ignite, .NET Conf et le sommet Microsoft MVP
Prêt à commencer?
Nuget Téléchargements 5,299,091 | Version : 2025.12 vient de sortir