Algorithme CSC (Color Structure Code)

publicité
SEGMENTATION 
Cours de Segmentation
PLAN
• Introduction
• Segmentation par histogrammes (RHS)
• Region growing
• Split & Merge
• Algorithme CSC
• Contours Actifs (Snakes)
• Conclusion
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
1/31
Introduction
SEGMENTATION 
Segmenter une image?
Partitionner l’image en zone homogènes selon un critère déterminé:
couleur, texture, niveau de gris, indice,…
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
2/31
Introduction
SEGMENTATION 
Un problème difficile.
Pourquoi les algorithmes présentés dans ce cours ne marchent-ils pas?
• 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)
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
3/31
Introduction
SEGMENTATION 
Plusieurs approches:
• Approches GLOBALES:
• Approches LOCALES:
contours
• Approches HYBRIDES:
histogrammes
region growing,
split & merge, CSC
En l’absence de contexte particuliers, les meilleurs résultats
sont obtenus avec les méthodes hybrides.
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
4/31
Histogrammes
SEGMENTATION 
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
=> Segmentation dans un espace dérivé de l’image
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
5/31
Recursive Histogram Splitting (RHS)
SEGMENTATION 
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
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
6/31
SEGMENTATION 
Recursive Histogram Splitting (RHS)
AVANTAGES
• Méthode très rapide
• Peu sensible au bruit
INCONVENIENTS
• 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.
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
7/31
Croissance de région (Region Growing)
SEGMENTATION 
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.
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
8/31
Croissance de région (Region Growing)
SEGMENTATION 
Méthode linéaire (complexité 2n)
x
y
val=?
x==y:
x<>y:
val=?
P1 == P2 ssi Diff(Col(P1),Col(P2)) < S
1
1
2
2
3
1
1
1
1
1
val = x
mettre à jour l’index
Extremité(x)  y
x
y
Seuil S:
val = y
11
22
33
1
…
x
y
val=?
val = Z
(nouvel index)
ES322 – Traitement d’Images et Vision Artificielle
while (swap[x]!=x)
x = swap[x];
Jean-Christophe Baillie
9/31
SEGMENTATION 
Croissance de région (Region Growing)
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ère
Initialement, S contient le voisinage de l’amorce.
Test local (pixels voisins) ou
statistique global (calcul sur la
couleur moyenne de R)
On retire p dans S
si p est homogè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.
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
10/31
SEGMENTATION 
Croissance de région (Region Growing)
AVANTAGES
• Méthode rapide
• Conceptuellement très simple
INCONVENIENTS
• 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.
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
11/31
Split & Merge
SEGMENTATION 
Horowitz, Pavlidis (1976), Dubuisson, Jain (1993)
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 = 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.
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
12/31
Split & Merge
SEGMENTATION 
Example
Image initiale
Homogénéité = critère sur la variance
Split 1
Split 2
ES322 – Traitement d’Images et Vision Artificielle
Split 3
Jean-Christophe Baillie
13/31
Split & Merge
SEGMENTATION 
Construction du RAG
Quadtree
Region Adjacancy Graph
• Connecte les régions adjacentes
• Arrêtes = mesures de différence
d’homogénéité
RAG
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
14/31
SEGMENTATION 
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
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
15/31
Split & Merge
SEGMENTATION 
Original
Split & Merge
AVANTAGES
• Méthode hybride
locale/globale: permet de
contrer le problème du
gradient.
INCONVENIENTS
• Méthode assez complexe
• Découpage un peu « carré », dû à
la topologie des quadtrees
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
16/31
Algorithme CSC (Color Structure Code)
SEGMENTATION 
Rehrmann (1994)
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 une
topologie hiérarchique hexagonale avec recouvrements.
pixel
shift
Ilot niveau 1
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
17/31
SEGMENTATION 
Algorithme CSC (Color Structure Code)
Ilot de niveau 1
Ilot de niveau 0
Pixel
Ilot de niveau 2
ES322 – Traitement d’Images et Vision Artificielle
Structure sous-jacente:
arbre
Jean-Christophe Baillie
18/31
SEGMENTATION 
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)
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
19/31
SEGMENTATION 
PHASE 2 : REGROUPEMENT
Élément
niveau 1
(n+1)
Algorithme CSC (Color Structure Code)
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)
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
20/31
SEGMENTATION 
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:
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
21/31
SEGMENTATION 
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?
?
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
22/31
Algorithme CSC (Color Structure Code)
SEGMENTATION 
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
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
23/31
SEGMENTATION 
Original
Split & Merge
Algorithme
CSC
Algorithme CSC (Color Structure Code)
AVANTAGES
• 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
INCONVENIENTS
• Méthode très complexe
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
24/31
Contours Actifs (snakes)
SEGMENTATION 
Kass, Witkin, Terzopoulos (1987)
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
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
25/31
Contours Actifs (snakes)
SEGMENTATION 
Qu’est ce qu’un snake?
P9
P8
P10
P7
P11
P6
P3
P1
P2
P5
P4
Esnake  Einterne  Eexterne
• Propriétés intrinsèques
• Longueur, courbure…
ES322 – Traitement d’Images et Vision Artificielle
• Propriétés locales de l’image
autour du snake
Jean-Christophe Baillie
26/31
SEGMENTATION 
Contours Actifs (snakes)
Comportement dynamique du snake?
Minimiser l’énergie totale (interne + externe)
F  E
Calculer les forces à appliquer à chaque point de contrôle de
telle sorte que l’énergie soit minimisée
E ( x, y )

Fx  x

Fy  E ( x, y )

y
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
27/31
Contours Actifs (snakes)
SEGMENTATION 
Exemple d’énergie INTERNE:
n
Energie élastique
Eelastic  K1   Pi  Pi 1
2
i-1
Elastic
force on sur le
Force élastique
ipoint
alongdethis
line i
contrôle
i 1
i
i-1
FelasticX ,i  2  K1    xi1  xi    xi1  xi  
FelasticY ,i  2  K1    yi1  yi    yi1  yi  
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.
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
28/31
Contours Actifs (snakes)
SEGMENTATION 
Exemple d’énergie INTERNE:
Energie de courbure
n 1
Ecourbure  K 2   Pi 1  2 Pi  Pi 1
i 1
2
Tend à redresser le snake et
à limiter la courbure. Forme
limite: le cercle
Exemple d’énergie EXTERNE (Image):
Zones brillantes ou sombres:
Eext  I
Contours en tant que maxima de la norme du gradient:
Eext   I
Répulsion d’une zone:

Eext ( x ) 
ES322 – Traitement d’Images et Vision Artificielle
2

 2
1 x  
Jean-Christophe Baillie
29/31
SEGMENTATION 
Contours Actifs (snakes)
Illustrations
Energie élastique
Energie de courbure
Zones brillantes
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
30/31
Conclusion
SEGMENTATION 
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 difficile
 Pistes crédibles: - utilisation du contexte, vision liée aux objectifs, apprentissage,
énorme bibliothèque d’algorithme spécifiques (reco visages par exemple)
VISION ACTIVE
ES322 – Traitement d’Images et Vision Artificielle
Jean-Christophe Baillie
31/31
Téléchargement