Segmentation d’image -
approches régions
(Traitement et Analyse d’Image 5b)
Jacques-Olivier Lachaud Decembre 2020
(Les images peuvent être soumises à des droits d’auteur. Elles sont utilisées ici
exclusivement dans un but pédagogique)
tags: info001
Retour à INFO001 (Main) Traitement et analyse d’image
Approches régions
Principe : Rechercher les composantes image homogènes de l’image I�
Prédicat hom(R,I)hom(�,�) retourne vrai si region R� homogène dans I�.
Ex: hom(R,I)hom(�,�) est vrai
ssi Variancep∈R(I[p])<TVariance�∈�(�[�])<�
Algorithmes de structuration en régions “homogènes”.
Méthode de grossissement de régions (region growing)
Méthode de division (top–down)
Méthode de fusion (bottom–up)
Méthode de division-fusion (split & merge).
Autres: approche par champ de Markov
Grossissement de régions (region growing)
K régions R[i] initialisés sur K pixels germes donnés
do {
bool change = false;
for (int i = 0; i < K; ++i) {
Soit p un pixel voisin de R[i] et non affecté
if ( hom( R[i] union {p}, I ) ) {
R[i].append( p ); change = true;
}
}
} while ( change );
division-fusion (split and merge)
L <- [ domaine de l'image I ];
do { //split
foreach région R de L {
if ( ! hom(R,I) ) {
R1, R2 <- split( R );
L.append( R1 ); L.append( R2 );
}
}
// merge
foreach régions R1, R2 de L {
if (R1 adjacent à R2 && hom(R1 union R2, I)) {
L.erase( R1 ); L.erase( R2 );
L.append( R );
}
}
} while ( changement );
division-fusion (split and merge)
Choix de la géométrie de découpe important.
Critères simples => résultats moyens. Critères complexes souvent non-consistants.
approche bottom-up par fusions successives
[Felzenszwalb, Huttenlocher 2004]
1. Chaque arête e=(pi,pj)�=(��,��) a un poids w(e)�(�), e.g. |I(pi)
−I(pj)||�(��)−�(��)|
2. Cohérence interne de
région R�: Int(R)=maxe,e∩R≠∅w(e)Int(�)=max�,�∩�≠∅�(�),
3. Init G� est le graphe d’adjacence des pixels, et R(p)�(�) est la région
contenant p�
4. Fusions Pour chaque arête e=(pi,pj)�=(��,��) pris dans l’ordre croissant
des w�
5. Si w(e)≤min(Int(R(pi))+k/|R(pi)|,Int(R(pj))+k/|
R(pj)|)�(�)≤min(Int(�(��))+�/|�(��)|,Int(�(��))+�/|�(��)|)
Alors on fusionne R(pi)�(��) et R(pj)�(��)
Approche bottom-up par fusions
successives [Felzenszwalb, Huttenlocher
2004]
σ=1.6,k=300,minsize=100�=1.6,�= σ=1.2,k=121,minsize=42�=1.2,�
300,�������=100 =121,�������=42
Conclusion
algorithmes souvent efficaces, basés sur des graphes d’adjacence
beaucoup d’autres variantes
résultats assez peu prédictibles sauf avec des critères très précis
manque de modélisation