111 votes

Erreur de fonctionnement de Tesseract

J'ai un problème avec l'exécution du moteur tesseract-ocr sous linux. J'ai téléchargé les données de la langue RUS et les ai placées dans le répertoire tessdata (/usr/local/share/tessdata). Lorsque j'essaie d'exécuter tesseract avec la commande tesseract blob.jpg out -l rus le système affiche une erreur :

Error opening data file /usr/local/share/tessdata/eng.traineddata

Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory.

Failed loading language eng
Tesseract couldn't load any languages!

Could not initialize tesseract.

Selon guide de compilation J'ai utilisé export TESSDATA_PREFIX='/usr/local/share/' pour pointer mon répertoire tessdata. Peut-être devrais-je modifier les fichiers de configuration ? Tesseract essaie de charger des fichiers de données 'eng' au lieu de 'rus'.

Capture d'écran : http://i.stack.imgur.com/I0Guc.png

112voto

AAAfarmclub Points 61

Vous pouvez prendre eng.traineddata Github :

wget https://github.com/tesseract-ocr/tessdata/raw/main/eng.traineddata

Vérifiez https://github.com/tesseract-ocr/tessdata pour une liste complète des données sur les langues entraînées.

Une fois le(s) fichier(s) saisi(s), déplacez-le(s) dans le dossier de l'utilisateur. /usr/local/share/tessdata dossier. Attention : certaines distributions Linux (comme openSUSE et Ubuntu) peuvent s'attendre à ce qu'il soit dans le dossier /usr/share/tessdata à la place.

# If you got the data from Google, unzip it first!
gunzip eng.traineddata.gz 
# Move the data
sudo mv -v eng.traineddata /usr/local/share/tessdata/

84voto

Mih Zam Points 450

Le moyen le plus simple est d'installer le paquet nécessaire :

sudo apt-get install tesseract-ocr-eng  #for english
sudo apt-get install tesseract-ocr-tam  #for tamil
sudo apt-get install tesseract-ocr-deu  #for deutsch (German)

Comme vous pouvez le remarquer, cela ouvre la voie à d'autres langages (par exemple tesseract-ocr-fra).

39voto

Yan Khonski Points 9098

J'ai eu cette erreur aussi sur la machine Windows.

Ma solution.

1) Téléchargez vos fichiers de langue à partir de https://github.com/tesseract-ocr/tessdata/tree/3.04.00

Par exemple, pour eng, j'ai téléchargé tous les fichiers avec le préfixe eng.

2) Les mettre dans données d'essai à l'intérieur d'un dossier. Ajoutez ce dossier dans les variables du chemin du système comme TESSDATA_PREFIX .

Le résultat sera Var. env. système : TESSDATA_PREFIX=D:/Java/OCR Et le dossier OCR a données d'essai avec des fichiers de langues.

Voici une capture d'écran du répertoire :

enter image description here

4voto

erm3nda Points 462

Aucune solution précédente n'a fonctionné pour moi.

J'ai installé les deux en apt-get et en téléchargeant manuellement les données d'essai, j'ai bougé autour de /usr et ainsi de suite, mais rien ne fonctionnait, même si j'exportais la variable des milliers de fois.

Enfin, dans un dernier essai avant de commencer à pleurer, j'ai essayé de passer le chemin directement à l'instance de Tesseract().

En Python : tr = Tesseract("/usr/local/share/tesseract-ocr/") et maintenant ça marche. Pour clarifier, j'utilise tesserwrap module.

4voto

explorer Points 506
tesseract  --tessdata-dir <tessdata-folder> <image-path> stdout --oem 2 -l <lng>

Dans mon cas, les erreurs que j'ai commises ou les tentatives qui n'ont pas abouti.

  • J'ai cloné le répertoire github et copié les fichiers de ce répertoire vers
    • /usr/local/share/tessdata/
    • /usr/share/tesseract-ocr/tessdata/
    • /usr/share/tessdata/
  • Utilisé TESSDATA_PREFIX avec les chemins ci-dessus
  • sudo apt-get install tesseract-ocr-eng

Les 2 premières tentatives n'ont pas fonctionné car, les fichiers de git clone n'a pas fonctionné pour des raisons que je ne connais pas. Je ne sais pas pourquoi la tentative n°3 a fonctionné pour moi.

Enfin,

  1. J'ai téléchargé le fichier eng.traindata en utilisant wget
  2. Je l'ai copié dans un répertoire
  3. Utilisé --tessdata-dir avec le nom du répertoire

Ce que je retiens, c'est que bien apprendre l'outil et l'utiliser plutôt que de se fier à l'installation et aux répertoires du gestionnaire de paquets.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X