• Aucun résultat trouvé

Lien avec la détection de changement

A.3 Calcul de la portion de ciel visible

A.3.4 Lien avec la détection de changement

Nous présentons maintenant un exemple de ce qu'il est possible de réaliser en termes de cartographie des changements, grâce à l'éclairage en portion de ciel visible. Le principe

est tout simplement de coupler l'information de distance codée en fausse couleur avec celle de la teinte donnée par l'éclairage en portion de ciel visible. Ceci permet de visualiser les déformations en même temps que la géométrie de l'objet. On peut voir un exemple de rendu de ce type en gure A.10. L'apport perceptif du rendu en portion de ciel visible est indéniable (surtout lorsqu'on compare l'image du bas et celle au milieu à gauche qui représente uniquement les distances en fausses couleur).

Portion de Ciel Visible Distance de Hausdorff

Fusion

Fig. A.10  Fusion entre rendu en Portion de Ciel Visible (niveau 9) et représentation en fausses couleurs du calcul de distance (entre deux nuages).

Une fois la portion de ciel visible calculée sur le nuage, il est d'ailleurs possible de réaliser la fusion des informations de distance et d'intensité en temps réel, à la volée. Ceci permet donc à l'utilisateur de continuer à faire varier l'échelle des valeurs (dans le cas d'une segmentation manuelle) pour produire une carte des distances optimale qui pourra être alors transmise sous la forme d'une image (ou même d'un nuage de points 3D coloré) à d'autres intervenants.

153

Annexe B

Taxonomie visuelle des changements

Cette annexe présente diérents exemples de comparaisons "idéales" de données 3D (modèles ou nuages de points). Sont typiquement représentées : les données d'entrée (nuages/modèle "avant" et "après"), la carte des écarts dans chacun des sens de compa- raison ("avant/après" et "après/avant"), et enn ce qu'on pourrait idéalement attendre d'un processus de segmentation des changements, voire même d'un diagnostic avancé. Chaque type de changement évoqué dans la taxonomie établie en section 1.2 est illustrée. Type 1 : apparition/disparition

Type 2-1 : déplacement sans recouvrement Type 2-2 : déplacement avec recouvrement Type 3-1 : déformation sans recouvrement Type 3-2 : déformation avec recouvrement

Type 1 – apparition/disparition référence comparé carte de distance Æ seuillage Æ segmentation

groupage des points

lien au modèle

modèle / modèle modèle / nuage nuage / modèle nuage / nuage

pas de m

o

B. Taxonomie visuelle des changements 155

Type 2-1 – déplac

ement, sans recouvrement

Exemple de représentati on idéale du mouvement (après appariem e nt des groupes de points segm entés) nuages de points cartes de distance segmentation résultat

Type 2-2 – déplac

ement, avec recouvrement

nuages de points cartes de distance détail segmentation résultat avant après Exemple de représentati on idéale du mouvement (après appariem e nt des groupes de points seg m entés)

B. Taxonomie visuelle des changements 157

Type 3-1 – déformation, sans recouvrement

nuag es d e po ints cart e d e dist an ce (en situ ation ) cart e d e dist an ce (détail ) limites de la zone de ch ang eme nt détectio n du conto ur (et diagno stic d es zon es n on scanné es)

Type 3-2 – déformation, avec recouvrement

nuage « av ant » nuage « après » carte de distance seuillage segmentation zon e ins uffisamment scann ée conto ur déte cté nuag e « avan t » nuag e « aprè s »

159

Annexe C

Logiciel CloudCompare

C.1 Présentation

CloudCompare est la plateforme logicielle de démonstration des algorithmes et tech- niques de comparaison mis au point au cours de cette thèse. Il a été développé en C++, sous Microsoft Visual Studio 6.0 (sous Windows donc) mais devrait être en théorie por- table tel quel sous Linux. En eet, l'interface graphique repose sur la libraire Open Source FLTK (pour Fast Light Toolkit) qui est portable. Outre les éléments d'interface graphique, FLTK comporte aussi un environnement OpenGL pour l'achage 3D.

Mis à part FLTK, le projet utilise plusieurs librairies externes :

FLU (J. Bryan, Ohio Supercomputer Center, Ohio State University), qui est une col- lection d'éléments d'interface évolués pour FLTK, dont en particulier un arbre de navigation (visible dans la fenêtre gauche de la gure C.1).

RPly (Diego Nehab, Princeton University), légèrement corrigée et modiée pour marcher au mieux sous Windows, qui permet l'ouverture et l'écriture de chiers au format PLY (format développé par l'université de Stanford).

Triangle (Jonathan Richard Shewchuk, Berkeley University), qui permet la création ra- pide et totalement contrôlée de triangulation 2D de nuages de points.

Le projet est conséquent. Il est composé d'une quarantaine de classes et d'approxi- mativement 18 000 lignes de code dans sa version standard. A cela peuvent se rajouter plusieurs modules : l'un qui permet l'ouverture de chiers Autocad DXF via une librairie (dxib, A. Mustun & R. Campbell Jr.), ou de chiers VRML/X3D via une autre librai- rie (CyberX3D, Satoshi Konno) et enn un autre qui a été développé par S. Bouggacha (stagiaire à EDF R&D, Département SINETICS, équipe CAO, été 2003) et qui permet la comparaison de données 3D acquises sur des aéroréfrigérants via une modélisation Spline du nuage de points photogrammétrique de référence.

Fig. C.1  Aperçu de l'interface graphique de CloudCompare.

C.2 Fonctionnalités

Couleurs Couleur unique, Teinte unique, Dégradé selon une dimension, Calcul de Por- tion de Ciel Visible.

Normales Calcul par triangulation locale, Calcul par ajustement d'un plan aux moindres carrés, Calcul par ajustement d'une fonction quadratique, Inversion globale du sens. Octree Calcul de l'octree, Décimation des points, Ré-échantillonnage, Extraction des

composantes connexes.

Triangulation (2D) Calcul direct (verticale : axe des Z), Calcul par projection des points du nuage sur un plan ajusté par la méthode des moindres carrés (avec ou sans l'enveloppe convexe), Calcul de surface, Échantillonnage de points sur la surface. Capteur Projection des points selon le point de vue du capteur (création d'une Carte

de Distances).

Distances Distance entre deux nuages (au plus proche voisin, avec options d'optimisation par modélisation locale et/ou par prise en compte du point de vue), Distance entre un nuage et un modèle (type Metro), Extraction de l'ensemble des points les plus proches, Calcul de la transformée de distance de type Chamfrein <3,4,5>, Calcul de la transformée de distance par Fast Marching, Calcul d'une distance géodésique sur la surface.

Champ Scalaire Filtrage des points du nuage par seuillage sur les valeurs scalaires, Cal- cul de l'histogramme, Calcul du Gradient, Calcul d'un ltre Gaussien, Multiplication de deux champs scalaires.

Statistiques Calcul des paramètres d'une loi de Gauss ou de Weibull à partir de l'his- togramme des distances, Test du χ2 global, Test du χ2 local.

C.2. Fonctionnalités 161 Segmentation Algorithme des nuées dynamiques (K-Means), algorithme de segmenta-

tion par propagation d'un front contraint par la norme du gradient.

Comparaison Outil d'enchainement d'algorithmes de comparaison, Recalage automa- tique de deux nuages de points (algorithme ICP de Besl[Besl et McKay 1982]). Transformations Translation, Homothétie, Fusion.

Développement Développement cylindrique selon un axe (déterminé automatiquement ou spécié manuellement), Développement conique.

Divers Calcul de densité locale, Calcul de courbure, Calcul de matrices de covariance (simple et croisée), Calcul de moments.

Interface Segmentation par dénition de frontières polygonales à l'écran, Segmentation interactive en fonction de la valeur de distance, Achage de l'échelle, Achage d'une grille de mesure, etc.

Fichiers Chargement et Sauvegarde(*) : ASCII(*) (détection semi-automatique du for- mat), SOI (Capteur Soisic), Binaire CloudCompare(*), Binaire TexMesh3D (Carlos Hernandez, TSI), Binaire PN(*) (Points+Normales), Binaire PCV (Points+Teintes), PLY(*) (Stanford), OBJ(*) (Wavefront), PWN(*) (Points+Poids+Normales, pour MPU de Y. Othake[Ohtake et al. 2003]).)

163

Annexe D

Données 3D

D.1 Primitives élémentaires

D.1.1 Point

Le point est la primitive 3D la plus élémentaire. Elle consiste simplement en 3 coor- données (une selon chaque dimension). Exprimées dans un repère muni d'une origine, ces coordonnées dénissent la position unique du point. Un ensemble de points est appelé nuage de points. Si le nombre de points est susant, on verra que ces nuages de points peuvent représenter de manière dèle des objets complexes en dénissant leur surface de manière implicite.

P(x,y,z)

Fig. D.1  Point 3D

D.1.2 Segment et polyligne

Un segment est déni par deux points (appelés aussi sommets) et correspond à la portion de droite qui passe entre ces deux points. Une polyligne est dénie par n sommets

ordonnés et correspond à la succession des segments passant par chaque sommet (mis à part le dernier) et son successeur. Une polyligne peut-être ouverte ou fermée, auquel cas le premier et le dernier sommet dénissent aussi un segment (le contour est ainsi fermé). Les points d'une polyligne 3D ne sont pas nécessairement coplanaires.

P1 P2 P1 P2 P3 P4 Pn P1 P2 P3 P4 Pn

Fig. D.2  Segment, polyligne ouverte et polyligne fermée

D.1.3 Polygone et polyèdre

Un polygone est la portion de plan délimitée par une polyligne fermée (les sommets de la polyligne sont dans ce cas coplanaires). En général on considérera plutôt des polygones simples (avec 3 ou 4 sommets, c.à.d. des triangles ou des parallélépipèdes) mais il n'y a aucune limitation. Chaque segment de la polyligne est appelée arête du polygone.

Un polyèdre est un volume délimité par un ensemble de polygones. Chaque polygone est appelé face du polyèdre.

π π1

π2 π3

D.2. Représentation de surfaces 165

D.2 Représentation de surfaces

D.2.1 Maillages

Un maillage est l'approximation d'une surface lisse par un ensemble de polygones partageant un ensemble ni de sommets et d'arêtes (qui forment alors un graphe ou un réseau). Les polygones sont généralement adjacents et on évite autant que possible la présence de trous dans le maillage (sauf si bien sûr la surface approximée comporte eectivement des orices).

D.2.2 TIN

Un TIN (Triangulated Irregular Network - Réseau irrégulier triangulé en français) est un maillage particulier formé uniquement de triangles. C'est typiquement le résultat d'algorithmes de triangulation comme celui de Delaunay. C'est aussi couramment, avec la grille 2D1

2 (voir ci-dessous), le format typique des modèles 3D représentant des por-

tions de terrain et qui sont appelés M.N.T. et M.N.S.1. Les systèmes de mesure donnent

plus ou moins directement une représentation du terrain avec le sur-sol (M.N.S.). Il est cependant possible de déduire un M.N.T. (uniquement le sol) à partir d'un M.N.S. par ltrage manuel ou automatique (avec plus au moins de succès dans ce deuxième cas) [Vosselman et al. 2002].

D.2.3 Grille 2D

1

2

Une grille 2D est un autre maillage particulier dont les sommets et les arêtes sont tous disposés sur une grille régulière selon deux dimensions. La 3ème dimension est par contre libre pour chaque sommet.