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.
|
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
Télécharger le rapport complet