TP d entraãőnement : reconnaissance de caractères



Documents pareils
Optimisation, traitement d image et éclipse de Soleil

ILT. Interfacultair Instituut voor Levende Talen. Actes de communication. Serge Verlinde Evelyn Goris. Katholieke Universiteit Leuven

L ALGORITHMIQUE. Algorithme

Master IMA - UMPC Paris 6 RDMM - Année Fiche de TP

La boucle for La boucle while L utilisation du if else. while (condition) { instruction(s) }

de calibration Master 2: Calibration de modèles: présentation et simulation d

CONCOURS D ENTREE A L ECOLE DE 2007 CONCOURS EXTERNE. Cinquième épreuve d admissibilité STATISTIQUE. (durée : cinq heures)

Projet Matlab/Octave : segmentation d'un ballon de couleur dans une image couleur et insertion d'un logo

Les algorithmes de base du graphisme

Opérations de base sur ImageJ

Cours 7 : Utilisation de modules sous python

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Direction des Études et Synthèses Économiques Département des Comptes Nationaux Division des Comptes Trimestriels

PROJET MODELE DE TAUX

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

MÉTHODES NUMERIQUES. Cours. Licence de Physique Année Universitaire : Licence Chimie, parcours Physique. Semestre S3

Traitement bas-niveau

Introduction à MATLAB R

Résolution de systèmes linéaires par des méthodes directes

RDV E-commerce 2013 Mercredi 6 Mars, Technopark

TP 1 Introduction à Matlab Février 2009

Théorie et codage de l information

Chap III : Les tableaux

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Résolution d équations non linéaires

ISFA 2 année Les questions sont en grande partie indépendantes. Merci d utiliser l espace imparti pour vos réponses.

1 Complément sur la projection du nuage des individus

Calcul différentiel sur R n Première partie

Exercices Corrigés Premières notions sur les espaces vectoriels

Organigramme / Algorigramme Dossier élève 1 SI

Pourquoi l apprentissage?

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Introduction. Mathématiques Quantiques Discrètes

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Initiation à LabView : Les exemples d applications :

Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1

Une comparaison de méthodes de discrimination des masses de véhicules automobiles

Exercices - Polynômes : corrigé. Opérations sur les polynômes

Plan. 1 Cycles de développement. 2 Méthodes agiles, principes généraux. 3 Comment se passe un Sprint?

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Taux d intérêts simples

Cours Informatique Master STEP

3 Approximation de solutions d équations

Fonctions de plusieurs variables

Cours 02 : Problème général de la programmation linéaire

Mathématiques financières

Poker. A rendre pour le 25 avril

Algorithmique et Programmation, IMA

CONTROLE DE GESTION. DUT GEA, 2 èm e année option PMO

Programmation linéaire

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Correction de l examen de la première session

NOTATIONS PRÉLIMINAIRES

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

TP : Gestion d une image au format PGM

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Apprentissage par renforcement (1a/3)

Programmation linéaire et Optimisation. Didier Smets

Transmission d informations sur le réseau électrique

Introduction à l approche bootstrap

Programmes des classes préparatoires aux Grandes Ecoles

Package Java.util Classe générique

Les articles traités : les nouvelles exigences du règlement n 528/2012

Calcul Formel et Numérique, Partie I

Cours d Analyse. Fonctions de plusieurs variables

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Utilisation du logiciel ImageJ gratuit

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

SudoClick Reconnaissance de grilles de sudoku pour téléphones portables

Algorithmes sur les mots (séquences)

LE PROBLEME DU PLUS COURT CHEMIN

Première partie. Préliminaires : noyaux itérés. MPSI B 6 juin 2015

Rappels sur les suites - Algorithme

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Chafa Azzedine - Faculté de Physique U.S.T.H.B 1

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

DUT Techniques de commercialisation Mathématiques et statistiques appliquées

Simulation de variables aléatoires

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

Algorithmique I. Algorithmique I p.1/??

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

V- Manipulations de nombres en binaire

Présentation du langage et premières fonctions

aux différences est appelé équation aux différences d ordre n en forme normale.

COMMUNICATEUR BLISS COMMANDE PAR UN SENSEUR DE POSITION DE L'OEIL

Deux disques dans un carré

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Python - introduction à la programmation et calcul scientifique

avec des nombres entiers

Analyse de la vidéo. Chapitre La modélisation pour le suivi d objet. 10 mars Chapitre La modélisation d objet 1 / 57

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Cours d analyse numérique SMI-S4

Transcription:

TP d entraãőnement : reconnaissance de caractères O. Wilk avril 2010 1 Introduction Dans ce TP, nous allons développer une méthode permettant la reconnaissance de caractères. Nous nous limiterons à reconnaitre les chiffres de 0 à 9. La méthode proposée repr certains éléments présentés en ED. Elle se décompose en 2 parties. La première est une étape de préparation qui consiste à déterminer une image "référence" pour chaque type de chiffre. La seconde est l étape de reconnaissance qui consiste à déterminer une image dans l espace constitué par les images "références" qui soit la plus proche de l image contenant le chiffre "inconnu". 1

Cnam - Réf. 18458 - Traitement des images et géométrie - TP 2 2 La préparation 2.1 La base Pour cette étape, nous allons utiliser une base de données. Pour chaque type de chiffre, nous avons n images différentes. Pour le chiffre i, nous avons les images {X j i lrp Q /j = 1,n} (i peut prre les valeurs de 0 à 9). Remarque : Chaque image X j i doit être binarisée à l aide d une opération de seuillage. La valeur du fond doit être égale à 0, donc la valeur des pixels décrivant le chiffre vaut 1. Pour déterminer l image "référence" X R i pour chaque chiffre i, nous résolvons le problème suivant : min X R i J (1) avec J = 1 n P Q (Xi R (p,q) X j i 2 (p,q))2 (2) j=1 p=1 q=1 Les solutions Xi R (cf. Figure 1) de (1) pour chaque i de 0 à 9 constituent une base d images "chiffre" nous permettant d envisager la reconnaissance. Mais avant cela, il faut procéder à au moins une amélioration. Figure 1 : les images "références".

Cnam - Réf. 18458 - Traitement des images et géométrie - TP 3 2.2 Une amélioration Les images {X j i /j = 1,n} contiennent chacune un chiffre. Celui-ci peut être positionné de manière très différente au sein de ces images. Pour remédier à cela, nous effectuons un recentrage de la manière suivante : Pp=1 Q q=1 Mp = fix( Xj i p ) nb Pp=1 Q q=1 Mq = fix( Xj i q ) nb avec nb = P Q X j i p=1 q=1 (nombre de pixel de valeur 1). Remarque : Le fait d avoir le fond de l image à 0 et le chiffre à 1 est bien sur très important pour que la moyenne précédente est le sens que nous souhaitons. Y j i = X j i (Mp a : Mp + a,mq b : Mq b) Y j i est donc de dimension (2a + 1) (2b + 1). Remarque : Attention en fonction du choix de a et de b, il peut être utile de prolonger l image X j i pour que l opération précédente puisse s effectuer! Bien entu, cette amélioration doit s effectuer avant la détermination des images "références" ainsi que pour chaque image contenant un chiffre inconnu. 3 La reconnaissance La reconnaissance consiste à résoudre le problème suivant : min α J1 (3) avec J1 = 1 P Q 9 (X(p,q) α i Xi R (p,q)) 2 2 p=1 q=1 i=0 (4) X étant l image contenant le chiffre inconnu et α lr 10. La valeur de i, où α i (ième composante de la solution de (3)) est maximal, nous fournit un bon candidat pour être le chiffre recherché. 4 L application 4.1 La programmation Vous programmerez les étapes suivantes :

Cnam - Réf. 18458 - Traitement des images et géométrie - TP 4 - Lecture de l image BdD "Base De Données", vous retrouverez les X j i manière suivante : X j i = BdD(i P + 1 : (i + 1) P,j Q + 1 : (j + 1) Q) pour i = 0,9 et j = 1,n. de la - Binarisation : Si X j i (p,q) seuil alors Xj i (p,q) = 1 sinon Xj i (p,q) = 0. - Recentrage des chiffres : Pour accélérer ce calcul, vous pouvez créer les matrices "Position_p" et "Position_q" : Position_p0= [1:P] ; Position_p= Position_p0; for q=1:q-1 Position_p= [Position_p,Position_p0]; Position_q0= [1:Q]; Position_q= Position_q0; for p=1:p-1 Position_q= [Position_q;Position_q0]; Vous avez ainsi la possibilité d utiliser l opérateur produit M atrice1 M atrice2 de Matlab qui permet d obtenir une matrice dont chaque composante (p,q) est le produit de Matrice1(p,q) Matrice2(p,q) : X.* Position_p Pour la seconde partie du recentrage, vous pouvez utiliser les lignes sources suivantes pour assurer la découpe : a1= fix(p/2); b1= fix(q/2); % creation d une image plus grande que X : % ======================================== Xtmp= zeros(p+2*a1,q+2*b1); % On positionne l image X au milieu de Xtmp : % ========================================== Xtmp(a1+1:P+a1,b1+1:Q+b1)= X; % On decoupe : % ============ X= Xtmp(Mp+a1-a:Mp+a1+a,Mq+b1-b:Mq+b1+b); Vous pouvez utiliser l opérateur de concaténation [, ] de Matlab pour recréer une grande image BdD contenant toutes les images retravaillées. - Création des images de "références" : Vous calculerez chaque image en résolvant J = 0.

Cnam - Réf. 18458 - Traitement des images et géométrie - TP 5 - Reconnaissance : Choix de l image "chiffre" X à reconnaitre puis détermination de α en utilisant la méthode du gradient simple à pas optimal. 4.2 L application numérique Vous utiliserez l image BdD.jpg. Et vous prrez : seuil = 0.1,P = 112,Q = 110,a = 25,b = 25 Puis vous essayerez de reconnaitre les chiffres contenus dans les images : X 3 0,X 1 1,X 7 2,X 4 3,X 9 4;X 6 5,X 2 6,X 8 7,X 3 8,X 1 9. Pour la méthode du gradient simple, vous utiliserez le test d arrêt qui arrête le processus itératif quand la norme du résidu est inférieur à la norme du second membre divisée par 1000. Pour chacune de ces images, vous donnerez le vecteur α ainsi que le nombre d itération pour vérifier le test d arrêt et vous dégagerez le numéro de la composante de α ayant la valeur maximale pour ainsi vérifier si le chiffre a bien été reconnu. Commentez vos résultats. Attention : Ce TP ne sera pas noté. Il vous est proposé uniquement pour illustrer certains aspects développés en cours et en ED. 5 Les sources du travail demandé % donnees et parametres % ===================== fichiers =.../BdD.jpg ; n= 112; m= 110; % dimensions de chaque image (avant decoupage) a2= 25; b2= 25; % demi-dimensions de chaque image (cf. decoupage) Choixi = 5; Choixj = 8; % Pour le choix de l image a identifier seuil = 0.1; Eps = 0.001; % ===================== [f,dimiy,dimix] = LectureImage(fichiers); f = Normalisation(f); Tout= f(1:10*n,1:10*m);

Cnam - Réf. 18458 - Traitement des images et géométrie - TP 6 % calcul des matrices Position_i et Position_j % utiles ppour le calcul du centre des images. % ============================================ Position_i0= [1:n] ; Position_i= Position_i0; for j=1:m-1 Position_i= [Position_i,Position_i0]; Position_j0= [1:m]; Position_j= Position_j0; for i=1:n-1 Position_j= [Position_j;Position_j0]; % ============================================ % seuillage, centrage et decoupage % on stocke tout dans ---> Tout2 % ================================ Y= Tout(1+i*n:(i+1)*n,1+j*m:(j+1)*m); % seuillage et inverse du 0 et du 1 % ================================= [Y]= Binarisation(Y,seuil,0); Y= abs(y -1); % ================================= % calcul du centre % ================ nb= sum(sum(y)); Mi= fix(sum(sum(y.*position_i))/nb); Mj= fix(sum(sum(y.*position_j))/nb); % ================ % decoupe % ======= a= fix(n/2); b= fix(m/2); Ytmp= zeros(n+2*a,m+2*b); Ytmp(a+1:n+a,b+1:m+b)= Y; Y= Ytmp(Mi+a-a2:Mi+a+a2,Mj+b-b2:Mj+b+b2); % ======= if ( j== 0 ) X= Y; else X= [X,Y];

Cnam - Réf. 18458 - Traitement des images et géométrie - TP 7 if ( i==0 ) Tout2= X; else Tout2= [Tout2,X ] ; % ================================ % nouvelles dimensions de chaque image % ==================================== n= 2*a2+1; m= 2*b2+1; % ==================================== % determination des images "references" (les moyennes!!!) % on les stocke dans ---> Tout3 % ======================================================== Moyenne= zeros(n,m); Y= Tout2(1+i*n:(i+1)*n,1+j*m:(j+1)*m); Moyenne= Moyenne + Y; Moyenne = Moyenne/10; if ( i==0 ) Tout3= Moyenne; else Tout3= [Tout3,Moyenne ] ; % ======================================================== % Choix d une image dans Tout2 % ============================ X= Tout2(1+Choixi*n:(Choixi+1)*n,1+Choixj*m:(Choixj+1)*m); % ============================ % construction de la matrice et du second membre associes % au probleme de moindres carres. % ======================================================= Yi= Tout3(1+i*n:(i+1)*n,1:m); Yj= Tout3(1+j*n:(j+1)*n,1:m); Mat(i+1,j+1) = sum(sum(yi.*yj)); b(j+1) = sum(sum(yj.*x));

Cnam - Réf. 18458 - Traitement des images et géométrie - TP 8 % ======================================================= % processus de resolution % par la methode du gradient simple a pas constant % ================================================ alfa= b*0; test= norm(b); iter= 0; while ( test > Eps*norm(b) & iter < 1000) iter= iter + 1; % calcul du residu % ================ residu= b; residu(i+1)= residu(i+1) - Mat(i+1,j+1)*alfa(j+1); % ================ % calcul du rho optimal % ===================== Ar= residu*0; Ar(i+1)= Ar(i+1) - Mat(i+1,j+1)*residu(j+1); r2 = sum(residu.*residu); Arr= sum(ar.*residu); rho= - r2/arr % ===================== alfa= alfa + rho*residu; test= norm(residu); % ================================================