VT2019 Photogrammetrie

From air
Revision as of 14:37, 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

Odométrie

ORB-SLAM2

Accumulation & Traitement

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 point cloud 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 point cloud 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 les point clouds 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 point cloud 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 point cloud 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 point cloud 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 point cloud 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 point cloud publié par l'entreprise Sketchfab, dans lequel nous pouvons voir certains des différents types de données que nous pouvons obtenir avec un point cloud. La démonstration est itérative et les données représentent le Natural History Museum de Londres : Démonstration

Sources

Veille Technologique 2019