Interrogez-nous, nous vous répondrons !

Applications et Guides

Photogrammétrie avec Meshroom

La photogrammétrie est une méthode qui consiste à transformer des objets physiques en modèles numériques tridimensionnels pouvant être édités à l'aide d'un logiciel 3D. Ce processus utilise généralement des appareils spécialisés appelés scanners 3D, qui se déclinent en deux types principaux : optique et laser.

Les scanners optiques utilisent souvent une ou plusieurs caméras numériques et un éclairage spécial pour illuminer uniformément l'objet pendant la numérisation. Cela permet de créer un modèle 3D. Les scanners laser, quant à eux, utilisent des faisceaux laser. Ces appareils émettent plusieurs faisceaux laser et mesurent le temps nécessaire à chaque faisceau pour rebondir sur l'objet. À l'aide de ces données et des informations fournies par les capteurs de position, le scanner calcule la distance entre chaque point de l'objet. Il en résulte un "nuage de points" qui constitue la base du modèle 3D.

Nuage de points

Points cloud rabbit

Pour construire le futur cadre d'un objet, le système doit connaître les coordonnées de chaque sommet dans l'espace tridimensionnel. L'ensemble des sommets est appelé nuage de points. Plus il y a de sommets, plus l'objet sera détaillé. La création d'un nuage de points est la première étape, et l'une des plus cruciales, de la recréation d'un modèle 3D à partir de photographies.

Il est important de noter que chaque sommet du nuage de points n'est initialement pas connecté à d'autres sommets. Cela permet un filtrage facile : conserver les points nécessaires et supprimer les autres, avant de commencer à recréer le maillage de l'objet.

Objets maillés

Mesh object rabbit

Un objet maillé est un type de modèle 3D constitué de primitives géométriques triangulaires, souvent appelées mailles ou polymés. Une fois que les points de l'objet sont formés, l'application peut composer indépendamment des primitives triangulaires à partir de ces points. En connectant ces primitives, il est possible de créer un modèle 3D de presque n'importe quelle forme. À ce stade, le modèle n'a pas de couleur et reste non peint.

L'étape suivante de texturation permet de résoudre ce problème.

La texturation

Textured rabbit

L'étape finale consiste à étirer la texture de l'image extraite des photos sur l'objet maillé préparé. La qualité des photos prises et leur résolution jouent ici un rôle essentiel. Si elle est faible, le résultat final ne sera pas du meilleur effet. En revanche, si un nombre suffisant de photos de bonne qualité ont été prises, vous obtiendrez un modèle 3D d'un objet réel entièrement prêt à l'emploi. Vous trouverez ci-dessous quelques conseils utiles sur la préparation des photos originales.

Réglages de l'appareil photo

Pour éviter toute déception lors de vos premières tentatives de création d'un modèle 3D à partir de photos, tenez compte de ces règles de base simples. Chacune de ces règles vous aidera à éviter les problèmes qui surviennent généralement au cours de la phase de création de l'objet maillé.

Tout d'abord, ne vous fiez pas aux réglages automatiques de votre appareil photo numérique. Les appareils photo modernes tentent d'équilibrer quatre paramètres clés de manière indépendante :

  • ISO,
  • la balance des blancs,
  • la vitesse d'obturation,
  • l'ouverture.

En mode automatique, même de légères modifications des conditions extérieures peuvent faire varier ces paramètres d'une image à l'autre. Ces variations peuvent entraîner des incohérences notables lors de l'étape de texturation.

Pour conserver des paramètres cohérents d'une image à l'autre, utilisez le mode Manual (M). L'ouverture est un paramètre crucial. En fonction de votre objectif, essayez d'obtenir une position où elle est presque fermée. Cela permet d'obtenir une profondeur de champ maximale : moins l'ouverture est grande, mieux c'est. Évitez toutefois les valeurs extrêmes. Si votre objectif peut être proche de f/22, vous obtiendrez de bons résultats en utilisant des valeurs comprises entre f/11 et f/20.

Makarios aperture difference

A gauche f/11, à droite f/22

La fermeture du diaphragme crée toutefois un autre problème : le manque de lumière. Ce problème peut être résolu de deux manières : en augmentant la sensibilité ISO ou en allongeant la vitesse d'obturation. Les deux méthodes affectent le résultat final, mais de manière différente. L'augmentation de la sensibilité ISO à 6400 introduit du bruit numérique dans l'image, il est donc préférable d'utiliser les valeurs les plus basses possibles. Pour obtenir des résultats proches de l'idéal, il est logique de régler la sensibilité ISO sur 100. Cependant, cela signifie que le problème de l'éclairage insuffisant persiste :

Makarios ISO difference

A gauche ISO 100, à droite ISO 6400

Le moyen le plus efficace d'augmenter la quantité de lumière passant par le capteur de l'appareil photo dans des conditions de faible éclairage est d'allonger la vitesse d'obturation. Plus l'obturateur reste ouvert longtemps, plus le nombre de photons atteignant le capteur est élevé, ce qui se traduit par une meilleure qualité d'image. Cette approche présente toutefois un défi : sans trépied, une vitesse d'obturation de 1/50 seconde ou plus peut rendre l'image floue. L'utilisation d'un trépied élimine ce problème.

La balance des blancs est le dernier paramètre crucial. Il est important de désactiver le réglage automatique et de choisir soit un profil prédéfini (tel que "Journée ensoleillée"), soit une valeur personnalisée en Kelvin. Par exemple, 5200K est un réglage courant. Les valeurs inférieures font pencher la teinte vers le jaune, tandis que les valeurs supérieures font pencher la teinte vers le bleu. Pour éviter des corrections de couleur fastidieuses lors du post-traitement, utilisez le même profil de balance des blancs pour toutes les photos d'une série.

Makarios white balance

Profils de balance des blancs. À gauche "Journée ensoleillée", à droite "Auto"

En résumé, pour prendre des photos de haute qualité pour la photogrammétrie :

  1. Utilisez un trépied lorsque la lumière est insuffisante.
  2. Fermez le diaphragme presque au minimum.
  3. Réglez la sensibilité ISO à sa valeur minimale.
  4. Choisissez une vitesse d'obturation qui vous donne le résultat souhaité (ou utilisez l'indicateur d'exposition intégré à votre appareil photo).
  5. Utilisez le même préréglage de balance des blancs.

Prendre des photos

Voyons maintenant combien de photos prendre et sous quels angles. Le type d'objet et son arrière-plan influencent considérablement le résultat final. Les objets sans surface brillante, transparente ou réfléchissante sont idéaux pour la photogrammétrie. Dans la pratique, les objets tels que les fenêtres et le verre doivent souvent être corrigés ultérieurement dans un éditeur 3D. Cependant, la technique générale de prise de vue reste la même.

Pour les petits objets placés sur une surface, imaginez une sphère autour de l'objet. Prenez des photos comme si votre appareil photo faisait trois fois le tour de l'objet : une fois par le bas, une fois par le milieu et une fois par le haut.

Rabbit camera positions

Il est essentiel que l'objet occupe au moins la moitié, et de préférence les trois quarts, de chaque image. Au lieu d'utiliser le zoom, essayez de vous rapprocher physiquement de l'objet. Lors de la création d'un point de nuage, le logiciel a besoin d'autant de pixels que possible.

Lors de la prise de vue, n'oubliez pas que le logiciel combine les images en un seul objet pour obtenir une géométrie correcte. Prenez au moins trois images de chaque angle. Une fois l'objet centré dans le cadre, divisez-le mentalement en trois parties égales. Prenez trois photos, chacune se concentrant sur un tiers de l'objet. Cela permet à l'application de calculer avec précision l'emplacement de chaque point dans l'espace 3D. Après avoir photographié l'objet sous tous les angles et côtés possibles, vous pouvez commencer à préparer le logiciel.

Installer Meshroom

Meshroom est une application gratuite et multiplateforme qui exécute de manière séquentielle toutes les étapes du traitement, en utilisant les ressources du processeur et du processeur graphique. Bien qu'il puisse fonctionner sur un ordinateur domestique standard, chaque étape peut prendre du temps. Pour les projets à grande échelle impliquant la reconstruction 3D de nombreux objets, comme la création d'une scène 3D impressionnante, la location d'un serveur GPU dédié peut être une solution pratique.

Considérons un serveur LeaderGPU avec la configuration suivante : 2 x NVIDIA® RTX™ 3090, 2 x Intel® Xeon® Silver 4210 (3.20 GHz), 128GB RAM. Nous utiliserons Windows Server 2022 comme système d'exploitation. Avant d'installer Meshroom, vous devez effectuer quelques opérations préliminaires :

Visitez le site officiel du projet pour télécharger Meshroom. Décompressez l'archive résultante pour trouver une application prête à l'emploi qui ne nécessite pas d'installation supplémentaire. Lancez Meshroom.exe pour commencer.

Télécharger les images

La fenêtre principale de l'application est divisée en deux parties : la partie supérieure et la partie inférieure. La partie supérieure contient la galerie d'images, la visionneuse d'images et la visionneuse 3D. La partie inférieure contient l'éditeur graphique et le gestionnaire de tâches. Pour commencer, faites glisser et déposez vos photos capturées dans la zone désignée. Les formats de fichiers compressés (par exemple, JPG) et RAW sont tous deux pris en charge. Il est recommandé d'utiliser les fichiers RAW car ils contiennent beaucoup plus de données pour chaque image.

Meshroom main window

Veuillez noter que vous disposez déjà par défaut d'un pipeline standard prêt à l'emploi, qui est affiché de manière schématique dans l'éditeur de graphiques. Il s'agit de l'une des commandes les plus importantes, qui permet de configurer tous les aspects du traitement de l'image à chaque étape. Vous pouvez exécuter manuellement chaque étape en cliquant avec le bouton droit de la souris et en sélectionnant Compute dans le menu déroulant.

Mais pour la première fois, vous pouvez simplement cliquer sur le bouton vert Start, et l'application fera tout pour vous. Elle vous invitera à sauvegarder le projet, afin de ne pas perdre accidentellement les résultats du calcul. Cliquez sur Save, indiquez un nom et un répertoire et enregistrez le projet :

Meshroom save project

Ensuite, l'application transfère toutes les étapes de traitement de l'éditeur graphique au gestionnaire des tâches, qui gère leur exécution dans un ordre spécifique. Pour vérifier l'état de chaque étape, sélectionnez le bloc correspondant dans l'éditeur de graphique et cliquez sur le bouton Log dans le coin inférieur droit de l'écran. Vous pouvez également voir en temps réel quelle étape est en cours de traitement :

Meshroom task manager

Sur le côté droit, vous pouvez voir le nuage de points que vous avez construit. Le résultat final, généré à l'aide du pipeline standard, est disponible dans le répertoire :

[Your_Project_Path]\MeshroomCache\Texturing\[Random_Symbols]\texturedMesh.obj

Bien entendu, si vous fixez au préalable le chemin de sortie dans le nœud final du pipeline, l'objet se retrouvera sur le chemin que vous avez spécifié. Vous pouvez ensuite l'importer dans n'importe quel éditeur de texte pour corriger les surfaces, ajouter des sources de lumière et d'autres effets avant le rendu.

Intégration

Si le résultat initial est impressionnant, il doit souvent être affiné dans un éditeur 3D. Meshroom simplifie ce processus en vous permettant d'importer non seulement le modèle, mais aussi le nuage de points et les positions de la caméra dans des éditeurs tiers tels que Houdini ou Blender. Dans la section suivante, nous allons voir comment procéder.

Houdini

En fait, Meshroom est une interface conviviale pour le moteur AliceVision, qui gère toutes les opérations liées au calcul. Cette interface implémente le pipeline et le gestionnaire de tâches correspondants. Si vous utilisez Houdini, vous pouvez créer votre propre pipeline directement dans l'application et l'utiliser avec d'autres outils, sans avoir à lancer Meshroom séparément.

Pour commencer, il est préférable de télécharger et d'installer un lanceur dédié qui gérera les mises à jour et les plugins de Houdini. Ensuite, ajoutez le plugin SideFX Labs, qui offre de nombreux outils supplémentaires, dont des nœuds spécifiques pour AliceVision. Pour ce faire, cliquez sur le bouton +, puis sélectionnez Shelves:

Houdini add Shelves Houdini add Shelves

Faites défiler la liste et sélectionnez SideFX Labs, puis cliquez sur le bouton Update Toolset:

Houdini SideFX Labs Update Toolset

Pour installer un plugin, procédez comme suit : Cliquez sur le bouton Start Launcher, accédez à la section Labs/Packages dans le menu de gauche et sélectionnez Install packages. Une fenêtre s'ouvrira dans laquelle vous pourrez choisir les paquets à installer :

Add Houdini plugin

Choisissez le paquet Production Build correspondant à votre version de Houdini et cliquez sur Install. Redémarrez ensuite l'application pour vous assurer que les nouvelles icônes d'effets apparaissent en haut :

Houdini new items

Il est essentiel de noter que vous ne trouverez aucune mention d'AliceVision ou de Meshlab ici. Cela s'explique par le fait que le plugin correspondant ne fonctionne que dans le pipeline de contexte géométrique. Pour le vérifier, cliquez sur l'icône +, puis sélectionnez New Pane Tab Type et Network View:

Houdini Network View

Appuyez sur la touche Tab et ajoutez un nœud Geometry:

Houdini add Geometry

Double-cliquez pour ouvrir le nœud créé et tapez av sur votre clavier. Le système affiche instantanément une liste de nœuds disponibles commençant par les symboles Labs AV. Ces nœuds vous permettent de contrôler le moteur AliceVision et de l'intégrer dans vos propres pipelines :

Houdini AliceVision nodes

Pour créer un pipeline approprié, reportez-vous à la documentation officielle du plugin. De plus, pensez à ajouter le répertoire AliceVision à la liste des variables d'environnement dans le fichier houdini.env. Pour une installation standard utilisant le launcher, ce fichier est typiquement situé dans le répertoire C:\Users\Administrator\Documents\houdini20.5\

Ouvrez le fichier houdini.env avec n'importe quel éditeur de texte et ajoutez la ligne suivante :

ALICEVISION_PATH = [path to alicevision directory in Meshroom folder]

Par exemple, si vous avez installé Meshroom dans le répertoire racine du disque D :, votre chemin pourrait ressembler à ceci :

ALICEVISION_PATH = D:\Meshroom\aliceVision

Enregistrez le fichier, puis redémarrez l'application Houdini.

Blender

Pour les utilisateurs de Blender, nous recommandons le plugin Meshroom2Blender. Bien qu'il fonctionne différemment du plugin Houdini, il vous permet d'exporter les nuages de points et les positions de caméra calculés par Meshroom vers Blender. Pour accéder au code du plugin, ouvrez le lien dans votre navigateur :

https://raw.githubusercontent.com/tibicen/meshroom2blender/master/view3d_point_cloud_visualizer.py

Enregistrez le code sous view3d_point_cloud_visualizer.py dans un répertoire approprié. Ensuite, ouvrez Blender et naviguez jusqu'à Edit - Preferences. De là, sélectionnez l'onglet Add-ons:

Blender Preferences

Cliquez sur la flèche vers le bas et sélectionnez Install from Disk:

Blender install addons

Dans la nouvelle fenêtre ouverte, naviguez jusqu'au répertoire où vous avez sauvegardé le plugin. Sélectionnez le fichier du plugin et cliquez sur le bouton Install from Disk button:

Blender choose plugin file

Le plugin est maintenant installé. Il est recommandé de redémarrer l'application. Après le redémarrage, vous verrez l'élément Point Cloud Visualizer en mode visualisation. Le plugin vous demande de spécifier le chemin d'accès à un fichier avec l'extension .ply:

Blender new option

Par défaut, Meshroom ne génère pas ce type de fichier. Pour le créer, ouvrez le pipeline et ajoutez le noeud ConvertSfMFormat. Utilisez en entrée le SfMData du nœud StructureFromMotion. En sortie, spécifiez le Images Folder du nœud Texturing.

Meshroom add Convert node

La dernière étape consiste à spécifier le format. Cliquez sur SfM File Format dans le nœud ConvertSfMFormat et sélectionnez ply dans la liste déroulante :

Meshroom Convert format

Cliquez avec le bouton droit de la souris sur le nœud créé et sélectionnez Compute:

Meshroom compute task

Une fois le processus terminé, vous trouverez le fichier requis dans le répertoire :

[Your_Project_Path]\MeshroomCache\ConvertSfMFormat\[Random_Symbols]\sfm.ply

Vous pouvez le charger dans Blender de deux manières : via le plugin susmentionné ou via le processus d'importation standard File - Import - Stanford PLY (.ply):

Blender import points cloud

Pour plus d'informations sur l'utilisation de ce plugin, nous vous suggérons de consulter le dépôt du projet ou une ressource web spécialisée.

Conclusion

La photogrammétrie est un vaste domaine de connaissances, dans lequel nous avons essayé de présenter seulement quelques techniques de base pour convertir des images 2D en un modèle 3D. Cette technique est utilisée dans de nombreuses industries, de l'architecture à la création de jeux vidéo.

Après avoir acquis une première expérience de la prise de vue d'un ensemble de données et de sa transformation cohérente en un modèle 3D, vous serez en mesure d'améliorer vos compétences et de transférer des objets physiques dans un espace 3D virtuel. Enfin, LeaderGPU vous aidera en termes de puissance de calcul, en réduisant le temps de calcul et en libérant votre poste de travail pour d'autres tâches, souvent plus prioritaires.

Voir aussi:



Mis à jour: 12.08.2025

Publié: 21.01.2025