L’objectif du T.I.P.E. est d’étudier un nombre représentatif d’outils et de méthodes pour faire « parler » une image brute renvoyée par un satellite, en particulier la détection de contours.
I.1
Cadre du TIPE
I.2
Présentation des images
I.3
L’histogramme : une abstraction de
l’espace
I.4
Notion d’analyse d’images
II.1
Seuillage
II.2
Classification d’image
II.3
Néocanaux
II.4
Histogrammes bidimensionnels
III.1
Présentation de la détection de contours
III.2
Les transformations linéaires
III.3
La pratique et ses limites, l’extraction des réseaux fins
III.4
Utilisation pratique
Conclusion
Bibliographie
Annexes : A. Listing du programme de
calcul du Laplacien
B. Présentation du logiciel Imsat deluxe
Toutes les applications numériques et les images
finalisées sont obtenues avec le logiciel Imsat deluxe, que j’ai réalisé en
terminale avec un camarade ou avec un programme écrit en C.
I. Eléments d’analyse d’images numériques
Ce T.I.P.E. se propose de répondre à quelques questions concernant l’analyse des images spatiales.
· Quelle est la nature des images renvoyées par les satellites ?
· Comment extrait-on de cette image brute des données ?
· Peut-on mettre en évidence des structures particulières de l’image, telles que des routes, cours d’eau, parcelles de terre ?
On ne s’intéresse dans la chaîne de la télédétection qu’aux étapes de l’analyse de l’image brute. C’est-à-dire que la partie capteurs et mesure, bien qu’ayant fait l’objet d’une étude sommaire, ne rentre pas dans le cadre du T.I.P.E.
On s’intéresse à des données collectées depuis l’espace représentant la variation spatiale d’une grandeur physique (ici amplitude d’une onde électro-magnétique) d’une portion de la terre. L’information est discrétisée et reçue sous forme d’une matrice de nombre de taille (n,m) où n et m sont le nombre de pixels de l’image-matrice, respectivement en longueur et en largeur.
Ordres de grandeur
Un pixel représente dans le cas de spot 1 une portion de 20m*20m, pour un satellite espion militaire la résolution et donc la taille des pixels atteint le mètre carré.
On se méprend souvent sur les images satellitaires. Plus que des simples photographies prises de l’espace, l’information qu’elles portent ne couvre pas seulement le domaine visible mais aussi des bandes de fréquence dans l’infrarouge, l’ultraviolet ou les ondes radar.
Tableau
1 : Spectre électro-magnétique
Toute la difficulté de l’analyse d’une image numérique réside justement dans l’association d’une couleur à une grandeur numérique, pour fournir une image exploitable par le plus puissant outil d’interprétation d’image connu à ce jour : l’œil humain.
Par ailleurs on conviendra d’appeler abusivement réflectance la grandeur contenue dans les images, sachant qu’en fait on mesure l’émittance + la réflectance des corps au sol.
Prenons le cas de l’image-matrice suivante dont les valeurs R(n,m) sont dans {1 ;2 ;3 ;4 ;5 ;6} :
M :
On associe
aussi à une image son histogramme. Celui-ci
représente les effectifs correspondant à chaque réflectance. Il représente la
répartition des valeurs en faisant abstraction de la position des valeurs dans
l’image.
Pour obtenir une image à partir de la matrice une solution consiste à associer
une couleur à chaque réflectance, on obtient l’image :
On pourrait aussi associer aux valeurs {3,4,5,6} une seule couleur (par exemple si on sait que c’est de l’eau plus ou moins profonde) :
Dans la pratique on a plus de valeurs (256 pour une image spot) et des images qui ont plusieurs millions de pixels.
L’analyse d’image a pour but l’extraction de l’information caractéristique contenue dans une image. Celle-ci peut prendre la forme d’une image ou de toute autre structure de données permettant une description des entités contenues dans l’image. Essentiellement, l’analyse d’image fait appel à la segmentation où l’on va tenter d’associer à chaque pixel de l’image un label, en s’appuyant sur l’information portée et sa distribution spatiale dans l’image.
II Analyse statistique d’image.
Nous nous proposons
dans cette partie d’étudier quelques méthodes d’analyse d’image qui font appel
uniquement à l’information portée par chaque pixel, indépendamment de la
position de celui-ci.
Plus généralement étant donné un histogramme on appelle seuillage les techniques consistant à segmenter une image en plusieurs classes.
Le plus souvent le seuillage consiste à associer à chaque pic de l’histogramme une classe. Il existe de très nombreuses méthodes de seuillage d’un histogramme. Ces méthodes s’appliquent correctement si l’histogramme contient réellement des pics assez distincts.
Il faut insister sur l’importance des
relevés sur le terrain qui seuls permettent de corroborer la pertinence de
l’analyse d’images.
Voici l’histogramme associé à une image spot de 576 lignes par 576 colonnes.
On reconnaît deux pics, le « gros » pic correspond à la végétation, le « petit » à une étendue d’eau (un lac).
Aussi est-il vraisemblable que l’utilisateur final désirera une image où l’étendue d’eau apparaîtra en bleu et la végétation en vert. On demande donc à un logiciel d’attribuer à la plage 0-60 du bleu, et au reste des nuances de vert. Une telle image serait :
Un mois après que cette image a été prise, il y a eu à l’est du lac un incendie de forêt, qui brûla la végétation. L’histogramme associé aux données que Spot renvoie est le suivant :
Il apparaît un troisième pic, qui correspond à la zone de forêt brûlée. L’image
avec les mêmes conventions de couleurs que précédemment plus la couleur rouge
pour le nouveau pic donne :
Cette méthode est on ne peut plus simple. Cependant dans la pratique des difficultés peuvent surgir. Si on veut comparer deux images prises par un satellite à deux saisons différentes il faudra tenir compte de la modification du feuillage de la végétation. De plus remarquons que les bords du lac apparaissent rouges : ils correspondent à la même réflectance que la zone brûlée. Les paragraphes suivants se proposent d’étudier quelques méthodes pour résoudre ce type de problème.
La classification est un seuillage « amélioré ». Elle utilise plusieurs images. Soient I1,c I2,c … In,c n intervalles, pour chaque couleur c, On associe une couleur c à un couple v(x,y) si et seulement si v(x,y) est dans I1,cÇI2,cÇ…In,c.
La classification d’image permet d’extraire des informations de plusieurs images pour distinguer une entité particulière d’une image. Typiquement cette démarche répond à la question : que faire lorsqu’on veut séparer deux corps qui, pour une certaine bande de fréquence, renvoient les mêmes reflectances ?
Si l’on sait par exemple qu’une culture renvoie des valeurs de réflectance comprises entre 90 et 110 au début de l’été et entre 100 et 130 à la fin de l’été, alors on peut effectuer une classification d’images qui associera la couleur verte aux valeurs qui sont comprises entre 90 et 100 dans une image prise au début de l’été et comprises entre 100 et 130 à la fin de l’été. On élimine ainsi par exemple une culture parasite qui possède une réflectance entre 90 et 100 pendant toute la saison.
Une image satellite traduit une grandeur physique. La nature de cette grandeur est variée. Radarsat envoie des données correspondant à des ondes radars. Spot émet des données sur plusieurs bandes de fréquence appelées canaux.
Un canal permet déjà de faire des observations importantes. Mais il est aussi possible d'utiliser les informations de plusieurs canaux simultanément. Des experts ont par exemple montré que le quotient (PIR-R)/(PIR+R) où « PIR » et « R » désignent des canaux de spots, était une bonne évaluation de la quantité de végétation. Les valeurs de l’image correspondront à l’indice de végétation.
Les néocanaux sont des canaux calculés en appliquant de telles formules.
Il compte pour chaque couple (x,y) le nombre de points ayant la valeur de réflectance x dans le fichier X et la valeur y dans le fichier Y. Les points situés sur la diagonale principale (\) ont la même valeur, les points au-dessus ont une plus grande valeur dans X que dans Y, et ceux en dessous le contraire.
Exemple: indice de végétation[1] avant (X) et après (Y) un incendie. La petite tache en (60,60) représente un lac.
La grande tache de (130,130) à (200,200) représente les arbres qui n'ont pas brûlé.
La tache de (150,70) à (180,70) représente les arbres qui ont brûlé.
Les méthodes vues permettent, sans tenir
compte de la répartition spatiale des données, d’extraire une information
visuelle pertinente. L’objet de cette partie est de présenter une méthode pour
obtenir une image de contour, c’est-à-dire une image dans laquelle n’apparaît
plus que la frontière entre différents domaines de l’image.
Il y d’abord des méthodes de traitement
statistique, mais celles-ci peuvent faire intervenir des outils dont le niveau
dépasse largement les connaissances de classes préparatoires.
III Analyse structurale d’une image : détection de contour
Le but de cette partie est d’étudier un outil fondamental de l’analyse d’image : la détection de contour.
La notion de contour est assez intuitive. Elle est fondée sur la capacité du système humain à distinguer plusieurs zones connexes d’aspect homogène, pour lesquelles la ligne de séparation sera appelée un contour ou une frontière. Il n’y a donc pas définition précise et on peut dire qu’il y a des contours là ou le système visuel humain en voit.
Intéressons nous à des contours du type marche d’escalier adoucie c’est-à-dire :
Dans le cas mono dimensionnel ces contours correspondent à des transitions du type :
Un moyen pour mettre en évidence ce type de transition est de détecter l’inflexion, en détectant les passages à zéro de la dérivée seconde :
Dans le cas à deux dimensions, on calcule les passages à zéro du Laplacien. Dans la pratique de tels calculs sont fastidieux et gourmands en temps de calcul machine. L’idée pour simplifier les calculs est d’utiliser une transformation linéaire.
a)
Présentation des
transformations linéaires
Soit une image matrice (R(m,n))m,n , on appelle transformation linéaire T une application de I dans I telle que:
En fait, chaque pixel de l’image résultante est la somme pondérée de tous les
autres et de lui-même. Cependant pour la détection de contours il n’y que le
voisinage des points qui est intéressant. On se limite ainsi à des
transformations linéaires qui utilisent jusqu’à 8 pixels autour du pixel
considéré ou 24 :
L’application d’une transformation linéaire se résume donc à itérer sur chaque pixel une transformation locale, étape que l’on appelle masquage, de masque la matrice 3*3 ou 5*5 qui représentent les coefficients de la combinaison linéaire associée à chaque pixel. Par exemple la transformation linéaire « moyenne » qui homogénéise les pixels d’une image attribuerait au pixel central la somme de tous les coefficients du masque divisé par 9 :
Dans toute la suite on convient ainsi de représenter un masque par une matrice,
la transformation de l’exemple précédent devient par exemple.
De plus, soit une image-matrice R on note M*R l’image obtenue en appliquant le masque M à l’image-matrice.
b) Retour à la détection de contour
On cherche donc une transformation linéaire sur un voisinage 3*3 qui modélisera le Laplacien discret en un point.
Par définition et on dispose de
trois points pour chaque direction. Trois points distincts étant donnés, la
meilleure approximation, à partir de ces trois points, de la dérivée seconde
est
qui s’explique par le
fait que, soient trois points
A, B , C :
En additionnant les dérivées secondes dans les deux directions x et y on obtient le masque M suivant :
Pour obtenir enfin l’image des passages à zéros du Laplacien on effectue un traitement qui ne rentre pas dans le cadre du T.I.P.E. Mais qui se résume à distinguer positif et négatif , à dilater l’image et lui soustraire l’image originale.
c)Un mot sur la complexité
La complexité de notre algorithme est le temps de traitement d’un point i.e. du masquage local, multiplié par la dimension de l’image. Le masquage effectue (en prenant pour simplifier l’addition comme unité de temps calcul) 8 additions, donc la complexité est en 8 N².
![]() |
Dans cette
partie où l’on teste l’efficacité de notre procédé, toutes les images sont
obtenues à l’aide d’un programme écrit en C, qui se trouve en annexe.
a)Un exemple idéal.
Voici par exemple un contour parfait pour notre méthode : un dégradé circulaire avec deux paliers bleu foncé et bleu turquoise (0 à 255) :
Et voici l’image du module
du laplacien (gris=0 vert=190), et voici l’image originale avec la ligne de
changement de signe mise en évidence en rouge :
b)Etude des contours « en toit »
Image idéale (échelle de gris 0-255)
Voici
maintenant un exemple qui illustre l’utilité du Laplacien pour détecter une
classe de contours particuliers : les routes et les cours d’eau. Soit
l’image idéale de routes ou de cours d’eau :
Le profil du contour est différent de ceux auxquels nous nous
intéressons, c’est un contour en toit :
On peut se poser la question suivante : compte tenu de la dérivée
seconde qui est grande sur le contour, ne suffit-il pas de considérer l’image
du Laplacien, sans considérer ses passages à zéro ?
Dans un cas idéal, comme celui de notre image test, l’image du
Laplacien suffit :
On pourrait donc croire que le Laplacien donne directement ce genre de contours.
Il n’en est rien dans la pratique, pour preuve cet exemple :
Notre procédé donne t-il des
résultats plus satisfaisants ? La pratique tend à le prouver (cf. infra),
en voici l’explication. Bien qu’extrémale sur le contour, la dérivée seconde s’annule
deux fois autour de l’extremum, ce double passage est bien détecté par notre
procédé. Le seul inconvénient est l’imprécision induite. Le contour est plus
« épais ».
Voici donc comme promis le
résultat de notre procédé sur l’image :
Il reste encore des zones
bruitées, mais on obtient bien le réseau fin principal.
Au prix d’une légère perte
de précision, notre procédé peut donc détecter ce qu’on appelle les réseaux
fins (contours en toit) : routes, réseaux ferroviaires, cours d’eau.
c)Un exemple et amélioration du procédé
Voici un exemple, dans la
région de la Crau :
Après détection de la ligne
de passage à zéro du Laplacien :
Image finale des contours
Il faut remarquer le
dédoublement des lignes du passage à zéro entre deux zones homogènes.
L’image finale comme
l’image obtenue en b) met en évidence une limitation de notre procédure :
le passage à zéro est une condition nécessaire mais pas suffisante de détection
d’un contour. Il reste sur l’image finale des contours parasites qui ne
correspondent pas forcément aux contours francs que l’on cherche. Ici on
obtient aussi des contours en « pente douce ». La solution partielle
que m’a proposée un spécialiste du sujet est de calculer aussi l’image du
module du vecteur gradient à l’aide encore une fois d’un opérateur de
masquage local.
En combinant passage à zéro
du Laplacien et présence d’un fort gradient, on élimine bon nombre d’entités
engendrant la détection d’un contour. Cependant il reste un problème majeur,
commun à toutes les techniques de traitement d’un signal : le bruit.
d)Une autre limite importante : le bruit
En pratique la méthode de
détection des contours par passage à zéro du Laplacien n’est efficace que
lorsque l’image n’est pas bruitée. En effet, une analyse fréquentielle montre
que le Laplacien possède un caractère passe-haut qui amplifie le bruit.
Les images à analyser sont en effet souvent bruitées c’est à dire qu’elles présentent de nombreuses discontinuités locales parasites. Il est donc nécessaire bien souvent avant de générer l’image du module du Laplacien d’utiliser un filtrage passe-bas sur l’image pour éradiquer les contours parasites.
Le passe bas le plus simple peut être modélisé par le masque « moyenne » vu précédemment. En fait le masque rend l’image légèrement floue, ce qui absorbe les points parasites et homogénéise les textures. La page suivante illustre l’intérêt d’un tel filtrage.
La détection de contours joue un rôle
particulièrement important dans l’analyse d’image.
· La détection de contours
est la première étape pour l’extraction des réseaux routiers, ferroviaires
et fluviaux.
· La détection de contours
est utile pour le cadastre, elle met généralement bien en valeur les parcelles
de terrain.
·Elle intervient
indirectement dans d’autres techniques d’analyse d’images car elle met bien en
évidence la structure d’une image.
Forts des essais sur des images réelles, la méthode de détection de contours que nous avons établie est la suivante :
· Application d’un filtrage type passe-bas
· Calcul à l’aide d’un opérateur de masquage local de l’image du module du Laplacien
· Création de l’image des passages à zéro du Laplacien : I
(·) Calcul à l’aide d’un opérateur de masquage local de l’image du module du vecteur gradient : G
· Seuillage de l’image I à partir des données de l’image G : au delà d’une certaine valeur de G(n,m) on considère que le point I(n,m) peut être un contour.
Conclusion
Maillon final de la télédétection, l’analyse d’images se doit de corriger les faiblesses des maillons précédents et de fournir le produit final à l’utilisateur : une image dans laquelle apparaît seulement l’information utile.
Les techniques mises en œuvre pour la télédétection sont nombreuses et la tâche la plus difficile de l’ingénieur en charge de l’analyse d’images est de choisir une technique adaptée. Comme nous l’avons souligné pour la détection des contours, il n’existe pas une méthode unique, mais un panel de méthodes adaptées à chaque cas. Les recherches actuelles dans ce domaine portent justement sur des procédés qui permettraient d’automatiser ce choix, ensemble de procédés appelé pilotage par l’applicatif.
Références bibliographiques et URL internet
[1] Traitement numérique des images, sous la direction de Murat Kunt, presses polytechniques et universitaires romandes.
[2] Article télédétection de l’Encyclopaedia Universalis.
[3] Segmentation d’image où en somme nous ? Olivier Monga, rapport de recherche n°1216 de l’INRIA, unité de recherche INRIA-ROCQENCOURT
[4]L’observation de la terre par les satellites, Fernand Verger, PUF.
[5]www-projet.cnes.fr :8090/segmentation/menu.html
[6]www-ima.enst.fr/~maitre/BETI