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