132 views
--- title: INFO911 (5h) Seuillage, classification type: slide slideOptions: transition: slide progress: true slideNumber: true --- # Seuillage, classification ## (Traitement et Analyse d'Image 5h) > > [name=Jacques-Olivier Lachaud][time=Decembre 2020][color=#907bf7] Laboratoire de Mathématiques, Université Savoie Mont Blanc > (Les images peuvent être soumises à des droits d'auteur. Elles sont utilisées ici exclusivement dans un but pédagogique) ###### tags: `info911` Retour à [INFO911 (Main) Traitement et analyse d'image](https://codimd.math.cnrs.fr/s/UE_B59gMy) --- # Seuillage Procédé de découper les niveaux de gris en 2 intervalles $[0,s[,[s,256[$. Basé sur l'analyse de l'==histogramme== de l'image ![seuillage-hist](https://codimd.math.cnrs.fr/uploads/upload_ba672c3aea356421fcb9658224f20200.png =x160) Généré par deux distributions gaussiennes, moyenne $x_i$, variance $\sigma_i$ :::warning Difficile lorsque les moyennes $x_1$ et $x_2$ se rapprochent ::: --- ## Seuillage: méthode d'Otsu Minimiser la variance de chaque classe, si $s$ est le seuil: $W(s)=\sigma_{<s}^2 + \sigma_{\ge s}^2$ doit être petit. On montre que c'est équivalent à maximiser $\mathrm{Card}(< s)\mathrm{Card}(\ge s)(\mu_{<s} - \mu_{\ge s})^2=H_I[s](1.0-H_I[s])(\mu_{<s} - \mu_{\ge s})^2$ où $\mu_{x}$ est la moyenne des niveaux de gris des pixels $x$. | | | | ---------------------- | -------------------------------------------------------------------------------------------------------- | | `video-seuillage-otsu` | ![seuillage-otsu](https://codimd.math.cnrs.fr/uploads/upload_b68f0a98501f4bec9449d31de7be73df.png =x120) | --- # Classification Soit $(x_i)$ des données sous forme de vecteurs de caractéristiques dans $\mathbb{R}^c$ ==classification== placer ces données dans $K$ classes distinctes Idéalement les données se ressemblent dans une classe, et sont différents entre classes. Soit $d$ une distance, i.e. $d(x_i,x_j)$ est un scalaire positif ou nul. Idéalement, faible distance intra-classes, forte distance inter-classes --- ## Algorithme des K-moyennes Algorithme glouton classique pour découper $(x_i)$ en $K$ classes avec distance $d$ 1. Tirer aléatoirement $K$ représentants initiaux $(c_j)_{j=1\ldots K}$ parmi $(x_i)$ 2. L'ensemble $C_j$ contient alors tous les $x_i$ plus proches de $c_j$ que de $c_{k}$, $k \neq j$ 3. Le nouveau représentant $c_j$ est l'élement de $C_j$ le plus proche du centroïde $\mu(C_j)$ 4. On revient en 2 jusqu'à convergence --- ## Utilisation des K-moyennes sur histogramme | 1. initialisation | 2. classes $S_j$ | 3. nouveau représentant | | -------- | -------- | -------- | | ![kmeans-1](https://codimd.math.cnrs.fr/uploads/upload_22374b7587eeee1b7973e3557d776b1f.png =x180) | ![kmeans-2a](https://codimd.math.cnrs.fr/uploads/upload_5fd9b370b3b2cf28fe3a5d0ac2df3d02.png =x180) | ![kmeans-3a](https://codimd.math.cnrs.fr/uploads/upload_0b2f2d780d519c9ae577a194369feb24.png =x180) | --- ## Utilisation des K-moyennes sur histogramme (2) | 2. classes $S_j$ | 3. nouveau représentant | 4. convergence | | -------- | -------- | -------- | | ![kmeans-2b](https://codimd.math.cnrs.fr/uploads/upload_49125baac90df9fbf796c552bfd0599a.png =x180) | ![kmeans-3b](https://codimd.math.cnrs.fr/uploads/upload_3155531c4484a58e3c62bab776f53f27.png =x180) | ![kmeans-4](https://codimd.math.cnrs.fr/uploads/upload_d419f2cb29b46bc7f21ab59348bd6a4e.png =x180) | --- ## Exemple de seuillage en 2 classes sur image ![kmeans-tools](https://codimd.math.cnrs.fr/uploads/upload_8e44442f64d49293965a586908400995.png =x250) --- ## Utilisation de k-means en quantification | input | 256 couleurs | |:------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------:| | ![baikal-input](https://codimd.math.cnrs.fr/uploads/upload_e00fcc597a10f28bf550163d7b8c41ef.png =300x) | ![baikal-kmeans-256](https://codimd.math.cnrs.fr/uploads/upload_a7cc79a68e33a2667848d6c922c4f1d9.png =300x) | | **32 couleurs** | **8 couleurs** | | ![baikal-32](https://codimd.math.cnrs.fr/uploads/upload_d2917b5653b8b53207546053ae99176c.png =300x) | ![baikal-8](https://codimd.math.cnrs.fr/uploads/upload_9fe0d602ac41d13a4b66bcd5a5c211c5.png =300x) | --- ## Utilisation de k-means en segmentation Chaque pixel $p_i$ classé coord. + couleurs: $x_i=(X_i, Y_i, R_i, G_i, B_i)$, distance coefficientée $d^2(x_i,x_j):=w((X_i-X_j)^2+(Y_i-Y_j)^2)+(R_i-R_j)^2+(G_i-G_j)^2+(B_i-B_j)^2$ | Input | $K=16,w=0.5$ | $K=16,w=1$ | |:----------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------:| | ![cook-input](https://codimd.math.cnrs.fr/uploads/upload_5aad6c7e3105fed14084b08089167e2f.png =x110) | ![cook-skmeans-16-0_5](https://codimd.math.cnrs.fr/uploads/upload_56752df983a05259ef3ebfcbf68d84ef.png =x110) | ![cook-skmeans-16_1](https://codimd.math.cnrs.fr/uploads/upload_84f7208b8e0a3de0ea9af3d01badcd66.png =x110) | `clustering` `spatial_clustering`