Exercice 1: Statistique et Traitement d’Image

Nous rapellons qu’une image en niveaux de gris est représentée par une matrice contenant des valeurs entre 0 et 1 (noir et blanc respectivement). Chargez l’environnement de travail TI.RData qui contient les données suivantes:

  1. Affichez l’image I, indiquez ses dimensions. Afficher ensuite l’image I2 et commentez.

  2. Démontrez que si le noyau K est une densité alors l’estimateur à noyau de la densité est une densité.

Définissez les vecteurs de niveaux de gris correspondant aux images en tapant les commandes suivantes:

NG=as.vector(I)
NG2=as.vector(I2)
m=as.vector(M)
  1. Tracez dans une même fenêtre graphique la densité des niveaux de gris de l’image I estimée à l’aide d’un estimateur à noyau utilisant le noyau d’Epanichnikov pour les valeurs 0.002, 0.02 et 0.2 du paramètre de lissage et pour la valeur du paramètre de lissage donnée par le critère de validation croisée (dont vous indiquerez la valeur). Commentez les résultats obtenus. On utilisera par la suite la valeur du paramètre de lissage donnée par le critère de validation croisée.

  2. Identifiez les 4 différents modes locaux entre 0 et 0.3, 0.3 et 0.6, 0.6 et 0.8, et enfin 0.8 et 1.

  3. En modifiant la fonction density.mode vue en cours obtenez les valeurs v1, v2 et v3 des niveaux de gris pour lesquels la densité estimée est minimale entre les modes. Affichez l’image Ic correspondant aux clusters ainsi obtenus.

# to get the clusters from v1, v2, and v3
Ic=matrix(0,150,180)
Ic[I>v1]=1/3
Ic[I>v2]=2/3
Ic[I>v3]=1

Tapez enfin les commandes suivantes:

# define pixels coordinates
x=rep(1:180,rep(150,180))
y=rep(1:150,180)
# define the learning sample (correct pixels)
NG_learn=NG1[m==1]
x_learn=x[m==1]
y_learn=y[m==1]
# define the testing sample (incorrect pixels)
NG_test=NG[m==0]
x_test=x[m==0]
y_test=y[m==0]
  1. Nous souhaitons maintenant restaurer l’image I2 à l’aide d’une régression non-paramétrique du niveau de gris sur les varibales explicatives x et y(coordonnées des pixels) construite à partir de l’échantillon de pixels corrects (ci-dessus nommé échantillon d’apprentissage) pour estimer les valeurs de niveau de gris (ci-dessus nommé échantillon de test). On utilisera la fonction sm.regression avec les options structure.2d=‘common’, nbins=0, eval.grid=F et h=c(1,1). Enregistrez le résultat renvoyé par la fonction dans une variable res, puis restaurez l’image avec les commandes suivantes:
NG_est=NG2
NG_est[m==0]=res$estimate
IR=matrix(NG_est,150,180)
Show_Image(IR)
  1. Comparer IR avec I et I2 (visuellement et au travers de la norme de Frobenius de la difference). Commenter. indication : norm(C,'F') calcule la norme de Frobenius de C.

Exercice 2 : Tir à l’arc

Un tournoi de tir à l’arc est organisé entre trois grands experts. Les concurrents décochent en même temps leur ultimes flèches ce qui fait qu’on ne peut savoir à qui ces flèches correspondent. Sur la cible les 4 flèches arrivent aux positions (1.4,1.3),(1.4,-1.2),(-2,0) et (-0.1,0.2). Comment pourriez-vous identifier les archers qui les ont décochées?

Commencez par charger l’espace de travail Archery.RData.

Il contient 3 variables :
- Archer : nom du tireur
- X : distance au centre de la cible
- pos : position (en 2 dimensions) de la fleche sur la cible

Partie 1: A partir de la distance au centre de la cible

  1. Décrivez la nature des données, la taille de l’échantillon et le type de problème considéré.

  2. Donnez la définition du classifieur de Bayes. Peut-on l’utiliser directement ici ? Expliquez comment estimer les probabilités conditionnelles \(\pi_y(x)\) et ainsi proposer une estimation non paramétrique du classifieur de Bayes.

  3. Montrer, à partir de leur définition, que pour tout x, la somme des probabilités conditionnelles \(\hat\pi_y(x)\) vaut 1.

  4. Utilisez la fonction Classif_NP vue en cours pour mettre en pratique la méthode expliquée à la question 2 à partir des variables X et Archer. Commenter le résultat obtenu.

  5. Tracer les densités de la variable X pour les différents archers sur un même graphique. Que constatez-vous?

  6. Calculer les distances au centre de la cible correspondant aux 4 dernières flèches. Pouvez-vous correctement identifier les archers qui les ont décochées? Expliquez pourquoi?

Partie 2: A partir de la position (en 2 dimensions) de la fleche sur la cible

  1. Estimez la densité de la variable position (faites attention au choix du paramètre de lissage). Que constatez-vous? A quoi peuvent correspondre les clusters ainsi mis en évidence?

  2. Comparez les positions des flèches pour les différents archers sur un même graphique. Que constatez-vous? En quoi est-ce prometteur?

  3. Utilisez la fonction Classif_NP vue en cours pour mettre en pratique la méthode expliquée à la question 2 à partir des variables position et Archer. Commenter le résultat obtenu.

  4. A l’aide de ce que vous avez fait précédemment, pour chacune des 4 dernières flèches, pouvez-vous correctement identifier l’archer qui l’a décochée? Expliquez pourquoi?