Vous êtes sur la page 1sur 4

Mathmatiques pour limage

cole des Ponts ParisTech, 2me anne

Arnak Dalalyan
dalalyan@imagine.enpc.fr

TP 4 : A NALYSE EN COMPOSANTES PRINCIPALES (ACP)


ET ANALYSE DISCRIMINANTE LINAIRE (ADL)
La sance de TP se fait sous environnement Windows.
Pour commencer la sance
1. Crer un rpertoire TP4_MPI sur le bureau.
2. Lancer un navigateur, par exemple Mozilla, et aller sur la page web suivante :
http://imagine.enpc.fr/~dalalyan/MathImage
3. Tlcharger tous les fichiers concernant le TP4 dans le rpertoire que vous venez de
crer TP4_MPI.
4. Lancer ensuite Matlab et modifier le rpertoire de travail en choisissant le rpertoire
Bureau/TP4_MPI que vous avez cr.
5. Dans le menu File -> Set path choisir C:\Documents... \TP4_MPI et cliquer sur Add
with subfolders, ensuite sur Save et Close.
6. Ouvrir une fentre dditeur File -> New -> Script.
7. Sauvez le fichier dans le rpertoire courant sous le nom TP4.m.
File -> Save as
8. Pour les diffrentes questions, vous pouvez utiliser un copier-coller partir de ce
document. Il est fortement recommand de saisir toutes les commandes dans la fentre
de lditeur que vous avez ouverte. Pour excuter les commandes saisies, il suffit de
les slectionner avec la souris et dappuyer sur la touche F9.
9. Pour inclure des commentaires dans le programme, ce qui est fortement recommand,
vous devez utiliser le caractre %. Tout ce qui suit ce caractre sera nglig lors de
lexcution.
10. Penser sauvegarder rgulirement le contenu du fichier TP2.m en appuyant sur les
touches Ctrl et S.

Analyse des donnes de peintures de Rembrandt et de Van Gogh


1. Description des donnes
On se propose, titre purement pdagogique, danalyser un jeu de donnes compos de 40
uvres de Rembrandt et de 44 uvres de Van Gogh. Un rapide aperu de ces uvres est
donn la page 4 de ce document.
Afin deffectuer une analyse statistique, on reprsente chaque image par son histogramme
de couleurs. Dans le cas prsent, cela consiste partitioner lespace des couleurs (ici, [0, 255]3 )
en k parties gales et, pour chaque image I, calculer la proportion p jI des pixels se trouvant
1

dans la partie j, pour j = 1, . . . , k. Aprs avoir effectu cette tape, on associe chaque image
I le vecteur numrique de taille k contenant les proportions ( p1I , . . . , pkI ). On peut, sans perte
dinformation, supprimer la dernire coordonne de ce vecteur car elle est toujours gale
(1 la somme de toutes les autres coordonnes).
Pour les 84 images correspondantes aux peintures de Rembrandt et de Van Gogh, les vecteurs des histogrammes des couleurs avec k = 8 et k = 64 ont t calculs et stocks respectivement dans les fichiers painting8.dat et painting64.dat. Ces fichiers sont disponibles
sur la page http://imagine.enpc.fr/~dalalyan/MathImage.
On peut charger les donnes dans Matlab laide de la commande :
A = importdata('painting8.dat');
Dans le tableau tlcharg, les 40 premires lignes correspondent aux peintures de Rembrandt et les 44 dernires lignes correspondent celles de Van Gogh.

2. Analyse en composantes principales


1. On effectue maintenant une ACP sur les donnes paintings8 :
[U,Z,v]=pca(A',min(size(A)));
2. Que reprsentent les matrices U et Z ? et le vecteur v ?
3. Excuter les commandes :
subplot(1,2,1)
bar(v(1:end),'FaceColor','blue');
subplot(1,2,2)
v1=cumsum(v)/sum(v);
bar(v1(1:end),'FaceColor','blue');
et expliquer le rsultat affich.
4. On spare maintenant les peintures de Rembrandt de celles de van Gogh :
X1=Z(:,1:40);
Y1=Z(:,41:end);
et on affiche les meilleures projections 2D et 3D simultanment :
clf()
subplot(1,2,1)
plot(X1(1,:),X1(2,:),...
'MarkerFaceColor','red','MarkerEdgeColor', 'red','Marker','o',...
'LineStyle','none','MarkerSize',6);
hold on
plot(Y1(1,:),Y1(2,:),...
'MarkerFaceColor','blue','MarkerEdgeColor', 'blue','Marker','d',...
'LineStyle','none','MarkerSize',6);
hold off
subplot(1,2,2)
plot3(X1(1,:),X1(2,:),X1(3,:),...
'MarkerFaceColor','red','MarkerEdgeColor', 'red','Marker','o',...
'LineStyle','none','MarkerSize',6);
2

hold on
plot3(Y1(1,:),Y1(2,:),Y1(3,:),...
'MarkerFaceColor','blue','MarkerEdgeColor', 'blue','Marker','d',...
'LineStyle','none','MarkerSize',6);
hold off
Y a-t-il une bonne sparation entre les deux nuages des points (le nuage rouge et le
nuage bleu) ?
5. Effectuer une ACP sur les donnes painting64.dat et rpondre la dernire question
ci-dessus. Commenter le rsultat.

3. Analyse discriminante linaire


Le but de cette partie est dimplmenter et de tester lADL sur les donnes painting64.dat.
1. crire une fonction nomme ADL_TP4 qui
prend comme argument deux matrices X et Y,
calcule la matrice de covariance empirique :
C=X*X'+Y*Y';
C=C/(size(X,2)+size(Y,2));
calcule les moyennes barX et barY,
rend le vecteur w=inv(C)*(barX-barY); et la valeur relle :
t=(barX-barY)'*inv(C)*(barX+barY)/2;.
La rgle de classification fournie par lADL est alors de la forme suivante : pour une
nouvelle peinture caractrise par le vecteur z, on lattribue Rembrandt si et seulement si
w> z > t.
2. Effectuer une ADL sur les donnes painting64 projetes sur le premier plan factoriel
(celui engendr par les 2 premiers axes principaux).
3. Afficher dans le mme repre orthonormal les projections des peintures et la droite de
sparation fournie par lADL.
4. Faites la mme chose en dimension 3.

Le compte-rendu est envoyer sous format pdf dalalyan@certis.enpc.fr dans un dlai dune semaine.

F IGURE 1 Les uvres de Van Gogh et de Rembrandt utilises dans ce TP.