Vous êtes sur la page 1sur 7

Ministère de l’Enseignement Supérieur et de la Recherche Scientifique

Université des Sciences et de la Technologie Houari Boumediene

Faculté d’Electronique et d’Informatique


Département d’Informatique

Projet OCR
Spécialité
Master Systèmes Informatiques Intelligents

EasyOCR

Effectué par : Proposé par :


GASMI Salah Eddine Mme TAMEN
REGUIG Meriem

2022/2023
1. Rappel de l’énoncé
1. Installation de EasyOCR ;
2. Configuration pour travailler avec la langue arabe ;
3. Utilisation de Python-OpenCV-EasyOCR pour reconnaître des
images avec écriture arabe : imprimée, manuscrite contrainte,
manuscrite non contrainte.

2. Introduction à EasyOCR:
EasyOCR est un module de reconnaissance des textes conçu par JAIDED AI,
une communauté openSource fondée en 2020 orientée vers la conception
des outils AI.

La méthode la plus directe et facile pour installer EasyOCR est à travers pip
package en lançant l’instruction :

pip install easyocr

* Il est utile de mentionner qu’il faut utiliser une version inférieure ou


égale à 3.8 du python pour pouvoir télécharger EasyOCR

* Aussi, il faut installer torch et torchvision (dépendances) en suivant les


instructions sur le lien : http://pytorch.org
3. Utilisation de EasyOCR
Une fois EasyOCR installé, on peut procéder directement à
l’exploitation.

EasyOCR supporte plus de 80 langages (pour consulter la liste


exhaustive cliquer ici), et peut travailler avec plusieurs langages à la
fois, et - contrairement aux autres outils - n’a pas besoin d’une
configuration spéciale pour travailler avec la langue arabe.

L’utilisation d’EasyOCR sous python avec OpenCV est très intuitive


et facile. Il suffit de charger les modules à travers l’instruction :

Import cv2

Import easyocr

Après avoir importé ces modules, on instancie un lecteur avec


l’instruction

reader = easyocr.Reader([‘en’, ‘ar’])

On passe comme paramètre une liste des codes des langages à


détecter, EasyOCR vérifie l’existence des fichiers nécessaires des
langages désignés et les télécharge automatiquement si c’est
nécessaire.

On peut aussi passer un autre argument facultatif qui est gpu


(gpu=true par défaut) afin qu’EasyOCR essaie d’utiliser le GPU dans
ses calculs dans le mesure de possible.

On lit l’image cible en utilisant opencv :

img = cv2.imread(‘MyPic.bmp’)
on appelle la fonction readtext() pour lancer la procédure de
reconnaissance du texte en passant comme argument l’image lue
précédemment.

Le format standard de retour de cette fonction est une liste, chaque


élément de cette liste est constitué d’une liste de coordonnées des
Text-Box, le texte détecté et un taux de confiance associé au
reconnaissance de ce texte.

On peut simplifier l’output via l’argument facultatif ‘detail’, pour avoir


un résultat une liste de textes, et ‘paragraph’ pour concaténer les
éléments de retour et former un paragraphe.

figure 1. Exemple du résultat brut retouné


4. Tests effectués
Pendant la phase de test, on a choisi de s’éloigner des tests
standards simplifiés qui ne servent qu’à donner un résultat positif et
on a choisi de passer au test de stress.
Pour cela, on a choisi de travailler sur un dataset IFN/ENIT
(http://www.ifnenit.com/). Ce dataset est une collaboration entre
(Technical University Braunschweig, Germany) et (Ecole Nationale
d'Ingénieurs de Tunis) en demandant des gens aléatoires de remplir
des formulaires (exemple ci-dessous). Puis, ils ont fait un traitement
pour extraire les images binaires des parties manuscrites.
Ce dataset forme une bonne matière de test, il contient plus de 2200
images binaires scannées avec une bonne précision (300 dpi),
représentants des échantillons manuscrits, écrites par 411
personnes, pour un total d’environ 26.000 mots binaires (212.211
caractères).
On a pris un quatre (04) échantillons d’environ 60 images chacune,
faisant un total de 227 images.
On a comparé le texte original de chaque image avec le résultat
retourné par EasyOCR et on a compté le taux global de
reconnaissance qui était très faible.
Ce taux faible peut avoir plusieurs justifications à savoir :
 L’écriture non-soignée des participants dans la collecte de
textes.
 La spécification de la langue arabe (plusieurs caractères qui se
différent que par un point ou par un petit segment).
 La nature des mots qui constituent le dataset (les noms des
villages situant dans Tunisie).
figure 2. Exemple du formulaire original
Figure 3. Illustration des données extraites

5. Conclusion
Ce projet nous a permis de mettre les mains sur des outils de la
reconnaissance des textes et les manipuler dans un contexte
précis (langage arabe), ainsi que tester, évaluer et critiquer ces
outils en détectant ses points forts et ses points faibles.

Vous aimerez peut-être aussi