Cours de Segmentation PLAN Introduction Segmentation par histogrammes (RHS) Region growing
description
Transcript of Cours de Segmentation PLAN Introduction Segmentation par histogrammes (RHS) Region growing
1/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Cours de SegmentationCours de Segmentation
PLAN
• Introduction• Segmentation par histogrammes (RHS)• Region growing• Split & Merge• Algorithme CSC• Contours Actifs (Snakes)• Approche probabiliste: l’algorithme « CondDensAtion »• Conclusion
2/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Introduction
Segmenter une image?Segmenter une image?
Partitionner l’image en zone homogènes selon un critère déterminé: couleur, texture, niveau de gris, indice,…
3/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Introduction
Pourquoi les algorithmes présentés dans ce cours ne marchent-ils pas en général?
• Pas de données contextuelles• Traitement global de l’image: pas de traitement actif, localisé dans l’image (voir cours Vision Active)• Pas d’exploitation explicite de la continuité spatio-temporelle (tracking), (sauf dans l’algorithme « Condensation »)
Un problème difficile.Un problème difficile.
4/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Introduction
Plusieurs approches:Plusieurs approches:
En l’absence de contextes particuliers, les meilleurs résultats sont obtenus avec les méthodes hybrides.
• Approches GLOBALES: histogrammes• Approches LOCALES: region growing,
contours• Approches HYBRIDES: split & merge, CSC
5/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Histogrammes
Idée:Idée: Si les objets présents dans l’image ont des couleurs bien distinctes et uniformes, ils vont apparaître comme des pics dans l’histogramme.
Zone « vert »
teinte
nbr d
e pix
els
=> Segmentation dans un espace dérivé de l’image
6/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
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
…HR HG HB
MAX
voisinage
Réinjection des régions de taille
suffisante
Suppression de la région
extraite
Retroprojection de la fenêtre de l’histogramme
Image initiale
7/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Recursive Histogram Splitting (RHS)
AVANTAGESAVANTAGES
• Méthode très rapide
• Peu sensible au bruit
INCONVENIENTSINCONVENIENTS
• Méthode globale: ignore les informations de proximité qui permettent d’utiliser des seuils variables locaux.
• Que se passe-t-il si deux objets ont la même couleur? => Nécessite en général un Region Growing pour détacher les composantes connexes.
8/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Croissance de région (Region Growing)
Idée:Idée: On part d’un point amorce (seed) et l’on l’étend en ajoutant les points de la frontières qui satisfont le critère d’homogénéité
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.
9/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Croissance de région (Region Growing)
Méthode linéaire (complexité 2n)Méthode linéaire (complexité 2n)
1
Seuil S: P1 == P2 ssi Diff(Col(P1),Col(P2)) < S
val=?y
xx==y: val = xx<>y: mettre à jour l’index
Extremité(x) y
val=?y
x
val = y
val=?y
xval = Z (nouvel index)
1 2 2 3
1 1 1 1 1
1 12 23 3…3 1
while (swap[x]!=x) x = swap[x];
10/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Croissance de région (Region Growing)
Méthode par amorce (complexité O(n))Méthode par amorce (complexité O(n))
On définit une zone R qui contient la région à extraire.Initialement, R contient l’amorce.On utilise une file FIFO (First In, First Out) S qui contient les points frontièreInitialement, S contient le voisinage de l’amorce.
On retire p dans Ssi p est homogènehomogène avec R,
on ajoute p à R et on ajoute à S les points du voisinage de p qui ne sont pas dans R et qui ne sont pas incompatibles.
sinon, on marque p comme incompatible.
On recommence tant que S n’est pas vide.
Test local (pixels voisins) ou statistique global (calcul sur la couleur moyenne de R)
11/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
AVANTAGESAVANTAGES
• Méthode rapide
• Conceptuellement très simple
INCONVENIENTSINCONVENIENTS
• Méthode locale: aucune vision globale du problème. En pratique, il y a presque toujours un chemin continu de points connexes de couleur proche qui relie deux points d’une image…Problème du gradient:
• Tenir compte de l’homogénéité globale donne un algorithme sensible à l’ordre de parcours des points (méthode par amorce)
• Algorithme très sensible au bruit, peu stable.
Croissance de région (Region Growing)
12/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Split & Merge
Horowitz, Pavlidis (1976), Dubuisson, Jain (1993)
Idée:Idée: Plutôt que de regrouper des pixels dans le region growing, pourquoi ne pas regrouper des zones homogènes pré-calculées sur l’image?
Phase 1 : Créer les zones homogènes = SPLITPhase 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.
13/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Split & Merge
ExampleExample
Image initialeSplit 1
Split 2Split 3
Homogénéité = critère sur la variance
14/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Split & Merge
Construction du RAGRegion Adjacancy Graph
Quadtree
RAG
• Connecte les régions adjacentes
• Arrêtes = mesures de différence d’homogénéité
15/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
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
16/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Split & Merge
AVANTAGESAVANTAGES
• Méthode hybride locale/globale: permet de contrer le problème du gradient.
INCONVENIENTSINCONVENIENTS
• Méthode assez complexe
• Découpage un peu « carré », dû à la topologie des quadtrees
Original
Split & Merge
17/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Algorithme CSC (Color Structure Code)
Rehrmann (1994)
Idée:Idée: Regrouper des structures de pixels qui se chevauchent et découper ensuite les zones communes par une descente récursive.
L’algorithme CSC est un algorithme Merge & Split basé sur unetopologie hiérarchique hexagonale avec recouvrements.
shift
Ilot niveau 1
pixel
18/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Algorithme CSC (Color Structure Code)
Pixel
Ilot de niveau 0
Ilot de niveau 1
Ilot de niveau 2
Structure sous-jacente: arbre
19/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
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
pixel
élement (niveau 0)
îlot (niveau 0)
20/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Algorithme CSC (Color Structure Code)
PHASE 2 : REGROUPEMENT
Élément niveau 1
(n+1)
Élément niveau 0
(n)
On se place dans un ilôt de niveau n+1(ici n=0, pour l’exemple)
Îlot de niveau 1 (n+1)
On considère les éléments de niveau n contenus dans les îlots de niveau nLes éléments de niveau n sont regroupés en éléments de niveau n+1 si:
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.
21/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
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:Elements de niveau n+1:
22/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
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?
?
Algorithme CSC (Color Structure Code)
23/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
élément E1(n+1)
élément E2(n+1)
îlot niveau n+1
îlot niveau n
élément S (n)
S attribué à E1 ou E2? Attribution à celui dont la couleur est la plus proche (ici E2)
élément S2 (n)
élément S1 (n)
S n’est pas encore complètement séparé de E1 car il reste une intersection avec S1 et S2
=> découpage récursif
Algorithme CSC (Color Structure Code)
S appartient à la fois à E1 et E2 (sont existence est garantie par les propriétés du réseau de recouvrement hexagonal)
DECOUPAGE
24/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Algorithme CSC (Color Structure Code)
AVANTAGESAVANTAGES
• Méthode hybride locale/globale: permet de contrer le problème du gradient.
• Excellente découpe des frontières de zone
• Multi-échelle
• Intrinsèquement parallèle
INCONVENIENTSINCONVENIENTS
• Méthode plus complexe
Original
Split & MergeAlgorithme CSC
25/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Contours Actifs (snakes)
Kass, Witkin, Terzopoulos (1987)
Idée:Idée: Utiliser des courbes déformables qui sont « attirées » par les formes recherchées dans l’image.
Analogie avec la physique: fonction d’énergie à minimiser.
Un exemple classique
Le « snake » se contracte et s’adapte à la forme de l’horloge
26/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Contours Actifs (snakes)
Qu’est ce qu’un snake?Qu’est ce qu’un snake?
P1 P2
P3
P4
P5
P6
P7
P8P9
P10
P11
externeinternesnake EEE
• Propriétés intrinsèques• Longueur, courbure…
• Propriétés locales de l’image autour du snake
27/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
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
y
yxEF
x
yxEF
y
x
),(
),(
EF
28/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Contours Actifs (snakes)
Exemple d’énergie INTERNE: Energie de contraction élastique
n
iiielastic PPKE
1
2
11
iiiiielasticX xxxxKF 111, 2
iiiiielasticY yyyyKF 111, 2
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.
i- 1
i- 1i
E lastic force oni along this lineForce élastique sur le point de contrôle i
29/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Contours Actifs (snakes)
Exemple d’énergie EXTERNE (Image):
2
ext IE Contours en tant que maxima de la norme du gradient:
IE extZones brillantes ou sombres:
2ext
1)(
xxE
Répulsion d’une zone:
1
1
2
112 2n
iiiicourbure PPPKE
Exemple d’énergie INTERNE: Energie de courbure
Tend à redresser le snake et à limiter la courbure. Forme limite: le cercle
30/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Contours Actifs (snakes)
Energie élastique
Energie de courbure
IllustrationsIllustrations
Zones brillantes
31/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Algorithme « ConDensAtion »
Condensation = Conditional Density Propagation(algorithme de type “contours actifs”)
Algorithme probabiliste intégrant:• des informations contextuelles (modèle observationnel adapté au problème)• des connaissances a priori• une intégration temporelle (tracking)
32/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
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:
)/()()/( XZPXPkZXP
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:
)/(maxargˆ ZXpXX
33/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
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))
)/()(
)(
)(
1
)(
)()(
sXZpsp
avec
sp
sp
z
N
j
jZ
izi
34/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Construction de la sortie:
1. Sélectionner un échantillon de la façon suivante:
Algorithme « ConDensAtion »
Condensation = Conditional Density Propagation
Entrée: l’échantillon au temps tk-1 soit :
Sortie: un nouvel échantillon au temps tk
Nncs nk
nk
nk ,...,1,,, )(
1)(1
)(1
Nncs nk
nk
nk ,...,1,,, )()()(
Itérer
a. Générer un nombre aléatoire r dans [0,1]b. Trouver le plus petit j tel que c. Choisir
)(' nks
rc jk
)(1
)(1
)(' jk
nk ss
2. Prédire en échantillonnant sur pour choisir les .
Par exemple, pour une dynamique Auto Regressive linéaire, utiliser:
)'/( )(1
nkkk sp
)(nks
normalbruit de variable avec ' )()()()( nk
nk
nk
nk wBwAss
3. Mesurer et pondérer les nouveaux échantillons selon:
Puis, normaliser de telle sorte que et stocker sous la formeAvec
n
nk 1)(
Nncc
cn
kn
kn
k
k
,...,1,
0)()1()(
)0(
)/( )()( nkkk
nk sZp
),,( )()()( nk
nk
nk cs
0
35/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Algorithme « ConDensAtion »
Exemple simple de modèle d’observation, dans un cas monodimensionnel:
P(Z/X)
x
z1 z2 z3z4
36/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Algorithme « ConDensAtion »
Condensation : Schéma de fonctionnement
37/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
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
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)
VISION ACTIVEVISION ACTIVEVISION ACTIVEVISION ACTIVE
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.
38/38
SEGMENTATIONSEGMENTATION
ES322 – Traitement d’Images et Vision Artificielle Jean-Christophe Baillie
Cours:
http://uei.ensta.fr/baillie
Stages:
http://cogrob.ensta.fr
Liens