Segmentation Approches Classiques V 23

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 50

Segmentation

• L'analyse d'images a pour but l'extraction de


l'information caractéristique contenue dans une
image.
• Le résultat s'appelle très souvent la
description structurelle.
• Le résultat peut être une image ou une
structure de données permettant une
description des entités contenues dans l'image
: informations qualitatives et quantitatives.
• Essentiellement, l'analyse de l'image fait appel
à la segmentation : association à chaque pixel
de l'image un label en s'appuyant sur
l'information intensité et sa distribution spatiale.
Segmentation

• Plusieurs approches :

– Le seuillage
– La détection de frontières
– La morphologie mathématique
– La transformée de Hough
– La recherche de régions
• Le seuillage manuelle:
– Le seuillage manuelle consiste à choisir un seuil
arbitraire (i=k : niveau de gris) (ou plusieurs
seuils dans le cas d’un histogramme multi-
modale:

si f (i , j )  k f (i , j )  0
si f (i , j )  k f (i , j )  N  1

0 k N-1
• Le seuillage automatique ou dynamique :
– Le seuillage dynamique consiste à déterminer
automatiquement le seuil i qui sépare le fond de
la forme.
– On réalise l’histogramme de l’image à étudier qui
représente deux pics. Le but est de chercher la
valeur du seuil S correspondante à la vallée entre
les 2 pics :
zone d’étude
2
Les 2 pics sont
1
Assimilés à 2
gaussiennes
0 1 S 2
Segmentation
• Le seuillage automatique:
– Détection de vallées :
• Cette technique est la plus intuitive. On suppose que
chaque classe correspond à une gamme distincte de
niveaux de gris. L'histogramme est alors multi-modal.
La position des minima de l'histogramme h permet de
fixer les (m-1) seuils nécessaires pour séparer les m
classes.
• En termes mathématiques, les seuils si sont obtenus
par: h(si) = Min [ h(k) ] pour k dans ]i, i+1[, où i et
i+1 sont les valeurs moyennes (ou les modes) de
l'intensité lumineuse dans les classes Ci et Ci+1.
Segmentation
• Le seuillage automatique ou dynamique :
– Détection de vallées :
• Malgré le développement de techniques robustes
visant à faciliter la détection des vallées, cette
méthode, bien que simple, est très peu appliquée car
les histogrammes traités sont le plus souvent bruités
et unimodaux.
La répartition des pixels en N classes est un problème classique de
classification. Le choix des seuils si permet de détecter m classes
auxquels on peut associer taille (ti), moyenne (i) et variance Vi par :

ti   h ( j )
Di
1
𝜇𝑖 = ෍𝑗ℎ(𝑗ሻ
𝑡𝑖
𝐷𝑖
1
Vi  
ti Di
( j  mi ) 2 .h( j )

où h est l'histogramme normalisé; Di = [si-1,si[ est la gamme de


niveaux de gris correspondant à la classe Ci (par hypothèse, s0
= 0) .
Méthode Otsu
Soit une image I avec L niveaux de gris et M*N pixels.
Si h est l’histogramme des niveaux de gris de l’image I, la
probabilité d’avoir un niveau de gris n est :
ℎ(𝑛ሻ
𝑝 𝑛 = avec σ𝐿𝑛=0 𝑝 𝑛 = 1
𝑀𝑁

La moyenne globale de I : 𝜇 = σ𝐿−1


𝑛=0 𝑛 𝑝(𝑛ሻ

La variance globale de I : 𝜎 2 = σ𝐿−1


𝑛=0 𝑛 − 𝜇 2 𝑝(𝑛ሻ
Méthode Otsu
Otsu suppose que l’histogramme est bimodale c’est-à-dire que les
pixels de I appartiennent à 2 classes C1 et C2.
Les niveaux de gris des pixels de la classe 1 sont inferieurs à un
seuil t et les autres sont supérieur à ce seuil.
𝑃 𝐶1 = σ𝑡𝑛=0 𝑝(𝑛ሻ et 𝑃 𝐶2 = σ𝐿−1 𝑛=𝑡+1 𝑝(𝑛ሻ
sont les probabilité d’appartenance des pixels à C1 et C2 respectivement
σ𝑡𝑛=0 𝑛 𝑝(𝑛ሻ σ𝐿−1
𝑛=𝑡+1 𝑛 𝑝(𝑛ሻ
𝜇𝐶1 =
𝑃 𝐶1
et 𝜇𝐶2 =
𝑃 𝐶2
sont les moyennes partielles relatives à C1 et C2 respectivement
Méthode Otsu
2 σ𝑡𝑛=0 𝑛− 𝜇𝐶1 2 𝑝(𝑛ሻ 2 σ𝐿−1 2
𝑛=𝑡+1 𝑛− 𝜇𝐶2 𝑝(𝑛ሻ
𝜎𝐶1 = et 𝜎𝐶2 =
𝑃(𝐶1ሻ 𝑃(𝐶2ሻ
sont les variances relatives à C1 et C2 respectivement

Or : 𝜇 = 𝜇𝐶1 𝑃 𝐶1 + 𝜇𝐶2 𝑃(𝐶2ሻ

On définit la variance inter-classe et intra-classe comme suit :

2 2 2
𝜎𝑖𝑛𝑡𝑟𝑎 = 𝑃 𝐶1 𝜎𝐶1 + 𝑃 𝐶2 𝜎𝐶2
2
𝜎𝑖𝑛𝑡𝑒𝑟 = 𝑃 𝐶1 (𝜇𝐶1 − 𝜇ሻ2 + 𝑃 𝐶2 (𝜇𝐶2 − 𝜇ሻ2
Méthode Otsu
Notons que :
2 2
𝜎 2 = 𝜎𝑖𝑛𝑡𝑟𝑎 + 𝜎𝑖𝑛𝑡𝑒𝑟
Le seuil optimal est obtenu par la maximisation de la
variance inter-classe et la minimisation de la variance
intra-classe :
2 2
𝑡𝑜𝑝𝑡𝑖𝑚𝑎𝑙 = max 𝜎𝑖𝑛𝑡𝑒𝑟 = min 𝜎𝑖𝑛𝑡𝑟𝑎
𝑡∈[0,255] 𝑡∈[0,255]

Remarque: la généralisation au cas de plus de 2 modes n’est pas


aisée
• https://en.wikipedia.org/wiki/Otsu%27s_method#/media/File
:Otsu's_Method_Visualization.gif
Exemple d’application:
Seuillage entropique :

Technique dérivée de la théorie de l'information.


Les seuils sont déterminés de manière à maximiser l'entropie E
résultant du découpage de l'histogramme h en plusieurs
classes.
l'entropie mesure la quantité d'information portée par un
groupe.
Pour un nombre de seuils fixes, on cherche à ce que les classes
résultantes portent le maximum d'information.
L'entropie totale est calculée de la manière suivante :
E   E (Ci )
i

où Ci désigne la classe.
Seuillage entropique :

E (Ci )    p j . log 2 ( p j )
jDi

Où Di est l’ensemble des niveaux de gris j associés à la classe Ci


et pj la probabilité a posteriori du niveau de gris j, estimée par :
pj = h(j) / taille_image
.
Extraction de contours
• Détection de frontières :

Variations significatives d’intensité dans une image


Correspondent à des informations pertinentes: frontières de
régions homogènes.
• Détection de frontières :

– La notion de contour étant reliée à celle de


variation  une évaluation de la variation en
chaque pixel.

– Une variation existera si le gradient est


localement maximum ou si la dérivée seconde (à
définir dans un espace bi-dimensionnel) présente
un passage par zéro.
• Détection de frontières :

Profile de l’image

Dérivée première

Dérivée seconde
• Détection de frontières :
– Définition d’un contour :
f Lieu d’une forte transition

A B

A B profil
• Détection de frontières :
– Principe de détection :
• Approche gradient :

t
 f f 
f (i, j )  (i, j ), (i, j ) 
 x y 
• Approche laplacien :

 2 f  2
f 
 
 x 2 (i, j )  y 2 (i, j ) 
 
Segmentation

– Mise en oeuvre de filtres dérivés

• Propriété du produit de convolution :


 
f x ( x, y )  ( f ( x, y ) * h( x, y ))  f ( x, y ) * h( x, y )
x x
 
f y ( x, y )  ( f ( x, y ) * h( x, y ))  f ( x, y ) * h( x, y )
y y

m n
f d ( x, y )    f ( x  i, y  j ).hd (i, j )
i m j n

d peut être une direction quelconque


Segmentation
• Détection de frontières :
– Calcul d'un gradient :
• Le gradient, en un pixel, est un vecteur caractérisé par
– son amplitude
 f2 f2
 x y
f   f x  f y
max( f , f )
 x y

– sa direction :
fy
  arctan( )
fx
• Détection de frontières :
– Calcul d'un gradient :
• Filtre de Prewitt :
– Masque : -1 0 1
-1 0 1
-1 0 1

10 10 90 100 100 0 240 270 30 0


10 10 90 100 100 0 240 270 30 0
10 10 90 100 100 0 240 272 30 0
10 10 90 100 100 0 240 270 30 0
10 10 90 100 100 0 240 270 30 0
• Détection de frontières :
– Calcul d'un gradient :
• Dérivation par différences finies
– Inconvénients : 2 directions sont représentées
– Solutions : calculer les dérivées dans plusieurs directions
(0°,45°,90°,135°, etc.)
• Quelques opérateurs connus : Prewitt, Sobel, Roberts,
Kirsh, etc…
– Prewitt   1 0 1   1  1  1
   
hx  3   1 0 1
1 hy  3  0 0 0 
1
  1 0 1 1 1 1
   
– Sobel
 1 0 1   1  2  1
   
hx  4   2 0 2 
1 hy  4  0
1 0 0
 1 0 1 1 1 
   2
• Détection de frontières :
– Calcul d'un gradient :
• Quelques opérateurs connus :
– Roberts :
0 0 0   0 0 0
   
hx   0 1 0  hy   0 0 1 
 0 0  1  0 1 0
   
– Kirsch :
  3  3 5   3  3  3
   
hx  15   3 0 5  hy  15   3 0  3
1 1
  3  3 5  5 5 
   5
• Détection de frontières :
– Calcul d'un gradient :  1 0 1
 
• Quelques opérateurs connus : h0  4   2 0 2 
1

– Sobel 4 directions :  1 0 1
 
  2 1 0   1  2  1  0 1 2
     
h45  4  1 0 1
1 h90  4 0
1 0 0  h135  1 1
4 0 1
 0  1 1    2 1 0
 1 2   2  
– Kirsch 4 directions :   3  3  3
 
h90  15   3 0  3
1
  3  3 5   3  3  3  5 5 
     5
h0  15   3 0 5  h45  15   3 0
1 1 5
3 5 3 5 5
  3  3 5
   5   
h135  15   3 0
1 5
  3  3  3
 
Segmentation
• Détection de frontières :
– Calcul d'un gradient :
• Quelques opérateurs connus :
– Prewitt 4 directions :

  1 1 1   1  1 1
   
h0  5   1  2 1
1
h45  5   1  2 1
1
  1 1 1 1 
   1 1

  1  1  1 1 1 1
   
h90  5 1  2 1 
1 h135  5   1  2 1
1
1 1    1  1 1
 1  
Segmentation
• Détection de frontières :
– Calcul d'un gradient :
• Quelques opérateurs connus Rosenfled:
– La texture est caractérisée par des fortes transitions mais
peu intéressante en termes de contours d'objets. Le plus
souvent, on ramène les calculs de variations entre valeurs de
pixels à des calculs entre valeurs moyennes sur des fenêtres
centrées sur ces pixels :
f x ( x, y )  f * ( x  r , y )  f * ( x  r  1, y )

f y ( x, y )  f * ( x, y  r )  f * ( x, y  r  1)

f * ( x, y )  (2.r  1)  2  f ( x  i, y  j )
i  j r

r est la taille de la fenêtre utilisée.


Segmentation
• Détection de frontières :
– Calcul du laplacien :
• Les points de contour sont situés aux passages par
zéro du laplacien : 2 f 2 f
f (i, j )  (i, j )  (i, j )
x 2
y 2

• En faisant une approximation par différences finies on


trouve les masques suivants :

 0 1 0 1 1 1
   
 1  4 1  1  8 1
 0 1 0 1 1 1
   
Segmentation
– Du gradient au contour :
• Une fois le gradient calculé, il faut enchaîner la phase
de détection des pixels du contour, par recherche des
maxima de la dérivée
• Détermination de seuil sur l'amplitude :
– On fixe 1 seuil pertinent s :
Le pixel appartient à un contour 𝑠𝑖 𝛻𝑓(𝑥, 𝑦ሻ > 𝑠

_ On fixe 2 seuils sb un seuil bas et sh un seuil haut tels que :


( Technique par Hystérésis )
si f ( x, y )  sb alors (x,y) n’est pas un point contour

si f ( x, y)  sh alors (x,y) n’est pas un point contour


si sb  f ( x, y)  sh alors l'appartenance à un contour
sera fonction du contexte
Principe de base de l’extraction du contour
EXEMPLES :

SOBEL ROBERTS PREWIT


Autres exemples :

f
Image Brute x
Contours Verticaux

f
f 2 f 2
y ( ) ( )
x y
Contours
Horizontaux Norme

Source : Gonzalez and Woods. Digital Image Processing. Prentice-Hall, 2002.


Autres exemples :

SOBEL sans
seuillage

SOBEL avec SOBEL avec


seuillage S=25 seuillage S=50

Source : Caroline Rougier. Traitement d'images (IFT2730). Univ. de Montreal.


Autres opérateurs :
• Déclivité:
Dans une ligne image, la déclivité est définie comme étant un ensemble de
pixels consécutifs bornés par deux points correspondant à deux extremum
consécutifs, un maximum et un minimum.
Une déclivité est caractérisée par deux extremum notés xi et xi+1 et une
amplitude définie par :
Autres opérateurs :
• Extraction des Déclivités:

Seuil = 5.6 x 

l’écart type est estimé en supposant que le signal utile est


entaché d’un bruit blanc gaussien. La valeur du coefficient
permet d’éliminer 99,5% des déclivités dues au bruit.
Comparaison des opérateurs de contours sur images de synthèse et routières:
Opérateurs composés:
• Opérateurs MDIF :
Ces deux opérateurs sont la combinaison d’un lissage et
d’une dérivation.
MDIF : filtre moyenneur + dérivateur de PREWITT
0 1 0 1 0 −1
soit avec 𝑚 = 1 1 1 et ℎ1 = 1 0 −1
0 1 0 1 0 −1
Opérateurs composés:
0 1 0 1 1 1
𝑠𝑜𝑖𝑡 𝑎𝑣𝑒𝑐 𝑚 = 1 1 1 et ℎ2 = 0 0 0
0 1 0 −1 −1 −1
0 1 0 1 0 
1 2 0  2 1
1 3 0 3 1
𝑚 ∗ ℎ1 = 1 2 0  2 1
0 1 0 1 0 
0 1 1 1 0
1 2 3 2 1
 0 0 0 0 0
𝑚 ∗ ℎ2 = 1  2 3  2 1
 0 1 1 1 0 

Extraction horizontale et Verticale (voir document


convolution de 2 masques notes de cours Moodle)
Opérateurs composés:
• Opérateur de Marr et Hildreth (LoG operator):
𝐵 𝑥, 𝑦 = ∆ 𝐴 ∗ 𝑔 𝑥, 𝑦 = ∆𝑔(𝑥, 𝑦ሻ ∗ 𝐴(𝑥, 𝑦ሻ
A 𝑥, 𝑦 est l’image à traiter
𝐵 𝑥, 𝑦 est l’image résultat
MH = lissage par un filtre gaussien g(x,y) + calcul de la dérivée
seconde et recherche des passages par 0.
2 2 2 (𝑥 2 +𝑦 2 ሻ
1 𝑥 + 𝑦 − 2𝜎 −
∆ 𝑔 𝑥, 𝑦 = 𝑒 2 𝜎2
√2 𝜎4
Marr, D.; Hildreth, E. (29 Feb 1980), "Theory of Edge Detection", Proceedings of the Royal
Society of London. Series B, Biological Sciences, 207 (1167): 187–217
Représentation de l’opérateur
Masque correspondant:
Application :
(b) : Image LoG, (c): LoG binarisée, (d): Zero-crossing
Autre Opérateur
Opérateur de Huertas:
2 2ሻ
1 𝑥 2 + 𝑦 2 − (𝑥 +𝑦2
∆ 𝑔 𝑥, 𝑦 = 2− 2
𝑒 2𝜎
𝐺0 𝜎
𝐺0 est un coefficient de normalisation
∆ 𝑔 𝑥, 𝑦 = 𝑔1 𝑥 𝑔2 𝑦 + 𝑔2 (𝑥ሻ𝑔1 (𝑦ሻ
𝑥2
1 𝑥2 − 2
Avec : 𝑔1 𝑥 = 1− 𝑒 2𝜎 (gaussienne)
2𝐺0 𝜎2
𝑥2
1 − 2
Et 𝑔2 𝑥 = 𝑒 2𝜎 𝑙𝑖𝑠𝑠𝑎𝑔𝑒
2𝐺0

Andreas Huertas, Gérard G. Medioni Detection of Intensity Changes with


Subpixel Accuracy Using Laplacian-Gaussian Masks Published in IEEE
Transactions on PAMI 1986
Segmentation
• Détection de frontières :
– Les approches optimales :
• Filtre de Canny
• Filtre de Deriche
• Filtre de Shen-Castan
Segmentation
• Détection de frontières :
– Les approches optimales :
• Critères de Canny (Critères de performance) :
– Bonne Détection : l’opérateur doit donner une réponse au
voisinage d’un contour,
– Bonne Localisation : le contour doit être localisé avec
précision,
– Réponse unique : un contour doit provoquer une seule
réponse de l’opérateur.
Segmentation
• Détection de frontières :
– Les approches optimales :
• Filtre de Shen-Castan :
 x
h( x)  ce

1  e 
c
1  e 
Coefficient de normalisation
Segmentation
• Détection de frontières :
– Les approches optimales :
• Filtre de Deriche : h( x)  k ( x  1)e
 x

(1  e  ) 2
k
1  2e   e  2

- Donne une seule réponse en


présence d’un contour (contrairement
au filtre de Shen-Castan dans certains
cas)
- mais est moins précis que le filtre
de Shen-Castan

Vous aimerez peut-être aussi