Agisoft – Metashape
Metashape est l'un des logiciels les plus populaires et accessible afin de réaliser de la modélisation 3D. Ce logiciel est disponible en version gratuite (mais limitée) sur le site http://www.agisoft.com (version d'essai de 30 jours) permettant de réaliser plusieurs étapes du processus de modélisation. Il est aussi présent sur trois des stations de travail au département d'anthropologie de l'Université de Montréal (sur réservation). Il existe deux versions différentes, l'une standard et l'autre professionnelle. Bien que la plupart des fonctionnalités soient disponibles avec les deux versions de ce logiciel, des différences sont présentes. En plus d'utiliser des algorithmes pour l'alignement et la création des nuages de points différents, moins performants et précis dans le cas de la version standard, cette version n'offre pas non plus d'option de mise à l'échelle du modèle. Elle est aussi plus limitée et ne permet pas non plus d'utiliser des données de géolocalisation comme les données GPS souvent disponibles dans les cas de relevés aériens par drone ou des points de référence pour positionner les modèles dans un système d'information cartographique.
2010-01-229
Université de Montréal, Collection Enthnographique. 2010-01-229. Photographie Alexandre Bisson-Larrivée, 2023. CC BY-NC
Cette figurine céramique polychrome donnée aux collections ethnographiques du département d'Anthropologie, proviendrait de la région actuelle centrée sur la province de Nayarit dans l'actuel Mexique. Donnée en 2010 pour agrémenter les collections, elle proviendrait de la culture Ixtlan del Río et serait datée entre 0 et 400 de notre ère. Elle représenterait une femme portant sur son épaule un vase ou un panier qui contenait probablement des matières périssables. Cette figurine a été utilisée dans le cadre d'une publication de Bisson-Larrivée et LeMoine 2022.
Organisation des données
Pour faciliter le traitement, le partage et éventuellement l'archivage des projets, il est important de partir sur de bonnes bases en ce qui concerne la gestion des données et la nomenclature des fichiers.
La production de modèles par photogrammétrie peut impliquer des nombreux types de fichiers différents et les organiser selon un schéma connu rend les choses plus faciles. Il est important de comprendre comment les données seront organisées. La figure 1 présente l'arborescence type d'un dossier de travail. Toutes les images, données et fichiers produits sont regroupés en un même endroit. Les dossiers JPEG et RAW contiennent respectivement les fichiers photographiques provenant de la caméra. Dans le cas où des images en format RAW sont prises, celles-ci seront placées dans ce dossier. Le terme RAW a ici été standardisé pour considérer tout fichier de ce type incluant le NEF chez Nikon et le CR2 chez Canon. Dans le cas où un traitement serait appliqué sur les images ou que les fichiers RAW seraient réexportés en format JPEG, un nouveau dossier devrait être créé afin de distinguer les fichiers originaux des images traitées. Un dossier MASK peut être créé si l'utilisateur veut archiver le résultat de la création des masques, étape qui sera discutée plus loin dans le processus. Il restera ainsi les fichiers PSX et FILES. Ces derniers ne devraient pas être déplacés de leur emplacement d'enregistrement initial puisqu'ils contiennent toutes les informations pour Metashape.
La nomenclature des fichiers aussi est importante, surtout pour des collections qui contiennent plusieurs milliers de modèles. Tout d'abord le titre du projet doit être nommé d'après l'objet ou le site. Dans le cas d'un objet archéologique, le code Borden (ou le code du site) suivi du numéro de catalogue sera utilisé (ex. BiFl-47_334). Notez que le code du site est séparé par un trait de soulignement permettant de facilement identifier ces deux informations sans recourir à l'utilisation d'un espace qui est généralement à proscrire pour les noms de dossiers et de fichiers. Dans le cas de matériel ostéologique des informations supplémentaires seront ajoutées suivant le même schéma : le code de site, le numéro d'individu, l'abréviation du nom de l'os, la latéralité (indiqué par g pour gauche et d pour droit) et, si nécessaire, un numéro de pièce dans le cas de la numérisation de multiples fragments d'un même os par exemple (ex. CeFb-3_132_tib_g, pour indiquer qu'il s'agit du tibia gauche de l'individu 132 retrouvé sur le site CeFb-3). Cela permettra une meilleure traçabilité et identification. Ce nom est utilisé à la fois pour le dossier de travail, qui contient toutes les données associées à un modèle, mais il sera aussi utilisé comme nom pour le fichier lors de l'enregistrement du document Metashape. Tous les modèles créés à l'AnthropoLab 3D respectent ainsi ces règles.
Figure 1. Arborescence de fichiers dans l'ordinateur.
Premiers pas
Considération de base : un chunk est un sous-espace de travail, ce dernier pouvant posséder plusieurs chunks. Chaque chunk est indépendant des autres en termes d'images utilisées, des étapes de traitement des données en plus de toute information sur la mise à l'échelle ou le géoréférencement des modèles. Ceci peut être utile pour deux situations : i) diviser un très large projet en plusieurs plus petites sections, dans le cas où un projet serait trop large pour un ordinateur; et ii) créer des versions pour comparer le résultat de traitements différents pour la reconstruction 3D. Bien que ce point ne soit pas discuté ici, le recours aux chunks est aussi utilisée pour la fonction batch process.
Afin de charger les photos, aller à Workflow/Add Folder et sélectionner le dossier contenant les clichés devant être traités (Figures 2 & 3). Un clic droit sur la barre des tâches vous permettra d'ouvrir la fenêtre «?photo?» et ainsi vérifier la qualité de celles-ci. Si certaines photographies sont floues ou surexposées, elles peuvent être désactivées avant de lancer le modèle.
Figure 2. Menu Workflow permettant d'accéder à toutes les étapes du processus.
Figure 3. Outils de base.
Masquage des photos
L'un des points les plus importants dans le traitement des données en vue de réaliser un modèle 3D (outre la prise de photographies) est le «?masquage?» ou détourage. Il s'agit d'identifier pour le logiciel les parties de l'image qui ne correspondent pas à l'objet comme l'arrière-plan ou des supports de l'objet. Ce traitement a deux objectifs principaux :
- Donner au logiciel un élément sur lequel concentrer son algorithme et réduire le temps de traitement.
- Réduire les erreurs de modélisation et obtenir un meilleur résultat lors des étapes de modélisations.
Cette étape nécessite beaucoup de manipulation et de temps (30 secondes à 2 minutes par photo). Cela implique donc que plus le nombre de photos augmente, plus la préparation est longue. Bien qu'il soit possible de sauter cette étape, il est à noter que cela aura un effet négatif sur le résultat de la reconstruction 3D, surtout sur les objets minces ou ayant une géométrie complexe, et augmentera considérablement le temps de traitement des données.
Pour réaliser cette étape sur les images, quatre outils sont disponibles dans la barre des tâches quand on double clique sur une photo :
Figure 4. Divers outils de base dans le traitement de la photo.
Une fois la sélection réalisée, un clic droit permet de naviguer sur les différentes options (Figure 5) :
- Add selection : ajouter la sélection au masque (elle ne sera donc pas prise en compte ; Ctrl+Shift+a)
- Substract selection : soustrait la sélection au masque (elle fera partie du modèle ; Ctrl+Shift+s)
- Invert selection : inverse la sélection et donc masque (Ctrl+Shift+i)
Figure 5. Le détourage ou masquage sur Agisoft Metashape
Cette étape est critique dans l'obtention d'un modèle «propre» et «rapidement» traité par le logiciel. Il est primordial de s'assurer que l'objet à modéliser soit le seul élément traité par le logiciel.
Alignement des photos
Une fois les masques en place et le traitement prêt à être lancé, il est possible de commencer en bonne et due forme le processus de reconstruction 3D, soit par l'alignement des photos (Figure 6).
Cette étape consiste à estimer la position spatiale relative à laquelle toutes les photos ont été prises les unes par rapport aux autres. Ce processus d'alignement se fait en trois étapes. Premièrement, un algorithme analyse chaque image pour y identifier des points de repère et leur associer des key points. Après avoir analysé la pertinence et la précision de chacun de ces points, un deuxième algorithme compare chacun des points pour y trouver des paires potentielles. La concordance d'un point identifié sur plus d'une image est ici nommée un tie point. Ces tie points sont ensuite filtrés selon leur précision. L'analyse de la concordance de ces points sur plus d'une image, et les déformations observées dans leurs relations géométriques dans un espace planaire permettent de reconstruire la relation des points entre eux et ainsi reconstruire la forme de l'objet. En fonction du nombre de photos utilisées pour le projet, la complexité géométrique du modèle photographié et du matériel informatique dont vous disposez, ces paramètres devront être ajustés en conséquence. Pour accéder à cette option deux façons sont possibles : par le clic droit sur le chunk/process/align photos ou Workflow/Align photo. Ces deux options donneront accès au menu de la figure 6.
Figure 6. Menu Align Photos dans Agisoft Metashape.
Plusieurs options sont disponibles et affecteront le processus de reconstruction de l'objet. Il est suggéré de consulter le manuel d'utilisateur de Metashape pour de plus amples renseignements. Les valeurs présentées dans la figure 6 peuvent cependant être considérées comme un point de départ.
Le menu Accuracy contrôle la qualité et le temps nécessaire pour l'alignement des caméras. Le menu présente cinq options de précision allant de Lowest à Highest. L'option choisie dépendra des capacités du matériel informatique, du temps disponible et de la qualité du rendu souhaité. Pour identifier la position des points de référence communs entre les photos, Metashape analyse chacune des photos pour estimer leur position. Dépendamment de la précision sélectionnée, Metashape modifiera la taille en pixels des images qu'il utilisera pour le placement des key points. L'application réduira respectivement la résolution des images par 2, 4 ou 8 fois en hauteur et en largeur pour les options Medium, Low et Lowest. Des fichiers de plus basse résolution permettent une moins grande charge sur le système et permettront d'accélérer l'identification des points.
Voici en résumé, quelques remarques et recommandations des programmeurs du logiciel Agisoft Metashape:
- L'option High utilise le fichier original et ne redimensionne pas les fichiers.
- L'option Highest pour sa part double la largeur des fichiers pour augmenter la précision de la position des points; cette option est beaucoup plus exigeante en temps et en ressources.
- Les options Low et Lowest sont fort utiles pour les rendus préliminaires, mais peuvent difficilement être utilisées pour la création de modèles de recherche. L'option High est alors recommandée pour cette tâche.
- L'option Highest n'est recommandée que pour des modèles d'une extrême complexité dont la géométrie ne peut être résolue avec un degré de précision plus bas, car cette option est de loin la plus intensive en ressources et en temps. Elle ne devrait être utilisée que pour des activités de recherches avec accès à des ordinateurs puissants.
L'option Generic Preselection indique à Metashape de commencer par identifier les images qui se superposent. Cette étape permet de réduire le temps de l'alignement en ne considérant les paires de points possibles qu'avec les photos qui se superposent. Il est conseillé de sélectionner cette option par défaut. Si les photos proviennent d'un drone ou ont des données GPS incluses dans les métadonnées, sélectionnez l'option Source, ce qui permettra au logiciel de placer les caméras dans l'espace géoréférencé.
L'option Key Point Limit indique le nombre maximum de points de repère sur chaque image (feature points). Dépendamment de la complexité du modèle et des ressources informatiques, la valeur par défaut de 14 000 est recommandée, mais elle pourra être ajustée selon les besoins.
L'option Tie Point Limit indique le nombre maximum de paires de points pour chaque image. Ce paramètre permet de limiter le nombre de concordances potentielles entre une image donnée et les points identifiés sur les autres images. Cette limite permet de réduire considérablement le temps nécessaire dans l'association de ces paires et donc du temps nécessaire pour cette étape. Une valeur de 4 000 est recommandée comme valeur par défaut. En cas de photos de mauvaise qualité, il est possible d'entrer la valeur 0, indiquant au logiciel d'identifier un nombre illimité de points. Bien que rarement utilisée, cette option peut être utile pour des modèles où la phase d'alignement est difficile ou produit des résultats inexacts dus à un manque de Tie points.
L'option Apply Mask To offre trois possibilités, soit None, Key Points et Tie Points. La première option ne prend pas en compte les masques et elle n'est généralement utilisée que pour déboguer. L'option Key Points permet d'exclure les zones masquées de la recherche de points de référence et devrait être l'option par défaut pour les modèles photographiés à l'aide d'une table rotative. La troisième option permet de ne pas prendre en compte une zone masquée sur une photo qui est identifiée sur d'autres. Cette option ne donne généralement que des résultats mitigés lors de l'utilisation de table rotative, et ce spécialement avec des objets possédant une grande complexité géométrique. Cette option pourra toutefois être utilisée si le processus d'alignement ne semble pas bien fonctionner avec l'option précédente.
Une fois cette étape complétée, une indication du nombre de photos alignées avec succès sera inscrite dans la fenêtre workspace, à gauche de la zone de travail (Figure 2). Si l'alignement ne s'est pas bien fait, il sera nécessaire de vérifier à nouveau que tous les masques ont bien été faits. S'il ne semble pas s'agir d'une erreur liée à la qualité des masques, l'étape suivante consistera à modifier les paramètres d'alignement, soit augmenter la valeur de l'option Accuracy ou augmenter le nombre de Key Points et de Tie Points.
L'option Adaptative Camera Model Fitting peut permettre de meilleurs résultats lors de l'alignement initial des caméras. Cette fonction permet une sélection automatique des paramètres à utiliser pour le logiciel. Selon si le jeu de données est mieux ou moins bien en termes de géométrie de reconstruction, le logiciel fera une sélection des paramètres en fonction de produire une géométrie adéquate ou optera pour sélectionner un plus grand nombre de variables lors de l'alignement initial pour un jeu de données avec une meilleure géométrie. Cette option est particulièrement intéressante lorsqu'il s'agit de photo provenant d'un vol de drone où l'axe de la caméra ne change pas.
Il est possible que plusieurs photos ne s'alignent pas correctement du fait de leur qualité. Il est possible d'optimiser l'alignement en faisant un clic droit sur le Chunk du projet, aller à process et sélectionner Optimize Cameras et cocher les options Adaptive Camera Model Fitting, ainsi que Estimate Tie Point Covariance. Une fois fait, sélectionnez l'ensemble des caméras (ctrl+a) puis faites un clic droit dans la fenêtre Photos et sélectionnez l'option Align Selected Camera dans le [IR25]menu. Si cette option ne fonctionne pas, les photos nécessitent peut-être un ajustement ou un traitement supplémentaire. Il est en effet possible de faire changer la luminosité, ainsi que le contraste (cela s'applique à l'ensemble des photos!) en double cliquant sur une photo et sélectionnant l'icône d'ajustement (). Vous pourrez ainsi modifier vos photos.
Note : cette option n'est pas définitive et peut être modifiée par la suite notamment pour générer la texture. Elle affecte le rendu des images dans le logiciel en plus d'être prise en compte lors des différentes étapes du processus de modélisation, mais n'affecte pas les fichiers originaux des images.
Une fois cette première étape réalisée, on obtient un nuage de plusieurs milliers de points ainsi que la position théorique des photos (Figure 7). Le Sparse cloud est un résultat préliminaire à partir duquel, le processus de reconstruction se basera pour produire un modèle de haute résolution de l'objet. Tout bruit, point ou photo mal placés peuvent être retirés afin de relancer un nouvel alignement. Dans le cas de la figure 7, le masquage des photos n'a pas été fait laissant dans le modèle préliminaire beaucoup de bruit provenant de l'environnement dans lequel les photos ont été prises (velours, échelles photo, etc.). Dans le cas de problèmes d'alignement, il est possible d'avoir recours aux marqueurs placés sur une série de photos à des points identiques (ouvrir ou double cliquer sur une photo, clic droit sur le point et placement du marqueur). Une fois cette étape réalisée, il est possible d'optimiser l'alignement des photos (clic droit/process/Optimize camera).
Figure 7. Sparse cloud - alignement des caméras et leur positionnement.
Nuage de points dense
Si le résultat est satisfaisant, la création d'un nuage de point dense est possible (workflow/build dense cloud). En se basant sur l'estimation de la position des caméras et des key points identifiés à l'étape précédente, le logiciel analyse à nouveau les images pour en extraire la position des points intermédiaires et densifier, par interpolation, ce nuage de points. Cette étape permet aussi le calcul de l'information de profondeur (Depth Map) pour chacune des positions. Comme avec l'option d'alignement, un menu apparaîtra pour choisir les paramètres pour cette étape (Figures 8 & 9).
Figure 8. Menu Build Dense Cloud.
Le paramètre Quality pour cette étape a le même mode de fonctionnement que le paramètre Accuracy à l'étape précédente. La différence est qu'ici l'option Ultra High utilise le fichier de taille originale et que la taille des images utilisées pour l'autre option sera respectivement réduite de moitié pour chacune des valeurs subséquentes. L'option High est recommandée comme valeur par défaut. Le choix d'une qualité plus élevée augmentera la qualité et la finesse de la géométrie du modèle et spécialement pour les détails de surface. Le temps de calcul augmentera néanmoins significativement avec ce choix de valeur plus élevée.
Le paramètre Depth filtering permet de filtrer le nuage de points pour minimiser le bruit résiduel et est surtout utile avec des photos floues ou mal masquées. L'option Aggressive devrait être sélectionnée comme valeur par défaut, car elle permet de diminuer le bruit et produire un nuage de points plus utile et nécessitant moins de retouches. Cependant, les options Mild et Moderate ne doivent pas être négligées (particulièrement Moderate qui se trouve entre les options Aggressive et Mild). L'option Calculate point colors permet de calculer une valeur de couleurs pour chaque point du Dense cloud. Cette option peut être utile si les données sont exportées dans des modèles qui supportent cette fonction ou qui supportent l'ajout d'information de couleurs pour les faces du maillage. Ceci peut être utile dans le cas où il ne serait pas souhaitable d'exporter les informations de texture dans un fichier image indépendant.
Figure 9. Exemple de Dense Cloud.
Nettoyage des données
Arrivé à cette étape, il est possible de nettoyer les données et les points ou de toute partie du modèle qui ne sont pas considéré comme utiles ou pertinentes comme des échelles photographiques ou les traces de supports pour les objets. Depuis la mise à jour de la version 1.7 d'Agisoft Metashape, il est possible de visualiser et manipuler le Dense Cloud avec l'option Confidence Cloud qui offre un rendu de couleur graduée sur la reconstruction numérique de l'objet. À la suite d'expérimentations (Bisson-Larrivée et LeMoine, 2022), les classes 1 à 3 peuvent être supprimées sans altérer le rendu numérique. Ces classes inférieures sont associées à un degré d'exactitude moins certain. Le menu peut être atteint dans Tool, Dense Cloud, Filter by Confidence. Sélectionner les classes que vous souhaitez supprimer, utiliser les outils de sélection dans la barre des tâches et supprimer. Cette option est utile pour nettoyer les erreurs présentes dans les zones d'ombres ou les zones de perforation dans un objet par exemple.
Le maillage : Build Mesh
Cette étape va permettre de relier les points du dense cloud entre eux afin de «solidifier» le modèle. Le logiciel utilisera les informations du dense cloud et des images pour calculer une surface pour le modèle. À partir des points qui constituent le nuage de points dense, le logiciel dessinera une surface continue composée de polygones. Cette surface composée de triangles permettra de créer une surface cohérente qui facilitera la tâche subséquente pour le traitement et l'analyse des modèles. Ceci aura aussi l'avantage de rendre plus facile la manipulation et la visualisation des modèles. Dans le paramètre Surface type, Arbitrary (3D) devrait dans la grande majorité des cas être sélectionné (Figure 10) car il est le plus convenable pour la modélisation d'objets. La seconde option, Heigh field (2.5D), n'est utile que dans le scénario où il s'agirait de photographies aériennes et que le modèle représenterait un modèle planaire sans volume fermé et pour la création de modèles de type d'un modèle numérique de surface. Le paramètre Face count offre trois options : High, Medium et Low (figure 10). Ce paramètre spécifie le nombre maximum de surfaces utilisées dans la constitution du maillage (Figure 11). Les trois options offrent des valeurs recommandées pour le nombre de surfaces. Cette valeur recommandée est obtenue en divisant le nombre de points contenus dans le nuage de points dense par 5 (High), 15 (Medium) ou 45 (Low). Dans la plupart des cas si le Dense Cloud est suffisamment peuplé, l'option Medium reste la meilleure en termes de temps et de monopolisation des ressources de l'ordinateur.
Figure 10. Menu de génération du maillage.
Figure 11. Exemple de maillage de points. Chaque point est relié par triangulation.
Enfin dans l'option Interpolation, le mode Disabled est le choix par défaut (Figure 10). Dans le cas contraire, où l'option Enabled est sélectionnée, l'application va extrapoler l'information contenue dans le nuage de points pour évaluer, le cas échéant, toute perte de densité locale dans le nuage de points et ainsi combler les trous ou des cavités. Dans le cas d'un objet ayant déjà des trous dans sa structure telle une anse ou un goulot, le logiciel interpréterait cela comme un manque d'information et remplirait la cavité. De la même façon, l'option Extrapolate permettra d'extrapoler les données manquantes.
La construction de la texture
La cinquième étape consiste à construire la texture. Pour la plupart des utilisateurs, les valeurs par défaut peuvent être utilisées (figure 12). Néanmoins plusieurs paramètres peuvent être changés et modifieraient le résultat. Parmi ceux-ci, Texture size/count permet d'indiquer la résolution du fichier de texture. Ces valeurs peuvent varier selon l'utilisation prévue des modèles et quels outils seront utilisés pour visualiser les données. Selon la situation, une texture de haute qualité en 2k (2048 pix), 4k (4096 pix) et plus encore peut être produite. L'option Enable filling hole permet d'éviter les zones d'ombres générées par d'autres parties du modèle sur des surfaces compliquées. L'option Enable ghosting filling permet de retirer les structures minces ou objets en mouvements présents dans le modèle.
Figure 12. Fenêtre du menu de paramètre pour l'étape de construction de la texture.
Marqueurs et mise à l'échelle du projet
Cette avant-dernière étape consiste à mettre le projet à l'échelle pour garantir que toutes les prises de mesures sur le modèle numérique puissent avoir une valeur scientifique correspondant à la réalité. Veuillez noter que cette option n'est disponible que dans la version professionnelle de Agisoft Metashape. La première étape pour mettre le modèle à l'échelle est de placer des marqueurs sur les images. Pour ce faire, il faut sélectionner une image où l'échelle photographique est nette et visible au premier plan en double cliquant sur celle-ci dans la fenêtre photo. L'étape suivante consiste à placer des marqueurs sur l'échelle photographique en prenant soin de les placer sur une division de l'échelle (Figure 14). Après avoir répété cette action sur 3 ou 4 images, sélectionnez les deux marqueurs affichés à droite de la zone de travail en tenant la touche [Control] enfoncée. Faite ensuite un clic droit sur cette sélection puis sélectionner l'option Create Scale Bar. Double clique ensuite sur le chiffre à droite pour changer sa valeur pour 0,X m, soit la distance entre les deux marqueurs (Figure 15). Finlement, appuer sur le bouton rafraichir pour mettre à jour l'échelle.
Figure 13. Placement des marqueurs sur l'échelle photographique.
Figure 14. Précision métrique des marqueurs 1 et 2, ainsi que la barre d'échelle.
Exportation du projet final
La dernière étape consiste en l'exportation du modèle numérique en formats pratiques à divers usages. Les modèles exportés permettront d'utiliser les données dans d'autres applications et faciliter l'archivage et la pérennité des données. Pour accéder au menu d'exportation, accéder au menu supérieur File > Export > Export Model. Pour ce projet en particulier, les fichiers seront archivés en trois formats différents : OBJ, STL et PLY. Les textures seront exportées au format TIFF, JPG ou PNG. Le format STL (Standard Triangle Language) est le format le plus répandu et a l'avantage d'être léger. C'est aussi le format utilisé pour la majorité des imprimantes 3D. Cependant, ce format ne permet pas d'avoir un modèle texturé. Les formats OBJ et PLY (Polygone File Format) viennent pallier ce manque de texture du format STL. La grande différence entre les deux formats est le poids du fichier puisque le format OBJ pèse environ 2 fois plus que le format PLY. De plus, Agisoft Metashape offre la possibilité d'exporter au format PDF ce qui rend la consultation du modèle plus aisée, sans pour autant pouvoir réaliser des mesures ou autres analyses. Dans le cas d'un relevé topographique, il est possible de générer un Modèle d'Élévation Numérique (Digital Elevation Model, DEM) une fois le modèle mis à l'échelle. Cette étape peut être réalisée après la génération du Dense Cloud. Il est aussi possible d'exporter le modèle au format PDF 3D permettant une plus grande facilité de manipulation. Enfin, à des fins complémentaires, dans le menu File, il est possible de générer un document pdf regroupant l'intégralité des processus ayant mené au modèle 3D.
