Chapitre 2 : segmentation et contour
2.1. Introduction
La segmentation joue un rôle prépondérant dans le traitement d’images. Elle est réalisée avant les
étapes d’analyse et de prise de décision dans plusieurs processus tel que : la détection des objets.
Segmenter une image en régions, c’est rassembler ses pixels ayant des propriétés communes
comme une couleur, ou une texture
2.2. Définition
La segmentation d’image est considérée comme un traitement de bas niveau, elle n’est qu’une
première étape essentielle dans le processus d’interprétation d’une scène. Si I est une image
composée de N sous-ensembles (I1,I2, …,IN) formant une partition alors :
⋃ =
∀( , ) , ∩ =∅
( )= = 1, 2, … , , ∪ = ( )
Les algorithmes de segmentation reposent généralement sur l’une des deux propriétés des valeurs
de niveaux de gris : discontinuité et similarité.
Ceci donne naissance à deux approches : approches frontière (contour) et approche région. Les
algorithmes de segmentation s’appuie donc sur :
La recherche des discontinuités afin de détecter les contours
La recherche d’homogénéité locale pour définir les régions
Ou encore la coopération des deux principes
2.3. Segmentation par classification
La classification est l’une des procédures les plus utilisée en analyse des données. Elle permet de
partitionner un ensemble de données multidirectionnelles en un ensemble de k classes disjointes.
En segmentation, ces données correspondent aux pixels de l’image ou chaque pixel est caractérisé
par un vecteur d’attribut tel que les couleurs. Chaque classe regroupe des pixels ayant des
caractéristiques aussi similaires que possible.
Ces techniques ne permettent pas de prendre en compte la disposition spatiale des pixels.
Ainsi, les pixels appartenant à une classe peuvent former plusieurs régions non adjacentes dans
l’image, mai partageant les mêmes propriétés
2.3.1. Segmentation par seuillage
Dans le cas le plus classique, les pixels sont classés en 2 classes par l’intermédiaire d’un niveau de
gris s appelé seuil.
ESC 26 vision artificielle Dr S.Bouatmane 1
Chapitre 2 : segmentation et contour
La première classe regroupe les pixels du fond et la deuxième classe regroupe les pixels de
l’objet
Soit l’image I(M,N), ( , ) : le niveau de gris du pixel de coordonnée (x,y), 0≤x≤M, 0≤y≤N
L’image segmenté g est définie pour chaque pixel (x,y) par
1 ( , )>
( , )=
0 ( , )
Etude de la méthode de seuillage par erreur minimale
Considérant une image composée de N pixels de niveaux de gris i compris entre 0 et ng
l’histogramme ( ) de l’image
pour un pixel x, la probabilité d’avoir le niveau de gris i est donc :
()= ()
()
=
Nous pouvons définir la probabilité pour un pixel d’apparition à ou est :
( )=∑ ( )=∑
Les niveaux de gris moyennes de et de
ESC 26 vision artificielle Dr S.Bouatmane 2
Chapitre 2 : segmentation et contour
∑ ∑
= ( )
= ( )
Ces notations peuvent être généralisées à une image à P classes notées , ,…, séparées par
les seuils , , … , ainsi =∑
Dans le seuillage par erreur minimale (loi de Bayes), on considère que l’histogramme présente un
mélange de 2 populations soumises à la loi de Gauss notées de densité de probabilité
( / ) et ( / ).
( / ) = 1,2 permet de calculer la probabilité que pour i associé à un point de la classe
appartient à [x1,x2],
( ∈ , / )= (/ )
D’après la loi de Bayes
( ) (/ ) ( ) (/ )
( ∈ )= ( ∈ )=
La règle de décision sera :
Décider si ( / ) > ( / )
Décider si ( / ) > ( / )
La probabilité d’erreur associée à cette règle de décision est
( / ) = ( / ) si on decide = ( /)
( / ) = ( / ) si on decide = ( /)
Si on a : ( ) = , ( )=1−
( )= ( ) ( / )+ ( ) ( / )
= (/ ) + (1 − ) (/ )
Nous définissons s tel que ( ) soit minimale
( )
=0 ⇒ ( / ) = (1 − ) ( / )
2.3.2. Segmentation par algorithme K-Means
L’algorithme K-Means vise à produire un partionnement des pixels de manière à ce que les pixels
issus des deux classes différentes soient dissemblables.
L’idée principale est de définir K centroides un pour chaque classe Ck , 0 ≤ k ≤ K. chaque classe Ck est
caractérisée par un centre noté µk et le nombre d’éléments Nk. l’algorithme K-Means cherche à
minimiser sur une fonction de cout global
Algorithme K-Means
1. Initialisation de chaque centre µk
2. Pour chaque pixel (x,y), calculer la distance d (f(x,y), µk) aux différents centres de classes µk
et affecter à la classe la plus proche
( ( , ), ) = | ( , ) − |
( , ) ∶ le niveau de gris du pixel ( , )
3. Mise à jour des nombres de pixels et des centres µk des classes
ESC 26 vision artificielle Dr S.Bouatmane 3
Chapitre 2 : segmentation et contour
∑( , )∈ ( , )
=
4. Arrêt si = ∀( , )∈ . Sinon retour à l’étape 2
2.4. Segmentation basée région
La segmentation par région est une approche spécifique dont laquelle on cherche à construire des
surfaces en regroupant les pixels voisins suivant un critère d’homogénéité. Au finale, la
segmentation par région qui ont les propriétés suivantes
La réunion de toutes les régions donne l’image entière.
Les régions sont connexes
Les pixels de deux régions adjacentes ne sont pas homogènes entre eux
2.4.1. split and merge (diviser/fusionner)
Cette technique est constituée des 2 étapes suivantes
La decomposition (split)
Elle consiste à faire une division par bloc de l’image. Pour cela, on commence par
définir un bloc de la taille de l’image, puis on examine le contenu de ce bloc. Si le
bloc est homogène (contient des pixels similaires), alors on arrete la
décomposition, sinon on decoupe le bloc en 4 sous-bloc. L’implementation la
plus simple de cette méthode consiste à définir une structure d’arbre appelée
Quadtree
La fusion (merge)
Cette etape a pour objectif d’identifier les regions qui composent l’image en
regroupant les blocs similaires selon un critère de similarité. Ainsi, on peut
assimiler un bloc à un gros pixel en calculant sa valeur moyenne et en utilisant le
graphe d’adjacence pour naviguer vers les blocs voisins
ESC 26 vision artificielle Dr S.Bouatmane 4
Chapitre 2 : segmentation et contour
2.4.2. region growing (croissance de régions)
Cette technique consiste à faire grossir progressivement les regions autour de leur point de départ
des regions selon 2 etapes
1. Trouver les points de départ des regions
2. Faire grossir les regions par agglomeration des pixels voisins
La croissance s’arrete lorsqu’on ne peut plus ajouter des pixels sans briser l’homogéniété.
2. 5. Segmentation par approche contour :
2.5.1. Définition d’un contour :
Un contour est une frontière entre deux régions de niveau de gris différents et relativement
homogène
2.5.2.Le gradient
C’est un opérateur qui permet de détecter les variations des niveaux de gris. Le passage par un
maximum du module de gradient détermine alors un point contour
Soit I(x,y) la fonction de répartition de la couleur dans l’image, le gradient en coordonnées
cartésiennes est exprimé par :
( , ) ( , )
= , =
Sachant que le gradient est un vecteur orienté perpendiculairement au contour
ESC 26 vision artificielle Dr S.Bouatmane 5
Chapitre 2 : segmentation et contour
Le module : ( , ) = ( , )+ ( , )
( , )
L’argument ( , ) = ( , )
Le calcul direct de ces dérivés est réalisé de la façon la plus simple
( , ) = ( + 1, ) − ( , ) = ( ∗ )( , )
( , ) = ( , + 1) − ( , ) = ∗ ( , )
Ce qui correspond à la convolution avec les masques
−1
= −1 1 et =
1
Ces dérivées sont très sensibles au bruit, donc il faut un filtrage préalable. Parmi ces dérivées on
trouve
masque de Prewit
−1 0 1 −1 −1 −1
= −1 0 1 = 0 0 0
−1 0 1 1 1 1
masque de Sobel
−1 0 1 −1 −2 −1
= −2 0 2 = 0 0 0
−1 0 1 1 2 1
2.5.3.le seuillage
Une fois la norme du gradient calculé pour chaque point de l’image, il faut seuiller cette forme pour
décider si un pixel fait partie ou non d’un contour
Tous les pixels possédant une norme supérieure à s sont déclarés appartenir à un contour. Le
problème réside dans le choix du seuil
S >> → sous-détection (contour non fermé)
S >> → sur-détection (contour épais)
seuillage par hystérésis
On introduit deux seuls, Sh et Sb
- si la norme > Sh→ contour 1
- si la norme < Sb→ pas de contour 0
- Sb< norme < Sh →contour de fermeture
Les contours de fermeture sont transformés en contours sûr s’ils sont adjacents à un contour déjà
codé à 1
2.5.4. Affinage des contours
Le but de l’opération d’affinage des contours est d’obtenir des points contours d’un pixel
d’épaisseur. Pour réaliser l’affinage, on ne regarde que les pixels sélectionnés par le seuillage dont
la norme du gradient est maximale locale (dans le voisinage) dans la direction du gradient c.à.d. la
direction orthogonale au contour
Ainsi le pixel doit être comparé à ses 2 voisins dans la direction du gradient. Si la norme de son
gradient est supérieure à la norme de ses voisins, le pixel courant est de contour
ESC 26 vision artificielle Dr S.Bouatmane 6
Chapitre 2 : segmentation et contour
(a) Image originale
(b) Le module du gradient (image)
(c) Après le seuillage
(d) Carte de contour
ESC 26 vision artificielle Dr S.Bouatmane 7