Détection de constructions illégales

Entre avril à juin, 95 500 logements ont commencé à être construits en France et 112 600 permis ont été délivrés, selon le ministère de la Transition écologique. Comparé à la même période de 2019, donc avant la crise, les logements commencés comme les permis de construire sont en hausse mais très légère : respectivement +0,7 % et +0,2 %. Cependant, de nombreux bâtiments sont construits dans des zones déclarées inconstructibles et parfois sans avoir déposé de demande de permis de construire.

Pourquoi détecter les bâtiments et dans quel but ? Disposer d’un référentiel fiable de données, est essentiel pour répondre aux problématiques d’aménagement des territoires (protection des zones naturelles, le littoral, lutte contre les risques d’inondation, urbanisation galopante, ilot de chaleurs…). La mise à jour des données de bâtiments est souvent une tâche triviale, cela nécessite beaucoup de moyens techniques et financiers.

Aujourd’hui, il est possible d’utiliser les nouvelles technologies d’intelligences artificielles  comme la segmentation sématinque en complément des données libres d’usages dites open data (images aériennes ou satellitaires) pour automatiser la détection et la mise à jour des bâtiments.

Segmentation et détection d’objets?

L’une des opérations les plus importantes de la vision par ordinateur est la segmentation. La segmentation d’image consiste à regrouper des parties d’une image appartenant à la même classe d’objets. Ce processus est également appelé classification au niveau des pixels (images et vidéo…). Les champs d’ applications, sont nombreuses notamment la détection des cancers, des panneaux de signalisation, l’évaluation des matériaux de construction ou la vidéosurveillance.

Dans le domaine de la télédétection, La segmentation d’images basée sur l’apprentissage en profondeur a été appliquée avec succès pour segmenter des images satellites y compris des techniques d’urbanisme ou d’agriculture de précision.  Il est nécessaire de séparer la segmentation en différents types selon l’application :

  • Classification d’image: exemple chien ou chat
  • Segmentation sémantique : qui est la plus commune, va associer à chaque pixel une étiquette/catégorie. Ainsi on s’intéresse plutôt à des régions plus ou moins amorphes et non dénombrables telles que le ciel, la végétation. etc.
  • Détection d’objets comme une boite englobante d’un objet dans l’image
  • Segmentation d’instance : identifie la catégorie d’objets et localise la position à l’aide d’un cadre de délimitation pour chaque objet connu dans une image.  Elle s’intéresse à des objets dénombrables dans une image. Ainsi on sépare ce qu’on appelle objets des fonds/arrière-plans. On peut retrouver ce type de segmentation dans des applications telles que les voitures autonomes où il s’agit d’identifier les voitures, panneaux de signalisations et autres.
  • Segmentation panoptique qui est la somme de détection et segmentation.

Dans le cadre de ce projet, nous utiliserons uniquement la segmentation sémantique pour identifier les empreintes de bâtiments.

Approche méthodologique

Dans cette partie, nous décrivons les différentes étapes nécessaires pour l’extraction des empreintes de bâtiments. Ce flux de travail est composé de cinq étapes : la préparation, la modélisation, l’entrainement, la prédiction et une dernière étape de post-traitement des résultats du modèle. Cette dernière vise à générer des résultats facilement transformables en formats de données SIG (polygones avec coordonnées géographiques) pour la comparaison avec le cadastre.

Pour la détection des bâtiments, nous avons besoins d’images satellites ou ortho photographiques. La BD ORTHO® de l’IGN offre la meilleure résolution spatiale et temporelle pour détecter l’emprise des bâtiments. Dans le cadre de ce projet, pour la partie segmentation sémantique, les données ont été téléchargées sur la commune Lyon. Aucun traitement supplémentaire n’a été appliqué à ces images. En effet, les données sont déjà orthorectifiées et géoréférencées.

Pour faciliter l’exploitation des données, les dalles ont été rééchantillonnées à 50 cm de résolution par pixel. Après plusieurs tests, la résolution spatiale de 3000/3000 pixels semble être la taille idéale pour bien distinguer les bâtiments. La fonction atlas de Qgis (logiciel SIG) a été utilisée pour générer des tuiles ou patchs.

Pour les modèles de segmentation, nous avons également besoin de labels ou masques pour l’apprentissage. Pour chaque image, une image binaire correspondante à l’emprise des bâtiments (BD TOPO® de l’IGN) a été produite.  Où les pixels correspondant à un bâtiment ont une valeur de 1, et les pixels non-bâtiment ont une valeur de 0.

Modèles de segmentation sémantique

En raison du succès des modèes d’apprentissage en profondeur dans un large éventail d’applications, de nombreuses recherches ont été menées pour développer des approches de segmentation d’images à l’aide de l’apprentissage en profondeur. Les avancées récentes des architectures de réseaux de neurones profonds tels que DeeplabV3+, MobileNet et Unet se sont révélés particulièrement efficaces pour tâches de segmentation sémantique sur plusieurs jeux de données de référence. Dans cette étude nous allons utiliser et comparer ces trois modèles de segmentation sémantique. Le model le plus préformant pourra alors être utilisé pour la prédiction des empreintes de bâtiments.

UnetUNet — Line by Line Explanation. Example UNet Implementation ...

UNet, est une évolution du réseau neurone convolutif traditionnel. Il a été conçu et appliqué pour la première fois en 2015 pour traiter des images biomédicales. L’auteur de UNet affirme dans son article que le réseau est suffisamment puissant pour faire une bonne prédiction basée sur quelques ensembles de données en utilisant des techniques d’augmentation de données excessives. Comme un réseau neuronal convolutif, il se concentre sur la classification des images, où l’entrée est une image et la sortie est une étiquette ou une zone à localiser.

À première vue, il a une forme en « U ». L’architecture est symétrique et se compose de deux parties principales – la partie gauche est appelée voie de contraction, qui est constituée par le processus de convolution général ; la partie droite est un chemin expansif, qui est constitué de couches convolutionnelles 2d transposées.

MobileNets

The proposed MobileNetV2 network architecture. | Download Scientific Diagram

Un réseau de neurones convolutif efficaces pour les applications de vision mobile, Howard et al, 2017. Nous utiliserons Mobilenet car il est léger dans son architecture. Il utilise des convolutions séparables en profondeur, ce qui signifie essentiellement qu’il effectue une seule convolution sur chaque canal de couleur plutôt que de combiner les trois et de l’aplatir. Cela a pour effet de filtrer les canaux d’entrée. Ou comme l’expliquent clairement les auteurs de l’article : « Pour les MobileNets, la convolution en profondeur applique un seul filtre à chaque canal d’entrée. La convolution ponctuelle applique ensuite une convolution 1 × 1 pour combiner les sorties de la convolution en profondeur. Une convolution standard filtre et combine les entrées dans un nouvel ensemble de sorties en une seule étape. La convolution séparable en profondeur divise cela en deux couches, une couche séparée pour le filtrage et une couche séparée pour la combinaison. Cette factorisation a pour effet de réduire drastiquement la taille des calculs et du modèle. »

DeepLabv3+

DeepLabV3+ | Papers With Code

C’est l’un des modèles d’apprentissage en profondeur de pointe pour la segmentation sémantique. DeepLabv3+ est une architecture de segmentation sémantique qui s’appuie sur DeepLabv3 en ajoutant un module décodeur simple mais efficace pour améliorer les résultats de segmentation. Le sous- échantillonnage multiple d’un CNN entraînera une réduction de la résolution de la carte des caractéristiques, ce qui entraînera une précision de prédiction inférieure et une perte d’informations sur les limites dans la segmentation sémantique.

De même, l’agrégation du contexte autour d’une caractéristique aide à mieux la segmenter. Dans ce projet, DeepLabv3+ va être utilisé avec une architecture ResNet-50 pré-entraînée (sur le jeu de données ImageNet).

La fonction de perte

La fonction de perte a un impact essentiel sur la précision du modèle et généralement la plus fonction de perte appropriée dépendra des propriétés des données et des définitions de classe. Dans ce projet, pour entraîner les différents réseaux une combinaison de deux fonctions de perte a été utilisée. Cette fonction de perte comprend une fonction de perte d’entropie croisée pondérée et l’intersection sur l’union (IoU) également appelée indice de Jaccard et la précision.

File:Intersection over Union - visual equation.png - Wikipedia

L’intersection sur l’union est utile pour quantifier le pourcentage de chevauchement entre le masque cible et la sortie de prédiction de masque de notre modèle. Rappelons que la tâche de la segmentation sémantique consiste simplement à prédire la classe de chaque pixel dans une image. Ainsi, l’IoU vise à évaluer les similitudes dans les pixels du masque réel et du masque prédit. Étant donné que la taille de nos vrais masques et la taille des masques prédits sont de 356 * 256 * 3 (ce qui équivaut à 196 608 pixels). Par conséquent, le score IoU de notre modèle pour toute image de notre ensemble de données est la proportion des 196 608 pixels du masque prédit qui correspond aux 196 608 pixels du vrai masque.

La précision décrit efficacement la pureté de nos détections positives par rapport à la vérité terrain. De tous les objets que nous avons prédits dans une image donnée, combien de ces objets avaient réellement une annotation de vérité terrain correspondante ?

Formation et entrainement des modèles

Pour la généralisation et la précision des modèles, nous avons procédé ainsi :

  • Data augmentation des images pour diversifier le contexte des données. Cette méthode consiste en trois formes d’augmentation des données : horizontale flip, flip vertical et une inférence de couleur aléatoire (c’est-à-dire un changement aléatoire de la luminosité, contraste et saturation de l’image).Toutes les images (images et masques) ont reçu une forme d’augmentation. Soit 8000 images dont 2000 d’origine.
  • L’ensemble des données ont été réparties en trois parties: 70 % pour les données d’entrainement, 20% pour la validation et 10% pour les données de tests.
  • L’algorithme d’optimisation Adam (adaptatif moment estimation) a été utilisé avec un ensemble de taux d’apprentissage de départ à 0,0001, le taux de décroissance exponentielle du premier moment est fixé à 0,9 et le deuxième moment à 0,999.
  • Le taux d’apprentissage a diminué toutes les 25 époques d’un facteur de deux.
  • La taille du lot a été fixé à 4 et le nombre d’époques à 55.

Après la formation des modèles, les meilleures époques (c’est-à-dire les meilleurs modèles) de chaque modèle ont été sélectionnées à l’aide de la métrique de précision Accuracy et calculée à chaque époque sur l’échantillon de validation.Les métriques mIoU ont été calculées séparément sur les échantillons d’entrainement, de validation et de test.

Post-traitements

Pour répondre aux objectif fixés, on doit pouvoir comparer les données issues de la prédiction avec les données du cadastre au format vectorielle standard. La dernière étape consiste donc à réaliser un ensemble de post-traitements des masques de prédiction. Ce pipeline effectue les opérations suivantes :

  1. Conversion des cartes de probabilité en masques binaires : Le modèle fournit masques de probabilité en sorties, qui sont convertis en un masque binaire en utilisant 0,5 comme seuil
  2. Filtres morphologiques : cette opération est utilisée pour supprimer le bruit et retirer de petits objets. Il s’agit d’effectuer une érosion puis une dilatation des masques au format rasteur.
  3. Polygonisation : cette opération consiste à convertir les images prédites en données vectorielles en gardant leur les coordonnées géographiques.
  4. Les polygones, sont ensuite fusionnés dans un seul fichier vectoriel au format shapefile ou geojson pour être comparer avec les données du cadastre.

Résultats et analyses

L’ensemble des données d’entrainement ont été utilisées pour former trois modèles avec la même fonction de pertes et les mêmes métriques. La précision de ces trois modèles est comparée à l’aide de l’échantillon de test et de validation non inclus dans le processus de formation soit 30 % des images.  Les courbes d’apprentissage sont un excellent outil de diagnostic pour déterminer le biais et la variance dans un algorithme de deep learning.

Globalement, les modèles ont tendance à bien se généraliser. Notez également qu’il y a une forte corrélation entre le nombre d’entrainement et la fonction de perte. Plus le nombre d’epoch est important plus les erreurs sont réduites. Avec seulement 15 epoch on atteint déjà plus de 93% de précision quel que soit le model. Ces mesures ne montrent pas de différences significatives. Cependant on peut accorder la meilleure performance au model Deeplabv3+.

En complément de la métrique de précision, l’intersection sur l’union (IoU), également appelée indice de Jaccard, est très utile pour quantifier le pourcentage de chevauchement entre le masque cible et la sortie de prédiction de masque de notre modèle. La métrique IoU vise donc à évaluer les similitudes dans les pixels du masque réel et du masque prédit. L’utilisation de cette pondération spatiale dans la fonction de perte nous a permis d’améliorer significativement la séparation entre bâtiments adjacents. Le model Deeplabv3+ parait ici le modèle le plus pertinent pour détecter les bâtiments comme en témoignent la figure suivante.

Visuellement on peut difficilement voir les différences entre les trois modèles même si Deeplabv3+ apporte une meilleure précision. Nous pouvons également observer que les modèles ont du mal à prédire les zones en construction ou des difficultés à analyser l’ombre sur les bâtiments.

Comparaison avec les données cadastrales

Après avoir analyser les résultats et choisit le model le plus pertinent, nous allons pouvoir faire une étude comparative avec le cadastre afin d’identifier les nouvelles constructions. Cela sous-entend aussi de disposer le dernier millésime du cadastre dans la zone d’étude. Pour détecter la présence ou non de nouveaux bâtiments, nous avons construits plusieurs métriques basées sur l’erreur absolue moyenne(MAE) ainsi que l’IoU pour évaluer les similitudes dans les pixels du masque réel(cadastre) et du masque prédit.

Par exemple, dans la ci dessous, la différence symétrique utilisée est le résultat de la somme des différences entre les données prédites et le cadastre. Par conséquent, plus l’erreur absolue moyenne est faible moins il y a de différences et inversement. Avec une IoU moyenne de 95%, on voit bien qu’il n’y a pas de nouveaux bâtiments dans l’image prédite. En outre, les autres différences complémentaires permettent de détecter les pixels que nous avons détectés en plus ou en moins entre la prédiction et le cadastre.

Limites

Actuellement, nous avons un modèle qui fonctionne assez bien sur la plupart des images que nous avons. Ce pendant le jeu de données entrainé uniquement sur Lyon ne permet pas de prédire n’importe qu’elle image. En effet, dans le jeu de données, les images sont localisées essentiellement en milieu urbain très dense ou pavillonnaire. Nous avons également remarqué que la résolution spatiale et spectrale est déterminant pour une meilleure précision. Par exemple des images de résolution de 1 mètre ou d’une taille de plus de 3000/3000pixel ne conviendrait pas à notre model. La détection de l’emprise des bâtiments est moins évidente. Avec la réduction des données lors de la précision à 256/256 pixels, on perd beaucoup d’informations spectrales.

Donc malgré la précision du model, la prédiction faite sur un nouveau jeu de données, démontre quelques limites. Avec l’intersection des données avec le cadastre, certains bâtiments n’ont pas non plus été détectés ou partiellement identifiés comme l’illustre la figure 24. Les polygones en rouge représentent soit l’empreinte des bâtiments non présentes dans le cadastre soit des erreurs de classification. IL y a plusieurs raisons pour expliquer cela.

  • D’abord, les données d’apprentissage datent de 2018 et le cadastre de 2021. Donc la majeure partie des bâtiments non détectés ont été construites après 2018.
  • Le jeu de données, essentiellement en milieu urbain ne permet pas non plus d’identifier toutes les caractéristiques des éléments bâti.
  • La luminosité, l’ombrage et la réflectance varie énormément. Certains matériaux comme le sol des parkings peuvent être confondus aux toits de certains bâtiments.
  • Certains bâtiments sous la canopée, figurent 25, bien identifiés dans le cadastre, ne pourront pas aussi être détectés. Les toits végétalisés, en serres ou en plastiques également sont difficiles à identifier.

Globalement, l’approche de la segmentation sémantique nous a permis de détecter avec précisions les empreintes de bâtiments. Voici quelques recommandations pour améliorer les performances du model :

  • Diversifier le jeu de données pour mieux identifier les caractéristiques des bâtiments (colorimétrie, résolution spatiale et radiométriques)
  • Utiliser un model pré-entrainé sur « imagenet » pour une meilleure détection
  • Pour résoudre le problème de détection d’images de grande tailles, avant de faire une prédiction, il faudra réduire l’image d’entrée en patches plus petites. Faire une prédiction patches par patches et assembler l’ensemble comme image de sortie.

Laisser un commentaire