Modèles Mathématiques pour l'Image Méthodes de Classification (I)
Transcript of Modèles Mathématiques pour l'Image Méthodes de Classification (I)
Modèles Mathématiques pour l'ImageMéthodes de Classication (I)
Julie Digne
LIRIS - Équipe GeoMod - CNRS
5 Septembre 2017
1/77
Organisation du cours
Les slides du cours sont toujours disponibles à partir du jour du cours surmon site web:http://liris.cnrs.fr/julie.digne/cours_image_stats.html
10h de cours et 10h de TP du 5 Septembre au 4 Octobre puis cours deModèles Fréquentiels avec Florent Dupont
2 groupes de TP: Attention à bien lire l'emploi du temps
2/77
Organisation du cours
Les slides du cours sont toujours disponibles à partir du jour du cours surmon site web:http://liris.cnrs.fr/julie.digne/cours_image_stats.html
10h de cours et 10h de TP du 5 Septembre au 4 Octobre puis cours deModèles Fréquentiels avec Florent Dupont
2 groupes de TP: Attention à bien lire l'emploi du temps
2/77
Organisation du cours
Les slides du cours sont toujours disponibles à partir du jour du cours surmon site web:http://liris.cnrs.fr/julie.digne/cours_image_stats.html
10h de cours et 10h de TP du 5 Septembre au 4 Octobre puis cours deModèles Fréquentiels avec Florent Dupont
2 groupes de TP: Attention à bien lire l'emploi du temps
2/77
Organisation du cours
Mardi 05/09 13h30 - 15h30 cours - 15h30-17h30 TP A
Mercredi 06/09 13h30 - 15h30 cours - 15h30-17h30 TP B
Mardi 12/09 13h30-15h00 TP A; 15h00 - 16h30 cours; 16h30-18h00 TP B
Mercredi 13/09 13h30-15h00 TP B; 15h00-16h30 cours; 16h30-18h00 TP A
Mardi 19/09 13h30-15h00 TP A; 15h00 - 16h30 cours; 16h30-18h00 TP B
Mercredi 20/09 13h30-15h00 TP B; 15h00-16h30 cours; 16h30-18h00 TP A
Mercredi 04/10 13h30-15h30 TP A - 15h30-17h30 TP B -> probablementremplacé par une séance d'évaluation des TPs.
3/77
Plan du cours
Cours 1 (2h): 05/09 Méthode de classications (I)
Cours 2 (2h): 06/09 Méthodes de classication (II) et Réduction dedimension
Cours 3 (1h30): 12/10 Choix de Modèles - Régression - Normes
Cours 4 (1h30): 13/10 Histogramme et Spécication d'Histogramme
Cours 5 (1h30): 19/11 Descripteurs et Comparaison de formes, statistiquesinvariantes
Cours 6 (1h30): 20/11 Traitement d'images par patch et applications
4/77
Modalités d'évaluation
Rendu des TPs attendu pour la n du cours début Octobre (40% de la note)
Un examen n Décembre (60% de la note)
5/77
Compte-rendus des TPs
Rendre le code matlab/octave commenté, exécutable directement dansmatlab/octave, permettant de reproduire les expériences de chacune desquestions.
Il est attendu que vous sachiez interpréter les résultats: vos explications etcommentaires sur chaque question seront donnés dans un rapport pdf à part.
L'attitude en TP est prise en compte dans la note.
6/77
Formation des Images Numériques
Projection d'une scène 3D dans le plan image
Informatiquement: tableaux de nombres
Noir et blanc: I : Ω ⊂ R2 → R; I (x , y) = i
Couleur: I : Ω ⊂ R2 → R3; I (x , y) = (r , g , b)
Introduction - Présentation du cours 10/77
Formation des Images Numériques (suite)
Matrice CCD (Charged Coupled Device): intègre la quantité de photonarrivant en chaque pixel
Chaque pixel de la matrice CCD intègre une couleur
Pattern de Bayer - démosaiquage
Introduction - Présentation du cours 11/77
Pourquoi des mathématiques de l'image?
Voir une image comme une distribution de couleurs
Détecter des objets par régression de modèle (moindres carrés...)
Classier des objets par ressemblance
Comparer des textures, des couleurs
Modéliser le processus d'acquisition de la caméra pour la stéréoscopie...
Introduction - Présentation du cours 12/77
Plan
1 Quelques généralités sur les images
2 Brève introduction aux ltres locaux
3 Qu'est ce que la classication?
4 Les K-moyennes (K-means)
5 L'algorithme Mean-shift
Quelques généralités sur les images 13/77
Qu'est-ce qu'une image numérique en niveaux de gris ?
Chaque pixel indique une intensité lumineuse.
Dans une image simple (à 8 bits) un pixel peut prendre 256 valeurs entières entre0 et 255.
On utilise 0 pour le noir, 128 pour le gris moyen et 255 pour le blanc.
Quelques généralités sur les images 14/77
Qu'est-ce qu'une image numérique couleur ?Un tableau dont les pixels sont des triplets de nombres (R,V ,B)correspondant à la décomposition dans les trois couleurs primaires rouge,verte et bleue auxquelles notre ÷il est très sensible.(0, 0, 255) représente du bleu, (0, 255, 0) du vert, (255, 0, 0) du rouge.
Une image couleur
Quelques généralités sur les images 15/77
Qu'est-ce qu'une image numérique couleur ?Un tableau dont les pixels sont des triplets de nombres (R,V ,B)correspondant à la décomposition dans les trois couleurs primaires rouge,verte et bleue auxquelles notre ÷il est très sensible.(0, 0, 255) représente du bleu, (0, 255, 0) du vert, (255, 0, 0) du rouge.
Sa composante rouge
Quelques généralités sur les images 15/77
Qu'est-ce qu'une image numérique couleur ?Un tableau dont les pixels sont des triplets de nombres (R,V ,B)correspondant à la décomposition dans les trois couleurs primaires rouge,verte et bleue auxquelles notre ÷il est très sensible.(0, 0, 255) représente du bleu, (0, 255, 0) du vert, (255, 0, 0) du rouge.
Sa composante verte.
Quelques généralités sur les images 15/77
Qu'est-ce qu'une image numérique couleur ?Un tableau dont les pixels sont des triplets de nombres (R,V ,B)correspondant à la décomposition dans les trois couleurs primaires rouge,verte et bleue auxquelles notre ÷il est très sensible.(0, 0, 255) représente du bleu, (0, 255, 0) du vert, (255, 0, 0) du rouge.
Sa composante bleueLes trois composantes sont très corrélées.
Quelques généralités sur les images 15/77
De la couleur aux niveaux de gris
Un moyen très simple pour passer d'une image couleur (R,V,B) à une image enniveaux de gris consiste à calculer la luminance
L =R + V + B
3
Quelques généralités sur les images 16/77
De la couleur aux niveaux de gris
Un moyen très simple pour passer d'une image couleur (R,V,B) à une image enniveaux de gris consiste à calculer la luminance
L =R + V + B
3
Quelques généralités sur les images 16/77
Autres représentations couleurs
Un exemple: HSV
La teinte H (hue) qui indique la teinte de la couleur (rouge, jaune, vert)
La luminance V (lightness value) qui indique la sensation visuelle deluminosité d'un point
La saturation S qui indique le degré de "pureté" de la couleur
Quelques généralités sur les images 17/77
Autres représentations couleurs
Un exemple: HSV
La teinte H (hue) qui indique la teinte de la couleur (rouge, jaune, vert)
La luminance V (lightness value) qui indique la sensation visuelle deluminosité d'un point
La saturation S qui indique le degré de "pureté" de la couleur
Quelques généralités sur les images 17/77
Autres représentations couleurs
Un exemple: HSV
La teinte H (hue) qui indique la teinte de la couleur (rouge, jaune, vert)
La luminance V (lightness value) qui indique la sensation visuelle deluminosité d'un point
La saturation S qui indique le degré de "pureté" de la couleur
Quelques généralités sur les images 17/77
Autres représentations couleurs
Un exemple: HSV
La teinte H (hue) qui indique la teinte de la couleur (rouge, jaune, vert)
La luminance V (lightness value) qui indique la sensation visuelle deluminosité d'un point
La saturation S qui indique le degré de "pureté" de la couleur
Quelques généralités sur les images 17/77
Plan
1 Quelques généralités sur les images
2 Brève introduction aux ltres locaux
3 Qu'est ce que la classication?
4 Les K-moyennes (K-means)
5 L'algorithme Mean-shift
Brève introduction aux ltres locaux 18/77
Le débruitage
But: enlever ce bruit tout en préservant l'information de l'image
Brève introduction aux ltres locaux 19/77
Une première idée: exploiter les valeurs des voisinages
Remplacer un pixel par une certaine fonction des valeurs des pixels voisins
Brève introduction aux ltres locaux 20/77
Filtre Moyenneur, σ = 2
Chaque pixel est remplacé par la valeur moyenne de ses voisins
Brève introduction aux ltres locaux 23/77
Au lieu de prendre la moyenne (pondérée) prenons lamédiane
Chaque pixel est remplacé par la valeur médiane de ses voisins
Brève introduction aux ltres locaux 24/77
Un peu de formalisme
L'objet mathématique continu d'une image est une fonction I de Ω ⊂ R2 àvaleurs dans [0, 255]
Un noyau de convolution k déni dans R2 est une fonction à valeurspositives, d'intégrale égale à 1:
∀(x , y) ∈ R2k(x , y) ≥ 0∫R2
k(x , y)dxdy = 1
Dans le domaine discret un noyau de convolution est une matrice de
nombres. Par exemple 110
1 1 11 1 21 0 2
Brève introduction aux ltres locaux 29/77
Convolution dans R2
Convolution
La convolution d'une image I par un noyau k est une nouvelle image I ′ telle que:
∀(x , y) ∈ Ω, I ′(x , y) =
∫R2
I(x − t, y − s)k(t, s)dtds
Brève introduction aux ltres locaux 30/77
Convolution discrète
Convolution
La convolution d'une image I discrète par un noyau G est une nouvelle image I ′
telle que:∀(x , y) ∈ Ω, I (x , y) =
∑i
∑j
I (x − i , y − j) · G (i , j)
Souvent, pour simplier on pose G (i , j) = G (−i ,−j) et on dénit.
∀(x , y) ∈ Ω, I (x , y) =∑i
∑j
I (x + i , y + j)G (i , j)
Brève introduction aux ltres locaux 31/77
Quelques Exemples
0 0 00 1 00 0 0
1
25
1 1 1 1 11 1 1 1 11 1 1 1 1
1
9
−1 0 1−2 0 2−1 0 1
1
9
−1 −2 −10 0 01 2 1
Brève introduction aux ltres locaux 32/77
Plan
1 Quelques généralités sur les images
2 Brève introduction aux ltres locaux
3 Qu'est ce que la classication?
4 Les K-moyennes (K-means)
5 L'algorithme Mean-shift
Qu'est ce que la classication? 33/77
Des objets à classier
pixels
groupes de pixels (patches - petites imagettes)
images entières
Qu'est ce que la classication? 34/77
Principe de la classication
Il faut décrire ce qu'on veut classier
Les éléments (pixels, imagettes...) vont être classiés selon ces descriptions
Description naturelle des pixels: couleur (R,G ,B) ∈ R3.
Mais on peut faire plus spécique!
Qu'est ce que la classication? 35/77
Ajout d'information aux pixels
Un gradient
Un vecteur de couleurs des points voisins
Des statistiques sur le voisinage...
Et nalement...
On se retrouve avec des descriptions qui sont des vecteurs de Rd où d est lenombre d'éléments de la description. Ce sont ces objets que nous allons classier.
Ces descripteurs sont vus comme des points de Rd .
Qu'est ce que la classication? 37/77
Exemples de Descripteur: histogrammes locaux
Histogramme des orientations des gradients
Qu'est ce que la classication? 38/77
Exemples de Descripteur: la réponse de l'image à un bancde ltres
Particulièrement adapté aux descriptions de texture (textons)
Chaque point est l'ensemble des réponses d'un certain pixel de l'image à unensemble de ltres.
De nombreux ltres diérents ont été proposés.
Qu'est ce que la classication? 39/77
Pour les textures: les ltres de Gabor
Filtre de Gabor
Mesure la réponse fréquentielle à un ltre orienté et localisé. La réponseimpulsionnelle centrée en (0, 0) s'écrit:
Gθ,σ,λ = exp−x ′2 + y ′2
2σ2cos 2πλ
x ′
σ
avec x ′ = x cos θ + y sin θ, y ′ = x sin θ − y cos θ
θ contrôle l'orientation du ltre
σ contrôle la localisation (l'échelle) du ltre
λ contrôle la fréquence du ltre
Qu'est ce que la classication? 40/77
Pour les textures: les ltres de Gabor
Filtre de Gabor
Mesure la réponse fréquentielle à un ltre orienté et localisé. La réponseimpulsionnelle centrée en (0, 0) s'écrit:
Gθ,σ,λ = exp−x ′2 + y ′2
2σ2cos 2πλ
x ′
σ
avec x ′ = x cos θ + y sin θ, y ′ = x sin θ − y cos θ
θ contrôle l'orientation du ltre
σ contrôle la localisation (l'échelle) du ltre
λ contrôle la fréquence du ltre
Qu'est ce que la classication? 40/77
Pour les textures: les ltres de Gabor
Filtre de Gabor
Mesure la réponse fréquentielle à un ltre orienté et localisé. La réponseimpulsionnelle centrée en (0, 0) s'écrit:
Gθ,σ,λ = exp−x ′2 + y ′2
2σ2cos 2πλ
x ′
σ
avec x ′ = x cos θ + y sin θ, y ′ = x sin θ − y cos θ
θ contrôle l'orientation du ltre
σ contrôle la localisation (l'échelle) du ltre
λ contrôle la fréquence du ltre
Qu'est ce que la classication? 40/77
Pour les textures: les ltres de Gabor
Filtre de Gabor
Mesure la réponse fréquentielle à un ltre orienté et localisé. La réponseimpulsionnelle centrée en (0, 0) s'écrit:
Gθ,σ,λ = exp−x ′2 + y ′2
2σ2cos 2πλ
x ′
σ
avec x ′ = x cos θ + y sin θ, y ′ = x sin θ − y cos θ
θ contrôle l'orientation du ltre
σ contrôle la localisation (l'échelle) du ltre
λ contrôle la fréquence du ltre
Qu'est ce que la classication? 40/77
Passage du domaine image à Rd
Données à classier
Chaque pixel est représenté sous forme d'un vecteur dans Rd et c'est dans cetespace que l'on classie.
Exemples: un pixel (i , j) d'une image I peut être représenté par:
(i , j , r , g , b) dans R5 (image couleur
(∇x I (i , j),∇y I (i , j)) dans R2 (I image noir et blanc)
(I (i − 1, j − 1), I (i , j − 1), I (i + 1, j − 1), I (i − 1, j), I (i , j), I (i + 1, j), I (i −1, j + 1), I (i , j + 1), I (i + 1, j + 1)) dans R9 (image noir et blanc)
Qu'est ce que la classication? 43/77
Plan
1 Quelques généralités sur les images
2 Brève introduction aux ltres locaux
3 Qu'est ce que la classication?
4 Les K-moyennes (K-means)
5 L'algorithme Mean-shift
Les K-moyennes (K-means) 50/77
Les K-Moyennes
But: Extraire des classes (ou clusters) d'un ensemble de points.
Dans cet algorithme, une classe est représentée par un élément spécial appeléreprésentant de la classe.
Les K-moyennes (K-means) 51/77
Les K-Moyennes
Principe
Soit (xi )i=1···n ∈ Rd un ensemble de n points. Soit K le nombre de classessouhaitées et (yk)k=1···K les représentants de ces classes, alors la classe(l'assignement) k0 d'un élément xi est déterminée par:
k0 = argmink∈1···K‖yk − xi‖2
But: trouver les représentants yk des classes et l'assignement des points xiLien avec le diagramme de Voronoi.
Les K-moyennes (K-means) 52/77
Algorithme
Si l'on connait les représentants des classes, peut-on calculer l'assignement?
Si l'on connait l'assignment, peut-on calculer les représentants des classes?
Les K-moyennes (K-means) 53/77
Algorithme
Si l'on connait les représentants des classes, peut-on calculer l'assignement?
Si l'on connait l'assignment, peut-on calculer les représentants des classes?
Les K-moyennes (K-means) 53/77
Algorithme
Algorithm 1: Algorithme K-Means
Data: (xi )i=1···n ∈ Rd , a number of classes KResult: An assignment for (li )i=1···n ∈ 1 · · ·K and representatives (yk)i=1···K
1 Start with random yk drawn from xi ;2 do
3 Assign to each xi the label corresponding to its nearest yk ;4 For each k , update yk as the barycenter of the xi with label k ;5 Until Convergence;
Les K-moyennes (K-means) 54/77
Qu'est-ce que la convergence de l'algorithme?
Il faut mesurer le moment où l'algorithme ne bouge plus
Evolution de la moyenne des mouvements des représentants inférieure à uncertain seuil.
Aucun assignement n'est changé (→ le représentant ne bougera pas à l'étapesuivante)
Les K-moyennes (K-means) 55/77
Qu'est-ce que la convergence de l'algorithme?
Il faut mesurer le moment où l'algorithme ne bouge plus
Evolution de la moyenne des mouvements des représentants inférieure à uncertain seuil.
Aucun assignement n'est changé (→ le représentant ne bougera pas à l'étapesuivante)
Les K-moyennes (K-means) 55/77
Qu'est-ce que la convergence de l'algorithme?
Il faut mesurer le moment où l'algorithme ne bouge plus
Evolution de la moyenne des mouvements des représentants inférieure à uncertain seuil.
Aucun assignement n'est changé (→ le représentant ne bougera pas à l'étapesuivante)
Les K-moyennes (K-means) 55/77
Comment initialiser l'algorithme?
Un choix aléatoire parmi les xi?
Un choix aléatoire dans le domaine où vivent les xi?
Les K-moyennes (K-means) 56/77
Lien avec le diagramme de Voronoi
Diagramme de Voronoi
Le diagramme de Voronoi partitionne l'espace en cellule autour de points (graines)donnés tel que tous les points d'une cellule liée à une certaine graine sont plusproches de cette graine que de toutes les autres.
Lien avec le diagramme de Voronoi:
L'étape d'assignement assigne tous les points au centre de la cellule deVoronoi à laquelle ils appartiennent.
Les positions des graines sont ensuite recalculées.
Les K-moyennes (K-means) 57/77
Segmentation d'une image par rapport à sa couleur
Avec des nuages couleur
Original
Les K-moyennes (K-means) 58/77
Segmentation d'une image par rapport à sa couleur
Avec des nuages couleur
2 classes
Les K-moyennes (K-means) 58/77
Segmentation d'une image par rapport à sa couleur
Avec des nuages couleur
3 classes
Les K-moyennes (K-means) 58/77
Segmentation d'une image par rapport à sa couleur
Avec des nuages couleur
4 classes
Les K-moyennes (K-means) 58/77
Segmentation d'une image par rapport à sa couleur
Avec des nuages couleur
5 classes
Les K-moyennes (K-means) 58/77
Segmentation d'une image par rapport à sa couleur
Avec des nuages couleur
10 classes
Les K-moyennes (K-means) 58/77
Sur des textures!
Avec des histogrammes locaux d'orientation de gradient
Les K-moyennes (K-means) 60/77
Sur des textures!
Avec des histogrammes locaux d'orientation de gradient (fenêtre de taille 16)
Les K-moyennes (K-means) 61/77
Sur des textures!
Avec des histogrammes locaux d'orientation de gradient (fenêtre de taille 32)
Les K-moyennes (K-means) 62/77
Finalement:
Il est nécessaire de connaitre le nombre de classes K
Une forte dépendance à l'initialisation
Suppose que les classes sont séparables par un hyperplan (une droite en 2D).
Les K-moyennes (K-means) 65/77
Plan
1 Quelques généralités sur les images
2 Brève introduction aux ltres locaux
3 Qu'est ce que la classication?
4 Les K-moyennes (K-means)
5 L'algorithme Mean-shift
L'algorithme Mean-shift 66/77
Mean-shift
But: On va chercher des zones de forte densité de points
Pour cela on va eectuer un mouvement de particules dans l'espace Rd
Ces particules vont être attirées par les extrema de densité.
L'algorithme Mean-shift 68/77
Mean-shift
Idée: Les classes sont déterminées par les fortes concentrations de points
Les points vont évoluer vers les zones de fortes densité
À convergence on obtiendra une classication
L'algorithme Mean-shift 69/77
Mean-shift
Dénition
Soit (xi )i un ensemble d'observations dans Rd Soit K un noyau, la densité localede points f (x) est estimée par:
f (x) =1
nhd
n∑i=1
K (x − xih
)
L'algorithme Mean-shift 70/77
Un mot sur les noyaux
Un noyau K est une fonction de Rd dans R si et seulement si il existe unefonction k de R+ dans R telle que:
K (x) = k(‖x‖2)
k est positive ou nulle
k est décroissante
k est continue par morceaux et∫R+ k(x)dx <∞
On va supposer que tous les noyaux sont tels que∫x∈Rd k(x)dx = 1, et donc:
K (x) = k(‖x‖2)
Exemples de noyaux:
Noyau gaussien K (x) = 1σ√2π
exp−(‖x‖2
2σ2 )
Noyau plat: K (x) = 1‖x‖2<r2(x)
L'algorithme Mean-shift 71/77
Comment trouver les extrema de densité?
Il faut résoudre ∇f (x) = 0:
Soit la fonction g sur g = −k ′
Gradient de densité
∇f (x) = [2
cnhd+2
n∑i=1
g((‖x − xi‖
h)2)](
∑ni=1 g((‖x−xi‖h )2)xi∑ni=1 g((‖x−xi‖h )2)
− x)
L'expression du gradient s'interprète facilement!
L'algorithme Mean-shift 72/77
Comment trouver les extrema de densité?
Il faut résoudre ∇f (x) = 0:
Soit la fonction g sur g = −k ′
Gradient de densité
∇f (x) = [2
cnhd+2
n∑i=1
g((‖x − xi‖
h)2)](
∑ni=1 g((‖x−xi‖h )2)xi∑ni=1 g((‖x−xi‖h )2)
− x)
Amplitude
L'algorithme Mean-shift 72/77
Comment trouver les extrema de densité?
Il faut résoudre ∇f (x) = 0:
Soit la fonction g sur g = −k ′
Gradient de densité
∇f (x) = [2
cnhd+2
n∑i=1
g((‖x − xi‖
h)2)](
∑ni=1 g((‖x−xi‖h )2)xi∑ni=1 g((‖x−xi‖h )2)
− x)
Moyenne pondérée des voisins de x
L'algorithme Mean-shift 72/77
Comment trouver les extrema de densité?
Il faut résoudre ∇f (x) = 0:
Soit la fonction g sur g = −k ′
Gradient de densité
∇f (x) = [2
cnhd+2
n∑i=1
g((‖x − xi‖
h)2)](
∑ni=1 g((‖x−xi‖h )2)xi∑ni=1 g((‖x−xi‖h )2)
− x)
Vecteur partant de x et allant vers la moyenne des voisins de x
L'algorithme Mean-shift 72/77
Algorithme
Algorithm 2: Mean-ShiftData: Un ensemble de points xi , une taille de noyau h, un seuil εResult: Un ensemble de labels li et les clusters ci correspondant
1 for j = 1 · · · n do
2 x0j = xj ;
3 while error > ε do4 for j = 1 · · · n do
5 m(xj) =∑n
i=1 g((‖xj−xi‖
h )2)xi∑ni=1 g((
‖xj−xi‖h )2)
;
6 x t+1j = m(xj);
7 error = 1n
∑j ‖m(xj)− x tj ‖;
8 t = t + 1;
9 Grouper xTi par clusters;10 Assigner les xi au cluster auquel appartient xTi ;
L'algorithme Mean-shift 73/77
Analyse
Avantage: On ne choisit pas un nombre de classes!
Convergence garantie vers un extrema de densité.
En général : choix d'un noyau gaussien.
L'algorithme Mean-shift 74/77
Analyse
Avantage: On ne choisit pas un nombre de classes!
Convergence garantie vers un extrema de densité.
En général : choix d'un noyau gaussien.
L'algorithme Mean-shift 74/77
Analyse
Avantage: On ne choisit pas un nombre de classes!
Convergence garantie vers un extrema de densité.
En général : choix d'un noyau gaussien.
L'algorithme Mean-shift 74/77