Cours de Traitement d`Images

Transcription

Cours de Traitement d`Images
Plan de l’exposé
Cours de Traitement d’Images
de Xavier Clady
9Introduction
9Exemple d’application de l’imagerie
9Élément de traitement du signal
9Rotation d’images
9Zoom
9Renforcement de contraste
9Lissage
(rédigé par: X. Clady, C. Achard, J.Devars & M.Milgram)
Transparent 1
Transparent 2
Imagerie Électronique
Contrôle par l’image
Traitement et interprétation des images
- Codage / compression (transmission / archivage)
- Amélioration d'images (subjectif / visuel)
- Vision par ordinateur
+ Contrôle (binarisation)
+ Métrologie (segmentation)
+ Identification (2D / 3D / RdF)
+ Interprétation (RdF, ...)
- Traitement binaire
- Temps réel vidéo
Contrôle de production
rejet
Image calculée
OK
- Graphisme 2D et 3D
- Infographie
- Réalité virtuelle
Mouvement
continu
Contrôle de circuit
Systèmes de traitement
0
Capteurs d'images
- Vidéo, thermique
- Imagerie X
- Imagerie d'écho (radar / sona
- Imagerie de comptage
Transparent 3
Problème de coupures et liaisons :
6
1
- Segmentation (contours / régions)
3
4
5
2
- Mesure (périmètre / surface)
Transparent 4
1
Vision 2D – Identification / Localisation
B
Vrac
planaire
- Segmentation
A
- Reconnaissance des formes
- Comptage / mesure
D
Vision 3D : Mono-capteur et stéréovision
Mono-capteur
9Segmentation
9Extraction de primitives
9Identification du modèle
9Correspondance primitives / modèle
Stéréovision – 2 capteurs G / D
C
9Extraction de primitives G / D
9Correspondance
des primitives G / D
9Modèle de capteurs
9Triangulation
E
Problèmes :
9 A / B : rotation – translation
9 A / C : Symétries
9 D / E : Occlusions
Transparent 5
Détection de défauts sur des bouteilles
Capteur linéaire
M
ou
ve
m
en
t
Barrettes linéaires : Applications spécifiques
Transparent 6
Cassure
Contrôle de fabrication
en temps réel
Cheveux d ’anges
SPOT
Inclusions
Images :
- niveaux de gris de 6000 x 6000
- couleur de 3 x 3000 x 3000
Trajectoire
60 km
Transparent 7
Transparent 8
2
Exemples d’images numériques - Imagerie industrielle
Exemples d’images numériques – Restauration vidéo
Elimination de l’effet de pompage (flicker = variation anormale
de la luminance des images → battement lumineux).
Rory O’More
(Pitié, Dahyot, Kokaram,
Gretsi’03)
Vidéo originale
Transparent 9
Exemples d’images numériques - Robotique autonome
Transparent 11
Vidéo restaurée
Transparent 10
Exemples d’images numériques - Robotique mobile
Transparent 12
3
Exemples d’images numériques - Robotique mobile
Surveillance passive de trajectoire : Détermination du point
d'impact entre le véhicule et les bords de la voie de circulation
en considérant la trajectoire du véhicule comme étant rectiligne
Exemples d’images numériques - Robotique mobile
Système de perception par vision monoculaire, pour un
régulateur de vitesse adaptatif. (Le régulateur permettant à
une voiture de gérer sa vitesse, afin respecter les distances de
sécurité entre véhicules)
Transparent 13
Exemples d’images numériques - Robotique mobile
Transparent 14
Exemples d’images numériques -Imagerie Bio-médicale
Microscopie optique
Aide au guidage d'engins agricoles
Transparent 15
Radiologie
Transparent 16
4
Exemples d’images aériennes et satellitaires
Imagerie classique (visible)
Exemples d’images numériques - Traitement de l’écrit
Imagerie radar (SAR)
Transparent 17
Transparent 18
Représentation des images
Représentation des images
Image = matrice de dimension (nb lignes x nb colonnes)
contenant le niveau de gris de chaque pixel
Niveau de gris compris
entre 0 et 255 (8 bits).
0 pour le noir et 255 pour le blanc
3 façons de représenter les images
-manière usuelle
-Comme une surface
-Visualiser les valeurs de la matrice
5
10
15
20
25
30
35
40
45
50
55
10
Transparent 19
20
30
40
50
60
70
80
Transparent 20
5
Représentation des images
Histogramme de l’image
9C’est un vecteur de dimension 256.
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)
Pour afficher des images comme des surfaces :
surf(I)
9Chaque élément h(i) représente le nombre de pixels de l’image
possédant le niveau de gris i.
9Analogie avec la densité de probabilité des intensités lumineuses
(à un facteur de normalisation près).
Transparent 21
Histogramme de l’image
Histogramme de l’image de chromosome :
Transparent 22
Histogramme cumulé de l’image
9C’est un vecteur de dimension 256.
5
10
15
20
12000
9Chaque élément hc(i) représente le nombre de pixels de l’image
possédant un niveau de gris inférieur ou égal à i.
25
30
35
10000
40
45
50
8000
55
10
6000
4000
2000
0
20
30
40
50
60
70
80
9Beaucoup de niveaux de
gris entre 230 et 256 ( fond).
0
50
100
150
200
250
300
9Zone de niveaux de gris
autour de 150 : objet
9Analogie avec la fonction de répartition des niveaux de gris.
9Il peut-être estimé à partir de l’histogramme en faisant une
somme discrète :
i
hc(i ) = ∑ h( j )
j =0
Sous matlab, on calcule l’histogramme avec :
hist(I( :),[0 :255])
Transparent 23
Transparent 24
6
Histogramme cumulé de l’image
Image couleur
9Image couleur = 3 plans couleur.
Histogramme cumulé de l’image de chromosome :
9Pour la plupart des caméras : Rouge, Vert, Bleu (R,V,B).
4
9
x 10
8
7
6
5
4
3
2
1
0
0
50
100
150
200
250
300
Transparent 25
Transparent 26
Image couleur
Image couleur
9Image couleur = 3 plans couleur.
9Pour la plupart des caméras : Rouge, Vert, Bleu (R,V,B).
9Chaque plan est codé comme une image niveaux de gris, avec des
valeurs allant de 0 à 255.
9Lorsque R=V=B, la couleur associé est un niveau de gris.
9Pour 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
Transparent 27
9De nombreux autres systèmes de représentation des couleurs
existent parmi lesquels on peut citer le système HSV (Hue,
Saturation, Value) : Axe des intensités
V
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.
Blanc Axe des
saturations S
Vert
Bleu
Rouge
Axe des
teintes H
Transparent 28
7
Système de convention
Notions de topologie
Le système de convention des axes est le suivant :
En analogique :
En discret :
y
x
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 :
9 V4 : Voisinage en 4 connexité
y
x
9la ligne 0 d’une image est celle située en haut.
9Réadaptation de toutes les définitions de traitement du
signal (exemple : convolution 2D)
9 V8 : Voisinage en 8 connexité
Transparent 29
Zoom de l’image
Transparent 30
Zoom de l’image (exemple d’un zoom 2X)
i-1
Interpolation linéaire, principe 1D
9 Duplication de pixels
i-1 i-1/2
9 Ajout de pixels par interpolation bilinéaire
i
i+1
i
i+1/2 i+1 i+3/2
y
Plusieurs méthodes pour augmenter la taille d’une image :
y
9 Ajout de pixels par interpolation bicubique
On suppose que la loi de variation entre yi et yi+1 est linéaire :
y=a x+b
On connaît les couples de points (xi, yi) et (xi+1, yi+1). On en déduit
facilement la valeur de yi+1/2
yi+1/2 = (yi + yi+1) /2
Transparent 31
Transparent 32
8
Zoom de l’image
Zoom de l’image
En 2D :
Interpolation cubique, principe 1D :
Même raisonnement que précédemment sauf que
yi+1/2 = (-yi-1 + 9*yi + 9*yi+1 - yi+2) /16
Le facteur zoom peut être plus élevé, par exemple 3, ce qui donne
pour une interpolation cubique :
yi +1/ 3 = ( − 5 * yi −1 + 60 * yi + 30 * yi +1 − 4 * yi + 2 ) / 81
yi + 2 / 3 = ( − 4 * yi −1 + 30 * y i + 60 * yi +1 − 5 * yi + 2 ) / 81
Transparent 33
Exemples de résultat
Transparent 34
Exemples de résultat, zoom de facteur 6
Duplication de pixel
Interpolation bilinéaire
Détail à agrandir
Image originale
Interpolation bicubique
Transparent 35
Transparent 36
9
Rotation d’images
Rotation d’images
Origine centrée qui coïncide avec le centre de rotation :
Origine centrée qui coïncide avec le centre de rotation :
lr = l * cos( θ ) − c * sin(θ )
lr = l * cos( θ ) − c * sin(θ )
cr = l * sin( θ ) − c * cos( θ )
cr = l * sin( θ ) − c * cos( θ )
Deux façons possibles pour opérer la rotation :
Deux façons possibles pour opérer la rotation :
9 On part de l’image I et pour chaque pixel, on calcul sa nouvelle position
9 On part de l’image I et pour chaque pixel, on calcul sa nouvelle position
Transparent 38
Transparent 37
Rotation d’images
Images résultats
9 On part de l’image arrivée et on recherche la position des pixels dans l’image source
(Rot-1) . Pb des arrondis, on ne tombe pas sur un numéro de pixel entier
Image originale
Interpolation bilinéaire
P(x,y)
P(x,y+1)
Interpolation bicubique
P(x+1,y)
P(x+1,y+1)
P(x+dx,y+dy) ?
Interpolation bilinéaire
ou bicubique
Transparent 39
Transparent 40
10
Rappel de traitement du signal
Extension de dynamique
La convolution 2D de l’image I avec un filtre F est donnée par :
( I ⊗ F )( x, y ) = IF ( x, y ) =
+∞
+∞
∑ ∑ I ( x − n, y − m).F (n, m)
n =−∞ m =−∞
où F(n,m) est la réponse impulsionnelle du filtre.
Cette convolution peut être représentée graphiquement par un cumul des
produits terme à terme, à condition toutefois de prendre garde à inverser les
coefficients du filtre :
⎡a b c ⎤
⎡ i h g⎤
F = ⎢d e f ⎥
F = ⎢ f e d⎥
⎢
⎥
⎢
⎥
⎣⎢ c b a ⎦⎥
⎣⎢ g h i ⎦⎥
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 ) =
I ( x, y ) − G min
* 255
G max − G min
NB : sous Matlab, la convolution se fait avec :
IF=conv2(I,F,’same’) ;
L’option ‘same’ permet à l’image IF d’avoir la même dimension que
l’image I
Transparent 41
Extension de dynamique
Correction d’exposition
Exemple
NB : sous Matlab, si I est l’image de départ,
la transformation se fait avec :
mini=min(I(:)) ;
maxi=max(I(:));
I1=(I-mini)/(maxi-mini)*255;
Transparent 42
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 clairs :
Transparent 43
Transparent 44
11
Egalisation d’histogramme
Exemples
Égalisation 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.
Soit G, le niveau de gris d’un pixel de départ, le niveau de gris de
l’image d’arrivée sera :
255
G' =
histocumulé (G )
Nombre de pixel
Transparent 45
Exemples
Transparent 46
Exemples
Histogramme de l’image originale
Zone d’intérêt
Ajustement de dynamique
Transparent 47
Transparent 48
12
Exemples
Exemples
Histogramme de l’image originale
Zone d’intérêt
Égalisation d’histogramme
Histogramme de l’image ‘égalisée’
Transparent 49
Transparent 50
Renforcement du contraste
Renforcement du contraste
Exemple en 1D
Signal
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 contraste est basé sur un calcul de laplacien
Dérivée première
Dérivée seconde
Signal – K* dérivée seconde
Transparent 51
Transparent 52
13
Renforcement du contraste
Renforcement du contraste
Exemple en 1D
K petit
Selon les valeurs du
paramètres K, on peut
K moyen
accentuer plus ou
moins le phénomène
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 − 12 ) = I ( x + 1) − 2I ( x) + I ( x − 1)
K grand
Transparent 53
Transparent 54
Renforcement du contraste
Propriétés du Laplacien
Dans le cas d’un signal à deux dimensions, on utilise le Laplacien
définit par :
∇ 2 I ( x, y ) =
Signal 2D
∂2 I ∂2I
+
= I ( x − 1, y ) + I ( x + 1, y ) + I ( x, y − 1) + I ( x, y + 1) − 4 I ( x, y )
∂x 2 ∂y 2
Ce qui correspond à une convolution avec le masque :
Laplacien
0 1 0
1 −4 1
0
1
La valeur du laplacien n'est pas constante
le long du contour circulaire de l'échelon
0
--> non isotope
Transparent 55
Transparent 56
14
Propriétés du Laplacien
Autres formes
Composition de 2 Laplaciens selon 2 repères à 45
Cet opérateur effectue la différence de 2 zones concentriques
Modification du profil de l'échelon (section)
K=1
1
1
1
1
-8
1
1
1
1
ZC
Généralisation :
2 zones définies par des masques
ZE : Zone Externe E(k,l)
ZC : Zone Centrale C(k,l)
Exemple sur un profil bruité avec K=0.5
ZE
∑∑ E[k , l ] = ∑∑ C[k , l ]
Sm[i, j ] = S [i, j ] − K * ⎡⎣ ∑∑ E[k , l ]S [i + k , j + l ] −∑∑ C[ k , l ]S [i + k , j + l ]⎤⎦
Si le signal est bruité, le bruit est amplifié
--> Grande sensibilité au bruit
Æ Plus robuste au bruit + meilleure isotropie
Transparent 57
Exemple
Transparent 58
Lissage des bruits - Moyenne
Le moyen le plus simple de réaliser un lissage consiste à faire un
moyennage de zone.
On peut ainsi décider de lisser faiblement avec le masque 3x3 suivant :
1/9*
1
1
1
1
1
1
1
1
1
ou de lisser plus fortement avec la masque 5x5 suivant :
1/25*
Transparent 59
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Transparent 60
15
Lissage des bruits - Moyenne
Moyenne pondérée – Filtre gaussien
L’expression de la gaussienne en deux dimensions est donnée par :
⎛ x2 + y 2 ⎞
1
exp ⎜ −
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 σ.
g ( x, y ) =
Exemple de masque gaussien :
σ=1
σ=2
σ=3
Effet de flou
Transparent 61
Transparent 62
Moyenne pondérée – 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.
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
Transparent 63
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 :
7
10
12
7
9
9
9
12
12
12
7
9
9
10
9
9
10
10
7
10
12
10
12
9
12
10
12
12
12
12
12
10
7
7
10
10
7
10
12
12
10
7
10
7
9
12
10
9
12
7-7-7-7-7-7-7-7-7-9-9-9-9-99-9-9-9-9-10-10-10-10-10-1010-10-10-10-10-10-10-10-1212-12-12-12-12-12-12-12-1212-12-12-12-12-12
Î valeur médiane : 10
Transparent 64
16
Comparaison
Étude comparative
Signal initial
Moyenne
Médiane
Effet de la moyenne : des niveaux de gris intermédiaires apparaissent
Ce n’est pas la médiane.
Ce filtre donne de très bons résultats de part son principe sur le bruit
impulsionnel (type poivre et sel).
Transparent 65
Problèmes de la médiane
Transparent 66
Lissage des bruits - Variantes
Variantes paramétriques :
Problème de la médiane :
- elle
lessupprime
détails
Lasupprime
médiane
les p
- elle enlève les points isolés
--> Opérateur optimal pour
-Elle est impulsionnel
coûteuse en temps
de calcul
--> Supprime les détails fin
--> Impose un tri (temps de
ÎOn va rechercher un opérateur qui remédie à ces inconvénients
sans détériorer les contours
Transparent 67
But : - Éviter l’élimination des détails et la surcharge en temps de
calcul de la médiane
- Ne pas introduire de flou au niveau des contours
On utilise la variance pour éviter le moyennage en cas de contraste élevé
Moyenne seuillée :
Si variance < seuil
Sinon
=>
G = moyenne
G = Gorigine
Moyenne pondérée : VB : estimation de la variance du bruit
K = (Var-VB)/Var
G = (1-K).Moy + K.Gorigine Æ Évolution continue
Transparent 68
17
Exemples de lissage
Opérateur de Nagao
5 – Opérateur à sélection de voisinage
Algorithme d'origine : opérateur de Nagao
Subdivision de la fenêtre 5x5 en 9 domaines
Pour chaque domaine Di, calcul de la moyenne et de l’écart type :
Moy(i) et Var(i)
D0
D1
D8
.
Transparent 69
Opérateur de Nagao
Opérateur de Nagao
Amélioration : régularisation de la structure géométrique des domaines
Æ 9 domaines 3x3 identiques :
D0
D1
D2, D4 ,D6 déduit de D0 par rotations de 90 degrés
D3, D5, D7 déduit de D1
On recherche le domaine où la variance est la plus petite et on affecte la
Moyenne de ndg de ce domaine au pixel central :
k / Var(k) = Min Var(i) ÎG = Moy(k)
Transparent 70
D8
Intérêts de l’opérateur de Nagao :
9 Élimination des pixels hors norme (bruit impulsionnel)
9 Préservation et amélioration du contraste. Les zones avant et après
la transition sont plus homogènes.
Autres améliorations envisageables :
9 Utiliser l’étendue max(Gris)-Min(Gris) comme paramètre de
dispersion plutôt que la variance (gain en temps de calcul)
9 Utiliser la médiane comme paramètre de centrage pour une
meilleure robustesse vis à vis du bruit
Transparent 71
Transparent 72
18
Etude comparative
Etude comparative
Étude comparative
Original
Moyenne 5x5
Médiane
Nagao
Avec les mêmes critères que précédemment :
(-) moyenne 5x5
(*) médiane 5x5
(o) sélection de voisinage (Nagao avec
étendue au lieu de variance)
Ce dernier donne de meilleurs résultats
Transparent 73
Exemples de lissage
Transparent 74
Quelques références
9 M. Costier et J.L. Chermant, Précis d’analyse d’images, Editions
du CNRS, 1985
Nagao modifié
9 J. Serra, Image Analysis and Mathematical Morphology, Academic
Press, Vol1 – 1982, Vol 2 – 1988
9 J.J. Toumazet, Traitement d’images sur micro-ordinateur, Ed. Cibex,
1988
9 R. Horaud et O. Monga, Vision par ordinateur, Ed. Hermès, 1993
9 O. Faugeras, 3D computer vision, Press, 1993
Gaussien 11x11
9 M. Milgram, Reconnaissance des formes : méthodes numériques et
connexionnistes, Ed. Armand Colin, 1993
Transparent 75
9 J.P. Cocquerez et S. Philipp, Analyse d’images : filtrage et segmentation
Ed. Masson, 1995
Transparent 76
19