LIMIT caractères Tesseract recherche
Question
Est-il possible de limiter le jeu de caractères Tesseract est à la recherche ( par exemple, rechercher uniquement les lettres az)? Cela améliorerait mes résultats beaucoup.
La solution
Créer un fichier de configuration (lettres "par exemple") dans tessdata / configs répertoire - habituellement /usr/share/tesseract/tessdata/configs
ou
/usr/share/tesseract-ocr/tessdata/configs
Et ajoutez cette ligne dans le fichier de configuration:
tessedit_char_whitelist abcdefghijklmnopqrstuvwxyz
... ou peut-être [a-z] fonctionne .. :-) Je sais pas
Ensuite, appelez Tesseract semblable à ceci:
tesseract input.tif output nobatch letters
Cela limitera Tesseract à reconnaître que les caractères recherchés
Autres conseils
Pour utiliser dans whitelist un fichier de configuration ou à l'aide du commutateur de ligne de commande -c tessedit_char_whitelist=...
, dans la nouvelle version 4.0, vous devrez configurer OCR mode moteur à la « Tesseract originale seulement ». En effet, le nouveau mode « filets Neural LSTM » ne respecte pas le whitelist.
Exemple de ligne de commande appropriée pour la version 4.0:
Tesseract fichier_entrée output_file --oem 0 -c tessedit_char_whitelist = abc123
Mise à jour: Dans les nouvelles versions (4.0) il y a fichier corrompu eng.traineddata
installé par défaut par Windows et certains programmes d'installation Linux. Solution temporaire consiste à remplacer le fichier tessdata\eng.traineddata
avec une ancienne version de. Ce fichier doit être d'environ 30MB. Sinon, vous obtiendrez Erreur: « Tesseract n'a pas pu charger toutes les langues! » ou similaire.
En plus du fichier de configuration, est le drapeau -c
:
tesseract stdin stdout -c tessedit_char_whitelist=abcdefghijklmnopqrstuvwxyz -psm 6
Il suffit d'ajouter ceci pour toute personne qui utilise Tesseract sur Android. Dans votre fonction readOCR où vous définissez la langue, etc. ajoutez la ligne suivante;
tesseract.setVariable("tessedit_char_whitelist","ABCDEFGHIJKLMNOPQRSTUVWXYZ");
vous pouvez également faire Blacklist pour les caractères à exclure.
Dans la version 4.00 Tesseract, cela ne peut être fait. Vous ne pouvez affiner votre modèle ou utiliser regex pour supprimer des caractères supplémentaires de la prédiction.