Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Introduction Générale
AcquisitionScanner / Caméra
Amélioration de l’image
Localisation(Blocs de texte,
ligne, mot)
Structure physique
Imagerie
Reconnaissance(Titres, Paragraphes,
mots, caractères)
Structure logique
Décision / RF
Post-traitementsCohérence logique,
Linguistique…
IA<?xml version="1.0" encoding="ISO-8859-1"?><!-- GUSTAVE_ML DTD dedicated to the description of manuscripts layout -->
<!ELEMENT transcription (Bloc+)><!-- a transcription is made up of one “bloc” entry at least -->
<!ELEMENT Bloc (Ligne*,coordonnees)><!— a "Bloc" is made up of one or several “line” entries and their corresponding coordinates -->
<!ATTLIST Bloc Num ID #REQUIRED Type (corps_de_texte | marge | bas_de_page | haut_de_page) #REQUIRED Attribut (Normal | Biffé | Encadré) #REQUIRED><!-- a "Bloc" entry has for attributs one ID "Num", a required "Type" defined by (body of text | margin | bottom of the page | top of the page), and a required attribut among (normal | Biffé | squared -->
<!ELEMENT Ligne (texte+)><!-- a "Ligne" entry contains at leat one "texte" element -->
<!ATTLIST Ligne Type (Ligne | Inter-ligne) #REQUIRED><!— a "Ligne" element has one mandatory attribut "Type" among (Line | Inter-line) -->
<!ELEMENT coordonnees (point,point*)><!— coordinates are defined by a set of points -->
<!ELEMENT texte (#PCDATA)<!— the textual ASCII entry of a text bloc -->
<!ATTLIST texte Num CDATA #REQUIRED Type (Normal | Barré | Souligné | Illisible) #REQUIRED><!— a "texte" element has for attibuts one mandatory id "Num" and one mandatory attribut "Type" among (Normal | Erased | Underlined | Illegible) -->
<!ELEMENT point (#PCDATA)><!-- the "point" element contains the point coordinates (x,y) -->
Des pixels ... au texte
Plan du cours
● Introduction générale
● Introduction à la Reconnaissance de Formes – Définitions
– Applications
– Structure générale d'un système de RdF
– L'exemple de la reconnaissance de caractères manuscrits
● Application aux documents– Documents imprimés
– Documents manuscrits
● TP/projet : reco de caractères manuscrits
Introduction à la Reconnaissance de formes
● Une définition de la RdF:
– J.P. Haton : « La RdF s’intéresse à la conception et à la réalisation de systèmes (matériels et logiciels) capables de percevoir, et dans une certaine mesure, d’interpréter des signaux captés dans le monde physique »
● Conception de systèmes automatiques qui reconnaissent les formes qu'on leur présente
● L'homme est le plus parfait des systèmes de RdF
● Copie des fonctions humaines :
– Perception, analyse, interprétation
– Capteur, extraction de caractéristiques, classification
Exemples● Exemple 1 : Reconnaissance de la parole
– Capteur = microphone ⇒ 1 phonème (100ms) à 10kHz sur 8 bits ⇒ 1,2 ko
– Infos pertinentes = fréquence fondamentale, harmonique, énergie, etc. ⇒ qq dizaines de float
– Décision ⇒ 1 octet [æ], [e], [i], [ε], …
● Exemple 2 : Reconnaissance de caractères
– Capteur = scanner ⇒ image 32*32 octets = 512octets
– Infos pertinentes = densités, sondes, caractéristiques structurelles, etc. ⇒ qq dizaines de float
– Décision ⇒ 1 octet 'a', 'b', 'c', …
réductionprogressive de l'information
réductionprogressive de l'information
Structure générale d'un système de RdF
● 1. Prétraitements
– Binarisation, localisation, débruitage, normalisation, etc.
● 2. Extraction des info pertinentes = les caractéristiques
– Reconnaissance de la parole : analyse fréquentielle
– Reconnaissance balles de couleur pour un robot : caractéristiques image : couleur, texture, rapport H/L, etc.
● 3. Représentation de ces informations en vue de leur classification
– Vecteur, graphe, chaîne
● 4. Prise de décision
– apprentissage/classification, combinaison/fusion
● 5. Vérification
De nombreuses applications ...
● Banque : reconnaissance de signature
● Robotique : Guidage de robots
● Météorologie : détection de phénomènes à partir d'images satellites
● Police : reconnaissance d'empreintes, de visages
● Industrie : détection de défauts, automatisation
De nombreuses applications ...
● Médical : détection de pathologie à partir d'ECG/EEG, imagerie : aide à la décision
● Militaire : détection de cibles
● Sécurité automobile : détection d'obstacles
● Traitement du signal : reconnaissance de la parole,de l'écriture
● etc.
Un exemple concret : La Reconnaissance de caractères
manuscrits
Posons le problème
● Hypothèse :
– Nous disposons d'imagettes de caractères isolés(cad “segmentés”)
● But du jeu :
– À partir de l'image = un tableau de pixel, Déterminer la classe d'appartenance du caractère= “classification”
– Pour les chiffres : problème à 10 classeslettres : 26 classes, + si min/maj, tamil : 247 caractères(!)
Reconnaissance de caractères manuscrits : problématique
● Exemple des chiffres :
● Difficultés :
– Présence de bruit
– Mauvaise numérisation
– 32*32 pixels en ng : - trop d'information - peu pertinente
– Et surtout : La variabilité inter-scripteur
● Taille
● Inclinaison
● Structure
● Épaisseur de trait, ...
Reconnaissance de caractères manuscrits : problématique
prétraitements
Apprentissage automatique
● Solutions :●Binarisation●Débruitage●Correction d'inclinaison●etc.
Idée = Apprendre la diversité et la variabilité des formes grâce en soumettant à la
machine de (très) nombreux exemples
“machine learning”
Extraction de caractéristiques
●Augmenter la pertinence de la représentation●Réduction de la quantité d'info.
● Difficultés :
– Présence de bruit
– Mauvaise numérisation
– 32*32 pixels en ng : - trop d'information - peu pertinente
– Et surtout : La variabilité intra-scripteur
● Taille
● Inclinaison
● Structure
● Épaisseur de trait, ...
Méthodologie
● Chaîne de traitement :
Prétraitements :- Binarisation (niveaux de gris/couleur => noir& blanc) :
réduction de la quantité d'info- Débruitage : morphomat- Normalisation => invariance vis-à-vis de la taille- Correction d'inclinaison
Extraction de caractéristiques
● Une définition : extraction à partir de l’image de l’information la plus pertinente pour un problème de classification donné, c’est à dire celle qui minimise la variabilité intra-classe et qui maximise la variabilité inter-classe [Devijver 82].
Étape primordiale dans la conception d'un système de RdF
● Tâche difficile : 1 problème = 1 jeu de caractéristiques
● Il existe de très nombreux jeux de caractéristiques
Extraction de caractéristiques
● Caractéristiques extraites des pixels
– Valeur des pixels
– Densités de pixels (ex. : 1+2²+4²+...)
● Histogrammes
– Projection horizontale et verticale
– Valeurs brutes / détection de pics
● Profils / sondes
Extraction de caractéristiques● Moments invariants :
– mesures statistiques de la distribution des pixels autour du centre de gravité du caractère
– Invariants en translation, taille, rotation
● Caractéristiques extraites des coutours
– Chaincode :pavage + direction de Freeman
● Caractéristiques structurelles● Nécessite une squelettisation● Nb et position des fins de traits,
occlusions, jonctions, etc.
Extraction de caractéristiques● Remarques :
– Il existe bien d'autres caractéristiques ...
– Nous avons présenté des caractéristiques numériques organisées en vecteurs de Rd, mais on peut également avoir une représentation structurelle (graphe), ou syntaxique.
● => Désormais, nos formes (caractères manuscrits) sont résumés à un vecteur dans Rd.
– Exemple en 2D :
● Étape suivante : Classification
Classification
● Le rôle du classifieur est de se prononcer sur l’appartenance d’une forme à chacune des classes de caractère à partir du vecteur de caractéristiques.
● Deux phases distinctes :
– Apprentissage : Elaboration de la base de connaissance du système RdF à partir d'un grand nombre d'exemples de caractères dont on connait l'étiquette (la classe).
– Décision : A l'aide de la base de connaissance, attribuer à une forme inconnue une classe d’appartenance
?
Classification
Cas facile : Cas difficile :
Deux types de difficultés :● Éléments à la limite entre 2 classes (Rejet d'ambiguité)● Éléments loins de toutes les classes (Rejet de distance)
?
?
Classification
● Performance d'un classifieur– Il faut de grandes quantités de données
étiquetées pour apprendre, et évaluer ($$$)
– Il faut des critères de performance :● Taux de bonne
reconnaissance TOPn● Matrice de confusion● Capacité à rejeter● Rapidité :
en apprentissage et en décisionremarque : mieux vaut un classifieur lent en apprentissage et rapide en test que l'inverse !
Classification
● Il existe deux grands types de classifieurs :
– Les classifieurs discriminantsLors de l'apprentissage, ils déterminent une frontière de décision entre les classes
+ discrimination (rejet d'ambiguïté)
- rejet de distance
– Les classifieurs modélisantsLors de l'apprentissage, ils élaborent un modèle des classes à reconnaître
+ rejet de distance
- discrimination
Exemple de classifieur discriminant : K-plus proches voisins
● Classifieur de référence
● Algorithme :
– Calculer la distance euclidienne de l'élément à classifier à tous les éléments de la base d'app.
– Choisir la classe la plus représentée parmi les K-plus proches voisins
● Propriétés :
Pas d'apprentissage à proprement parler
+ efficace, simple, rejet d'ambiguïté possible
- lent quand la base est grande !
Exemple de classifieur modélisant : Distance euclidienne au centre de la classe
● Apprentissage : pour chaque classe , calculer le vecteur moyen (= le centre de la classe).
● Décision : calculer la distance euclidienne entre l'élément à classer x et le centre de toutes les classes. Choisir la classe la “plus proche”.
● Problème : ne prend pas en compte l'étalement des classes !
● Amélioration : calculer la matrice de variance-covariancede chaque classe , et calculer les probabilités :
k
px /k =1
2d /2 exp −12
x−mk t k
−1x−mk
kmk
k
Dimension (= # de caractéristiques)
XXXX
X XX
O OO
O
O
O
O
OO
OO
OX
XXO?
Exemple de classifieur discriminant : Le perceptron multicouche
● Analogie avec l’homme
– Unités élémentaires= neurones
– Synapse = poids
● Réseau de neurones
– Couche d’entrée = caracs
– Couche cachée
– Couche de sortie = les classes
● Neurones :
f : fonction non linéaire
y= f ∑i=1
npoid i∗entreei fentree
ipoid
i
Exemple de classifieur discriminant : Le perceptron multicouche (2)
● Capable de réaliser des fonctions très complexes
● Mais comment régler les poids ?
● Apprentissage par l’algorithme de la “rétropropagation du gradient”
● Algorithme :
– Initialiser les poids au hasard
– Pour chaque exemple de la base d’app:
● Propager les carac
● Estimer l’erreur en sortie
● Rétropropager l’erreur dans le réseau et corriger les poids
– FinPour
– Tester sur une base différente de la base d’app
● Avantages : rapide, efficace, grande dimension
● Inconvénient : apprentissage mal contrôlé et lent, hyperparamètres à régler
Conclusion sur la classification
● De nombreux autres classifieurs :– Arbre de décision
– RBF
– Support Vector Machines
– Forêts aléatoires
– Etc. (voir cours DM)
Conclusion sur la classification
● Combinaison de classifieurs– Permet d'exploiter leur complémentarité & plusieurs
jeux de caractéristiques
– Combinaison Parallèle, Séquentielle ou Hybride
Quelques chiffres pour conclure sur la Reconnaissance de caractères manuscrits
● Exemple de perfs sur une base réelle :
– Classifieurs : 2 réseaux de neurones en parallèle
– Caractéristiques : Chaincode #128+ vecteur stat/structurel #117
– Base : 200000 chiffres étiquettés (2/3 app, 1/3 test), et vérifiés à la main :)
– 98,7% de bonne reco en TOP1
– Rapidité : 2 semaines pour entrainer chaque RdN, <5 secondes pour traiter ~66000 chiffres
● Conclusion : opérationnel
RdF : application aux documents
Document papier document numérisé texte
Scanners industriels rapides
Jusqu’à 10 000 images A4 / heure saisiesDédiés pour le traitement automatique par lots en Noir et Blanc recto verso
Généralement dans l'industrie : images 200 ou 300 dpi compressées sans perte
RdF : application aux documents
● Caractères manuscrits isolés : OK
● Et les caractères imprimés ?
● Et les documents entiers ?
● But : extraire du texte ascii des documents
– Systèmes de lecture automatique de documents
– Rétroconversion avec structuration des informations
Reconnaissance de l'imprimé
● Caractères manuscrits isolés : OK
● Reconnaissance de caractères imprimés : même stratégie, en plus facile car beaucoup moins de variabilité, quoique ... (OCR)
● De plus, les caractères impriméssont séparés
● D'où la possibilité de lire des séquences
Reconnaissance de séquences manuscrites
● Retour sur le manuscrit : hypothèse de segmentation non vérifiée dans la pratique
● D'où la mise en place de segmentation ...
● Très délicat, à cause du paradoxe de Sayre [Sayre73]:
“pour reconnaître une entité, il faut savoir la localiser, mais pour la localiser, il faut tout d’abord la reconnaître”
Reconnaissance de séquences manuscrites
● Vérification de la segmentation par la reconnaissance
● Le classifieur doit savoir rejeter !
● Utilisation d'un lexique pour fiabiliser la reconnaissance
ex. : “maisom” => “maison”
Reconnaissance de documents
Lecture intégrale vs.localisation des informations pertinentes
● Séparation texte/Image
● Segmentation en paragraphes
● Segmentation en lignes
● Segmentation en mots
Applications industrielles
● 1985 : premières machines de tri postal grâce à la lecture de caractères imprimés
● 1992 : traitement des documents structurésformulaires, ouvrages imprimés de bonne qualité, etc.
Applications industrielles
● 1995 : lecture d'adresses postales manuscritesbureau distributeur
● 1995 : lecture automatique de chèquesmontant littéral et numérique
Applications industrielles
● 1999 : Recensement
– 90 millions de formulaires
– Collaboration La poste-Bull-Jouve
– 97% des caractères reconnus
– 1% d'erreur
Conclusion
● Document imprimé :
– Reco OK lorsque la numérisation a été bonne
– Information de plus haut niveau (strutures): nécessite des modèles
● Documents manuscrits
– Reco de champs OK pour les documents fortement structurés (chèques, formulaires, adresse postale)
– La localisation des informations pose encore problème => encore beaucoup de boulot !!!
Et maintenant, à vous de jouer !● TP : Reconnaissance de caractères manuscrits
● Objectif : Développer, sous MATLAB, une chaîne de reconnaissance de chiffres manuscrits.