Équipe IMAGE - Le projet Pantheon

Tutoriel : Extraire les zones urbaines dans des images aériennes

Identification

Ressources

I. Objectif

L'objectif est d'extraire les zones urbaines présentes dans des images aériennes extraites de Google Maps par une simple copie d'écran. Les images données en exemple sont prises dans la région de Creully en Basse-Normandie (France).

Le traitement construit ici est adapté aux images ayant la même résolution que l'image donnée en exemple, soit 1 pixel représente 5,932 m sur le terrain. Avec une résolution différente les valeurs des paramètres devront être adaptées.

L'image initiale.Les zones urbaines détectées.

II. Méthode

La méthode est basée sur l'hypothèse que les zones urbaines apparaissent dans les images comme des régions ayant une texture de type contour.

La méthode est alors directe :

  1. Prétraiter l'image pour réduire les artefacts dus à l'acquisition et au mode de compression.
  2. Détecter les contours.
  3. Localiser les zones à forte densité de contours.
  4. Former les régions candidates.
  5. Supprimer les fausses régions.

Puisque la stratégie est basée sur l'analyse de texture, des régions texturées non désirées peuvent apparaître dans le résultat, telles que les forêts. Ces fausses alarmes pourraient être éliminées par la suite en utilisant d'autres critères telle que la couleur, ce qui n'est pas fait ici.

II.1 Réduire le bruit et les artefacts de l'encodage Jpeg

La couleur n'est pas une information discriminante pour repérer les zones urbaines. Les toits des maisons peuvent être de n'importe quelle couleur. Nous allons donc n'utiliser que la composante luminance des couleurs.

Pour réduire le bruit et l'effet bloc dû à Jpeg, nous allons simplement passer un filtrage passe-bas gaussien sur l'image, qui est suffisant pour le reste des traitements.

pany2pan input.jpg input.pan
prgb2gray 0.299 0.587 0.114 input.pan tmp2.pan

pgaussianfiltering 0.5 tmp2.pan image1.pan
image1.pan : Après le prétraitement.

II.2 Détecter les contours

On cherche maintenant à détecter les zones urbaines. Pour cela, on peut remarquer que les zones urbaines sont les régions de l'image qui contiennent le plus de contours, entre autre les bords des maisons ou les bords des rues, alors que les autres régions de l'image (p. ex., champs, plan d'eau) sont plus lisses.

Les contours sont détectés par un simple gradient de l'image suivi d'une binarisation basée sur la maximisation de la variance interclasse (Otsu, 1978).
pgradient 1 image1.pan tmp3.pan tmp4.pan
pvariancebinarization tmp3.pan image2.pan
image2.pan : Après la détection de contours.

II.3 Localiser les zones à forte densité de contours

Pour délimiter les zones à forte densité de contours, une méthode consiste à dilater les contours de façon à regrouper ceux qui sont proches dans une même région. On estime que deux maisons proches ont des bords à une distance maximale de 5 pixels dans l'image (soit 29,6 m dans la réalité). Il suffit donc de dilater les contours d'au moins 3 pixels de chaque côté pour fusionner deux contours ayant une distance ≤ 5 pixels.

Pour localiser les régions, il faut détacher les régions des contours qui les relient (rue, haie, etc). Une ouverture géodésique avec un élément structurant de type disque de rayon 3 permet de supprimer tous les liens d'épaisseur > 3 pixels.

pdilatation 0 2 image2.pan tmp5.pan
perosion 0 2 tmp5.pan image3.pan

perosion 2 3 image3.pan tmp6.pan
pgeodesicdilatation 0 2 3.0 tmp6.pan image3.pan image4.pan
image3.pan : Après la fermeture.
image4.pan : Après l'ouverture géodésique.

II.4 Former les régions candidates

Pour construire les zones urbaines, il faut ensuite supprimer les trous à l'intérieur de ces régions pour n'avoir que des zones compactes. Toutefois, on ne supprime que les trous qui ont une surface inférieure à 10 x 10 pixels (soit 60 x 60 m2 sur terrain). Les trous plus grands correspondent en général à des espaces verts ou des stades de foot à l'intérieur de la zone urbaine qu'il ne faut pas agglomérer à la zone urbaine correspondante.

Une fermeture géodésique permet de combler les trous internes d'une taille < 5 de rayon et une ouverture géodésique de la même taille permet de construire des régions compactes sans barbules.

pdilatation 2 5 image4.pan tmp7.pan
pgeodesicerosion 0 2 5 tmp7.pan image4.pan tmp8.pan

perosion 2 5 tmp8.pan tmp9.pan
pgeodesicdilatation 0 2 5 tmp9.pan tmp8.pan image5.pan
image5.pan : Les régions candidates.

II.5 Supprimer les fausses régions

Les trop petites régions ne correspondent pas à des zones urbaines. On va donc les éliminer sur un critère de taille. On considère qu'il ne peut pas y avoir de zones urbaines de surface inférieure à 500 x 500 m2 sur le terrain ce qui correspond à 7104 pixels dans l'image compte-tenu de l'échelle de prise de vue.

pareaopening 8 7104 image5.pan image6.pan
image6.pan : Après la suppression des fausses régions.

II.6 Superposer le résultat à l'image initiale

Pour mieux visualiser le résultat, les frontières des régions détectées sont superposées à l'image initiale.

pboundary 8 image6.pan tmp10.pan
psuperimposition 1 input.pan tmp10.pan output.pan
ppan2jpeg output.pan output.jpg
output.pan : Visualisation du résultat.

III. Le script Pandore complet (bash)


Projet Panthéon
Equipe Image Laboratoire GREYC
UMR CNRS 6072 - ENSICAEN - Université de Caen, France
Page modifiée le 03 December 2018