Dans cet épisode de la série de base sur la photogrammétrie sur plateau tournant, nous allons analyser les fonctionnalités fondamentales d’un projet Meshroom pour reconstruire une géométrie à partir de photographies.



Transcription de la vidéo

Bonjour à tous ! Dans cet épisode de la série de base sur la photogrammétrie sur plateau tournant, nous allons analyser les fonctionnalités fondamentales d’un projet Meshroom pour reconstruire une géométrie à partir de photographies.

Je vais d’abord présenter une vue d’ensemble de l’interface et du flux de travail de Meshroom, puis nous passerons aux étapes pratiques d’importation des images.

Après avoir téléchargé et installé Meshroom, lançons-le. Deux fenêtres vont s’ouvrir. La fenêtre de console affiche les données et les informations relatives à l’exécution du programme, tandis que la fenêtre principale est celle dans laquelle nous travaillons sur nos projets. La fermeture de l’une ou l’autre de ces fenêtres entraînera l’arrêt du programme ; elles doivent donc toutes les deux rester ouvertes.

Meshroom permet en réalité de créer différents types de projets, comme vous pouvez le constater en cliquant sur New Pipeline dans le menu File. Bien entendu, c’est un projet Photogrammetry qui nous intéresse.

La première chose à faire est d’enregistrer le projet. Je recommande de créer un dossier dédié dans lequel enregistrer le fichier du projet, car l’exécution du processus de photogrammétrie générera toute une structure de dossiers que nous examinerons dans un instant.

Le fichier du projet portera l’extension MG, qui signifie Meshroom Graphs. Les termes Pipeline et Graphs soulignent que les processus dans Meshroom suivent un ordre séquentiel, étape par étape. Cela est visible dans le panneau Graph Editor situé en bas de l’interface, où sont affichés les nœuds et leurs connexions.

Avant d’examiner ce pipeline, jetons un rapide coup d’œil à l’interface du programme.

Le panneau Image Gallery contiendra les images que nous souhaitons utiliser pour la reconstruction. Au départ, il est vide et indique également qu’il est possible de faire un glisser-déposer de fichiers depuis un dossier vers cet espace. Si je me souviens bien, cette fonction de glisser-déposer ne fonctionne pas sous Windows lorsque Meshroom est exécuté en mode administrateur. Dans tous les cas, les images peuvent également être importées via Import Images dans le menu File.

Dans le panneau Image Viewer, nous pouvons visualiser les images chargées une par une, ce qui permet d’écarter celles de mauvaise qualité ou d’extraire des informations pertinentes. Cette fenêtre affichera également certaines données générées par Meshroom, comme la Depth Map, comme nous le verrons plus tard.

Le panneau 3D Viewer affichera le nuage de points, qui représente la scène reconstruite. Nous pouvons également y redéfinir le volume à reconstruire, appelé bounding box, afin de nous concentrer uniquement sur certains éléments.

Le panneau Graph Editor affiche la séquence des nœuds à traiter ainsi que leurs connexions. Chaque nœud représente une tâche spécifique exécutée étape par étape, en utilisant les données entrantes provenant des ports d’entrée et en produisant une ou plusieurs sorties via les ports de sortie.

Un nouveau projet Photogrammetry comporte un pipeline de base avec des paramètres par défaut qui conviendront à de nombreux projets. Lorsque nous lancerons le projet, Meshroom créera un sous-dossier appelé Cache, dans lequel il générera d’autres sous-dossiers, un pour chaque nœud présent dans le pipeline.

Le pipeline n’est pas obligé de rester dans sa configuration par défaut ; il peut être modifié en ajoutant de nouveaux nœuds ou en changeant les connexions entre eux, comme nous le verrons plus loin dans cet épisode.

Dans tous les cas, en cliquant sur un nœud, nous pouvons consulter ses paramètres et réglages dans le panneau Node situé à droite. Chaque nœud donne accès à plusieurs types d’informations, affichées dans les onglets Attributes, Log et les autres onglets situés en bas.

Le dernier panneau de l’interface par défaut est le Task Manager, qui est initialement vide. C’est ici que nous verrons plus tard les détails d’exécution des différents nœuds.

Dans le menu View, vous remarquerez peut-être que le panneau Live Reconstruction n’est pas affiché. Je ne l’utiliserai toutefois pas dans cette série d’introduction, nous pouvons donc le laisser désactivé.

L’option Fullscreen, comme son nom l’indique, permet d’afficher la fenêtre principale du programme en mode plein écran.

Avant de passer aux étapes pratiques, laissez-moi présenter brièvement le pipeline, qui représente la séquence d’exécution des nœuds.

Le pipeline peut être divisé en deux parties. Dans la première partie, qui s’exécute jusqu’au nœud Structure From Motion, Meshroom charge les images et extrait des informations spécifiques appelées Features, qui lui permettent d’identifier des points de référence communs à plusieurs photographies.

Ces Features seront ensuite utilisées pour reconstruire la géométrie de la scène, mais ce processus intervient après le nœud Structure From Motion. Plus précisément, dans la seconde phase, Meshroom calcule les données de profondeur pour les Features détectées, générant ainsi un nuage de points 3D. Il reconstruit ensuite la géométrie, appelée Mesh, car elle est constituée de sommets reliés par des arêtes, lesquelles définissent à leur tour des faces triangulaires.

Enfin, les photographies d’origine seront combinées dans une image appelée Texture, qui représente les couleurs des différentes parties de l’objet 3D d’origine, mais organisées dans une image 2D.

À partir des Features détectées dans les photographies, nous obtenons d’abord des points dans l’espace qui ne sont pas reliés entre eux. Ces points sont ensuite connectés afin de former une géométrie composée de surfaces, sur lesquelles une image de Texture est appliquée pour restituer les couleurs de l’objet original à la géométrie reconstruite.

Il y aurait encore beaucoup à dire sur le pipeline, les nœuds et le processus d’exécution dans son ensemble, mais j’expliquerai ces détails au fur et à mesure de notre progression dans le projet.

Passons maintenant aux étapes pratiques. Je fais d’abord glisser les photographies d’origine dans le panneau Image Gallery.

Dans le panneau Image Gallery, nous pouvons voir le nombre total de photos ajoutées ainsi que le nombre d’appareils photo reconnus par Meshroom à partir des données intrinsèques extraites des images. Ce nombre est affiché à côté de l’icône d’obturateur située en bas du panneau.

Pour chaque photographie, nous pouvons examiner ces métadonnées, lorsqu’elles sont disponibles, en plaçant le curseur de la souris sur l’icône d’obturateur dans l’aperçu de l’image. Dans ce cas, les métadonnées sont présentes ; l’icône apparaît donc en vert. Si elles sont absentes, l’icône sera rouge et Meshroom effectuera la reconstruction du mieux possible sans ces informations.

Dans un projet de photogrammétrie sur plateau tournant, il est recommandé de sélectionner le nœud Feature Matching et de définir le paramètre Minimal 2D Motion sur 2. Une fois ce réglage effectué, j’enregistre le projet.

Dans un projet où un fond vert a été utilisé pour les photographies, comme c’est le cas ici, il est possible d’essayer de faire en sorte que Meshroom exclue le fond vert avant l’extraction des Features. Pour cela, il faut ajouter un nœud Image Masking dans le Graph Editor, en cliquant avec le bouton droit dans une zone vide du panneau puis en insérant ce nœud.

Dans l’entrée Structure From Motion Data du nouveau nœud, nous devons connecter la sortie Structure From Motion Data du nœud Camera Init, en cliquant puis en faisant glisser entre les deux ports.

La sortie du nouveau nœud doit ensuite être connectée aux entrées Mask Folder des nœuds Feature Extraction et Prepare Dense Scene.

En sélectionnant ensuite le nœud Image Masking, nous pouvons définir la couleur à exclure et ajuster les valeurs de tolérance pour la teinte, la saturation et l’intensité dans le panneau Node. Cependant, cette méthode d’exclusion du fond vert n’est pas très pratique, car elle ne fournit pas un bon retour visuel sur le résultat et ne permet pas de définir des paramètres personnalisés pour chaque photo. Ce dernier point pourrait être utile dans notre cas, puisque l’éclairage du tissu de fond n’est pas uniforme.

Pour ces raisons, je supprime le nœud Image Masking en effectuant un clic droit puis en sélectionnant Remove Node. À titre de référence, une connexion entre deux nœuds peut être supprimée en cliquant avec le bouton droit sur le lien puis en choisissant Remove.

Je supprime également toutes les photographies, car dans le prochain épisode je vous montrerai une petite configuration dans Blender qui nous permettra non seulement de retirer le fond vert plus facilement, mais aussi d’éliminer le green spill, c’est-à-dire la dominante verte qui affecte les objets photographiés devant un fond vert.

Le seul réglage personnalisé que je conserve est la valeur 2 pour le paramètre Minimal 2D Motion du nœud Feature Matching.

J’enregistre maintenant le projet avec ces paramètres, je ferme Meshroom et je vous retrouve dans le prochain épisode !

Rechercher dans les Tutoriels

Saisissez une expression ou plusieurs mots-clés séparés par des virgules.

Ce site est personnel et ne constitue pas un canal de vente. Les pages consacrées aux modèles 3D documentent une sélection de mes travaux et ne contiennent ni offres, ni prix, ni procédures d’achat, ni liens commerciaux. Je n’accepte actuellement aucune demande de travaux personnalisés, de conseil ou d’autres collaborations professionnelles.


POLITIQUE GENERALE DE CONFIDENTIALITE ET D'UTILISATION DES COOKIES