Équipe IMAGE - Le projet Pantheon

Tutoriel : Extraire les zones boisées dans des images aériennes de Google Maps

Identification

Ressources

I. Objectif

L'objectif est d'extraire les zones boisées 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). Dans ce type de paysage normand, les zones boisées correspondent essentiellement aux bois et aux haies.

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 source.Les zones boisées détectées.

II. Méthode

La détection proposée est essentiellement basée sur l'analyse des couleurs des pixels de l'image puisque les zones boisées apparaissent dans les images comme des régions de couleur vert sombre. Une mesure supplémentaire d'hétérogénité est utilisée pour distinguer certain champs avec les zones boisées.

La méthode est composée de 6 étapes :

  1. Prétraiter l'image pour réduire les artefacts dus aux modes d'acquisition et d'encodage.
  2. Sélectionner les zones vertes.
  3. Sélectionner les zones sombres.
  4. Sélectionner les zones à forte variance.
  5. Former les régions candidates par combinaison des zones détectées précédemment.
  6. Supprimer les fausses régions sur des critères de taille essentiellement.

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

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
pgaussianfiltering 0.5 input.pan image1.pan
image1.pan : Image prétraitée.

II.2 Sélectionner les zones de couleur verte

Pour étudier la couleur, l'image est convertie dans l'espace couleur TSL (Teinte-Saturation-Luminance). Le principe est de sélectionner dans l'image TLS uniquement les pixels dont la valeur de teinte est comprise entre 110° et 200°, qui correspondent à la couleur verte.

prgb2hsl image1.pan tmp1.pan

pgetband 0 tmp1.pan tmp2.pan
pbinarization 110 200 tmp2.pan tmp3.pan

# closing
pdilatation 0 1 tmp3.pan tmp4.pan
perosion 0 1 tmp4.pan tmp5.pan
tmp5.pan : Les régions vertes dans l'image.

II.3 Sélectionner les zones sombres

Pour sélectionner les régions sombres, il suffit de ne sélectionner que les pixels ayant une valeur de luminance faible, c'est-à-dire entre 0 et 60.

prgb2hsl image1.pan tmp1.pan

pgetband 2 tmp1.pan tmp8.pan
pbinarization 0 60 tmp8.pan tmp9.pan

# closing
pdilatation 0 1 tmp9.pan tmp10.pan
perosion 0 1 tmp10.pan tmp11.pan
tmp11.pan : Les régions sombres dans l'image.

II.4 Fusionner les deux résultats précédents

En combinant les deux résultats précédents on obtient les régions vertes et sombres.

Une petite fermeture de demi-taille 1 permet de combler les trous de taille ≤ 1 pixel de rayon, puis une ouverture permet de supprimer les trop petites régions isolées (≤ 1 pixel de rayon).

pand tmp5.pan tmp11.pan tmp12.pan
plabeling 8 tmp12.pan tmp13.pan

# opening
perosion 0 1 tmp13.pan tmp14.pan
pdilatation 0 1 tmp14pan tmp15.pan
tmp15.pan : Les régions vertes et sombres.

II.5 Sélectionner les régions ayant une forte variance

Dans le résultat actuel, il reste encore quelques champs. On va donc utiliser une dernière caractéristique des zones boisées pour éliminer ces champs : l'hétérogénéité de la luminance des zones boisées. Une zone boisée ne présente pas en général une surface uniforme (à cause du feuillage) à la différence des champs. Nous allons utiliser ici une mesure statistique de l'hétérogénéité des régions : la variance. On ne garde des régions précédentes que les régions qui ont une variance supérieure à 50. En sortie, nous aurons les régions vertes sombres ayant une luminance non homogène.

pgetband 2 tmp1.pan tmp16.pan
pvarianceselection 1 50 tmp15.pan tmp16.pan tmp17.pan
tmp17.pan : Les régions vertes, sombre et hétérogènes.

II.6 Supprimer les fausses alarmes

Les fausses régions sont écartées sur leur valeur de surface. On ne conserve que les régions de taille ≥ 200 pixels (soit 7000 m2 sur le terrain).

pareaselection 1 200 tmp17.pan tmp18.pan
tmp18.pan : Les régions candidates.

II.7 Visualisation des résultats

Uniquement pour des raisons de visualisation des résultats, on va superposer les frontières des zones boisées trouvées à l'image initiale.

pboundary 8 tmp18.pan tmp19.pan
psuperimposition 7 input.pan tmp19.pan output.pan
ppan2jpeg output.pan output.jpg
output.pan : L'image 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 20 January 2014