VT2019 Photogrammetrie

From air
Revision as of 15:25, 1 December 2019 by Giulia.Bonaspetti (talk | contribs)
Jump to navigation Jump to search

La photogrammétrie numérique est la technique d’accumulation et de calcul à partir de plusieurs données afin de reconstruire une scène en 3D de la manière la plus précise possible. En d'autres termes, la photogrammétrie c'est le fait de se déplacer autour d’un sujet (par exemple une montagne) en recueillant des données pour pouvoir le reconstruire numériquement en trois dimensions.

Abstract

Digital photogrammetry is the technique of accumulating and calculating from several data in order to reconstruct a 3D scene as accurately as possible. In other words, photogrammetry is the act of moving around a subject (e.g. a mountain) by collecting data to be able to digitally reconstruct it in three dimensions.

It can be used in multiple domains such as topography, cartography and archaeology. This wiki presents the step-by-step approach to 3D modeling using a point cloud, as well as some examples of physical and digital tools and methods used.


Keywords: 3D Modeling, Digital Photogrammetry, Point Cloud, Odometry, Filtering, Segmentation, Reconstruction

Domaines d’application

La photogrammétrie peut être utilisée dans de multiples domaines, étant très importante principalement pour faciliter l'exploration et la reconnaissance d'objets dans lesquels l'homme a des difficultés d'accès, comme les très grandes ou très petites surfaces.

Voici quelques exemples de domaines d'application :

  • Topographie
  • Cartographie
  • Système d'information géographique (SIG)
  • Architecture
  • Investigations de police
  • Géologie
  • Archéologie

Un exemple d'application dans le domaine de l'archéologie est la mission ScanPyramids, citée plus en détail à la fin de ce wiki.

PointCloud

Outils physiques

Pour obtenir le nuage de points, on utilise des outils physiques qui permettent de capturer des informations "3D".

Caméra binoculaire

La caméra binoculaire est une caméra qui utilise deux objectifs différents pour, en plus de l'image, obtenir la profondeur de l'image.

Plus précisément, elle utilise des calculs mathématiques en comparant l'image des deux capteurs pour obtenir le nuage de points.

Des avantages :

  • Elle est petite, cela permet un transport et un positionnement faciles n'importe où.
  • Elle n'est pas chère.

D'inconvénient :

  • Elle est moins précise que d'autres équipements.

Caméra infrarouge

La caméra infrarouge a un capteur RGB pour capturer l’image et en émetteur/récepteur infrarouge pour mesurer la distance. Elle utilise l'accumulation des deux pour obtenir le nuage de points.

D'avantage :

  • Elle est très précise.

D'inconvénient :

  • Elle est plus chère.

Drone

Le drone est un petit aéronef avec pilotage automatique ou télécommandé qui a une caméra attachée à lui.

Des avantages :

  • Il est très précis.
  • Il permet de couvrir un large terrain.

Des inconvénients :

  • Il est très cher.
  • Il a une technologie qui est parfois difficile à comprendre, ce qui nécessiterait une formation préalable ou l'intervention d'un utilisateur expérimenté.

Odométrie

Odométrie est la technique permettant de calculer la position d’un objet en mesurant tous les déplacements d’un point A au point B.

Elle est utilisée dans la robotique, permet aussi de mesurer la position d’une caméra en analysant les images.

Il existe des outils numériques qui peuvent vous aider à calculer l'odométrie entre les points. Un exemple est le logiciel ORB-SLAM2.

ORB-SLAM2

Accumulation & Traitement

Le processus d'accumulation et traitement vise à transformer un nuage de points en un modèle 3D, ce qui se fait en cinq étapes principales.

Démarrage

Pour commencer le processus d'accumulation et traitement est indispensable une réflexion sur les méthodes et algorithmes qui seront utilisés afin de pouvoir capter les données nécessaires.

Habituellement, en tant que données d'entrée, il y a l'ensemble de points qui ont été obtenus avec les caméras et le logiciel de positionnement. Ces points peuvent être orientés, c'est-à-dire chaque point va avoir un vecteur normal, ou non.

Filtrage

Le nuage de points acquis a inévitablement de bruit visuelle et contient des valeursoutliner dues aux limitations ou conditions des capteurs, à l'éclairage de la scène, etc. Par conséquent, il est nécessaire d'effectuer des opérations de filtrage sur le nuage de points pour obtenir des données plus précises afin de pouvoir effectuer les traitements suivants.

Pour cette opération de filtrage, différents filtres peuvent être utilisés et existent plusieurs façons de diviser ces filtres. Dans ce wiki on va regarder les détails de trois types de filtrage basées sur la division présentée sur l'article A review of algorithms for filtering the 3D point cloud [2].

Filtrage statistique
Le filtrage statique est le type de filtre qui examine la nature du point pour déterminer s'il est pertinent ou non. Il s'agit de filtres tels que le filtre passe-haut, le filtre passe-bas, le filtre basé sur la transformé de Fourier, etc.
Filtrage basé sur le voisinage
Les techniques de filtrage basées sur le voisinage déterminent la pertinence d'un point en utilisant des mesures de similarité entre un point et son voisinage. Parmi ces filtres, on trouve KNN, K-Means, Locality Sensitive Hash, etc.
Filtrage basé sur les PDEs
Les techniques basées sur les PDEs (Partial Differential Equations) pour filtrer le nuage de points peuvent être considérées comme une extension des mailles triangulaires. Ces méthodes utilisent des équations aux dérivées partielles, y compris le deuxième ordre, le quatrième ordre et la dérivée partielle complexe. Ainsi, dans cette méthode, le voisinage influence aussi la pertinence du point.

Segmentation

La segmentation c’est un groupement qui est utilisé pour décomposer le nuage de points en parties constitutives, qui peuvent être traitées indépendamment. Chaque partie normalement correspondent à des structures ou des objets spécifiques dans une scène. Pour faire cette segmentation on peut utiliser plusieurs approches, voici quelques exemples :

La segmentation par lisières
Cette segmentation s'est basé sur les lisières, l'algorithme déduit les arêtes de l’image à travers la position des points.
La segmentation par croissance des régions
Sur la croissance des régions le but c'est de voir la similarité entre les pixels. Chaque objet sera une région avec des pixels voisins similaires.
La segmentation par ajustement des modèles
L'ajustement des modèles compare le nuage de points avec les modèles préexistants (comme les formes géométriques) et le découpage de chaque objet est défini pour la similarité avec ce modèle.
La segmentation par clustering
Cette segmentation utilise des algorithmes mathématiques pour déterminer chaque cluster qui sera l'objet. Une méthode de segmentation par clustering assez courante est basée sur la distance euclidienne entre les points.

Reconstruction de surface

La reconstruction de surface est le processus par lequel un objet 3D est déduit, ou "reconstruit", à partir du nuage de points qui échantillonnent la forme. Donc, une maille est créée sur cet ensemble des points. Cette maille peut être polygonale, triangulaire, entre autres.

Il existe de nombreuses techniques pour convertir un nuage de points en surface 3D. Certaines approches, telles que la triangulation de Delaunay, revêtent les sommets du nuage d'une maille triangulaire, alors que d'autres approches convertissent les points en champ volumétrique à l'aide d'un algorithme infographique [2].

Ajustement d’un modèle

Souvent, pour terminer le processus de modélisation 3D, il est nécessaire d'appliquer un modèle à cette image, c'est-à-dire une sorte de texture ou d'image, qui complétera chaque partie de la surface. La qualité du résultat de l'ajustement basé sur le modèle dépend de deux facteurs : l'approximation géométrique et la qualité de la maille obtenue dans la reconstruction.

Pour obtenir le meilleur ajustement possible de ce modèle, on peut également utiliser plusieurs algorithmes, qui peuvent être divisés en deux grands groupes.

L'ajustement par template rigide
Pour l'ajustement par template rigide la position à laquelle le modèle sera placé est estimé et il est placé tel qu'il est à cet endroit.
L'ajustement non-rigide
Pour l'ajustement non-rigide, également appelé ajustement paramétrique, la position à laquelle le modèle sera placé est estimé et avant de l'appliquer les autres modèles qui sont déjà dans l'image sont déformés pour l'assortir et enfin le modèle est appliqué. Ce processus de déformation est appelé transformation homographique.

ScanPyramids

Démonstration

Voyez ici une démonstration d'un nuage de points publié par l'entreprise Sketchfab, dans lequel nous pouvons voir certains des différents types de données que nous pouvons obtenir avec un nuage de points. La démonstration est itérative et les données représentent le Natural History Museum de Londres : Démonstration

Sources

Veille Technologique 2019