Avez-vous déjà souhaité pouvoir facilement transférer un objet réel dans un fichier numérique ? La technologie est là, mais la plupart d’entre nous n’ont tout simplement pas accès à des scanners 3D haut de gamme qui peuvent reconstruire la géométrie numérique d’un modèle physique. Sans oublier que certains objets peuvent être bien trop gros pour tout scanner 3D traditionnel. Cependant, il existe un autre moyen beaucoup moins cher de créer des modèles 3D correspondant à des objets du monde réel.

Qu’est-ce que la photogrammétrie ?

La photogrammétrie (ou SFM – Structure From Motion) est un processus qui estime les coordonnées tridimensionnelles des points de surface en utilisant des images d’un seul objet physique prises sous différents angles. C’est du moins l’explication très simplifiée tenant sur une ligne. Vous prenez un tas de photos de l’objet de toutes les directions possibles, vous utilisez ensuite ces photos comme entrée pour un logiciel spécialisé. Ce logiciel recherchera les points remarquables visibles sur plusieurs photos et tentera de deviner à partir de quel point la photo a été prise. Connaissant les positions et les orientations de l’appareil photo, il crée un point 3D qui correspond à l’entité 2D sur la photo (essentiellement un pixel). Idéalement, vous obtiendrez un mesh 3D fini en sortie. Mais souvent, il peut être préférable de traiter manuellement les points reconstruits dans un mesh pour de bien meilleurs résultats.

Logiciels

Le liste des logiciels de photogrammétrie disponible est assez longue. Le problème est que la plupart des programmes sont soit trèscoûteux ou limités dans leurs fonctionnalités de la version gratuite. Certains programmes proposent même un calcul basé sur le cloud, ce qui est pratique, mais augmente encore le coût. Nous avons essayé de choisir les meilleurs logiciels gratuits :

  • Colmap (Win/Mac/Linux) – sera utilisé dans cet article
  • 3DF Zephyr (Win) – Gratuit avec la limitation de max 50 photos
  • Visual SFM (Win/Mac/Linux)

Nous aurons également besoin d’une sorte de logiciel pour le post-traitement des données de sortie. Le choix est assez facile ici – Meshlab. Le calcul est assez exigeant pour le matériel. L’exécuter sur un ancien ordinateur portable pourrait ne pas être réalisable car les temps de calcul seraient extrêmement longs. De nombreuses applications dépendent également de l’interface NVIDIA CUDA (Colmap), qui ne fonctionne pas sur les cartes graphiques AMD.

Prendre des photos pour la photogrammétrie

De toute évidence, vous aurez besoin d’un appareil photo. Un appareil photo de smartphone fonctionnera très bien, mais si vous avez un reflex numérique, c’est encore mieux. Si vous utilisez un reflex numérique, fermez l’ouverture à au moins 7-8 pour augmenter la netteté et éviter la faible profondeur de champ. Vous devrez capturer au moins 20 photos. Lors de nos tests, nous avons souvent pris autour de 50-80 images pour capturer chaque détail. Gardez à l’esprit que certaines images peuvent être supprimées si le programme ne trouve pas suffisamment de similitudes avec d’autres images.

  1. Déplacez-vous autour de l’objet cible en cercles. Ne déplacez pas l’objet ou son environnement entre les images.
  2. Chevauchez ! Vous devez avoir chaque partie du modèle de capturée par au moins 2 images. Idéalement, vous auriez un chevauchement d’environ 60 à 80% dans les images successives.
  3. Évitez les ombres dures, utilisez un éclairage diffus ou prenez les photos à l’extérieur par une journée semi-nuageuse.
  4. L’objet doit constituer une partie importante de chaque image.
  5. Évitez les objets mouvants (par exemple des animaux domestiques, à moins qu’ils ne dorment).
  6. Évitez les objets très brillants ou transparents. (Plus à ce sujet plus tard)

Les objets idéaux pour la photogrammétrie sont les objets texturés ou rugueux (statues). Si c’est une option, vous pouvez couvrir les objets brillants ou transparents avec de la poudre (farine) pour éviter les reflets. Ou couvrir la surface brillante avec du ruban pour peintres. Les utilisateurs avancés peuvent également capturer une vidéo de la cible, puis la convertir en images individuelles. Dans ce cas, maintenez la vitesse d’obturation élevée (par exemple 1/80) pour éviter les images floues. https://www.youtube.com/watch?v=ye-C-OOFsX8&feature=youtu.be

Reconstruire la géométrie à partir de photos

Nous vous suggérons de créer un dossier qui contiendra tous les fichiers pour une seule reconstruction. Dans ce dossier, créez un autre dossier appelé « Photos » et placez toutes vos photos ici. Parcourez rapidement les photos et supprimez toutes les photos floues. Nous utiliserons Colmapsur Windows 10 pour la reconstruction.

  1. Lancez Colmap à l’aide de Colmap.bat
  2. Dans le menu du haut, choisissez Reconstruction – Reconstruction automatique
  3. Paramétrez le Dossier d’espace de travail, ce dossier sera utilisé pour stocker les calculs de reconstruction et le mesh de sortie
    • Créez un autre répertoire à côté du dossier Photos à cet effet
  4. Faites pointer le dossier Image sur le dossier Photos contenant toutes vos photos
  5. Vous pouvez laisser l’arbre de vocabulaire vide, sinon, vous pouvez en télécharger et en utiliser un de cette page de téléchargement
  6. Conservez le type de données en tant qu’images individuelles ou modifiez-le en images vidéo si vous avez créé les images à partir d’une vidéo
  7. Changez la qualité en Moyen
    • Vous pouvez essayer la qualité Haute, mais d’après notre expérience, Colmap plante très souvent avec ce paramètre
  8. Laissez les autres paramètres avec des valeurs par défaut et appuyez sur Lancer
  9. Ce processus peut prendre de 5 minutes à une éternité apparente en fonction du nombre de photos et des spécifications de votre PC

Lorsque Colmap termine la reconstruction, une vue reconstruite de la scène et les positions estimées de la caméra vous seront présentées.

Configuration de Colmap et vue finale de la scène reconstruite

Sortie de Colmap

En tant que sortie, Colmap crée 2 fichiers qui nous intéressent, fused.ply et meshed.ply. Vous les trouverez dans un sous-dossier du dossier d’espace de travail que vous avez créé auparavant (dossier Workspace/dense/0/). Meshed.ply est, comme son nom l’indique, un mesh déjà triangulé. Colmap n’est pas le meilleur pour créer des mesh à partir des données suivies, mais si vous voulez vous épargner du travail, le maillage est certainement utilisable. Un PLY peut être facilement converti en STL dans Meshmixer ou Meshlab, par exemple. Cependant, ce n’est pas une bonne idée d’essayer d’imprimer ce mesh directement. Tous les meshes créés par scan 3D ou photogrammétrie contiennent généralement beaucoup d’erreurs et il leur manque la base plate qui pourrait être facilement placée sur le plateau d’impression. Suivez notre guide sur la réparation de modèles 3D corrompus etle découpage de modèles pour savoir comment résoudre ces problèmes. Gardez également à l’esprit que l’échelle de l’objet scanné sera à peu près aléatoire, ajustez-la en conséquence. Le deuxième fichier est le plus intéressant. fused.plyle fichier contient le fameux nuage de points. C’est juste un ensemble de points dans l’espace, pas de triangles et donc pas de mesh. Nous devrons créer le mesh nous-mêmes, c’est un travail supplémentaire, mais le résultat est généralement bien meilleur.

Création du mesh à partir de données de nuages de points

  1. Ouvrez Meshlab,sélectionnez Fichier – Importer Mesh et choisissez le fichier fused.ply
  2. Il vous sera présenté la scène capturée à partir de points 3D
  3. Choisissez l’outil Sélectionner des sommets dans la barre d’outils principale (en haut) et utilisez-le pour sélectionner tous les points que vous souhaitez supprimer
    • L’outil fonctionne comme une sélection de boîte, maintenez le bouton gauche de la souris enfoncé pour créer une sélection
    • Vous pouvez maintenir Ctrl pour ajouter plus de sommets à ceux déjà sélectionnés
  4. Clique sur le bouton Supprimer les sommets dans la barre d’outils principale. Les sommets sélectionnés disparaîtront
  5. Répétez les étapes 3 à 4 jusqu’à ce que vous vous retrouviez avec juste les points que vous souhaitez utiliser pour créer le maillage de l’objet scanné
  6. Sélectionnez Filtres – Remaillage, simplification et reconstruction – Reconstruction de la surface de Poisson filtrée
    • La Profondeur de reconstruction a un effet majeur sur le résultat final. Des valeurs entre 13-15 semblent généralement les meilleures et entraînent un temps raisonnable pour le calcul
    • Les autres paramètres fonctionnent généralement mieux avec les valeurs par défaut, mais n’hésitez pas à les expérimenter
  7. Appuyez sur Appliquer pour créer un mesh
  8. Les bords de votre modèle se termineront généralement par une forme étrange ou même se recroquevilleront et créeront une énorme masse.
    • De la même manière que pour sélectionner et supprimer des sommets, vous pouvez faire de même avec des triangles en utilisant les outils Sélectionner dans la région triangulaire et Supprimer des faces de la barre d’outils principale
  9. Sélectionnez Fichier –Exporter le maillage
    • Si vous voulez pouvoir partager le scan au format numérique avec la texture, utilisez des formats tels que PLY, 3DS ou OBJ
    • Pour le choix de l’impression 3D STL

Conseils pour améliorer votre modèle reconstruit

Voici quelques conseils supplémentaires pour vous débarrasser de certaines imperfections et améliorer votre modèle reconstruit dans Meshlab :

  1. Lissez votre modèle depuis le menu Filtres – Lissage, carénage et déformation – Lissage laplacien
    • Essayez d’augmenter les valeurs des Étapes de lissage à 8-15
    • Vous pouvez répéter ce processus autant de fois que vous le souhaitez, mais en lissant trop votre modèle, vous vous débarrasserez de détails précieux.
  2. Pour vous débarrasser des faces supplémentaires souvent générées par la reconstruction, vous pouvez choisir Filtres – Sélection – Sélectionnez les faces dont les bords sont plus longs que…
    • Cochez Aperçu
    • Changer le seuil de bord afin que la grande majorité des faces que vous souhaitez supprimer soient sélectionnées, mais toutes les faces que vous souhaitez conserver ne sont toujours pas sélectionnées
  3. Si votre modèle a un grand nombre de sommets et de faces, il peut être difficile de travailler avec, sans parler du découpage, qui prendrait une éternité. Diminuez leur quantité en utilisantFiltres –Lissage, carénage et déformation – Décimation de l’effondrement des bords quadriques
    • Définissez le nombre de faces souhaitées
    • Tout ce qui dépasse 1 million de faces est définitivement exagéré. Même 100k faces sont généralement plus que suffisantes

Exemples

Statues

Les statues sont parfaites pour la photogrammétrie. Leur surface est rugueuse, incapable de projeter des reflets. Il y a beaucoup de détails et de fonctionnalités à suivre par le logiciel. Les statues sont généralement trop grandes pour les scanners 3D traditionnels sans oublier l’inconvénient de transporter un scanner 3D à l’extérieur et d’essayer de l’installer là-bas. Mais avec la photogrammétrie, c’est facile, il suffit de saisir votre appareil photo et de commencer à prendre des photos. Cependant, comme elles sont généralement placées à l’extérieur, il y a quelques points à garder à l’esprit. Essayez d’évitez d’avoir des objets mobiles dans votre image. S’il y a des gens qui passent, laissez-les passer et en attendant prenez des photos des directions où les gens ne sont pas visibles. Si possible, attendez qu’un nuage bloque le soleil, afin qu’il n’y ait pas d’ombres dures.  

La statue de la femme assise par Václav Bejček de 1967, le modèle 3D reconstruit (vérifiez laVue 3D sur Sketchfab) et la version imprimée

Baby Groot

La numérisation d’une impression 3D peut sembler stupide, l’utilisation du fichier STL d’origine est évidemment bien meilleure. Mais c’est une bonne référence de cette technique, nous pouvons facilement comparer le modèle reconstruit au STL original utilisé pour l’impression. Une autre raison légitime d’utiliser la photogrammétrie pour numériser une impression 3D est si vous la peignez à la main et souhaitez partager le modèle avec la texture peinte à la main. Comme vous pouvez le voir dans la vue 3D ci-dessous, en termes de géométrie, il y a une perte de qualité évidente. Cela dit, la plupart des fonctionnalités ont été reconstruites avec succès et avec quelques petites retouches, le modèle aurait l’air plutôt bien. Et la texture est aussi une belle touche.

Appuyez sur I et sélectionnez Matcap pour cacher la texture et comparer uniquement la géométrie des modèles

Ping Pong Paddle – traitement des surfaces brillantes

Reconstruire une raquette de ping-pong était assez facile à une exception près. Les deux grandes surfaces (celles qui frappent la balle) n’ont pas de détails pour être reconnus par le logiciel et pour aggraver les choses, elles sont brillantes. Lorsque l’appareil photo tourne autour de la raquette, la surface brillante change d’apparence et reflète les sources de lumière environnantes. Il en résulte que pratiquement aucun point n’est reconstruit sur cette surface. Cela conduira finalement à forme de mesh incorrecte. Pour éviter que cela ne se produise, certains détails doivent être ajoutés à ces surfaces. Cela peut être facilement fait avec par exemple du ruban pour peintres. Collez-en quelques bandes sur des surfaces brillantes pour éviter les reflets et créer un aspect texturé mat. Dans la vue 3D, vous pouvez voir la différence que cette astuce rapide a fait.

Verre – surfaces transparentes

Tout comme les surfaces brillantes, les objets transparents posent problème. Les arêtes vives peuvent être capturées par le logiciel de photogrammétrie, mais les zones transparentes lisses seront complètement ignorées, ce qui entraînera des données incomplètes pour la reconstruction du mesh. Encore une fois, vous pouvez utiliser du ruban pour peintres pour couvrir ces surfaces. Alternativement, vous pouvez utiliser des couleurs solubles dans l’eau avec un pulvérisateur et salir le verre.

Conclusion

Les meshes créés par photogrammétrie peuvent facilement surclasser les scanners 3D bon marché. Vous pouvez recréer d’énormes objets qu’il serait presque impossible de capturer avec les outils de numérisation 3D traditionnels. C’est extrêmement abordable et les chances sont que vous avez déjà tout ce dont vous avez besoinpour la photogrammétrie – un appareil photo (smartphone) et un PC quelque peu puissant. Et cela ne doit pas se terminer par la reconstruction d’une statue. Possédez-vous un drone ? Prenez quelques photos, reconstruisez et imprimez votre maison. Donc… Est-ce que la photogrammétrie est un outil de scan 3D ? Absolument OUI. Devriez-vous imprimer des modèles reconstruits sans retouches ? Probablement pas. Comme toute autre technique de numérisation 3D, le mesh final ne sera pas parfait. Certaines zones peuvent manquer de détails, les surfaces planes peuvent ne pas devenir complètement plates, le maillage peut contenir des trous, des arrêtes invalides ou d’autres erreurs. Cependant, si vous êtes en mesure de résoudre ces problèmes, le résultat final en vaudra la peine.

Sources

Schonberger, Johannes Lutz and Frahm, Jan-Michael, Structure-from-Motion Revisited. Université de Caroline du Nord à Chapel Hill, Eidgenossische Technische Hochschule Zurich. All3DP – Test des captures d’Autodesk 123D