Nicolas Boehrer |
RECHERCHE DE METHODES D’EXTRACTIONS AUTOMATIQUES DE
PLANS DANS UN NUAGE DE POINTS CAPTES PAR LASER SCANNER
TERRESTRE
Société d’accueil : Institut für Photogrammetrie und Fernerkundung
PFE présenté par : Nicolas Boehrer
Directeur (directrice) du PFE : Dr.Ing. Thomas Voegtle
Correcteurs : Mme Landes, M. Grussenmeyer
1. Problématique
Les travaux laser scanner terrestre deviennent de plus en plus courants dans des domaines d’application qui deviennent de plus en plus grands. On utilise de tels appareils dans des chantiers d’auscultation, de maintenance d’ouvrages d’arts, de raffineries et installations pétrolières, de modélisation urbaine, de protection du patrimoine, de planification de projets, etc.… Les applications deviennent de plus en plus nombreuses. Mais le laser scanner se révèle très exigeanten post-traitement. Les méthodes de post-traitement ne sont pas encore aussi développées que celles pouvant être utilisées pour les stations totales ou les GPS. Un grand travail reste encore à faire pour améliorer cette partie du traitement et pouvoir profiter au maximum des avantages du laser scanner. Parmi les traitements les plus courants, la reconnaissance automatique de formes parmi le nuage de points se révèle de première importance. Je me suis attaché à étudier des méthodes permettant de reconnaître automatiquement la forme de loin la plus courante dans des relevés laser scanner terrestre. Il s’agit du plan. Il a donc été fait le choix d’étudier trois méthodes différentes permettant l’extraction automatique de plans dans des données laser scanner terrestre. Il s’agira dans un premier temps de l’étude de l’application d’un programme de segmentation développé pour des données provenant de lasers scanners aériens, puis de développer moi-même deux autres programmes suivant des principes différents et permettant d’effectuer cette tâche de manière automatique.
2. Application du programme « fseg » à des données terrestres
Principe
Le but de mon travail est l’extraction automatique ou segmentation de l’ensemble des plans contenus dans un relevé laser scanner terrestre.
Une première méthode suivie a été l’adaptation de méthodes et programmes développés pour le traitement de données laser scanner aériens. Ces procédés ont été développés par l’Institut für Photogrammetrie und Fernerkundung de l’université de Karlsruhe. Au centre de ces chaînes de traitementsse trouve le programme de segmentation développé par Eberhard Steinle basé sur des données sous forme Raster.
Ce programme fut développé pour traiter des données provenant de relevés aériens et est utilisé en particulier dans le projet de modélisation des bâtiments endommagés après une catastrophe naturelle.
Le programme est basé sur des données raster. Il suit le principe d’extension par croissance de régions (« region growing Verfahren » ou « Flächewachstumsverfahren »).
Le fonctionnement est itératif. Dans un premier temps une zone de l’image raster est choisie. Cette zone dont il est possible de définir la taille en pixel est appelée graine ou point de cristallisation. C’est de cette zone en général de 3x3 pixels que part la segmentation. Les pixels de cette graine appartiennent tous à la même surface. Le programme va ensuite chercher automatiquement les pixels contigus à la graine. Ce sont les valeurs de gris qui permettent de calculer si les points voisins appartiennent eux aussi à la même surface que la graine. Pour cela il compare le s valeurs de gris des pixels étudiés avec celles calculées si ils appartenaient au plan défini par la zone de départ. Cette différence est comparée à une tolérance. Si la différence est en dessous de la valeur limite, les pixels voisins sont intégrés au plan et les valeurs de gris sont recalculées par compensation pour une prochaine comparaison avec les pixels voisins. Si en revanche la différence est trop importante en comparaison avec la valeur tolérée, le pixel n’est pas intégré au plan et la frontière avec le pixel voisin est retenue comme frontière du plan.
RASTER OBJET Principe de segmentation de fseg Valeur prévue Valeur
Résultats
Le travail avec le programme « fseg » a été conduit en suivant plusieurs axes. Je me suis tout d’abord intéressé à la faisabilité d’adapter ce programme normalement conçu pour des applications à des données laser scanner aériennes à des applications laser scanner terrestres. Une fois les premiers résultats obtenus j’ai effectué une première étude concernant l’influence du raster dans la segmentation. J’ai crée pour les mêmes données projetées de manière identique plusieurs rasters ayant des dimensions de pixel terrain différentes. J’ai ensuite comparé entre eux les résultats issus de la segmentation de chacun des rasters.
Le second thème a été l’étude de l’influence de chacun des paramètres choisis par l’utilisateur pour effectuer la segmentation.
A partir d’un raster j’ai comparé entre eux les résultats issus de la segmentation effectuée en faisant varier les paramètres choisis par l’utilisateur.
Pour finir j’ai effectué une comparaison entre les résultats fournis par la méthode utilisant un raster au format tif et la méthode utilisant la liste des points pour fournir un raster et je me suis enfin intéressé aux limites et caractéristiques intrinsèques du programme.
Comparaison des segmentations issues de deux préparations différentes
3. Méthode par accroissement de surfaces
Principe
Après le travail déjà abordé concernant l’étude d’un programme existant pour effectuer la détection de plans dans les données nous allons passer à la partie concernant le développement propre d’un outil permettant d’effectuer ce travail. Il a été procédé à un travail de programmation selon une idée directrice (voir ci après) permettant une détection des plans dans les données laser scanner terrestre. J’ai voulu vérifier si il était possible de réaliser une telle segmentation selon ce principe et si oui avec quelle qualité de résultats.
Le programme repose tout comme le programme de segmentation de Eberhard Steinle « fseg » sur un foncti onnement itératif selon le principe du « region growing Verfahren ». Le programme se base ici sur une utilisation directe des points et non un raster nécessitant une transformation préalable. L’idée est de partir d’un triangle initial formé par trois points voisins. Celui-ci constitue un plan ayant ses propres paramètres d’équation. Ce premier plan peut être appelé graine ou point de cristallisation. Cette graine constitue le point de départ de notre segment. A partir de lui et dans chaque itération suivante vont être étudiés individuellement les triangles voisins du segment. Chaque triangle voisin forme un plan défini par 3 points dont les caractéristiques peuvent être comparées à celles du segment déjà formé. Ainsi à chaque itération on va comparer les caractéristiques du plan étudié à celui de référence. La différence entre les deux est comparée à une tolérance fixée par l’utilisateur. Si le nouveau triangle possède les caractéristiques adéquates, il sera intégré au segment. C'est-à-dire considéré comme appartenant au plan et les coordonnées de ses points utilisées pour effectuer avec les points des triangles appartenant déjà au plan, un calcul par les moindres carrés des nouveaux paramètres du plan. Si le nouveau triangle ne devait pas satisfaire à la condition fixée par la tolérance, le triangle serait enregistré comme ne faisant pas partie du segment, et la frontière enregistrée comme frontière du segment. Lorsque le programme ne trouve plus de triangle voisin satisfaisant à la condition, il enregistre les caractéristiques finales du segment et recommence en cherchant un nouveau point de départ pour la création d’un nouveau segment. On obtient ainsi des segments contenant un ensemble de triangles constitués de points appartenant tous (dans une certaine tolérance fixée par l’utilisateur) à un même plan.
Résultats
Devant les problèmes extérieurs au sujet du travail posés par la gestion de la mémoire et du temps decalcul pour des données réelles nous nous sommes limités à étudier le programme sur des données artificielles. On entendra par données artificielles des données ne provenant non pas d’un levé laser scanner mais crées de toute pièce. J’ai ainsi crée des réseaux de points couvrant des formes géométriques simples connues et permettant de vérifier les données sortant effectivement des programmes. Ces données sont aussi de petite taille, de l’ordre de quelques centaines de points, ceci afin de permettre des fonctionnements rapides des programmes pour les tests effectués.
L’objet de test utilisé correspond en fait à un levé fictif de deux plans parallèles au plan (X, Y), à des valeurs de Z différentes et reliés entre eux par un troisième plan incliné.
Plusieurs tests ont été effectués, en particulier concernant les différents paramètres utilisés. J’ai ainsi recherché les paramètres permettant d’obtenir les meilleurs résultats.
Résultat de la segmentation
On voit ci-contre le résultat de la segmentation utilisant la première variante du programme. Il ne sera présenté ici quele résultat final. Les résultats intermédiaires issus des différentes étapes de la programmation ne présentent qu’un faible intérêt. La seconde variante a elle aussi été testée avec cet objet mais produit ici des erreurs en créant dans le ré eau de triangle des triangles « fantômes ».
Dans l’illustration suivante, on observe (par une vue de dessus) les variations résultantes de la modification des paramètres de fonctionnement du programme. On observe ici une réduction de la taille des segments lorsque l’on réduit la valeur du paramètre de la distance de recherche des points nouveaux.
4. Méthode par profils successifs
Principe
Mon travail de programmation devait consister à développer deux programmes de segmentation selon deux idées différentes. La seconde méthode devait mettre en œuvre la méthod e dite de Peucker appliquée à un espace en trois dimensions. Cette méthode approche le problème comme celle précédente par les points. Or devant les problèmes (concernant le traitement du grand nombre de points contenus dans les relevés laser scanner) posés par cette approche, il a été décidé de suivre une autre voie. Cette deuxième méthode utilise donc toujours l’idée de Peucker mais d’une manière différente à celle présentée en 2.2.4 et dans un souci d’allégement des opérations.
L’idée principale reste l’utilisation du principe de Peucker. Mais contrairement à ce qui a été expliqué en 2.2.4, je suis resté à une application de cette méthode à un espace à deux dimensions. Le principe de cette seconde méthode consiste en la réalisation de « coupes » de la figure pour des val eurs de Z régulières. Ces « coupes » donnent ensuit e lieu à des profils grâce à l’utilisation de l’algorithme de Peucker qui sont ensuite comparés entre eux et permettent d’en déduire la géométrie en 3D de la figure. La comparaison des positions relatives des points pour des variations en Z connues nous permet alors de recréer les plans recherchés. Les plans sont constitués d’un assemblage de rectangle. Par l’étude des rectangles voisins et comparaison des caractéristiques de chacun il deviendra alors possible de recréer le segment correspondant à un unique plan.
Principe général de fonctionnement
Résultats
Comme on le voit sur les résultats de ces tests, le programme est capable dans la majorité des cas de détecter et segmenter correctement les différents plans. La visualisation avec les rectangles ne permet pas de bien se rendre compte de la segmentation finale mais apporte une illustration indispensable du fonctionnement du programme.
5. Bilan
On peut effectuer une comparaison des trois modes de segmentation.
Fseg
Avantages |
Inconvénients |
Résultats de grande précision |
Conversion en 2D du problème |
Visualisation claire des résultats |
Préparation importante des données |
Fonctionnement sans fautes
Méthode par accroissement de région
Avantages Inconvénients
Méthode lente
Méthode juste avec résultats compensés Difficile utiliser pour données Laser scanner Peu de préparationIdée de base simple
Méthode par comparaison de profils
Avantages |
Inconvénients |
Méthode rapide |
Méthode peu précise, approximations |
Visualisation claire des résultats |
Très dépendante des données Programme lourd |
Tableau comparatif des différentes méthodes
Au vu de la comparaison ci-dessus, il devient clair que chaque méthode possède son domaine d’application.
La première méthode sera à utiliser lorsque l’on travaillera sur des ouvrages se présentant d’un seul tenant sous forme d’une façade principale portant tous les éléments mais avec peu de retours et parties perpendiculaires à cette façade principale. On est ainsi dès le départ, proche d’une configuration 2D, proche d’un plan unique sur lequel on perdra peu d’information en projetant les points.
La seconde méthode sera particulièrement efficace pour des formes compliquées avec beaucoup de détails, mais de taille réduite. Ainsi on bénéficie de la qualité des résultats en matière de précision ainsi que de la flexibilité de la méthode. On évitera en se concentrant sur des zones précises de perdre beaucoup de temps. La dernière méthode sera elle plus adaptée à d’importantes façades pouvant avoir des détails mais devant être définis de manière suffisante. Cette méthode se révèle adaptée en matière de temps de calcul à des éléments de grande taille et représentant un compromis entre les deux méthode précédente pour le traitement de détails. Elle permet de traiter parfaitement la façade (contrairement à la première méthode) dans les trois directions et de restituer les détails lorsque la densité de points est suffisante.