TP - Apprentissage bayésien et modèle de mélange gaussien

Stéphane Derrode, École Centrale de Lyon

L’objectif de ce TP est de programmer certains des algorithmes vus en cours sur le modèle de mélange gaussien (Gaussian Mixture Model, _aka GMM_). Il s’agit d’appliquer la décision bayésienne, après avoir appris automatiquement les paramètres du modèle GMM grâce à l’algorithme EM (Expectation-Maximization), pour un problème de segmentation d’images.

Téléchargez et décompressez le fichier zip disponible en suivant ce lien. Vous disposez ainsi de 2 fichiers Python et 2 répertoires, formant le squelette du programme :

  • Le répertoire sources contient des images N&B pour les tests (lapin et cible).
  • Le répertoire results est vide ; il sera rempli par les résultats générés par vos algorithmes.
  • Le programme principal du TP : LabSession_MM_EM.py.
  • Le fichier func.py contient les fonctions auxquelles le programme principal fera appel. Certaines fonctions sont vides : à vous de les programmer selon les indications données ci-dessous.

To Do

  • Recopiez une image bruitée du premier TP (régénérez-la si nécessaire) dans le répertoire results.

Segmentation de l’image bruitée

Analysez le squelette de programme du fichier LabSession_MM_EM.py. Celui-ci fait appel à des fonctions qui sont toutes décrites dans le fichier func.py. Dans ce dernier fichier, trois fonctions sont vides : à vous de les compléter en suivant les indications ci-dessous !

To Do :

  • Examinez la structure du programme en 5 phases :

    1. La lecture des images.
    2. L’initialisation des paramètres du mélange.
    3. L’estimation des paramètres du mélange par l’algorithme EM.
    4. La classification de l’image selon la décision bayésienne.
    5. Le dessin des courbes.

À chaque itération, nous prenons soin de sauvegarder les paramètres, ainsi que l’erreur de classification, pour dessiner leur évolution lors de la dernière phase.

  • Complétez la fonction d’initialisation des paramètres avec un algorithme à définir.
  • Complétez la fonction qui itère EM avec les formules de re-estimation vues en cours.
  • Ajoutez une fonction de calcul de la vraisemblance et de la fonction auxiliaire Q, à toutes les itérations de EM.

Truc :

  • Réduisez à 3 ou 4 le nombre d’itérations de EM, le temps de réaliser vos tests lors de la phase de développement des algorithmes. Notez qu’il faut environ 20-50 itérations pour obtenir une bonne estimation des paramètres du mélange prévu dans le programme de bruitage de l’image.

Application à la segmentation d’une image naturelle

Nous allons chercher à segmenter une image à niveaux de gris naturelle trouvée sur Internet. Il ne sera plus possible de calculer de taux d’erreur, nous nous contenterons d’une analyse visuelle des résultats.

To Do :

  • Cherchez, sur Internet, une image à niveau de gris et de petite taille pour mettre en valeur la segmentation sur laquelle vous allez appliquer les programmes précédents. Vous pouvez toujours choisir une image quelconque et la convertir en utilisant un logiciel de retouche d’image tel que GIMP.

  • Modifiez le programme de segmentation pour qu’il traite votre image.

  • Analyser les courbes de convergence obtenues.