UE3 – Analyse des Images Transformations locales
Transcription
UE3 – Analyse des Images Transformations locales
UE3 – Analyse des Images Transformations locales LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 1 Introduction Filtrage linéaire (convolution) Filtres de lissage Plan du cours 1 – Introduction Principe des transformations locales Définitions dans l'espace discret : distances, voisinage 2 – Filtrage linéaire : principe Principe du filtrage linéaire : convolutions 1D et 2D Calcul pratique du résultat Caractéristiques du masque de convolution 3 – Filtres de lissage Deux principaux types de filtres spatiaux Bruits dans une image Filtres de lissage linéaires Filtres de lissage non-linéaires LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 2 Introduction Filtrage linéaire (convolution) Filtres de lissage Principe des transformations locales (1/2) Principe Pour calculer la valeur du pixel de coordonnées (x,y) dans l'image résultat I', on utilise, dans l'image initiale, non seulement la valeur du pixel I(x,y) mais aussi celles des pixels situés dans un voisinage de ce dernier I(V (x,y)). t I x , y I ' x , y =t I V x , y x y t x y V x , y I' I' a même taille que I, mais des propriétésI plus intéressantes. En chaque pixel (x,y) considéré, le voisinage V est défini de manière identique (« forme » identique) mais relativement à lui (V (x,y)). LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 3 Introduction Filtrage linéaire (convolution) Filtres de lissage Principe des transformations locales (2/2) Principe (détail) LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 4 Introduction Filtrage linéaire (convolution) Filtres de lissage Distances dans l'espace discret Coordonnées relatives Soit Px, y un pixel d'une image I. Soit Qx+i , y+j un autre pixel de I, localisé dans le voisinage de P. i et j sont les coordonnées relatives de Q par rapport à celles de P ; i et j peuvent être positives ou négatives. Plusieurs distances dans l'espace discret Euclidienne (ou L2) ∥PQ∥2 = i 2 j 2 « Manhattan » (ou « City Block », ou L1) ∥PQ∥1 =∣i∣∣ j∣ « Chessboard » (ou Chebyshev, ou L∞) ∥PQ∥∞ =max ∣i∣,∣ j∣ LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 5 Introduction Filtrage linéaire (convolution) Filtres de lissage Notion de voisinage (1/2) : définition Voisinage V d'un pixel P Hypothèses V est centré en P ; les pixels sont disposés selon une maille carrée. Définition : V (P) est l'ensemble des pixels Q situés à moins d'une certaine distance de P. La forme du voisinage (et le nombre de voisins) de P dépendent de la distance considérée (cf. exemples diapo suivante). Voisinages les plus usités en traitement d'images : 4-voisinage 8-voisinage ou « voisinage 3x3 » « voisinage 5x5 » LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 6 Introduction Filtrage linéaire (convolution) Filtres de lissage Notion de voisinage (2/2) : exemples i=x Q− x P j = y Q− y P ∥PQ∥2 = i 2 j 2 ∥PQ∥1 =∣i∣∣ j∣ ∥PQ∥∞ =max ∣i∣,∣ j∣ LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 7 Introduction Filtrage linéaire (convolution) Filtres de lissage Convolution discrète 1D : définition (1/2) Définition Soient f et h deux fonctions monovariables discrètes définies sur ℤ. Le produit de convolution de f par h est défini comme : ∞ f ∗h x= ∑ k=−∞ ∞ f x−k . hk = ∑ f k . hx−k k=−∞ f est la fonction d'origine h est la fonction de convolution (modifiant f ) f *h est la fonction convoluée (résultat de la convolution) Exemple Un petit exercice pour bien comprendre comment cela fonctionne ... LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 8 Introduction Filtrage linéaire (convolution) Filtres de lissage Convolution discrète 1D : définition (2/2) f n hn f n−k (mobile) et h k (fixe) f n−k . h k ∞ f ∗hn= ∑ f n−k . h k k =−∞ LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 9 Introduction Filtrage linéaire (convolution) Filtres de lissage Convolution discrète 2D : du 1D au 2D Principe L'image I est une fonction de 2 variables discrètes (x et y). Le filtre de convolution H appliqué sur I est lui aussi à 2D (matrice). H est appelé filtre, masque, noyau ou fenêtre de convolution. L'application du filtre à l'image initiale I consiste à déplacer le masque sur chacun des pixels, et à remplacer la valeur de ce pixel d'analyse par une combinaison des valeurs de ses voisins. Image initiale I Filtre H Filtrage de I par H Image résultat I' LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 10 Introduction Filtrage linéaire (convolution) Filtres de lissage Convolution discrète 2D : calcul (1/3) Formule L'image I' résultat de la convolution de I par H est donnée par : I ' x , y= I∗H x , y =∑ ∑ I x−i , y− j . H i , j ∀i ∀ j C'est un filtrage linéaire (somme de multiplications entre les niveaux de gris de l'image initiale I et les coefficients du masque H ). Calcul pratique Tourner le masque de 180° autour de son centre (0,0) ; Superposer le masque obtenu à l'image I de sorte qu'il soit centré en (x,y) ; Multiplier chaque coefficient du masque par le niveau du pixel sous-jacent ; Additionner chacun de ces produits pour obtenir I'(x,y). Ex. H Hθ=180° Hθ=180° et I LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 11 Introduction Filtrage linéaire (convolution) Filtres de lissage Convolution discrète 2D : calcul (2/3) Calcul pratique (suite) I ' x , y= I x−1, y−1 . h1,1 I x−1, y . h1,0 I x−1, y1 . h1,−1 I x , y−1 . h 0,1 I x , y . h 0,0 I x , y1 . h 0,−1 I x1, y −1 . h−1,1 I x1, y . h−1,0 I x1, y1 . h−1,−1 LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 12 Introduction Filtrage linéaire (convolution) Filtres de lissage Convolution discrète 2D : calcul (3/3) Effets de bords Problème : comment traiter les pixels situés aux bords de l'image ? Stratégies possibles : ? laisser inchangés convolution partielle sur la partie du masque superposée à l'image hypothèse : pixels extérieurs = 0 miroir (virtuel) de l'image : pour i, j > 0, I(-i,y)=I(i,y) sur le bord gauche I(Nx-1+i,y)=I(Nx-1-i,y) sur le bord droit I(x,-j)=I(x,j) sur le bord supérieur I(x,Ny-1+j)=I(x,Ny-1+j) sur le bord inférieur image « enroulée » ... LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 13 Introduction Filtrage linéaire (convolution) Filtres de lissage Convolution discrète 2D : masque de convolution Caractéristiques du masque de convolution H Souvent carré et de taille impaire (3x3, 5x5, ...), pour être centré sans ambigüité sur le pixel d'analyse. Souvent à valeurs symétriques par rapport à l'élément central : h-1,-1= h+1,+1 , h0,-1= h0,+1 , h+1,-1= h-1,+1 , ... Normalisation Soit S la somme des coefficients du masque. diviseur : normalisation à 1. Si l'on veut conserver la luminance de l'image, on doit avoir S = 1. On doit donc diviser les coefficients par | S |. Obtention de valeurs dans [0, 255] décalage des niveaux résultats. Les coefficients peuvent être négatifs, et le résultat de la convolution également. Un décalage est donc parfois nécessaire (après calcul du résultat) pour obtenir des valeurs entre 0 et 255 : décalage = 0 si S > 0 , 255 si S < 0 , 128 si S = 0. LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 14 Introduction Filtrage linéaire (convolution) Filtres de lissage Convolution discrète 2D : corrélation Convolution et corrélation Ces 2 opérations sont très fortement liées : opération aussi définie par un masque ; dans un calcul de corrélation, le masque est appliqué sur les pixels de l'image sans rotation préalable ; opérations équivalentes si le masque est carré et à symétrie centrale. Utilisation détection d'un motif dans une image exemple : I H I'= corr(I,H) I' seuillée LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 15 Introduction Filtrage linéaire (convolution) Filtres de lissage Deux types de filtres spatiaux Introduction Il existe différents types de filtres, avec différents effets. Un filtre est caractérisé par sa taille (nombre de pixels voisins considérés) son contenu (opération réalisée sur les pixels voisins considérés) Un filtre peut être linéaire (i.e. réalisable par convolution) ou non. Il est linéaire si (α1.I1 + α2.I2)' (x,y) = α1.I'1(x,y) + α2.I'2(x,y) pour tout pixel (x, y). Types de filtres Filtres passe-bas, ou de lissage Effet : lissage de l'image (élimine petites fluctuations) Avantage : atténuation du bruit Inconvénient : atténuation des détails, flou Filtres passe-haut, ou de contours Effet : accentuation des détails de l'image Avantage : mise en évidence des contours/détails Inconvénient : accentuation du bruit LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 16 Introduction Filtrage linéaire (convolution) Filtres de lissage Bruits dans une image (1/3) Principe Des défauts liés à l'environnement (ex. poussières), au capteur (ex. dérive) ou à l'échantillonnage, produisent des aberrations locales dans l'image. La restauration d'image consiste à réduire, voire éliminer le bruit de l'image réellement délivrée I ; tente de trouver l'image idéale (non bruitée) I qui aurait été obtenue si le système d'acquisition était parfait ; utilise notamment des filtres de lissage. Modélisation Le bruit b(x,y) est souvent considéré comme aléatoire. Si le bruit est additif, il s'ajoute à l'image idéale I : I(x,y) = I(x,y) + b(x,y) Si le bruit est multiplicatif, l'image réelle est : I(x,y) = I(x,y) . b(x,y) LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 17 Introduction Filtrage linéaire (convolution) Filtres de lissage Bruits dans une image (2/3) Types de bruits Bruit Gaussien additif (d'amplification) Source : bruit thermique (dérive des composantes électroniques). Caractéristique : niveaux additionnés d'une valeur aléatoire à loi normale. Modélisation : ajout à chaque pixel d'une valeur aléatoire suivant une loi normale. Bruit « Poivre et sel » (impulsionnel) Source : pixels défectueux, erreurs de CAN ou de transmission de bits, ... Caractéristique : pixels isolés avec un niveau de gris très différent de celui des pixels environnants. Modélisation : remplacement aléatoire de n pixels par 0 et de n pixels par 255. Bruit de quantification Source : quantification des valeurs des pixels en niveaux discrets. Modélisation : variable aléatoire à distribution uniforme. Autres bruits Bruit de scintillement (« speckle ») : bruit multiplicatif granulaire (échos ponctuels) Bruits photonique, de courant d'obscurité, ... LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 18 Introduction Filtrage linéaire (convolution) Filtres de lissage Bruits dans une image (3/3) Exemples Bruit additif Bruit multiplicatif Bruit « Poivre et sel » Gaussien (σ = 25) Gaussien (σ = 25) (20% de pixels affectés) LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 19 Introduction Filtrage linéaire (convolution) Filtres de lissage Filtres de lissage Principe Utilité : restauration de l'image (élimination du bruit) par lissage. Inconvénient : suppression des hautes fréquences (filtres passe-bas), d'où dégradation des contours et effet de flou. Variétés Plusieurs types de filtres possédant chacun des avantages propres. Plusieurs tailles possibles, selon l'étendue du voisinage à considérer : 3x3, 5x5, ... L'effet de flou est d'autant plus marqué que la taille est grande. Principaux filtres de lissage Linéaires Caractérisés par un masque (réalisables par convolution). Exemples : filtres moyenneurs, Gaussiens, ... Non-linéaires : Caractérisés par un opérateur non-linéaire (non réalisables par convolution). Exemples : filtres médian, min/max, ... LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 20 Introduction Filtrage linéaire (convolution) Filtres de lissage Filtres de lissage linéaires : filtres moyenneurs Filtres moyenneurs Configuration : dépend de l'importance à donner au pixel d'analyse et à ses voisins : 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 ou 1 2 1 ou 1 1 1 9 10 5 1 1 1 1 1 1 0 1 0 [ ] [ ] [ ] Remarque : | S |=1, donc préservation du fond (luminance conservée). Inconvénients : forte atténuation des contours (limite la performance des traitements ultérieurs) ; forte influence des pixels aberrants isolés. Alternative : filtrage conditionnel On remplace la valeur initiale I(x,y) par la moyenne des 8 pixels voisins I'(x,y) seulement si elle en diffère sensiblement : | I'(x,y) – I(x,y) | ≥ Seuil. Ce filtrage n'est plus linéaire. [ ] 1 1 1 1 1 0 1 8 1 1 1 LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 21 Introduction Filtrage linéaire (convolution) Filtres de lissage Filtres de lissage linéaires : filtres Gaussiens (1/2) Distribution Gaussienne (ou normale) Paramètres : moyenne µ, écart-type σ. Distribution 1D 2 1 − x− G x = exp 2 2 2 µ = 0, σ = 1 Distribution 2D x−2 y−2 1 G x , y = exp − 2 2 2 2 µ = 0, σ = 1 LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 22 Introduction Filtrage linéaire (convolution) Filtres de lissage Filtres de lissage linéaires : filtres Gaussiens (2/2) Filtres Gaussiens Avantage : limite l'effet de flou (contours mieux conservés) Configurations : approximations discrètes de la distribution Gaussienne de moyenne µ=0 dans un filtre fini. Exemples pour σ = 0,8 : [ ] 1 2 1 1 H G1= 2 4 2 16 1 2 1 L'écart-type σ ou [ 1 10 22 10 1 10 106 231 106 10 1 H G2= 22 231 504 231 22 2025 10 106 231 106 10 1 10 22 10 1 ] détermine le degré de lissage ; impose la taille du masque (idéalement égale à 6 σ +1 x 6σ +1). Remarques : | S |=1, donc préservation du fond (luminance conservée). Filtre séparable : possibilité d'obtenir le même résultat en filtrant les lignes puis les colonnes avec un même masque 1D, par exemple 1/4.[1 2 1] pour HG1. LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 23 Introduction Filtrage linéaire (convolution) Filtres de lissage Filtres de lissage linéaires : autres filtres Autres filtres de lissage linéaires Filtre binômial : Sert souvent d'approximation au filtre Gaussien Coefficients : proches de ceux du binôme de Newton (cf. triangle de Pascal). Filtre pyramidal [ 1 2 1 3 86 2 1 2 4 6 4 2 3 6 9 6 3 [ 1 4 6 4 1 4 16 24 16 4 1 6 24 36 24 6 256 4 16 24 16 4 1 4 6 4 1 ] Filtre conique 2 4 6 4 2 1 2 3 2 1 ] [ ] 0 0 1 1 25 0 0 0 2 2 2 0 1 2 5 2 1 0 2 2 2 0 0 0 1 0 0 LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 24 Introduction Filtrage linéaire (convolution) Filtres de lissage Filtres de lissage non-linéaires : filtre médian (1/2) Principe Le niveau de gris résultat est le niveau de gris médian des pixels voisins. Filtre non-linéaire, donc non réalisable par masque de convolution. Calcul Choisir un voisinage contenant un nombre impair de pixels. Trier les niveaux par ordre croissant. Donner au pixel d'analyse le niveau situé au milieu des niveaux triés. Exemple 18 20 25 14 27 211 22 27 25 I(V (x,y)) 14 ≤ 18 ≤ 20 ≤ 22 ≤ 25 ≤ 25 ≤ 27 ≤ 27 ≤ 211 25 |← 4 valeurs →| médiane |← 4 valeurs →| Valeurs de I(V (x,y)) triées par ordre croissant LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing I'(x,y) 25 Introduction Filtrage linéaire (convolution) Filtres de lissage Filtres de lissage non-linéaires : filtre médian (2/2) Propriétés Avantages par rapport aux filtres moyenneur et Gaussien Filtre mieux le bruit impulsionnel (type « poivre et sel »). Illustration : quelle est la moyenne dans l'exemple précédent ? Ne crée pas de nouveau niveau ; préserve mieux les contours sans altérer le fond. I moy3x3 gauss5x5 méd3x3 Limites et inconvénients Un filtre médian de taille totale 2n+1 ne peut éliminer que les agrégats d'au plus n pixels bruités. Supprime les détails fins qui ne sont pas du bruit. Détruit les coins. Ex. : résultat obtenu sur l'image ci-contre ? Coûteux en temps de calcul (tri). LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 26 Introduction Filtrage linéaire (convolution) Filtres de lissage Filtres de lissage non-linéaires : autres filtres Filtre de rang (ou filtre d'ordre) Généralisation du filtre médian. Principe : au lieu du niveau médian, on choisit le niveau d'un rang donné. Cas particuliers : on choisit le niveau local minimum (imin) ou maximum (imax) → filtres morphologiques. Filtrage min-max (« Conservative smoothing ») Principe : garantit que la valeur de tout pixel appartient à l'intervalle des valeurs de ses voisins → débruitage efficace. Préserve encore mieux les contours que le filtre médian. Calcul : Exemple : { I x , y si i min I x , y i max I ' x , y= i min si I x , yi min i max si I x , yi max } 124 126 127 120 150 125 115 119 123 imin=115, imax=127 moyenne = 125 moyenne8 = 123 médiane = 124 (min-)max = 127 LPro GPI Vision Industrielle – UE3 : Analyse des Images – O. Losson & F. Cabestaing 27