Want to make creations as awesome as this one?

Transcript

La photogrammétrie
ou comment passer de photos à un modèle 3D

Elle est souvent utilisée par les géomètres, les architectes ou même les ingénieurs pour créer des cartes topographiques, des maillages, des nuages de points ​​ou des dessins basés sur le monde réel. Dans le domaine de l’impression 3D, la photogrammétrie devient pratique car elle peut remplacer la numérisation 3D, technique le plus souvent utilisée pour collecter des données sur la pièce que vous essayez de modéliser. Dans certains cas, il est plus logique d’utiliser la photogrammétrie que la numérisation 3D pour créer votre modèle 3D. Elle est en effet souvent beaucoup plus accessible et abordable, aussi simple que d’utiliser la caméra de votre Smartphone – alors qu’un scanner 3D peut être volumineux et assez cher. Une fois que vous avez vos photos, vous n’avez besoin que de certains logiciels pour traiter les données et créer un fichier 3D de la pièce.

La photogrammétrie est une technique qui consiste à effectuer des mesures dans une scène, en utilisant la parallaxe obtenue entre des images acquises selon des points de vue différents. Recopiant la vision stéréoscopique humaine, elle a longtemps exploité celle-ci pour reconstituer le relief de la scène à partir de cette différence de points de vue. Actuellement, elle exploite de plus en plus les calculs de corrélation entre des images désormais numériques (photogrammétrie numérique).

Cette technique repose entièrement sur une modélisation rigoureuse de la géométrie des images et de leur acquisition afin de reconstituer une copie 3D exacte de la réalité.La photogrammétrie est la science qui consiste à obtenir des données fiables sur les objets physiques en enregistrant, en mesurant et en interprétant des images photographiques.

T. Noiriel
Lycée Camille Claudel Fourmies

La photogrammétrie : Les indispensables

- Un appareil photo numérique qu'il soit reflex, hybride, bridge ou bien encore un smartphone pour prendre les images numériques de l'objet ou de la scène.

- un ordinateur assez puissant type PC de gamer doté de :

+ 8Go minimum (16 Go voir 32 Go sont un plus indéniable)

+ une carte graphique avec un GPU (puce graphique) compatible CUDA. Seules les cartes Nvidia sont implémentées dans le logiciel utilisé mais on peut réaliser le modèle moyennant une étape supplémentaire de Draft Meshing avec une autre carte. Le processeur graphique peut prendre en charge une partie des calculs et accélérer la création du modèle.

Remarque : pour une fois les utilisatieurs d'apple ne sont pas à la fête : Meshroom n'est pas disponible pour Mac, mais il existe des alternatives qui s'exécutent sur macOS avec des fonctionnalités similaires. La meilleure alternative Mac est Regard3D , qui est à la fois gratuite et Open Source.

- Des logiciels suivants gratuits:

+ Meshroom 2021.1.0 : c'est un logiciel open source qui permet sans limitation de transformer les images en modèle 3D texturé que l'on peut ensuite exporter
+ Meshlab 2022 : logiciel qui permet de nettoyer et retoucher le modèle issu de Meshroom

+ Paint 3D pour annoter le modèle en écrivant dessus à coup de tampon ou en 3D avec 3D builder (appli gratuite microsoft sur le store)

+ Sketchfab, application en ligne gratuite qui permet d'héberger les modèles (dans la limite de 100 Mo par modèle) afin de les intégrer dans l'ENT, Genially, ...

Auparavant je vous aurai parlé du merge cube mais devant le gachis organisé par ses créateurs...

La photogrammétrie : Les galères

Il est possible de rencontrer plusieurs problèmes au cours de l'élaboration d'un modèle :

- Les prises de vues :
+ L'idéal est de pouvoir prendre les photos avec un éclairage correct afin d'avoir un maximum de détails, pas trop d'ombre mais pas trop de lumière non plus. L'orientation du sujet par rapport au soleil, la saison, l'heure peuvent totalement modifier le résultat final sur le modèle.

+ Les prises de vue doivent se faire avec un taux de recouvrement assez important de manière à ce que le logiciel ait des points de repère qu'il pourra exploiter afin de reconstituer la 3D. il faut donc ne pas hésiter à prendre de nombreux clichés quitte à en éliminer ensuite.

- La reconnaissance de l'appareil par Meshroom...
Comme cela m'est tombé dessus et que j'ai pas mal galéré avant de trouver la solution, je vous partage direct le moyen de vous en sortir. C'est-y pas mignon ?

Ce logiciel open source dispose d'une base de données de nombreux appareils mais ils n'y figurent pas tous, en particulier les plus récents.
Lors de mes essais sur la dernière version, je n'arrivais pas à obtenir quoi que ce soit. Lorsque vous démarrez Meshroom, il ouvre 2 fenêtres, l'une qui est celle de l'interface du logiciel et la seconde une fenêtre où il vous raconte des tas de trucs numériques... Moi, il m'a dit ça...

Problème comment est-ce que je connais mon sensor width et comment je le communique à ce foutu logiciel ?

La photogrammétrie :
Comment savoir si son appareil est connu ou pas de Meshroom ?

Il faut se rendre dans le répertoire où vous avez rangé Meshroom (si directement à la racine du disque dur C, cela donne
C:\Meshroom-2021.1.0-win64\Meshroom-2021.1.0\aliceVision\share\aliceVision.

Trouvez le fichier cameraSensors puis faire un clic droit ouvrir avec Blocnotes.
Descendre dans la liste alphabétique et trouver si votre appareil figure dans la liste

Si pas, vous êtes bons pour un peu de cambouis sur les mains


sinon, allez acheter un ticket de loto, on ne sait jamais

La photogrammétrie : Trouver son sensor width

https://www.digicamdb.com/sensor-sizes/

Exemple : vous avez un Canon Digital Ixus 100

Là, pas de secret, il faut connaître le modèle de son appareil puis chercher sur internet :

- Si appareil photo numérique reflex, bridge, hybride, on recherche là

Vous trouvez le sensor width qui est le premier chiffre dans la parenthèse : 6.16

- Si appareil photo numérique est un smartphone, on recherche là

https://www.kimovil.com/en/

Et si vous me cherchier le sensor width de mon bridge Panasonic Lumix FZ150 ?

https://www.devicespecifications.com/en/

On peut aussi trouver le renseignement à partir de la taille du sensor puis en consultant le tableau en-dessous dans la page d'accueil de digicamdb. Là encore, les capteurs évoluant perpétuellement, il est possible de ne pas trouver le modèle.

Exemple : vous avez un xiaomi redmi note 8

Dans Rear Camera en descendant dans la page, on trouve la taille du capteur : 1/2.25" mais lorsque l'on consulte digicamdb, ce format de capteur ne figure pas... quand je vous dit que c'est galère ! pas de panique, on peut s'en sortir avec un peu de maths

Du fabriquant, on tient la résolution maximale des photos (Image Resolution 8000x6000) and la taille des pixel (Pixel Size = 0.8μm).
maxresolution * μmvalue/1000 = mm width that is 8000 * 0.8/1000 = 6.4

Et si vous me trouviez le sensor width de mon OnePlus Nord 2 5G ?

La photogrammétrie : Intégrer son sensor width

Bon, c'est pas tout ça mais maintenant qu'on a le sensor width de notre appareil, comment on le rentre dans Meshroom ?
Rien de bien compliqué mais encore faut-il le savoir et suivre les instructions et le format

Il faut se rendre dans le répertoire où vous avez rangé Meshroom (si directement à la racine du disque dur C, cela donne
C:\Meshroom-2021.1.0-win64\Meshroom-2021.1.0\aliceVision\share\aliceVision.

Trouvez le fichier cameraSensors puis faire un clic droit ouvrir avec Blocnotes.
Descendre dans la liste alphabétique et insérer les caractéristiques de votre appareil en respectant le format :

Fabriquant;modèle;(valeur de sensor width sous la forme de 2 chiffres séparés par un point); userspecification

Dans le cas des 2 exemples précédents cela fait

Canon;Digital Ixus 100 IS;6.16;userspecification
Xiaomi;Redmi Note 8;6.4;userspecification

Vous pourriez avoir l'obligence de préparer les 2 lignes pour le FZ 150 et le OnePlus Nord 2 ?

La photogrammétrie : Enfin jouer avec Meshroom

Fenêtre Blabla numérique, à réduire et la plupart du temps oublier sauf quand ça ne marche pas

Fenêtre où lâcher les photos par

cliquer / glisser

Fenêtre de visualisation des images

Fenêtre d'aperçu 3D

Barre des étapes (3 sont importantes)

Zoom molette. Shift + clic gauche pour se déplacer dans la fenêtre

DONT TOUCH THIS BIG GREEN BUTTON !!!

La fenêtre que nous allons le plus utiliser est celle du bas

Les choses sérieuses commencent enfin. On démarre réellement Meshroom. Pour ça, il suffit de double-cliquer sur l'executable présent dans le répertoire fourni. Aucune installation n'est nécessaire.

Tous les répertoires menant à Meshroom ou à l'intérieur de Meshroom ne doivent pas comporter de caractère accentués ou d'espaces. Vous pouvez utiliser le tiret _ pour faire des espaces.
Et si votre antivirus vous ennuie en stoppant la
progression à chaque étape (Avast), COUPEZ LE !!!

Meshroom, étape 1 : ouvrir les images

Si tout va bien, les images comportent une petite icone verte en haut à gauche.

Meshroom, étape 2 : Vérification des images

En cliquant sur la fenêtre MESHING

Puis en abaissant le nombre de Max Points voir de Max Input Points

Puis en cliquant sur la fenêtre
TEXTURING

Puis en abaissant le Texture Scale (4096 par exemple)
le Texture Dowscale (à 4 par exemple) ou encore en modifiant le Texture File Type (png -> JPG)

Afin de tester ce que cela va donner, je décide de ne rien changer aux valeurs de départ pour l'instant, il sera toujours temps de faire des modifications après.

Meshroom, étape 3 : Options, allègement des images

Si vous souhaitez faire un modèle pas trop lourd, il faut modifier les réglages en 2 endroits en bas


Une fois ces réglages faits, il ne reste qu'à lancer la modélisation en 2 étapes

clic droit sur StructureFromMotion puis compute

Le message qui apparaît vous rappelle que vous n'avez pas défini de lieu de sauvegarde. Je décide de sauvegarder mon travail dans le répertoire qui contient les photos et d'appeler le projet bombe

Meshroom, étape 4 : StructureFromMotion -> Compute

Clic droit sur StructureFromMotion puis compute. Cette fois_ci, cela démarre

On peut suivre la progression grâce aux barres colorées dans Graph Editor ou Task Manager

Lorsque tout est en Vert, cette première étape est terminée

Meshroom, étape 5 : Suivi

2è partie, on achève la réalisation du modèle.

Clic droit sur Texturing et Compute

Là encore on peut suivre la progression jusqu'à l'achèvement visble à la couleur verte

Meshroom, étape 6 : Texturing -> Compute

Notez que le logiciel peut très bien décider de ne pas utiliser certaines photos floues ou trop sombres/claires.
Ces photos apparaissent avec une petite caméra rouge barrée

Meshroom : Performances en fonction du PC

Sur un PC portable moyen :
Processeur : Intel I5 6300HQ 2,36 Ghz
Mémoire vive : 8 Go Ram
Carte graphique : Nvidia GTX 1060, 3Go de RAM

Temps pour traiter le modèle : 39 minutes

Sur un PC fixe gamer correct

Processeur : AMD Ryzen 7 3700X 3,6 Ghz
Mémoire vive : 32 Go Ram
Carte graphique : Nvidia RTX 2080, 8Go de RAM

Temps pour traiter le modèle : 13 minutes

Moralité :


Il ne faut pas rêver, il n'y a que chez Lafontaine que la tortue l'emporte sur le lièvre

Donc si vous souhaitez modéliser en 3D, du montage vidéo ou photo, du jeu vidéo,...

pas le choix,
investissez dans un matériel sérieux au meilleur rapport qualité prix

VS

Pour cela il faut se rendre dans le répertoire où vous avez décidé de ranger le projet (pour moi dans le répertoire où sont les photos)

Meshroom Etape 7

Ma barre est verte, le logiciel a fini, il ne me reste plus qu'à aller voir le résultat.

de là, aller dans texturing puis le répertoire avec une tonne de caractères et enfin, le GRAAL, enfin on l'espère :
le fichier texturedMesh (3D Object)

Youhou, on le fait tourner, on zoom, on dézoom et il est bien.
on voit la croûte de la bombe basaltique, les bulles du basalte, une olivine dans le basalte, la péridotite an coeur.
C'est génial

Certes, il y a du nettoyage à faire mais le modèle est bien

Etape 8 : Nettoyage du fichier sous Meshlab 2022

Ouvrir Meshlab 2022, File, Import Mesh puis aller chercher le fichier

Gizmo pour bouger le modèle

1) Ajuster le shading (ombres) sur none

2) Ajuster la position de l'objet au centre du gizmo avec ctrl + clic gauche

3) Sélectionner petit à petit les parties à éliminer en alternant

Molette pour zoomer/dézommer

Attention :
Meshlab, à la manière de photofiltre travaille par calques et faites attention à vos opérations, il ne comporte pas de retour arrière

Une fois le modèle nettoyé, le sauvegarder en l'exportant sans oublier de le conserver au format obj (pour intégration) ou STL (pour impression 3D).
Là encore, je sauvegarde dans le répertoire d'origine et le nomme
bombe_basalte_peridotite

Si le modèle présente des trous, aller dans Filters -> Remeshing, Simplicication and Reconstruction puis Close Holes

Etape 9 : Finish et export

Etape 10 : Récupération et compression des fichiers pour sketchfab

Sketchfab est une application en ligne qui permet d'héberger des fichiers 3D.

Il faut y être inscrit afin d'y déposer des modèles 3D. Il existe une version gratuite qui permet de mettre à disposition des modèles de 100 Mo maximum tout compris (maillage 3D et textures)

Lorsque le travail du modèle sous Meshlab a été exporté, 4 fichiers sont présents dans le répertoire dont Sketchfab a besoin pour qu'on y dépose un modèle.

Le fichier obj, le fichier mtl au même nom et les fichiers textures. Le mieux est de les sélectionner puis clic droit et archiver au format zip. cette astuce permet de diminuer la taille des fichiers avant de les uploader sous sketchfab.

Il suffit alors de cliquer /glisser le fichier zippé

Il faut s'inscrire sur Sketchfab. puis on peut alors uploader un modèle

Etape 11 : Inscription à Sketchfab et upload des fichiers

Le modèle est en chargement. Sketchfab travaille

Emplacement pour le nom du modèle

Ce que vous voulez rajouter en précisions

Catégories pour les recherches des autres utilisateurs

Tags c'est à dire mots pris en compte pour les recherches des autres utilisateurs. C'est primordial

Free

Edit 3D settings

Etape 12 : Nom, description et tags du modèle

Dans Edit 3D Settings, les éléments qui nous intéressent le plus sont le général pour placer le modèle x, y, z et zoom de départ mais ne pas oublier de sauvegarder à la fin

Autre élément génial, la possibilité d'ajouter des légendes sur l'objet 3D

En cherchant un peu, on peut aussi modifier le fond, l'éclairage, ...

Etape 13 : Réglages de présentation du modèle

Pour ajouter une légende, on double clique sur le modèle où on veut l'ajouter. puis on remplit au minimum le titre puis on valide avec ok

Première étape pour une légende placer le modèle dans la position et au zoom qui nous convient

Attention de valider en cliquant sur l'appareil photo à la fin afin de valider la position du repère et du modèle

Etape 14 : Légender le modèle

Embed

Et paf, on l'intègre où on veut : génially comme ici, ENT, ...

Etape 15 : Intégration du modèle Sketchfab ailleurs

Maintenant, je vous laisse imaginer les applications possibles de la photogrammétrie...

Imaginez...

Un paysage...,

un site géologique...,

un drone...

Vous y êtes ???






on se fait ça en J3...

Mais ce n'est pas tout...




Si ça, c'est pas un teasing de malade

Qui vous donne envie de revenir ...

mais attention à ne pas oublier la phase StructureFromMotion qui a semblé débloquer la finalisation de mes modèles alors qu'ils échouaient systématiquement auparavant.

Tutoriel Gregory Michnik
Meshroom 2019

Parce que les tutoriel vidéos aident à s'y retrouver après coup, vous avez droit à 2 rappels