Segmentation - ENSTA ParisTech

publicité
1/39
Introduction
2/39
Introduction
3/39
Introduction
• Approches GLOBALES:
• Approches LOCALES:
• Approches HYBRIDES:
histogrammes
region growing,
contours
split & merge, CSC
4/39
Histogrammes
Zone « vert »
teinte
=> Segmentation dans un espace dérivé de l’image
5/39
Recursive Histogram Splitting (RHS)
Ohlander (1975); Ohta, Kanade,Sakai (1980)
Chaque pixel est décrit selon certains channels: R,G,B,H,S,V,…
=> L’algorithme travaille sur plusieurs histogrammes, un par channel
MAX
HR
HB
HG
…
voisinage
Image initiale
Réinjection des
régions de taille
suffisante
Retroprojection
de la fenêtre de
l’histogramme
Suppression
de la région
extraite
6/39
Recursive Histogram Splitting (RHS)
7/39
Croissance de région (Region Growing)
amorce
croissance
région finale
• Le point amorce peut être choisi soit par un humain, soit de manière automatique
en évitant les zones de fort contraste (gradient important) => méthode par amorce.
• Si le critère d’homogénéité est local (comparaison de la valeur du pixel candidat et
du pixel de la frontière) => méthode linéaire.
8/39
Croissance de région (Region Growing)
Seuil S:
x
y
val=?
x==y:
x<>y:
val = x
mettre à jour l’index
Extremité(x)  y
x
y
val=?
x
y
val=?
val = y
val = Z
(nouvel index)
P1 == P2 ssi Diff(Col(P1),Col(P2)) < S
1
1
2
2
3
1
1
1
1
1
11
22
33
1
…
while (swap[x]!=x)
x = swap[x];
9/39
Croissance de région (Region Growing)
Test local (pixels voisins) ou
statistique global (calcul sur la
couleur moyenne de R)
10/39
Croissance de région (Region Growing)
11/39
Split & Merge
Horowitz, Pavlidis (1976), Dubuisson, Jain (1993)
Phase 1 : Créer les zones homogènes = SPLIT
Phase 2 : Les regrouper = MERGE
SPLIT:
L’image est stockée dans un arbre.
Initialement, arbre racine = image complète
Récursivement, chaque feuille F est subdivisée en quatre si elle n’est pas
assez homogène, et les quatre sous images sont ajoutée en tant que feuilles
de F.
L’algorithme poursuit tant qu’il reste des feuilles non homogènes à diviser.
12/39
Split & Merge
Homogénéité = critère sur la variance
Image initiale
Split 1
Split 2
Split 3
13/39
Split & Merge
Construction du RAG
Quadtree
Region Adjacancy Graph
• Connecte les régions adjacentes
• Arrêtes = mesures de différence
d’homogénéité
RAG
14/39
Split & Merge
MERGE:
• Chaque nœud du Region Adjacency Graph est examiné.
• Si un des voisins de ce nœud est à une distance inférieure à un seuil de
regroupement, les deux nœuds fusionnent dans le RAG.
• Lorsque plus aucun nœud ne peut fusionner avec l’un de ses voisins, STOP.
La distance en terme d’homogénéité de
régions est portée par l’arrête valuée qui
les relie dans le RAG
15/39
Split & Merge
Original
Split & Merge
16/39
Algorithme CSC (Color Structure Code)
Rehrmann (1994)
pixel
shift
Ilot niveau 1
17/39
Algorithme CSC (Color Structure Code)
Ilot de niveau 1
Ilot de niveau 0
Pixel
Ilot de niveau 2
Structure sous-jacente:
arbre
18/39
Algorithme CSC (Color Structure Code)
PHASE 1 : INITIALISATION
Localement pour chaque îlot de niveau 0, on construit une
partition en éléments (de niveau 0).
élement = région de couleur homogène
élement (niveau 0)
pixel
îlot (niveau 0)
19/39
Algorithme CSC (Color Structure Code)
PHASE 2 : REGROUPEMENT
Élément
niveau 1
(n+1)
Lesconsidère
éléments
de éléments
niveau
n sont
regroupés
On
se
place dans
les
un ilôt de
de
niveau
niveau
n+1
encontenus
éléments
de
niveau
(ici
n
n=0,
pour
dans
l’exemple)
les îlotsn+1
de si:
niveau n
 Ils sont de couleur proche
 Ils se touchent
Propriété: deux éléments de
niveau n se touchent ssi ils
possèdent au moins un élément
de niveau n-1 en commun.
Élément
niveau 0
(n)
Îlot de
niveau 1
(n+1)
20/39
Algorithme CSC (Color Structure Code)
PHASE 2 : REGROUPEMENT
Les éléments sont structurés sous forme d’arbre, tout comme les îlots
Elements de niveau n+1:
n:
21/39
Algorithme CSC (Color Structure Code)
PHASE 2bis : DECOUPAGE
Le problème du chaînage d’éléments localement identiques n’est pas résolu à
ce stade (Problème du gradient)
L’algorithme CSC permet de gérer ce problème dans la phase de découpage, qui a
lieu en parallèle de la phase de regroupement.
Découpage: Que se passe-t-il dans la phase de regroupement lorsque
deux éléments de niveau n sont connectés mais de couleurs
incompatibles?
?
22/39
Algorithme CSC (Color Structure Code)
DECOUPAGE
îlot niveau n+1
îlot niveau n
élément E2
(n+1)
élément S1
(n)
élément S
(n)
élément S2
(n)
élément E1
(n+1)
S n’est pas encore complètement séparé
S appartient
à la fois à E1 et E2 (sont
existence
est garantie
par
=> découpage
récursif
de E1
il reste
intersection
S attribué
à car
E1 ou
E2?une
Attribution
à celuiavec
dont
les propriétés du réseau de recouvrement
hexagonal)
S1 etest
S2la plus proche (ici E2)
la couleur
23/39
Algorithme CSC (Color Structure Code)
Original
Split & Merge
Algorithme
CSC
24/39
Contours Actifs (snakes)
Kass, Witkin, Terzopoulos (1987)
Un exemple classique
Le « snake » se contracte et s’adapte
à la forme de l’horloge
25/39
Contours Actifs (snakes)
P9
P8
P10
P7
P11
P6
P3
P1
• Propriétés intrinsèques
• Longueur, courbure…
P2
P4
P5
• Propriétés locales de l’image
autour du snake
26/39
Contours Actifs (snakes)
Comportement dynamique du snake?
Minimiser l’énergie totale (interne + externe)
Calculer les forces à appliquer à chaque point de contrôle de
telle sorte que l’énergie soit minimisée
27/39
Contours Actifs (snakes)
Exemple d’énergie INTERNE:
Energie de contraction élastique
Force élastique sur le
point de contrôle i
Comportement: tend à rétrécir le snake, tout en maintenant une répartition
homogène des espaces entre les points de contrôle. Forme limite: le point.
28/39
Contours Actifs (snakes)
Exemple d’énergie INTERNE:
Energie de courbure
Tend à redresser le snake et
à limiter la courbure. Forme
limite: le cercle
Exemple d’énergie EXTERNE (Image):
Zones brillantes ou sombres:
Contours en tant que maxima de la norme du gradient:
Répulsion d’une zone:
29/39
Contours Actifs (snakes)
Energie élastique
Energie de courbure
Zones brillantes
30/39
Algorithme « ConDensAtion »
Condensation = Conditional Density Propagation
(algorithme de type “contours actifs”)
Algorithme probabiliste intégrant:
• des informations contextuelles
• des connaissances a priori
• une intégration temporelle (tracking)
31/39
Algorithme « ConDensAtion »
X = espace de description des contours (=> connaissances a priori sur la forme
à segmenter)
Z = espace de description des observations
Approche probabiliste bayesienne pour les contours actifs:
Prior: modélisation
a priori des contours
possibles
Likelihood of X ou modèle
observationel: modélisation
des observations attendues
pour un contour donné.
Choix de X:
32/39
Algorithme « ConDensAtion »
Factored Sampling algorithm (approche du type « Filtrage Particulaire »):
Principe général: on construit itérativement un ensemble de points dans l’espace de
recherche, tels que leur répartition corresponde à la densité de probabilité
recherchée.
Un des avantages: modélisation utilisable pour des densités quelconques et pas uniquement gausiennes.
Exemple dans le cas de la segmentation par contours actifs:
1. A partir d’un prior p’(X), générer une population de points {s(1),…,s(N)}
2. Associer à chaque s(i) un poids donné par π(i) et échantillonner selon (s(k),π(k))
33/39
Algorithme « ConDensAtion »
Condensation = Conditional Density Propagation
Entrée: l’échantillon au temps tk-1 soit :
Itérer
Sortie: un nouvel échantillon au temps tk
Construction de la sortie:
1. Sélectionner un échantillon
0
de la façon suivante:
a. Générer un nombre aléatoire r dans [0,1]
b. Trouver le plus petit j tel que
c. Choisir
2. Prédire en échantillonnant sur
pour choisir les
.
Par exemple, pour une dynamique Auto Regressive linéaire, utiliser:
3. Mesurer et pondérer les nouveaux échantillons selon:
Puis, normaliser de telle sorte que
Avec
et stocker sous la forme
34/39
Algorithme « ConDensAtion »
Exemple simple de modèle d’observation, dans un cas monodimensionnel:
z1
z2
z3
z4
P(Z/X)
x
35/39
Algorithme « ConDensAtion »
Condensation : Schéma de fonctionnement
36/39
Autres Approches
Algorithmes spécialisés: Segmentation de visages, segmentation sur des
patterns de mouvement (détection du profil de mouvement d’un piéton qui
marche), détection par la chaleur, le mouvement, etc
37/39
Autres Approches
L’une des grandes “révolution” de ces
dernières années:
les algorithmes de détection d’image
dans l’image; SIFT(1999), SURF(2006)
38/39
SIFT
39/39
SIFT
39/39
SIFT
39/39
Conclusion
Existe-t-il une meilleure technique de segmentation?
 Non, tout dépend du contexte, de l’application
 Dans sa catégorie (segmentation région selon couleur à base de merge/split),
CSC est souvent le meilleur
Existe-t-il une « super technique », peut être encore inconnue, qui obtienne de
très bon résultats en segmentation?
 Non, en l’absence de contexte, la quantité d’information disponible est limitée.
Les algorithmes du type CSC ne sont probablement pas loin de l’optimum.
Mais le cerveau obtient de bien meilleurs résultats… Quelle est le secret?
 Problème très difficile (50 ans de recherche et pas de solution)
 Pistes crédibles: - utilisation du contexte, vision liée aux objectifs, apprentissage,
énorme bibliothèque d’algorithme spécifiques (reco visages par exemple)
42/39
Téléchargement