Vous êtes sur la page 1sur 162

Cours de traitement d’images

(C. Achard)

Cours de traitement d’images– Catherine Achard 1


Introduction

Applications

Cours de traitement d’images– Catherine Achard 2


Application : Détection de défauts sur des bouteilles

Cassure

Cheveux d ’anges
Inclusions

Cours de traitement d’images– Catherine Achard 3


Application : Imagerie industrielle

Cours de traitement d’images– Catherine Achard 4


Application : Robotique autonome

Cours de traitement d’images– Catherine Achard 5


Application : Robotique mobile

Cours de traitement d’images– Catherine Achard 6


Et quand on passe aux séquences …

Cours de traitement d’images– Catherine Achard 7


Application : Guidage latéral de véhicules

Cours de traitement d’images– Catherine Achard 8


Surveillance de tunnels

Overview of MediaTunnel
MediaTunnel is a video-based Automatic Incident Detection (AID)
System for road tunnels. It provides Automatic Incident Detection
and Traffic Data in real time in tunnels, through video image
processing.

Slow vehicles
Pedestrians
Wrong way travelers
Debris
Loss of visibility and smoke detection

http://www.citilog.fr/products/mediatunnel.html

Cours de traitement d’images– Catherine Achard 9


Analyse de crash test

La vision appliquée à l'analyse de mouvement.


- Création de marqueurs vectoriels et suivi sur une séquence d'images.
- Tracking automatique par reconnaissance de forme (pattern matching).
- Possibilité de prédictions des mouvements par calculthéorique.
- Possibilité de sauver la séquence et les marqueurs au format AVI.
- Affichage des résultats sous forme graphique et tableurs Excel
(vitesse de déplacement, accélération, trajectoire...).
- Support de caméras rapides

http://www.alliancevision.com

Cours de traitement d’images– Catherine Achard 10


Détecter des mouvements

Cours de traitement d’images– Catherine Achard 11


Détecter des mouvements

Cours de traitement d’images– Catherine Achard 12


Reconnaître des mouvements

Cours de traitement d’images– Catherine Achard 13


Ré-identifier des personnes

Cours de traitement d’images– Catherine Achard 14


Reconnaître des mouvements

Cours de traitement d’images– Catherine Achard 15


Suivre des objets

Cours de traitement d’images– Catherine Achard 16


Suivre des gestes …

Cours de traitement d’images– Catherine Achard 17


Détecter des visages

Cours de traitement d’images– Catherine Achard 18


Reconnaître des visages

Cours de traitement d’images– Catherine Achard 19


Biométrie : reconnaissance du visage

Le composant Uraface extrait en temps réel les contours des


éléments mobiles et déformables du visage (bouche, nez, yeux, tête,
etc.) en éliminant ceux du fond et en restituant les différents signaux
correspondant à chaque élément.

http://www.uratek.fr

Cours de traitement d’images– Catherine Achard 20


Application : reconnaissances d’empreintes digitales

http://www.biometrie-online.net/
techno/empreintes/empreintes-digitales.php

Cours de traitement d’images– Catherine Achard 21


Application : Traitement de l’écrit

Cours de traitement d’images– Catherine Achard 22


Application : aériennes et satellitaires

Imagerie classique (visible) Imagerie radar (SAR)

Cours de traitement d’images– Catherine Achard 23


Application : Imagerie Bio-médicale

Microscopie optique Radiologie


http://www.med.univ-rennes1.fr/

DV_940103151033_com.html

Mammographie
cerf/iconocerf/DV/

Cours de traitement d’images– Catherine Achard 24


Application : Imagerie Bio-médicale
Imagerie cardiaque

IRM 4D flux

Echographie du cœur
avec les deux
ventricules en haut et
les oreillettes droites
et gauches en bas

IRM aorte
Rétrécissement de
l’aorte
Cours de traitement d’images– Catherine Achard 25
Robotique

Chirurgicale

Assistance
Monitoring

Cours de traitement d’images– Catherine Achard 26


Surveillance anti-noyade : le système poseidon

Le Système Poséidon™ est composé d'un réseau de caméras


hautes performances qui scrutent en permanence le volume d'eau
des bassins, et d'un système expert qui analyse en temps réel les
trajectoires des nageurs : Poséidon™ est ainsi capable de
transmettre une alerte aux surveillants dès les premières
secondes d'une possible noyade

http://www.poseidon-tech.com/
fr/system.html

Cours de traitement d’images– Catherine Achard 27


Création d’images panoramique en 2D ou 3D

Cours de traitement d’images– Catherine Achard 28


Correction d’exposition en fusionnant plusieurs expositions

Cours de traitement d’images– Catherine Achard 29


Morphing

Cours de traitement d’images– Catherine Achard 30


Télécommunication : compression d’images, de vidéo, tatouage

Un tatouage (signature) est caché dans


tif ? jpeg ? les données de l'image. Cette approche a
l'avantage de ne pas gêner la lecture de
l'image par le simple spectateur tout en
ppm ? permettant une facile identification.

wmf ?
bmp ? avi ?
gif ?

mpeg4 ? Png ?

Cours de traitement d’images– Catherine Achard 31


Renforcement de contraste

Cours de traitement d’images– Catherine Achard 32


Photographie

Filtre anti-yeux rouge


Renforcement de contraste

Cours de traitement d’images– Catherine Achard 33


Présentation des images

Cours de traitement d’images– Catherine Achard 34


Représentation des images

Présentation des images

-Représentation des images


-Histogramme et histogramme cumulé
-Images couleur
-Convention and topologie

Cours de traitement d’images– Catherine Achard 35


Représentation des images

Une image numérique est associée à :


- un échantillonnage spatial
- une quantification de l’intensité lumineuse

Image = matrice de dimension Nblignes x Nbcolonne


Chaque élément de la matrice contient la luminance du
pixel codée en niveau de gris variant de 1 à N

Souvent, on utilise 8 bits pour représenter les pixels, soit 256


niveau de gris

Cours de traitement d’images– Catherine Achard 36


Représentation des images

Effet de l’échantillonnage spatial

183x275 pixels 92x138 pixels 46x69 pixels

23x35 pixels 12x18 pixels

Cours de traitement d’images– Catherine Achard 37


Représentation des images

Effet de la quantification de la luminance en niveaux de gris

8 bits (256 ndg) 6 bits (64 ndg) 5 bits ( 32 ndg)

4 bits (16 ndg) 3 bits (8 ndg) 2 bits (4 ndg) 1 bit (2 ndg)

Cours de traitement d’images– Catherine Achard 38


Représentation des images

Importance de l’échantillonnage

En 1D

Attention quand on
échantillonne sans
En 2D
vérifier Shannon !

Cours de traitement d’images– Catherine Achard 39


Représentation des images

3 façons de représenter les images 5

10

 manière usuelle
15

20

 Comme une surface


25

30

35

 Visualiser les valeurs de la matrice 40

45

50

55
10 20 30 40 50 60 70 80

Cours de traitement d’images– Catherine Achard 40


Représentation des images

NB : Pour lire des images sous Matlab,


on utilise la commande imread() :
I=imread(‘chromosome.tif’);
Pour afficher une image en niveau de gris :
imagesc(I); colormap(gray)
Pour afficher des images comme des surfaces :
surf(I)

Cours de traitement d’images– Catherine Achard 41


Présentation des images

-Représentation des images


-Histogramme et histogramme cumulé
-Images couleur
-Convention and topologie

Cours de traitement d’images– Catherine Achard 42


Histogramme et histogramme cumulé

Histogramme
 C’est un vecteur de dimension 256.

 Chaque élément h(i) représente le nombre de pixels de l’image


possédant le niveau de gris i.

 Analogie avec la densité de probabilité des intensités lumineuses


(à un facteur de normalisation près).

Sous matlab, on calcule l’histogramme avec :


hist(I( :),[0 :255])

Cours de traitement d’images– Catherine Achard 43


Histogramme et histogramme cumulé

Histogramme cumulé

C’est un vecteur de dimension 256.

Chaque élément hc(i) représente le nombre de pixels de l’image


possédant un niveau de gris inférieur ou égal à i.

Analogie avec la fonction de répartition des niveaux de gris.

Il peut être estimé à partir de l’histogramme en faisant une somme


discrète :
i
hc(i )   h( j )
j 0

Cours de traitement d’images– Catherine Achard 44


Présentation des images

-Représentation des images


-Histogramme et histogramme cumulé
-Images couleur
-Convention and topologie

Cours de traitement d’images– Catherine Achard 45


Image couleur

Image couleur = 3 plans couleur.


Pour la plupart des caméras : Rouge, Vert, Bleu (R,V,B).
Chaque plan est codé comme une image niveaux de gris, avec des
valeurs allant de 0 à 255.
Lorsque R=V=B, la couleur associé est un niveau de gris.
Pour passer d’une image couleur à une image niveau de gris, on
réalise :

R( y, x)  V ( y, x)  B( y, x)
I ( y, x) 
3

Cours de traitement d’images– Catherine Achard 46


Image couleur

Synthèse additive des couleurs Synthèse soustractive des


utilisée pour les sources couleurs utilisée pour les
lumineuses chromatiques pigments colorés

Cours de traitement d’images– Catherine Achard 47


Image couleur

H : teinte ( varie entre 0 et 2π)


S : saturation (varie entre 0 et 1)
une couleur très saturée qui
possède une faible proportion
de blanc se trouvera loin de
l’axe des intensités
V : intensité lumineuse(varie entre 0 et 1).
Plus la valeur est faible, plus la couleur est
sombre
Cours de traitement d’images– Catherine Achard 48
Image couleur

Cours de traitement d’images– Catherine Achard 49


Image couleur

La teinte (Hue) se lit sur un cercle: elle est codée par un angle
entre 0 et 360°.
En fixant la saturation et la luminosité (Value) à leurs valeurs
maximales, on a les correspondances suivantes

Cours de traitement d’images– Catherine Achard 50


Image couleur

Dans les mêmes conditions (S = V = 1), en faisant varier


H de 0 à 360° on obtient un gradient de
couleurs

En prenant comme exemple la couleur rouge (H = 0), en


fixant V = 1 (luminosité maximale) et en faisant varier S
de 0 à 1 on obtient un gradient qui va du blanc jusqu'au
rouge vif

Cours de traitement d’images– Catherine Achard 51


Image couleur

En gardant la couleur rouge (H = 0), en fixant S = 1


(saturation maximale) et en faisant varier V de 0 à 1 on
obtient un gradient qui va du noir jusqu'au rouge vi

Si maintenant on se place au centre du cercle (S = 0 et


H quelconque) et que l'on fasse varier V de 0 à 1 on
obtient une échelle de gris

Cours de traitement d’images– Catherine Achard 52


Image couleur
Autres systèmes couleur
Système Lab
-un paramètre d'intensité (L) et de deux paramètres de chrominance.
-spécialement étudié pour que les distances calculées entre couleurs
correspondent aux différences perçues par l'œil humain.

Système YUV
- La première représente la luminance et les deux autres représentent
la chrominance
- YUV est utilisé dans les systèmes de diffusion télévisuelle PAL et
NTSC
-Le modèle YUV se rapproche beaucoup plus de la perception
humaine des couleurs que le standard RGB,

Et les autres …

Cours de traitement d’images– Catherine Achard 53


Image couleur
Couleurs indexées
Chaque pixel est caractérisé par une valeur qui pointe vers un tableau
R V B R V B

0 0 0 0 0 0 0 144
Lut niveaux Lut JET
1 1 1 1 1 0 0 160
de gris utilisée par
2 0 0 176
2 2 2 2 défaut par
3 3 3 3 Matlab 3 0 0 192

4 4 4 4 4 0 0 208

5 5 5 5 5 0 0 224

254 254 254 254 254 144 0 0

255 255 255 255 255 128 0 0

Cours de traitement d’images– Catherine Achard 54


Image couleur
Couleurs indexées
Niveaux de gris Jet

Hot Pink

Cours de traitement d’images– Catherine Achard 55


Présentation des images

-Représentation des images


-Histogramme et histogramme cumulé
-Images couleur
-Convention et topologie

Cours de traitement d’images– Catherine Achard 56


Convention et topologie

Le système de convention des axes est le suivant :


En analogique : En discret :
y
x

y
x

la ligne 0 d’une image est celle située en haut.

Cours de traitement d’images– Catherine Achard 57


Convention et topologie
Notions de topologie

L’image est représentée par un ensemble de pixels disposés sous


la forme d’une grille.
Quels sont les voisins du pixel de coordonnées (x,y) ?
Selon les applications, on prendra :
 V4 : Voisinage en 4 connexité

 V8 : Voisinage en 8 connexité
x

Cours de traitement d’images– Catherine Achard 58


Convention et topologie
Notions de topologie
Contour

Une région ou
deux régions ?

On conserve la 8-connexité des contours pour garder une 4-


connexité des régions lors des opérations de traitement d’images

Cours de traitement d’images– Catherine Achard 59


Amélioration d’images
Diminution du bruit dans les images

http://www.techno-science.net/?onglet=news&news=3493

Cours de traitement d’images– Catherine Achard 60


Amélioration d’images : Modifier l’apparence d’une image pour qu’un
observateur puisse plus facilement extraire des informations.

Diminution du bruit dans les images : Le but est de réduire le bruit présent
dans les images sans avoir de connaissance a priori sur celui-ci (aucun modèle).
Ce pré-traitement a pour but de faciliter les traitements ultérieurs dans la
chaîne.

Cours de traitement d’images– Catherine Achard 61


Amélioration, diminution du bruit dans les images

Filtrage
Amélioration d’images
-Extension de dynamique
-Correction d’exposition
-Egalisation d’histogramme
-Renforcement de la netteté

Reduction du bruit
-Filtre moyenneur
-Filtre gaussien
-Filtre médian

Cours de traitement d’images– Catherine Achard 62


Filtrage
Rappel de traitement du signal

La convolution 2D de l’image I avec un filtre F est donnée par :


+∞ +∞

𝐼 𝑥, 𝑦 ∗ 𝐹 𝑥, 𝑦 = 𝐼𝐹 𝑥, 𝑦 = 𝐼 𝑥 − 𝑛, 𝑦 − 𝑚 . 𝐹(𝑛, 𝑚)
𝑛=−∞ 𝑚=−∞
a b c
F  d e f
où F(n,m) est la réponse impulsionnelle du filtre.  
 g h i 

i h g Cette convolution est le cumul des produits terme à


f e d terme à condition de tourner les coefficients du filtre de
c b a 180° :

𝐼 𝑥 − 1, 𝑦 − 1 𝑖 + 𝐼 𝑥, 𝑦 − 1 ℎ + 𝐼 𝑥 + 1, 𝑦 − 1 𝑔 +
𝐼𝐹 𝑥, 𝑦 = 𝐼 𝑥 − 1, 𝑦 𝑓 + 𝐼 𝑥, 𝑦 𝑒 + 𝐼 𝑥 + 1, 𝑦 𝑑 +
𝐼 𝑥 − 1, 𝑦 + 1 𝑐 + 𝐼 𝑥, 𝑦 + 1 𝑏 + 𝐼 𝑥 + 1, 𝑦 + 1 𝑎

Cours de traitement d’images– Catherine Achard 63


Filtrage
Rappel de traitement du signal

Attention aux effets de bord de 1 pixel pour un filtre 3x3


L’image convoluée est plus grande que l’image initiale

NB : sous Matlab, la convolution se fait avec :


IF=conv2(I,F,’same’) ;
Des zéros sont ajoutés sur les bords de l’image,

L’option ‘same’ permet à l’image IF d’avoir la même dimension que


l’image I

Plusieurs méthodes existent pour agrandir


l’image et mieux gérer les bords :
Ajouter des zéros
Faire un miroir de l’image au niveau des
bords
Reproduire les derniers pixels contour

Cours de traitement d’images– Catherine Achard 64


Amélioration, diminution du bruit dans les images

-filtrage
-Amélioration d’images
-Extension de dynamique
-Correction d’exposition
-Egalisation d’histogramme
-Renforcement de la netteté

Reduction du bruit
-Filtre moyenneur
-Filtre gaussien
-Filtre médian

Cours de traitement d’images– Catherine Achard 65


Extension de dynamique

Luminances bornées à (Gmin, Gmax)  Ajustement linéaire à (0, 255).

Cette étendue réduite de niveaux de gris peut survenir suite à un temps de pose
incorrecte ou à un éclairage de la scène trop faible.
La transformation mise en place est :
I ( x, y )  G min
I '( x, y )  * 255
G max  G min

G’
255

0 G
Gmin Gmax

Cours de traitement d’images– Catherine Achard 66


Extension de dynamique

Exemple

Cours de traitement d’images– Catherine Achard 67


Amélioration, diminution du bruit dans les images

-filtrage
-Amélioration d’images
-Extension de dynamique
-Correction d’exposition
-Egalisation d’histogramme
-Renforcement de la netteté

Reduction du bruit
-Filtre moyenneur
-Filtre gaussien
-Filtre médian

Cours de traitement d’images– Catherine Achard 68


Correction d’exposition

On peut aussi être amené à vouloir renforcer certaine plage de niveaux de gris,
au détriment d’autres plages pour mettre certains objets en valeur.
Dans ce cas, la transformation des luminances n’est plus linéaire.
Exemple pour renforcer la présence des éléments d’un circuit électrique, on
décide de renforcer la gamme des niveaux de gris sombres :

Cours de traitement d’images– Catherine Achard 69


Amélioration, diminution du bruit dans les images

-filtrage
-Amélioration d’images
-Extension de dynamique
-Correction d’exposition
-Egalisation d’histogramme
-Renforcement de la netteté

Reduction du bruit
-Filtre moyenneur
-Filtre gaussien
-Filtre médian

Cours de traitement d’images– Catherine Achard 70


Egalisation d’histogramme

Cette opération à pour but de rendre l’histogramme le plus plat possible.


On souhaite ainsi que chaque niveau de gris soit également représenté
dans l’image.
hc(Inew)
hc(I)

NbPix NbPix

hc(G)

Gnew G 255
255

255
Gnew  hc (G )
NbPix

Cours de traitement d’images– Catherine Achard 71


Cours de traitement d’images– Catherine Achard 72
Egalisation d’histogramme

Cours de traitement d’images– Catherine Achard 73


Egalisation d’histogramme

Zone d’intérêt

Ajustement de dynamique

Cours de traitement d’images– Catherine Achard 74


Egalisation d’histogramme

Histogramme de l’image originale

Cours de traitement d’images– Catherine Achard 75


Egalisation d’histogramme

Zone d’intérêt

Égalisation d’histogramme

Cours de traitement d’images– Catherine Achard 76


Egalisation d’histogramme

Histogramme de l’image originale

Histogramme de l’image ‘égalisée’

Cours de traitement d’images– Catherine Achard 77


Amélioration, diminution du bruit dans les images

-filtrage
-Amélioration d’images
-Extension de dynamique
-Correction d’exposition
-Egalisation d’histogramme
-Renforcement de la netteté

Reduction du bruit
-Filtre moyenneur
-Filtre gaussien
-Filtre médian

Cours de traitement d’images– Catherine Achard 78


Renforcement de la netteté

Ce traitement est utile pour supprimer les effets de flou dus, par exemple, à un
bougé

Le traitement local prend en compte le voisinage de chaque pixel

Le renforcement de la nettetéest basé sur un calcul de laplacien

Cours de traitement d’images– Catherine Achard 79


Renforcement de la netteté

Exemple en 1D
Signal

Dérivée première

Dérivée seconde

Cours de traitement d’images– Catherine Achard 80


Renforcement de la netteté

Exemple en 1D
Signal

Dérivée première

Dérivée seconde

Signal – K* dérivée seconde

Cours de traitement d’images– Catherine Achard 81


Renforcement de la netteté

Exemple en 1D
K petit

Selon les valeurs du

paramètres K, on peut
K moyen
accentuer plus ou

moins le phénomène

K grand

Cours de traitement d’images– Catherine Achard 82


Renforcement de la netteté

Considérons un signal discret monodimensionnel I(x). Sa dérivée


première s’exprime par :
 
I ' x  1  I ( x )  I ( x  1)
2
et
 
I ' x  1  I ( x  1)  I ( x )
2

Sa dérivée seconde s’exprime par :


I ''( x )  I ' x  1
2   I '  x  1   I ( x  1)  2 I ( x )  I ( x  1)
2

Cours de traitement d’images– Catherine Achard 83


Renforcement de la netteté

Dans le cas d’un signal à deux dimensions, on utilise le Laplacien défini par :

𝜕𝐼2(𝑥,𝑦) 𝜕𝐼2(𝑥,𝑦)
∆𝐼 𝑥, 𝑦 = + = 𝐼 𝑥 − 1, 𝑦 + 𝐼 𝑥 + 1, 𝑦 + 𝐼 𝑥, 𝑦 + 1 − 4𝐼(𝑥, 𝑦)
𝜕𝑥2 𝜕𝑦2

Ce qui correspond à une convolution avec le masque :

0 1 0
1 4 1
0 1 0

Cours de traitement d’images– Catherine Achard 84


Renforcement de la netteté

Modification du profil de l'échelon (section)

K=1

Exemple sur un profil bruité avec K=0.5

Si le signal est bruité, le bruit est amplifié

--> Grande sensibilité au bruit

Cours de traitement d’images– Catherine Achard 85


Renforcement de la netteté

Cours de traitement d’images– Catherine Achard 86


Réduction du bruit dans les images

Cours de traitement d’images– Catherine Achard 87


Amélioration, diminution du bruit dans les images

-filtrage
-Amélioration d’images
-Extension de dynamique
-Correction d’exposition
-Egalisation d’histogramme
-Renforcement de la netteté

Reduction du bruit
-Filtre moyenneur
-Filtre gaussien
-Filtre médian

Cours de traitement d’images– Catherine Achard 88


Filtre linéaire - Moyenne

Le moyen le plus simple de réaliser un lissage consiste à faire un


moyennage de zone. Cette opération est réalisée grâce à une
convolution de l’image avec un masque moyenneur :
𝑰𝑭(𝒙, 𝒚) = 𝑰(𝒙, 𝒚) ∗ 𝑴(𝒙, 𝒚)

On peut ainsi décider de lisser faiblement avec le masque 3x3 suivant :


1 1 1
𝑀 𝑥, 𝑦 = 1/9 1 1 1
1 1 1

ou de lisser plus fortement avec la masque 5x5 suivant :

1 1 1 1 1
1 1 1 1 1
𝑀 𝑥, 𝑦 = 1/25 1 1 1 1 1
1 1 1 1 1
1 1 1 1 1

Cours de traitement d’images– Catherine Achard 89


Filtre linéaire - Moyenne

Effet de flou

Cours de traitement d’images– Catherine Achard 90


Amélioration, diminution du bruit dans les images

-filtrage
-Amélioration d’images
-Extension de dynamique
-Correction d’exposition
-Egalisation d’histogramme
-Renforcement de la netteté

Reduction du bruit
-Filtre moyenneur
-Filtre gaussien
-Filtre médian

Cours de traitement d’images– Catherine Achard 91


Filtre linéaire– Filtre gaussien
Le filtrage gaussien consiste à convoluer l’image avec un masque
gaussien :
𝐼𝐹 𝑥, 𝑦 = 𝐼 𝑥, 𝑦 ∗ 𝐺(𝑥, 𝑦)

L’expression de la gaussienne en deux dimensions est donnée par :


1 𝑥2 + 𝑦2
𝐺 𝑥, 𝑦 = 2
𝑒𝑥𝑝 −
2𝜋𝜎 2𝜎2

L’intérêt du filtre gaussien est que l’on règle très facilement le degré de
filtrage à travers le paramètre σ.

Exemple de masque gaussien :

σ=1 σ=2 σ=3

Cours de traitement d’images– Catherine Achard 92


Filtre linéaire– Filtre gaussien

Tous ces masques ont été calculés sur un voisinage de taille 41x41 mais
on voit sur les figures précédentes que la taille du masque peut-être
réduite ou augmentée en fonction de σ .

En théorie, la gaussienne a une étendue infinie, mais en pratique, on


limite cette étendue [–3σ,3σ] car la plupart de la puissance est dans cette
zone (on trouve parfois [–4σ,4σ] ).

Par rapport au filtre moyenneur, le filtre gaussien accorde une grande


importance aux pixels proches du pixel central, et diminue cette
importance au fur et à mesure que l’on s’éloigne de celui-ci.

Même effet de flou que le filtre moyenneur

Cours de traitement d’images– Catherine Achard 93


Filtre linéaire– Filtre gaussien

σ=1 σ=2 σ=3

Masque 7x7 Masque 13x13 Masque 19x19

x= ? y= ? σ= ?
1 𝑥2 + 𝑦2
G(x,y)= 2
𝑒𝑥𝑝 − 2
=? ? ?
2𝜋𝜎 2𝜎
Cours de traitement d’images– Catherine Achard 94
Filtre linéaire– Filtre gaussien

Rmq : plus σ augmente, plus le flou augmente, On utilise beaucoup le filtre


gaussien dans un contexte de multi-résolution :

50 50 50

100 100 100

150 150 150

200 200 200

250 250 250

300 300 300

350 350 350

50 100 150 200 250 300 350 400 450 500 50 100 150 200 250
σ=1
300 350 400 450 500 50 100 150 200 250
σ=2
300 350 400 450 500

50 50 50

100 100 100

150 150 150

200 200 200

250 250 250

300 300 300

350 350 350

50 100 150
σ=3
200 250 300 350 400 450 500 50 100 150 200
σ=4
250 300 350 400 450 500 50 100 150 200
σ=5
250 300 350 400 450 500

Cours de traitement d’images– Catherine Achard 95


Amélioration, restauration et diminution du bruit dans les images

-filtrage
-Amélioration d’images
-Extension de dynamique
-Correction d’exposition
-Egalisation d’histogramme
-Renforcement de la netteté

Reduction du bruit
-Filtre moyenneur
-Filtre gaussien
-Filtre médian

Cours de traitement d’images– Catherine Achard 96


Filtre d’ordre - Médiane

Ce filtre étant non linéaire, il ne peut pas être réalisé avec une convolution 2D
de l’image. Considérons un voisinage rectangulaire autour du pixel d’intérêt.
Le filtre médian consiste à prendre la valeur de niveaux de gris séparant la
population en deux effectifs égaux.
Exemple :

10 10 7

9 12 10

12 10 7

7-7-9-10-10-10-10-12-12
 median value : 10
Ce filtre donne de très bons résultats de part son principe sur le bruit
impulsionnel (type poivre et sel).
Cours de traitement d’images– Catherine Achard 97
Filtre d’ordre - Médiane

Cours de traitement d’images– Catherine Achard 98


Filtre d’ordre - Médiane

Problèmes de la médiane

Problème de la médiane :

La médiane
- elle supprime
supprime les points isolés
les détails

- elle enlève les points isolés


--> Opérateur optimal pour le bruit
-Elle est impulsionnel
coûteuse en temps
de calcul
--> Supprime les détails fins

--> Impose un tri (temps de calcul)


On va rechercher un opérateur qui remédie à ces inconvénients
sans détériorer les contours

Cours de traitement d’images– Catherine Achard 99


Contour

Les contours

Cours de traitement d’images– Catherine Achard 100


Approche gradient

Signal

Dérivée

 Recherche des maxima locaux du gradient

Cours de traitement d’images– Catherine Achard 101


Approche gradient

Dans le cas 2D des images, le vecteur gradient est défini au


point de coordonnées (x,y) par :
𝜕𝐼(𝑥, 𝑦)
𝜕𝑥 𝐼𝑥 (𝑥, 𝑦)
𝛻𝐼 𝑥, 𝑦 = 𝜕𝐼(𝑥, 𝑦) =
𝐼𝑦(𝑥, 𝑦)
𝜕𝑦
Le module du gradient est défini par :
𝛻𝐼 𝑥, 𝑦 = 𝐼𝑥 𝑥, 𝑦 2 + 𝐼𝑦 𝑥, 𝑦 2
tandis que son orientation est définie par :
𝐼𝑦 𝑥, 𝑦
Φ 𝑥, 𝑦 = 𝑎𝑟𝑐𝑡𝑎𝑛
𝐼𝑥 𝑥, 𝑦

Cours de traitement d’images– Catherine Achard 102


Approche gradient

Image originale Image originale


sous forme surfacique

Gradient et
orientation

Gradient

Cours de traitement d’images– Catherine Achard 103


Approche gradient

Calcul direct des dérivées

Il est réalisé de la façon la plus simple qu’il soit :


𝐼𝑥(𝑦, 𝑥) = 𝐼(𝑦, 𝑥 + 1) − 𝐼(𝑦, 𝑥) = 𝐼(𝑥, 𝑦) ∗ 𝑑𝑥(𝑦, 𝑥)
𝐼𝑦(𝑦, 𝑥) = 𝐼(𝑦 + 1, 𝑥) − 𝐼(𝑦, 𝑥) = 𝐼(𝑥, 𝑦) ∗ 𝑑𝑦(𝑦, 𝑥)

−1
Ce qui correspond à une convolution avec : 𝑑𝑥(𝑥, 𝑦) = −1 1 et 𝑑𝑦(𝑥, 𝑦) =
1
Problème du point central
−1
 𝑑𝑥(𝑥, 𝑦) = −1 0 1 et 𝑑𝑦(𝑥, 𝑦) = 0
1
Problème du bruit:
Les dérivées sont très sensibles au bruit:
Signal Dérivée

Cours de traitement d’images– Catherine Achard 104


Approche gradient

Masque de Prewitt (1970)

Les masques dérivateur sont maintenant :


−1 0 1 1 Lissage des lignes
𝑑𝑥(𝑥, 𝑦) = −1 0 1 = 1 ∗ −1 0 1 et dérivée des colonnes
−1 0 1 1

−1 −1 −1 −1 Dérivée des lignes


𝑑𝑦(𝑥, 𝑦) = 0 0 0 = 0 ∗ 1 1 1 et lissage des colonnes
1 1 1 1

On combine à la fois un filtrage et une dérivée


 moins sensible au bruit que le calcul direct des dérivées.

Cours de traitement d’images– Catherine Achard 105


Approche gradient

Masque de Sobel (1968)

Même principe mais autre filtrage préalable

−1 0 1 1
𝑑𝑥(𝑥, 𝑦) = −2 0 2 = 2 ∗ −1 0 1
−1 0 1 1

−1 −2 −1 −1
𝑑𝑦(𝑥, 𝑦) = 0 0 0 = 0 ∗ 1 2 1
1 2 1 1

Cours de traitement d’images– Catherine Achard 106


Approche gradient
Comparaison

Gradient simple

Gradient de
Sobel

Cours de traitement d’images– Catherine Achard 107


Approche gradient

Dérivée de gaussienne
Le filtrage précédent la dérivation peut être réalisé grâce à un masque gaussien
G. Dans ce cas, le calcul de la dérivée en x se fait par :

𝜕 𝐼 𝑥, 𝑦 ∗ 𝐺 𝑥, 𝑦
𝐼𝑥 𝑥, 𝑦 =
𝜕𝑥
𝜕𝐺(𝑥,𝑦)
=I(x,y)*
𝜕𝑥
= 𝐼 𝑥, 𝑦 ∗ 𝐺 𝑥, 𝑦 ∗ 𝑑𝑥 𝑥, 𝑦
= 𝐼(𝑥, 𝑦) ∗ 𝐺𝑥 (𝑥, 𝑦)

Mais on peut aussi calculer la dérivée de la gaussienne de manière analytique :

1 𝑥2 + 𝑦2
𝐺 𝑥, 𝑦 = 2
𝑒𝑥𝑝 −
2𝜋𝜎 2𝜎 2
𝜕𝐺 𝑥,𝑦 𝑥 𝑥 2 +𝑦 2
Et donc 𝐺𝑥(𝑥, 𝑦) = = − 𝑒𝑥𝑝 −
𝜕𝑥 2𝜋𝜎 4 2𝜎 2

Le paramètre σ règle le degré de lissage.


Cours de traitement d’images– Catherine Achard 108
Approche gradient

Dérivée de gaussienne

Connaissant l’expression analytique, on calcule les coefficients du masque

𝜕𝐺 𝑥, 𝑦 𝑥 𝑥2 + 𝑦2
Gx(x,y)= =− 𝑒𝑥𝑝 −
𝜕𝑥 2𝜋𝜎 4 2𝜎 2

Le paramètre σ règle le degré de lissage et la taille du masque.

Cours de traitement d’images– Catherine Achard 109


Approche gradient

Dérivée de gaussienne

Dualité filtrage / raideur de la transition :


Faible lissage Fort lissage

gradient

Faible lissage = pic de haute amplitude et étroit


 contours fins, beaucoup de bruit dans la dérivée.
Fort lissage = pic de plus faible amplitude et beaucoup plus large
contour épais, gradient moins perturbé par le bruit.

Cours de traitement d’images– Catherine Achard 110


Approche gradient

Seuillage

Une fois la norme du gradient calculée en chaque point de l’image, il faut


seuiller cette norme pour décider si un pixel fait partie ou non d’un contour.

Tous les pixels possédant une norme supérieure à un seuil S sont déclarés
appartenir à un contour.

Tout le problème réside alors dans le choix du seuil :

- un seuillage trop bas nous amène à une sur- détection : on détecte beaucoup
de bruit et des contours épais apparaissent

- Un seuillage trop haut amène à une sous-détection : contours non fermés

Cours de traitement d’images– Catherine Achard 111


Approche gradient

Exemple de seuillage

Cours de traitement d’images– Catherine Achard 112


Approche gradient

Exemple de seuillage
Gradient Seuillage à 10
50
50

100
100

150
150

200
200

20 40 60 80 100 120 140 160 180 200 220


20 40 60 80 100 120 140 160 180 200 220

Seuillage à 15 Seuillage à 20
50
50

100
100

150
150

200
200

20 40 60 80 100 120 140 160 180 200 220


20 40 60 80 100 120 140 160 180 200 220

Cours de traitement d’images– Catherine Achard 113


Approche gradient

Exemple de seuillage Sobel


seuil = 15
 contours épais

seuil = 25
 lacunes
mais tjrs épais

Cours de traitement d’images– Catherine Achard 114


Approche gradient

Ce seuillage simple donne des contours souvent épais


 ne conserver que les maxima locaux
 Lignes de crêtes

seuil Max local dans une des 8 directions:


• Max strict sur 3 pts :
y(i-1) < y(i) > y(i+1)
1 égalités accidentelles  tolérance, sinon rupture de 8-
0 connexité
• max local non strict sur 4 pts:
1 y(i-1) < y(i) ≥ y(i+1) > y(i+2)
0

 lignes de crêtes de la détection

Cours de traitement d’images– Catherine Achard 115


Approche gradient

Sobel
seuil = 15
 contours épais

seuil = 25
 lacunes
mais tjrs épais

seuil = 15
+ lignes de crête
 contours fins

Cours de traitement d’images– Catherine Achard 116


Approche gradient

Sobel seuil 15 puis lignes de crêtes

Cours de traitement d’images– Catherine Achard 117


Morphologie mathématique

Cours de traitement d’images– Catherine Achard 118


Morphologie mathématique

Binarisation d’images

Notions de morphologie mathématique

Cours de traitement d’images– Catherine Achard 119


Images bimodales : binarisation

Cas particulier important par ses applications : Vision industrielle, temps réel

 Choix du seuil

Cours de traitement d’images– Catherine Achard 120


Binarisation : utilisation de l’histogramme

Cours de traitement d’images– Catherine Achard 121


Binarisation : minimisation de l’erreur

Hypothèse :

 2 classes C0 et C1

 N0 et N1 : effectifs

 m0 et m1 : moyennes des gaussiennes

 Vb : Variance des gaussiennes : même variance car bruit stationnaire

On recherche le seuil S0 qui minimise la probabilité d’erreur :

Cours de traitement d’images– Catherine Achard 122


Binarisation : minimisation de l’erreur


1  ( S  m0 ) 2 
Pe0 
2  Vb
S 0 exp   2 Vb  dS
C0
Pe0

1
S0
 ( S  m1 ) 2 
Pe1 
2  Vb  exp   2 Vb  dS
C1

m0 m1
S0

Perreur  Pe0 . P (C0 )  Pe1 . P (C1 )

Cours de traitement d’images– Catherine Achard 123


Binarisation : minimisation de l’erreur

dPerreur 1   ( S0  m0 ) 2   ( S0  m1 ) 2  
   P (C0 ) exp     P (C1 ) exp     0
dS 2  Vb   2 Vb   2 Vb  

( S0  m0 ) 2 ( S0  m1 ) 2
ln( P (C0 ))   ln( P (C1 )) 
2 Vb 2 Vb

m0  m1 Vb  P (C0 ) 
 S0   ln  
2 m1  m0  P (C1 
)

Cours de traitement d’images– Catherine Achard 124


Binarisation : minimisation de l’erreur

m0  m1 Vb  P (C0 ) 
S0   ln  
2 m1  m0  P (C1 ) 
S0 = moy. Des ndg

Deux classes C0 et C1

Calcul de m0, m1, P(C0),P(C1) et Vb

Estimation de S0

Jusqu’à stabilisation

Cours de traitement d’images– Catherine Achard 125


Morphologie mathématique

Binarisation d’images

Notions de morphologie mathématique

Cours de traitement d’images– Catherine Achard 126


Morphologie mathématique

C’est une théorie ensembliste


Sx
Notations et définitions
x
 Objets : X = { x / x = 1 }
 Fonds : ~X = { x / x = 0 }
 Élément structurant :
Sx caractérisé par ses dimensions et sa forme
Son centre x est le point d’application de l’opération locale

0
01

Cours de traitement d’images– Catherine Achard 127


Morphologie mathématique

Dilatation morphologique

X ⊕S = { x / Sx  X   }
Exercice :
Dilater l’objet ci-contre avec
l’élément structurant :

Cours de traitement d’images– Catherine Achard 128


Morphologie mathématique

Érosion morphologique

X⊖S = { x / Sx  X }
Exercice :
Eroder l’objet ci-contre avec
l’élément structurant :

Cours de traitement d’images– Catherine Achard 129


Morphologie mathématique

Interprétation avec un élément structurant particulier

Sx : disque centré au point d’application, de rayon 1


2 formes :  Sx8 si 8-connexité V8
 Sx4 si 4-connexité V4

dilatation :  x = 0, si  1 point de VN = 1  x = 1
Croissance de 1 pixel

érosion :  x = 1, si  1 point de VN = 0  x = 0
 contraction de 1 pixel

Cours de traitement d’images– Catherine Achard 130


Algorithme basé sur la convolution

Dilatation

X ⊕ S = { x / Sx  X   }
 X ⊕ S = ( S * Image)  0

Erosion
X ⊖ S = { x / Sx  X }
 X⊖S = ( S * Image) = Card(S)

Cours de traitement d’images– Catherine Achard 131


Cascade d’opérations

Ouverture : X○S = (X⊖S)⊕S


Fermeture : X ● S = ( X ⊕ S ) ⊖ S

Exercice : A quoi ca sert ??

Cours de traitement d’images– Catherine Achard 132


Exemple

Binarisation

Image source

Cours de traitement d’images– Catherine Achard 133


Exemple

Image
source

Dilatation
Érosion

Cours de traitement d’images– Catherine Achard 134


Exemple

Image
source

Fermeture
Ouverture (érosion
(dilatation puis
puis dilatation)
érosion)

Cours de traitement d’images– Catherine Achard 135


Exemple : détection des composants

Érosion de l ’image
L ’élément structurant
est de taille 40x30

Dilatation avec le
même élément
structurant

Report sur l’image initiale

Cours de traitement d’images– Catherine Achard 136


Sélection d’objets de petite taille face à S

X- (X○S)

Cours de traitement d’images– Catherine Achard 137


Contours intérieurs ou extérieurs :

X - ( X ⊖ S )  Contour intérieur

( X ⊕ S ) – X  Contour extérieur

Image binaire Contours extérieurs

Cours de traitement d’images– Catherine Achard 138


Etiquetage en composantes connexes

Etiquetage de chaque
région par un numéro
7 régions

Image des attributs

Image des étiquettes


Cours de traitement d’images– Catherine Achard 139
Etiquetage en composantes connexes

On veut regrouper tous les pixels connexes appartenant aux objets.

Pour cela, on balaye l’image et donne une étiquette à chaque nouveau pixel C.

Pixels A et B déjà étiquetés

A
B C Pixel C à étiqueter

Cours de traitement d’images– Catherine Achard 140


Etiquetage en composantes connexes

Etiquette = numéro identique attribué à chaque pixel d’une


A même composante connexe. La visualisation de l’image des
BC étiquettes attribue donc une couleur par région.
 procédure d’étiquetage ou de coloriage des régions
Principe : balayage de l’image par un motif 3 pixels ( A,B,C )

Si C = 0 : pixel du fond, il reste invariant


Si C ≠ 0 : les étiquettes de A et B déjà fixées
imposent l’étiquette du pixel C
=1
=2
NB : initialiser bordures haute / gauche à 0
=3  N = Nbre étiquettes ( initialisé à 0 )
C1 C2
C3 C4
C5 C6 C7
C1 C2 C3 C4 C5 C6 C7
A=0,B=0 A=0,B=1 A=1,B=0 A=B=1 A=0,B=0 A=1,B=2 A=0,B=0

N=N+1 C=B=1 C=A=1 C=A=1 N=N+1 C=min(A,B)=1 N=N+1


C=N=1 C=N=2 et équivalence C=N=3
max(A,B) ~ C
2~1

Cours de traitement d’images– Catherine Achard 141


Etiquetage en composantes connexes

Gestion des équivalences =1


=2
En cas d’équivalence ( exemple 2 ~ 1 ), deux solutions: =3
 retour en arrière et ré-écriture de tous les « 2 » … lent !
 mémorisation dans table puis second balayage : étiquette  équivalent ( étiquette )
Chaque ligne de la table d’équivalence est initialisée par son numéro :

EQ EQ EQ
0 0 0
1 1 1
2 1 renumérotation pour 1
3 2~1 numéros consécutifs 2
3

re-étiquetage

pix = EQ( pix )

Cours de traitement d’images– Catherine Achard 142


Etiquetage en composantes connexes

RUPTURE DE CHAÎNE D’EQUIVALENCES


=1
Rupture de la chaîne d’équivalence : =2
=3
en C1 : 3 ~ 2 puis en C2 : 3 ~ 1  avec l’algorithme C = min(A,B); EQ( max(A,B) ) = C

EQ
0 0 0
1 1 1 Pb : « 2 » reste isolé
C1 2 2 2 or 2 ~ 1 !
C2 C1 C2
3 2 1

Solution : avec une nouvelle formulation complétée:


si A≠0, B≠0  A = EQ(A); C = min( A,B ); EQ(A) = EQ(B) = C

EQ
0 0 0
1 1 1
La connexité de « 2 » et « 1 » est résolue
2 2 1
reste le chaînage 3 ~ 2 sans problème
3 C1 2 C2 2
c’est la forme finale de l’algorithme

A=2, B=3 A=3, B=1


A=EQ(A)=2 A=EQ(A)=2

Cours de traitement d’images– Catherine Achard Images binaires - 143


Etiquetage en composantes connexes

Algorithme évolué d’étiquetage

Mise à jour de la table de correspondance :


Vraies régions tq EQ(i)=i. On les numérote par ordre croissant.
Pour les autres régions EQ(i) = EQ(EQ(i))

Deuxième balayage :
A chaque pixel d’étiquette i, on affecte l’étiquette EQ(i).

Cours de traitement d’images– Catherine Achard 144


Exemple
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Cours de traitement d’images– Catherine Achard 145
Exemple
1
2
3
4
5
6
7
8
Mise à jour de la table de correspondance 9
10
11
12
13
14
15
16
17
18
19
20
Cours de traitement d’images– Catherine Achard 146
Exemple
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Cours de traitement d’images– Catherine Achard 147
Le mouvement

Cours de traitement d’images– Catherine Achard 148


Applications

La détection du mouvement est utilisée dans de nombreuses


applications :
-la télésurveillance : trafic routier, intrusion dans une zone,
analyse du comportement de personnes, surveillance à
distance de personnes âgées, étude du geste sportif,…
-La robotique: détection d’obstacle, analyse du mouvement
d’un robot, suivi de cibles
-La compression : détecter les zones immobiles dans une
séquence pour les coder une seule fois
-Imagerie biomédicale : guidage d'actes médicaux (suivi
d'aiguille lors de biopsie par exemple), aide au diagnostic
(détection de nécroses dans le cœur par ex,...)

Cours de traitement d’images– Catherine Achard 149


Le mouvement

Application
Détection par différence d’images successives
Détection avec une image de référence
Filtrage temporel
 Modélisation gaussienne

Cours de traitement d’images– Catherine Achard 150


Détection du mouvement par différences successives

Comment détecter les zones en mouvement dans une scène ?

Par différence d’images entre deux images successives :

0 si I t ( x ) - I t 1 ( x )  seuil
Dt ( x )   avec x =  x, y 
1 sinon

Où It(x) est l’image à l’instant t

Cours de traitement d’images– Catherine Achard 151


Détection du mouvement par différences successives

temps t temps t+1

Cours de traitement d’images– Catherine Achard 152


Détection du mouvement par différences successives

Image de différence Image de différence seuillée

Problème :
si le mouvement est de faible amplitude, on détecte
seulement les contours de l’objet en mouvement

Si le mouvement a une forte amplitude, on détecte deux


fois la forme : là où elle a disparue et là où elle est apparue

Cours de traitement d’images– Catherine Achard 153


Le mouvement

Application
Détection par différence d’images successives
Détection avec une image de référence
Filtrage temporel
Modélisation gaussienne

Cours de traitement d’images– Catherine Achard 154


Détection avec une image de référence

0 si I t ( x ) - F ( x )  seuil
Dt ( x )   avec x =  x, y 
1 sinon
Où F(x) est l’image de référence

Cours de traitement d’images– Catherine Achard 155


Détection avec une image de référence

Image de différence Image de différence seuillée

Meilleurs résultats.
Problèmes lorsque l’objet a une couleur similaire au fond
Problèmes lorsque le fond évolue

Cours de traitement d’images– Catherine Achard 156


Le mouvement

Application
Détection par différence d’images successives
Détection avec une image de référence
Filtrage temporel
Modélisation gaussienne

Cours de traitement d’images– Catherine Achard 157


Filtrage temporel médian

L’image de référence F(x) est composée de la médiane des N


dernières images

Pb: nécessite de stocker les N dernières images en mémoire

Cours de traitement d’images– Catherine Achard 158


Filtrage temporel

 L’image de référence est initialisée avec la première image

 Puis, mise à jour de l’image de référence :

Ft+1 (x )= I t ( x )  (1   ) Ft ( x )

Où α est le paramètre d’apprentissage (généralement entre 0.01 et 0.1)

Pb : quelle valeur de α choisir ? Quel seuil choisir pour la


détection ?

Cours de traitement d’images– Catherine Achard 159


Le mouvement

Application
Détection par différence d’images successives
Détection avec une image de référence
Filtrage temporel
Modélisation gaussienne

Cours de traitement d’images– Catherine Achard 160


Modélisation gaussienne

Chaque pixel est modélisé par une gaussienne (t(x), t(x))

 Mise à jour des paramètres par :

t ( x )   I t ( x )  (1   ) t 1 ( x )
 t ( x )    I t ( x )  t ( x )   (1   ) t21 ( x )
2

Un pixel est détecté comme un objet si

I t ( x )   t ( x )  k t
k est un paramètre (typiquement 2,5)

Cours de traitement d’images– Catherine Achard 161


Modélisation gaussienne

Avantages:

-Peu de place mémoire (t(x), t(x))

-Seuil adaptatif en fonction des pixels

Inconvénient:
- Hypothèse gaussienne valide ?

Cours de traitement d’images– Catherine Achard 162

Vous aimerez peut-être aussi