Utiliser Tesseract pour la reconnaissance de caractères

Dans l’article d’aujourd’hui, nous allons voir comment installer et utiliser Tesseract pour reconnaitre des caractères dans une image.

Commençons par un peu d’Histoire, Tesseract est un projet initialement développé par Hewlett Packard entre 1985 et 1994 puis mis de côté pendant une dizaine d’années. C’est en 2005  que le code source est finalement libéré sous licence Apache, et il est maintenu depuis 2006 par des équipes de Google.

Pour ce qui est de son fonctionnement, Tesseract utilise les réseaux de neurones pour reconnaitre les caractères et les mots.

Aujourd’hui Tesseract prend en charge une centaine de langages différents, est Open Source et fonctionne avec la plupart des systèmes d’exploitation.

Installer de Tesseract

Afin de pouvoir utiliser la librairie Tesseract, il est nécessaire de l’installer sur notre machine.

Pour les utilisateurs de MacOS, l’installation se fera grâce à Homebrew.

brew install tesseract

Si vous utilisez Debian ou Ubuntu, Tesseract peut être obtenue par apt-get:

sudo apt install tesseract-ocr

Enfin, pour les utilisateurs Windows, vous pouvez trouver un installateur sur le GitHub de la bibliothèque universitaire de Mannheim. Une fois l’installation terminée, vous obtiendrez un raccourci « console » dans le dossier tesseract-OCR du menu démarrer.

C’est fait, Tesseract est installé.

Analyser une image

Afin d’obtenir de bons résultats avec la reconnaissance de caractère de Tesseract, il faut que l’image que l’on donne en entrée contienne un texte clair, net et précis. En d’autre termes, il faut une image avec la plus grande résolution et dpi possible et que le texte soit facilement séparable du fond.

Testons avec cette image:

tesseract test_tesseract.jpg stdout

Le résultat donne

Bienvenue sur Pymotion


D’accord il ne s’agit que de 20 lettres, essayons donc avec un texte plus grand Le résultat est toujours au rendez vous:

Helvetica

Lorem ipsum dolor sit amet, consetetur sadipscing
elitr, sed diam nonumy eirmod tempor invidunt ut
labore et dolore magna aliquyam erat, sed diam
voluptua. At vero eos et accusam et justo duo
dolores et ea rebum. Stet clita kasd gubergren, no
sea takimata sanctus est Lorem ipsum dolor sit
amet. Lorem ipsum dolor sit amet, consetetur
sadipscing elitr, sed diam nonumy eirmod tempor
invidunt ut labore et dolore magna aliquyam erat,
sed diam voluptua. At vero eos et accusam et justo
duo dolores et ea rebum. Stet clita kasd gubergren,
no sea takimata sanctus est Lorem ipsum dolor sit
amet. Lorem ipsum dolor sit amet, consetetur
sadipscing elitr, sed diam nonumy eirmod tempor
invidunt ut labore et dolore magna aliquyam erat,
sed diam voluptua. At vero eos et accusam et justo
duo dolores et ea rebum. Stet clita kasd gubergren,
no sea takimata sanctus est Lorem ipsum dolor sit
amet.

C’est super ça marche!

Pas tant que ça, il y a quand même certaines limites !

Reprenons notre image initiale et ajoutons une barre grise en oblique.

Un humain reconnaîtra sans problème les lettres et mots écrits. Tesseract non.

En effet, une simple barre permet de dérouter Tesseract. Comme je vous l’avais mentionné avant, il faut que le texte soit facilement séparable. Cependant à force de venir sur ce site, il vous est simple de trouver une solution à ce problème. Nous verrons la semaine prochaine comment interfacer tesseract avec Python afin que vous puissiez créer de superbes applications de reconnaissance de texte.

Pour conclure, Tesseract est un très bon outil pour extraire un texte d’une image. Au fur et à mesure du temps l’outil est devenu de plus en plus performant et il est dorénavant possible de spécifier le langage afin d’obtenir de meilleurs résultats. Cependant dès lors que le texte n’est pas clairement identifiable, il est nécessaire d’appliquer des prétraitements à l’image afin de pouvoir décoder les caractères.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.