---
title: INFO911 (5b) Segmentation - approches régions
type: slide
slideOptions:
transition: slide
progress: true
slideNumber: true
---
# Segmentation d'image - approches régions
## (Traitement et Analyse d'Image 5b)
> [name=Jacques-Olivier Lachaud][time=Decembre 2020][color=#907bf7]
> (Les images peuvent être soumises à des droits d'auteur. Elles sont utilisées ici exclusivement dans un but pédagogique)
###### tags: `info911`
Retour à [INFO911 (Main) Traitement et analyse d'image](https://codimd.math.cnrs.fr/s/UE_B59gMy)
---
# Approches régions
==Principe== : Rechercher les composantes image homogènes de l'image $I$
Prédicat $\mathrm{hom}(R,I)$ retourne vrai si region $R$ homogène dans $I$.
Ex: $\mathrm{hom}(R,I)$ est vrai ssi $\mathrm{Variance}_{p \in R}(I[p]) < T$
:::info
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)

```cpp=
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)
```cpp=
L <- [ domaine de l'image I ];
do {
foreach région R de L { // try split
if ( ! hom(R,I) ) {
R1, R2 <- split( R );
L.append( R1 ); L.append( R2 );
}
}
foreach régions R1, R2 de L { // try merge
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)

:::danger
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=(p_i,p_j)$ a un poids $w(e)$, e.g. $|I(p_i)-I(p_j)|$
2. Cohérence interne de région $R$: $\mathrm{Int}(R)=\max_{e, e \cap R \neq \emptyset} w(e)$,
3. ==Init== $\mathcal{G}$ est le graphe d'adjacence des pixels, et $R(p)$ est la région contenant $p$
4. ==Fusions== Pour chaque arête $e=(p_i,p_j)$ pris dans l'ordre croissant des $w$
5. Si $w(e) \le \min( \mathrm{Int}(R(p_i)) + k/ \#R(p_i), \mathrm{Int}(R(p_j)) + k/\#R(p_j))$
Alors on fusionne $R(p_i)$ et $R(p_j)$
---
## Approche bottom-up par fusions successives
`video-graph-segmentation`
| $\sigma=1.6, k=300, minsize=100$ | $\sigma=1.2, k=121, minsize=42$ |
| ---------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
|  |  |
---
| input | $\sigma=1.2, k=76, minsize=42$ |
| ---------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
|  |  |
| $\sigma=1.2, k=157, minsize=42$ | $\sigma=1.2, k=360, minsize=200$ |
|  | 
|
---
## Conclusion
* approche très étudiée entre 1970 et 2000
* 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