L’efficacité de l’OCR

L’efficacité de l’OCR

Guide d’étiquetage et de publicité sur les aliments

Le Guide d’étiquetage et de publicité sur les aliments (ACIA, 2003) est un document qui a été rédigé en 2003 par l’Agence canadienne d’inspection des aliments ainsi que Santé Canada afin d’aider les fabricants qui importent, fabriquent et/ou vendent des aliments préemballés au Canada à respecter les différents lois et règlements qui s’appliquent à l’étiquetage et à la publicité (ACIA, 2003). Les deux principales lois sont : la Loi sur les aliments et drogues (Canada, 24 mars 2010) et la Loi sur l’emballage et l’étiquetage des produits de consommation (Canada, 25 mars 2010). Suite à la parution du guide, les deux lois citées ci-dessus ont subi des modifications. Ne pouvant juger l’impact de ces modifications sur le guide, nous avons décidé de baser la présente recherche sur les informations contenues dans le guide d’étiquetage et de publicité sur les aliments. Il est cependant logique de croire que si des modifications majeures avaient été apportées, un nouveau guide aurait été produit.

Moteur Tesseract

L’élaboration d’un moteur de reconnaissance de caractère n’est pas une tâche facile. Elle requiert une profonde expertise dans les différents domaines que nous avons survolés précédemment. Considérant que notre objectif est de concevoir un prototype d’application pour extraire de l’information à partir d’une image et non de concevoir le moteur de reconnaissance de caractère lui-même, nous avons décidé de nous tourner vers un moteur déjà existant. Nous avons choisi le projet Tesseract et ce, pour plusieurs raisons. Tout d’abord, il s’agit d’un logiciel libre : cela nous permet donc d’encourager la communauté libre, toute personne qui le désire peut se procurer cette application afin de reproduire nos expériences et de plus, si le besoin s’en fait sentir, nous avons aussi la possibilité de modifier le code source pour l’adapter à nos besoins. Malgré le fait que ce projet soit libre, il est aussi très mature. Celui-ci a vu le jour avec le projet de recherche de Doctorat de M. Ray Smith (Smith, 1987) en 1984 dans les laboratoires de HP à Bristol. Il fut développé sur une période de 10 années, puis présenté à l’« UNLV Annual Test of OCR Accuracy » en 1995 où il termina dans les 3 premiers (Rice, Jenkins et Nartker, 1995). Par la suite, le projet fut abandonné. Finalement, HP donna le projet à la communauté libre en 2005 où son développement reprit de plus belle.

Méthode automatique proposée

Les étapes de la méthode automatique que nous proposons sont très fortement inspirées de celles de la méthode manuelle puisque ces dernières sont efficaces et répondent à nos besoins. Il faut bien sûr localiser la boite, en déterminer le format linguistique, extraire l’information relative à l’échantillon et déterminer la pertinence de chaque ligne. Pour chaque ligne pertinente, nous identifions l’élément selon le maximum de vraisemblance avec les éléments contenus dans le dictionnaire  de l’application. Afin de déterminer le maximum de vraisemblance, nous traitons le nom de l’élément dans chaque langue de façon indépendant; il faut également s’assurer que les caractères ne sont pas utilisés dans plus d’une langue. Si la vraisemblance est trop faible, nous considérons que la ligne est finalement non pertinente. Lorsque l’élément est identifié, nous segmentons l’information numérique selon le type d’élément qui a été identifié.

Les phases de développement

Le développement de ce projet est séparé en deux phases, qui sont : la phase d’exploration qui a permis de déterminer la faisabilité du projet; et la phase de développement de l’application elle-même qui a permis de peaufiner les résultats. Lors de la phase d’exploration, nous avons numérisé une dizaine de boites d’information nutritionnelle afin de vérifier le concept, localiser les généralités dans la structure du modèle d’information et identifier les faiblesses de l’application. Ensuite, nous avons photographié onze produits à neuf résolutions différentes afin de tester le domaine d’applicabilité, en termes de résolution spatiale, de notre application. Lors de cette partie, nous avons aussi dû améliorer la robustesse de l’application face aux informations partielles ou manquantes causées par la performance médiocre du moteur de reconnaissance de caractère lorsqu’on lui fournit une image de basse résolution. À la fin de cette phase, nous considérons que l’application est fonctionnelle, mais plusieurs choix restent encore à faire afin d’optimiser les résultats. Étant donné que nous désirons que ces choix soient optimaux par rapport aux images que l’application rencontrera réellement, nous devons absolument utiliser des images qui seront représentatives de la réalité.

Langage de programmation

L’application a été développée à l’aide du logiciel MatLab (version 7.8.0.347, Matworks, Massachusetts, États-Unis). Ce logiciel permet de traiter et de gérer aisément les images puisqu’il utilise une représentation matricielle et possède plusieurs boites d’outils pour le traitement d’image et de signaux. De plus, son langage de programmation est très adapté au le développement et à la recherche puisqu’il s’agit d’un langage de programmation interprété; il n’a donc pas besoin d’être recompilé à chaque altération du code source. Malheureusement, la flexibilité qu’apporte le langage interprété amène un contre coup. Les langages interprétés sont beaucoup plus lents que les langages compilés.  le compilateur ne semble pas générer du code compilé, mais semble plutôt encapsuler un interpréteur de commandes Matlab et toutes les fonctions nécessaires à notre application. De cette façon, le programme peut être exécuté sur des ordinateurs qui ne possèdent pas Matlab. Dans notre cas, vu la faible charge de calcul que nous demandons à l’application, ce défaut s’en trouve amoindri.

Extraction par l’OCR
Une fois la boite d’information nutritionnelle identifiée, l’application sauvegarde l’image en ton de gris sur le disque en format BMP (Windows Bitmap) afin de s’assurer que l’OCR puisse lire l’image. Par la suite, l’application exécute une commande externe afin de lancer l’OCR qui, suite au traitement de l’image, génère un fichier ASCII (.txt). Par la suite, l’application charge ce fichier ASCII. Une attention particulière doit être portée à l’encodage du fichier afin de ne pas insérer d’erreurs de format dans le système. Tel que mentionné précédemment, nous avons décidé d’utiliser l’application d’OCR Tesseract (cette application à licence ouverte (open source) est la propriété de Google) pour ce projet, ce qui permet à quiconque de l’utiliser. Malgré le fait que cette application est très performante, il s’agit tout de même d’une application gratuite en cours de développement. Par contre, le module d’OCR est appelé en commande externe, et il serait possible en changeant une ou deux lignes de code de notre application de passer à une autre application d’OCR. La seule contrainte est que nous devons pouvoir utiliser cette application en ligne de commande (« command prompt ») et que nous devons connaitre l’encodage du fichier de sortie.
Calcul de la distance de Levenshtein
La distance de Levenshtein permet de calculer le coût de modification entre deux chaines de caractères. À l’origine, l’algorithme assigne un coût de traitement d’une unité afin d’insérer, de supprimer ou de modifier un caractère de la première chaine (celle générée par l’OCR) pour la faire correspondre à la deuxième chaine (chacune des entrées du dictionnaire). Nos lignes à comparer (provenant de l’OCR) contiennent le nom de l’élément nutritif dans les deux langues officielles, ainsi que les informations numériques relatives à l’élément nutritif. Pour extraire les deux noms, nous devons calculer la distance de Levenshtein à deux reprises sur la même chaine de caractère. Pour ce faire, nous avons dû ajouter une quatrième opération à la méthode de Levenshtein : la suppression d’extrémité. Toutes séquences consécutives de suppression qui inclut le premier ou le dernier caractère de la chaine s’effectuent avec un coût nul. De plus, nous devons calculer la distance de Levenshtein dans les deux langues sans qu’il y ait de superposition entre les réponses; ce qui signifie qu’un caractère ne peut pas être utilisé simultanément pour le calcul des distances en français et en anglais. Nous effectuons donc le deuxième calcul de la distance à partir de la partie du premier calcul qui a été catégorisé comme suppression d’extrémité de la fin de la chaine. Puis nous conservons encore la suppression de l’extrémité de la fin du deuxième calcul comme étant les informations numériques relatives à cet élément nutritif.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

INTRODUCTION
CHAPITRE 1 REVUE DE LITTÉRATURE
1.1Guide d’étiquetage et de publicité sur les aliments
1.2Recherche opérationnelle
1.2.1Programmation dynamique
1.3Reconnaissance optique de caractère
1.3.1Prétraitement
1.3.2Extraction des caractéristiques (« Feature extraction »)
1.3.3Classification
1.4Moteur Tesseract
1.4.1Méthodes utilisées dans Tesseract
1.5Approche orientée résultat
CHAPITRE 2 MÉTHODOLOGIE
2.1Méthode manuelle couramment utilisée
2.2Méthode automatique proposée
2.3Les phases de développement
2.4Validation des résultats
2.5Plan d’expérimentation
2.5.1Test de répétabilité
2.5.2Approche orientée résultat
2.5.3Expérimentation exhaustive
2.5.4Critères d’évaluation
CHAPITRE 3 FONCTIONNEMENT DE L’APPLICATION
3.1Langage de programmation
3.2Dictionnaire
3.3Survol
3.4Localisation de la boite
3.5Extraction par l’OCR
3.6Calcul de la distance de Levenshtein
3.7Optimisation du coût global
3.8Extraction des caractéristiques
3.9Vérification humaine
3.10Sauvegarde vers la base de données
CHAPITRE 4 PREMIÈRE PHASE DE TEST
4.1Test de répétabilité
4.2Variables d’optimisation
CHAPITRE 5 ANALYSE DE LA PREMIÈRE PHASE
5.1Test de répétabilité
5.2Versions de l’OCR Tesseract
5.3Méthode de localisation
5.4Validation des unités
5.5Correction des pourcentages manquants
5.6Combinaison vérification des unités et des pourcentages
5.7Évaluation de l’efficacité
CHAPITRE 6 DEUXIÈME PHASE DE TEST
6.1Seuil d’identification des boites
6.2Seuil d’identification des lignes
6.3Prétraitement
CHAPITRE 7 ANALYSE DE LA DEUXIÈME PHASE
7.1Seuil d’identification des boites
7.2Seuil d’identification des lignes
7.3Prétraitement
CHAPITRE 8 DISCUSSION
8.1L’efficacité de l’OCR
8.2Critère de performance acceptable
8.3Erreurs statistiques de type I et de type II
8.4Niveau de confiance de l’information extraite
8.5L’utilisation de test « un contre tous »
CONCLUSION

Rapport PFE, mémoire et thèse PDFTélécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *