100 lines
4.3 KiB
Markdown
100 lines
4.3 KiB
Markdown
|
# Rapport du TP4 de Traitement des données audio-visuelles
|
||
|
|
||
|
Notre objectif dans de TP est de procéder à la segmentation d'une image par classification.
|
||
|
|
||
|
Notre image fil rouge sera celle-ci:
|
||
|
|
||
|
![](image_BW.png)
|
||
|
|
||
|
Cette image comporte 4 classes simples qu'il nous faudra retrouver.
|
||
|
|
||
|
## Approche supervisée
|
||
|
|
||
|
Si l'on dispose d'un expert il est simple de lui demander d'échantilloner manuellement l'image pour que l'on puisse ainsi procéder derrière à une classification et à un segmentation.
|
||
|
|
||
|
![](expert_BW.png)
|
||
|
|
||
|
Une première méthode naïve serait de procéder par maximimsation de la vraisemblance, mais cette méthode, en plus d'être stochastique, ne fournis pas des résultats très satisfaisants (~95%).
|
||
|
|
||
|
![](vraisemblance_BW.png)
|
||
|
|
||
|
Une amélioration consiste alors à utiliser le résultat précédent comme base à un recuit simulé.
|
||
|
|
||
|
![](recuit_BW.gif)
|
||
|
|
||
|
On remarque que cette approche améliore grandement notre estimation, il est possible d'obtenir de très bons résultats (>99.9%) s'il l'on tweak bien les paramètres de notre algorithme.
|
||
|
|
||
|
## Approche non supervisé
|
||
|
|
||
|
Si on a pas d'expert, où si on veut faire des économies, on peut essayer d'inférer le nombre de classes de notre image à partir de son histogramme.
|
||
|
|
||
|
![](vraisemblance_BW.png)
|
||
|
|
||
|
En effet, on remarque facilement sur l'histogramme de notre image 4 pics (4 gaussiennes) qui correspondent à nos 4 classes.
|
||
|
|
||
|
Pour déterminer les paramètres de ces gaussiennes on procède par estimation à posteriori (on tire des combinaisons au hasard et on prend la meilleure).
|
||
|
|
||
|
<!-- estimation histogramme par MAP -->
|
||
|
|
||
|
On obtient un histogramme satisfaisant, qui implique une bonne segmentation de notre image, mais comme precedemment, on peut soumettre ce résultat au recuit simulé pour améliorer notre segmentation.
|
||
|
|
||
|
<!-- recuit simulé -->
|
||
|
|
||
|
c'est mieu ptdr
|
||
|
|
||
|
## Avec de la couleur c'est mieux
|
||
|
|
||
|
Si l'on souhaite classifier une image en couleur et non en dégradé de gris, on applique la même logique que précédemment mais en dimension plus élevé (ici en dimension 3, puisque notre image coloré contient 3 canaux de couleur, le rouge, le vert et le bleu).
|
||
|
|
||
|
![](cellule.png)
|
||
|
|
||
|
![](expert_color.png)
|
||
|
|
||
|
![](vraisemblance_color.png)
|
||
|
|
||
|
![](recuit_color.gif)
|
||
|
|
||
|
## Influence des paramètres sur nos résultats
|
||
|
|
||
|
### expert bourré
|
||
|
|
||
|
Si notre expert n'est pas très bon dans son travail, s'il est bourré ou juste nul, il se peut que son échantillonage des classe soit mauvais.
|
||
|
|
||
|
![](expert_nul.png)
|
||
|
|
||
|
Dans ce cas comme on peut s'en douter notre vraisemblance est horrible:
|
||
|
|
||
|
![](vraisemblance_nul.png)
|
||
|
|
||
|
Le recuit simulé permet d'améliorer tout de même ce mauvais échantillonage, mais cette segmentation reste mauvaise.
|
||
|
|
||
|
![](recuit_nul.gif)
|
||
|
|
||
|
### Beta recuit simulé
|
||
|
|
||
|
Dans notre algorithme du recuit simulé, nous utilisé un paramètre beta représentant l'importance de notre régularisation lors d'une itération, c'est à dire JSP frère regarde le cours.
|
||
|
|
||
|
Ainsi pour différentes valeurs de beta:
|
||
|
|
||
|
| 0.2 | 1 | 2 | 20 |
|
||
|
| :-------------------: | :------------------: | :------------------: | :-------------------: |
|
||
|
| recuit_BW_beta_.2.gif | recuit_BW_beta_1.gif | recuit_BW_beta_2.gif | recuit_BW_beta_20.gif |
|
||
|
|
||
|
### alpha recuit simulé
|
||
|
|
||
|
Dans le recuit simulé alpha traduit quand à lui l'allure à laquelle la temperature décroit :
|
||
|
|
||
|
| 0.2 | 0.5 | 0.9 | 1.1 |
|
||
|
| :--------------------: | :--------------------: | :--------------------: | :---------------------: |
|
||
|
| recuit_BW_alpha_.2.gif | recuit_BW_alpha_.5.gif | recuit_BW_alpha_.9.gif | recuit_BW_alpha_1.1.gif |
|
||
|
|
||
|
|
||
|
### N non supervisé
|
||
|
|
||
|
Lors d'une approche non supervisé il nous faut tout de même annoncer le nombre de classes de l'image, cette méthode fonctionne plutôt bien, mais des résultats intéressants apparaissent si l'on se trompe.
|
||
|
|
||
|
| 2 | 4 | 6 | 10 |
|
||
|
| :--------------: | :--------------: | :--------------: | :---------------: |
|
||
|
| recuit_BW_2N.gif | recuit_BW_4N.gif | recuit_BW_6N.gif | recuit_BW_10N.gif |
|
||
|
|
||
|
On observe que plus l'on augmente le nombre de classes (dans notre cas), plus l'histogramme trouvé par MAP est accurate, mais plus notre segmentation sera bruitéé, bien que celle-ci semble converger lentement vers 4 classes, bien que nous en ayons spécifié plus.
|