Traitement d’images : concepts fondamentaux Définitions fondamentales et prétraitements : Information représentée par un pixel, Manipulation d’histogrammes : égalisation, Filtrage passe-bas. Introduction à la morphologie mathématique (cas binaire) : Erosion, dilatation, ouverture et fermeture binaires, Reconstruction géodésique, étiquetage en composantes connexes, Squelette. Détection de contours : filtrage passe-haut, filtrage optimal, traitement des contours : fermeture, transformée de Hough. Introduction à la classification (cas pixelique) : algorithme des k-ppv, des c-moyennes critères bayésiens : MV, MAP.
Information représentée par 1 pixel Selon longueur d’onde Selon longueur d’onde, les propriétés de réflexion et d’absorption diffèrent distinction de différents objets (e.g. télédétection) Géométrie d’acquisition échantillonnage résolution spatiale Discrétisation de l’espace : pavage Capacité à discerner 2 objets proches spatialt Liée à la taille du pixel : Haute résolution pixels ‘petits’ Basse résolution pixels ‘grands’ Quantification des niveaux de gris provient de la discrétisation des niveaux de gris
Exemples ‘d’école’
Exemples en télédétection ERS/SAR (bande C, pix. 3030m) Tunisie, désert Delta du Rhône SPOT/HRV (Visible/IR, pix. 2020m) SPOT/VGT (Visible/IR, pix. 1km2) Val de Saône
Pavage et maillage Pavage = partition de l’espace continu en cellules élémentaires Cas de pavages plan réguliers : cellules identiques et régulières Maillage = ensemble des segments reliant les ‘centroïdes’ des cellules ayant une arête commune Dualité pavage et maillage
Pavage de Voronoï Ensemble de germes {P1, P2, …, Pn} V(Pi)={PR2 / j[1,n], d(P,Pi)d(P,Pj)} Propriétés : tout sommet de Voronoï est le centre d’un cercle (de Delaunay) passant par 3 germes et ne contenant aucun autre germe ; V(Pi) non borné ssi Pi la frontière de l’enveloppe convexe des Pj Triangulation de Delaunay Algorithmes sous optimaux : insérer les points un par un Applications, e.g. : enveloppe convexe de points, distance de 2 ensembles de points Cas discret : distance discrète
Images niveaux de gris vs binaire Image niveaux de gris idéale Image niveaux de gris réelle # colonnes # lignes pixel (i,j) Amélioration d’image / Filtrage Classification / binarisation Image binaire idéale Image binaire bruitée Taille = #lignes #colonnes #bits/pixels
Images couleur vs binaire / niveaux de gris Images binaires idéales (3 canaux) Canal Rouge Vert Bleu Image couleur idéale Image couleur réelle
Représentations Images peuvent être binaires x{0,1} à niveaux de gris x[xmin, xmax] (généralement [0,255]) RVB x = (xrouge, xvert, xbleu) avec xrouge [xmin, xmax] etc. multispectrales x = (xl1, xl2, …, xln) avec xli [xmin, xmax] etc. multitemporelles x = (xt1, xt2, …, xtn) avec xti [xmin, xmax] etc. Image = Signal bidimentionnel à support et à valeurs bornées {x(i,j), i[1,N], j[1,M]} Processus stochastique {x(s), s[1,NM]} Vecteur aléatoire (x(1), … x(NM)) Surface (i,j,x(i,j))
Amélioration d’images Problème : Comment rehausser le contraste d’une image de façon à faire apparaître les objets ? Comment s’affranchir des paramètres de luminosité lors de l’acquisition ? ‘Étalonnage’ des valeurs des pixels en vue de leur comparaison Applications : mise en correspondance, détection de changement, classification, etc. Principalement le cas des images à niveaux de gris (décomposition des images multiXXX en N images à niveaux de gris)
1ères méthodes : modifications de l’histogramme Transformation qui n’altère pas la relation d’ordre Translation d’histogramme Etalement de la dynamique Seuillage Transformation linéaire : x’(s) = a.x(s)+b x’(s)[0,256] a.xmin+b=0 et a.xmax+b=255 a=(255-0)/(xmax-xmin) et b=0-(255-0)xmin/(xmax-xmin) Niveau de gris # pixels Niveau de gris # pixels Perte d’information irréversible Niveau de gris # pixels
Egalisation d’histogrammes Principe : Maximiser l’entropie Niveau de gris # pixels Algorithme Calcul de l’histogramme initial H (attention : bins suffisamment fins) Pour chaque bin, on stocke sa borne sup. et le # de pixels Calcul de l’histogramme égalisé H’ (nbp pixels/bin, nbpcst) n=0; k=0; Pour chaque bin j de H { n+=#pixels de H[j]; si nnbp, alors { borne sup de H’[k] = borne sup de H[j]; #pixels de H’[k++] = #pixels de H[j]; n=0; } } Création de la table de correspondance entre les niveaux de gris de l’image initiale et de l’image égalisée Création de l’image égalisée si n>0 { borne sup de H’[k] = xmax ; #pixels de H’[k++] = n; } Soit j / x[borne sup H’[j] ; borne sup H’[j+1] ] T[x]=j 255/k s domaine image, x’s=T[xs]
Egalisation des cas ‘d’école’ Avant égalisation Après égalisation Avant égalisation Après égalisation Après étirement
Egalisation : autre exemple Avant égalisation Après égalisation Pas de réelle sensibilité visuelle à l’histogramme
Spécification d’histogrammes Principe Objectif : à partir de l’image X et HX, son histogramme, on calcule Y=g(X) ayant HY donné Soit FX la fct d’égalisation de X, et FY celle de Y. Les deux égalisations doivent conduire au même histogramme (uniforme) Y= Fy-1(FX(X)) Y n’est pas connue mais HY si ce qui suffit à spécifier FY et FY-1 Niveau de gris # pixels Niveau de gris # pixels FX Niveau de gris # pixels Niveau de gris # pixels Niveau de gris # pixels FY FY-1 Application : inter-étalonnage d’images Attention : perte de dynamique
Egalisation : exercices Soit une image ayant pour histogramme Calculer sa fonction d’égalisation -A +A +B +2B -A +A +B
Filtrage passe-bas d’images Problème : Comment réduire le bruit d’une image de façon à améliorer la ‘netteté’ des objets ? Comment réduire la variabilité intrinsèque des objets de façon à les simplifier ? Hyp. fondamentale : le bruit est 1 signal haute fréquence et l’information ‘utile’ est 1 signal basse fréquence. Applications : analyse statistique, classification, etc. Principalement le cas des images à niveaux de gris (décomp. des im. multiXXX en N im. à niv. de gris)
Modèles de bruits Valeurs ‘aberrantes’ en p% pixels de l’image, ex : - Bruit ‘poivre et sel’ Valeurs ‘altérées’ en tout pixel de l’image, ex : - Bruit ‘gaussien’ - Bruit à distribution uniforme - Bruit à distribution de Rayleigh Bruit indépendant en chaque pixel hautes fréquences sur l’image xs valeur non bruitée en s, ys valeur bruitée en s f(ys=0)=f(ys=255)=p/2, f(ys=xs)=1-p Bruit généralement additif : zs=ys-xs Ex. de ddp bruit : f(zs)=C.exp{-K|zs|n} n = 0 bruit uniforme n = 1 bruit exponentiel C= K/2 n = 2 bruit gaussien K=1/[2s2 ], C=1/[sqrt(2p)s] bruit Rayleigh f(zs)=zs/s2.exp{-zs2/[2s2 ]}
Exemples de bruits Poivre et sel 10% Gaussien s=20 Gaus. s=10, poivre&sel 10%
Modèle Gauss-Markov Histogramme à saut gaussienne centrée : Fct d’autocorrélation exponentielle : Modèle Gauss-Markov : processus stationnaire à accroissement gaussien : p(xi /xi-1)= p(xi -xi-1) Modèle mosaïque : image stat. ‘par morceaux’ modèle de Markov-Gauss spécifique à chaque ‘morceau’ de l’image Exemple : morceau
Quelques filtres lisseurs de base (I) Cas d’images bruitées (e.g. gaussien, impulsionnel) prétraitement : ‘lissage’ Filtrage linéaire Moyennage Rq : Somme des coefficients = 1 Exemple avec filtre ‘triangle’ Linéaire gaussien, paramètre s e.g. s=1.0, s=1.6 filtrage seuillage
Quelques filtres lisseurs de base (II) Filtres à coefficients séparables Réponse impulsionnelle : h(i,j) = hl(i).hc(j) filtrage linéaire selon les colonnes par hc, puis filtrage linéaire selon les lignes par hl Exemples Bruit gaussien s=30 Filtre moyenne 33 Filtre Gaussien s=1.0
Quelques filtres lisseurs de base (III) Propriétés du filtre médian : Pas de nouvelles valeurs s’applique aux images binaires, préserve les contours rectilignes (mais érode les convexités et coins) Invariance par étirement de contraste commute avec toute transformation croissante des niv. de gris ( du filtrage linéaire qui ne commute qu’avec les transf. linéaires) Elimination du bruit poivre et sel np pixels poivre, ns pixels sel, la médiane est dans les n-np-ns pixels restants corrects sauf si np ou ns>n/2 Autres filtres de rang : érosion fonctionnelle (k=1), dilatation fonctionnelle (k=p) Quelques filtres lisseurs de base (III) Hyp: voisinage Vs traversé par 1 contour au + Vs décomposé en paires (Pi,Qi) pour chaque paire ne considérer que le pixel le + proche en caractéristique(s) de P0 Ex. P1 P2 P3 P4 P0 Q4 Q3 Q2 Q1 Filtrage non linéaire De Nagao SNN (Symetric Nearest Neighbor) Filtrage d’ordre k Médian (p pixels, p≤|Vs|, k=p/2) Prise en compte de processus bord Algorithme : 1) Calcul de l’histogramme sur le voisinage Vs 2) Tri des valeurs du voisinage 3) Sélection E le plus compact |E|=p 4) Sélection de la valeur de E à l’ordre considéré Bruit gaussien s=30 Filtre de Nagao Filtre médian 33
Bruit gaussien s=20 + bruit impuls 10% Filtrage moyenne Filtrage gaussien Filtrage de Nagao Filtrage médian Bruit gaussien s=20 33 s=1.0 33 Bruit gaussien s=60 77 s=2.5 77 Bruit impulsion 15% 77 s=2.5 77 33 s=1.0 33 Bruit gaussien s=20 + bruit impuls 10% 77 s=2.5 77
‘S&P’ 10% filtre médian 7x7 Bruit ‘P&S’ 10% Image non bruitée Gaus. s=20 filtre gaus. s=2.5 Bruit gaussien s=20 ‘S&P’ 10% filtre médian 7x7 Bruit ‘P&S’ 10% s=20 + ‘S&P’ 10% filtre Nagao Bruit gaussien s=20, ‘P&S’ 10%
Filtrage : exercices Que font les filtres à noyau de convolution suivants ? (prenez un exemple numérique si nécessaire) Quelle est la condition sur les coefficients pour que le filtrage soit passe-bas ? Décomposer le filtre 2D de noyau sous forme du produit de convolution de 2 filtres 1D. En déduire un moyen efficace, en nombre d’opérations par pixel, d’implémenter les filtres précédents.
Des pixels à l’image § ‘Amélioration d’images’ : image vue comme 1 collection de pixels (val. scalaires, vectorielles…) vus comme des échantillons indépendants d’1 même distribution. § ‘Filtrage PB d’images’ : im. vue comme la superposit° d’1 signal 2D constant par morceaux (sur le support 2D) et d’1 collect° de d’échantillons de bruit indépendants. Ce qu’on recherche : pas des pixels, mais des objets comment passer d’1 vision myope (pixel, voisinage pixel) à 1 caractérisation niveau objet ? On laisse de coté (temp.) l’aspect radiométrique pour se concentrer sur les aspects géom. et topolog. cas d’images binaires Caractérisation géométrique et topologique (et non seulement radiométrique)
Notions préliminaires de géométrie discrète Topologie 2D discrète : nombre de composantes connexes, de trous, représentation hiérarchique des objets. Distances discrètes : dimension (e.g. rayon) des composantes connexes, distance entre les objets. Relations ensemblistes entre les parties d’un objet
Notion de voisinage élémentaire Image discrète = graphe Connexité trame carrée trame hexagonale chemin sur le graphe = succession de nœuds du graphe joints par des arcs chemin 4-connexe : chemin 8-connexe :
Notion d’ « entourage » Théorème de Jordan : toute courbe simple fermée sépare l’espace en 2 composantes : l’intérieur et l’extérieur de la courbe. Cas de la trame carrée : tout chemin 4-connexe (resp. 8-connexe) simple fermé (Ai=Aj i=j et Ai voisin de Aj |i-j|=1[n]) sépare l’espace en 2 composantes 8-connexes (resp. 4-connexes) Nombre d’Euler = différence entre le # composantes connexes et le # de trous ( dualité des connexités). Soit : s=#singletons, a=#couples ligne ou colonne, d=#couples diagonaux, t=#trinômes, q=#quadrinômes, alors en 4-connexité E=s-a+q en 8-connexité E=s-a-d+t-q
Exemple : nombre d’Euler Cas 4-connexe : # composantes 4-connexes = 3 # de trous (8-connexes) = 1 E4=2 Cas 8-connexe : # composantes 8-connexes = 1 # de trous (4-connexes) = 2 E8=-1 s=16, a=14, d=13, t=10, q=0 En 4-connexité E4=s-a+q=2 En 8-connexité E8=s-a-d+t-q=-1
Ensembles de niveaux Relation d’ordre des régions () relation d’ordre des niveaux de gris ( ou ) Indépendance vis-à-vis des valeurs ‘absolues’ des niv. de gris, i.e. des conditions de luminosité etc. Invariance par changement de contraste Upper Level Set Ux et Lower Level Set Lx Relation d’inclusion des ensembles de niveaux : Famille des Ux (ou celle des Lx) est suffisante pour reconstruire l’image y ‘relatives’
Exemple simplissime minTree maxTree 255 0 127 127 255 0 255
Distances discrètes (I) Distance à 1 objet minimum des distances euclidiennes (approximées) aux points de l’objet Propagation de distances locales Distances définies à partir d’un ensemble de vecteurs de déplacement Utilisation de masques Exemple : 1 1 1 0 1 1 1 1 4 3 4 3 0 3 11 11 11 7 5 7 11 5 0 5 7 5 7 11 1
Distances discrètes (II) Partition du masque en 2 sous-masques g1 et g2 causaux ULLR et LRUL Algorithme de calcul séquentiel 1) Poser 2) f0 image / points de l’objet 0 et les autres + 3) pour k=1,2 si k=1, balayer l’image dans le sens UL LR si k=2, balayer l’image dans le sens LR UL 4) image des distances f2 4 3 4 3 0 3
Distances discrètes : exemple ∞ ∞ 1 2 3 4 5 4 3 2 1 5
Distances géodésiques Intérêt des métriques géodésiques : tient compte des obstacles ( dist. euclidienne ou versions digitales). distance géodésique : étant donnés 2 points a et b d’un compact X, toujours un plus court chemin de a à b qui soit X; la longueur de ce chemin est dX(a,b). Propriétés : dX est une distance généralisée, i.e. a b d c Séparation Sous-additivité
Bibliographie H. Maître, Le traitement des images, Hermès éditions. J.-P. Cocquerez & S. Philipp, Analyse d’images : filtrage et segmentation, Masson éditions. S. Bres, J.-M. Jolion & F. Lebourgeois, Traitement et analyse des images numériques, Hermès éditions.