39
-INSA de Rouen- ASI4 – UV Document - Clément Chatelain [email protected]

-INSA de Rouen- ASI4 – UV Document

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: -INSA de Rouen- ASI4 – UV Document

-INSA de Rouen- ASI4 – UV Document -

Clément Chatelain

[email protected]

Page 2: -INSA de Rouen- ASI4 – UV Document

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 

Page 3: -INSA de Rouen- ASI4 – UV Document

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

Page 4: -INSA de Rouen- ASI4 – UV Document

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

Page 5: -INSA de Rouen- ASI4 – UV Document

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

Page 6: -INSA de Rouen- ASI4 – UV Document

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

Page 7: -INSA de Rouen- ASI4 – UV Document

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

Page 8: -INSA de Rouen- ASI4 – UV Document

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.

Page 9: -INSA de Rouen- ASI4 – UV Document

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(!)

Page 10: -INSA de Rouen- ASI4 – UV Document

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, ...

Page 11: -INSA de Rouen- ASI4 – UV Document

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, ...

Page 12: -INSA de Rouen- ASI4 – UV Document

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

Page 13: -INSA de Rouen- ASI4 – UV Document

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

Page 14: -INSA de Rouen- ASI4 – UV Document

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

Page 15: -INSA de Rouen- ASI4 – UV Document

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.

Page 16: -INSA de Rouen- ASI4 – UV Document

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

Page 17: -INSA de Rouen- ASI4 – UV Document

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

?

Page 18: -INSA de Rouen- ASI4 – UV Document

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)

?

?

Page 19: -INSA de Rouen- ASI4 – UV Document

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 !

Page 20: -INSA de Rouen- ASI4 – UV Document

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

Page 21: -INSA de Rouen- ASI4 – UV Document

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 !

Page 22: -INSA de Rouen- ASI4 – UV Document

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?

Page 23: -INSA de Rouen- ASI4 – UV Document

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

Page 24: -INSA de Rouen- ASI4 – UV Document

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

Page 25: -INSA de Rouen- ASI4 – UV Document

Conclusion sur la classification

● De nombreux autres classifieurs :– Arbre de décision

– RBF

– Support Vector Machines

– Forêts aléatoires

– Etc. (voir cours DM)

Page 26: -INSA de Rouen- ASI4 – UV Document

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

Page 27: -INSA de Rouen- ASI4 – UV Document

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

Page 28: -INSA de Rouen- ASI4 – UV Document

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

Page 29: -INSA de Rouen- ASI4 – UV Document

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

Page 30: -INSA de Rouen- ASI4 – UV Document

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

Page 31: -INSA de Rouen- ASI4 – UV Document

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”

Page 32: -INSA de Rouen- ASI4 – UV Document

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”

Page 33: -INSA de Rouen- ASI4 – UV Document

Reconnaissance de documents

Lecture intégrale vs.localisation des informations pertinentes

● Séparation texte/Image

● Segmentation en paragraphes

● Segmentation en lignes

● Segmentation en mots

Page 34: -INSA de Rouen- ASI4 – UV Document

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.

Page 35: -INSA de Rouen- ASI4 – UV Document

Applications industrielles

● 1995 : lecture d'adresses postales manuscritesbureau distributeur

● 1995 : lecture automatique de chèquesmontant littéral et numérique

Page 36: -INSA de Rouen- ASI4 – UV Document

Applications industrielles

● 1999 : Recensement

– 90 millions de formulaires

– Collaboration La poste-Bull-Jouve

– 97% des caractères reconnus

– 1% d'erreur

Page 37: -INSA de Rouen- ASI4 – UV Document

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 !!!

Page 38: -INSA de Rouen- ASI4 – UV Document
Page 39: -INSA de Rouen- ASI4 – UV Document

Et maintenant, à vous de jouer !● TP : Reconnaissance de caractères manuscrits

● Objectif : Développer, sous MATLAB, une chaîne de reconnaissance de chiffres manuscrits.