
En coulisse
À quel point est-il difficile de construire un scanner 3D ?
par Kevin Hofer
J'ai construit un scanner 3D. Malgré un mode d'emploi extrêmement succinct, l'appareil fonctionne. Jusqu'à ce que je veuille assembler les images en un modèle tridimensionnel.
Construire le scanner 3D a été un vrai casse-tête. Pour couronner le tout, l'utilisateur Anonymous ne le félicite même pas, mais le réprimande :
$ for i in *,jpg; do convert $i $i:s/jpg/png; done
Und wer editiert oder pastet bitteschön Code in Google Docs?]]
C'est à moitié vrai. Je ne suis pas un crack du logiciel - merci pour le conseil concernant ImageMagick. Pour rappel, la dernière fois, j'ai abandonné lorsque Meshroom - le logiciel censé convertir mes images en une image tridimensionnelle - m'a craché un message d'erreur.
"Not a PNG file", disait-il, et j'en ai eu assez pour le moment. Deux jours plus tard, j'ai de nouveau le loisir de me lancer dans le projet
Avant d'en arriver là, je dois rendre les images lisibles pour Meshroom. Si j'ouvre l'une des images du pont Brio avec Notepad++ - l'éditeur de Windows fait également l'affaire -, les quatre premiers caractères sont "ÿØÿà". Cela signifie qu'il s'agit d'un fichier JPG. Cependant, lorsque j'affiche les propriétés des fichiers dans l'Explorateur Windows, ils apparaissent en tant que PNG. Il y a là quelque chose de louche. Meshroom s'en rend compte. Quelque chose a dû mal se passer avec l'étiquette lors du transfert des fichiers du smartphone vers l'ordinateur. Changer simplement le suffixe du fichier en JPG ne résout malheureusement pas le problème : Meshroom continue de supposer à tort qu'il s'agit d'un PNG. Je convertis donc les fichiers de JPG en JPG avec IrfanView. Agaçant, mais comme Windows ne comprend pas qu'il s'agit de fichiers JPG, il ne peut pas faire autrement.
Il ne me reste plus qu'à cliquer sur Démarrer et Meshroom calcule. Et calcule, calcule et calcule. Holy shit. Je crois que j'ai trouvé un nouveau benchmark pour les revues de CPU : Les 16 cœurs du Ryzen 9 3950X tournent à plein régime. A un moment donné, la progression s'arrête et la barre devient rouge. Il doit y avoir une erreur quelque part dans les images. Je décide de relancer le scanner 3D, de placer un modèle un peu plus simple sur la plateforme et d'essayer avec moins de 180 images.
Avec Meshroom, la qualité des sources d'images est essentielle. Comme l'appareil photo du smartphone refait la mise au point à chaque fois, ce n'est pas toujours la même zone qui est mise au point. C'est peut-être ce qui a mis Meshroom à genoux.
J'essaie une maquette de voiture solaire. Pour que Meshroom calcule plus rapidement, je ne prends que 60 images au lieu de 180 comme lors de l'essai du pont Brio. Une fois de plus, je dois faire un détour par IrfanView et convertir les images en JPG. Je les importe dans Meshroom et clique sur Démarrer. Cool, il se passe quelque chose et Meshroom crée un modèle 3D. Sa qualité laisse à désirer.
Meshroom ne peut utiliser que sept des 60 images. Le programme ne crée donc un modèle tridimensionnel qu'à partir d'un seul côté. Je me demande ce qui a pu mal tourner. Le modèle créé est en tout cas inutilisable. Il est possible qu'il ait besoin de plus de lumière et que le bleu de la plate-forme ne soit pas un support optimal.
Je colle un film blanc sur la plateforme et je place une lampe pour mieux éclairer mon projet. De plus, je ne fais plus que 20 images maintenant. Si cela fonctionne ainsi, je pourrai toujours réessayer avec plus d'images.
Comme d'habitude, je dois d'abord convertir les images dans IrfanView. Ensuite, je les charge dans Meshroom et je laisse le programme faire les calculs. Malheureusement, il me donne un message d'erreur pour chaque image. Ce n'est pas grave, je vais réessayer. C'est peut-être parce que je suis trop loin de la voiture solaire modèle réduit avec l'appareil photo?
Pour comparer, je regarde à nouveau la vidéo de QLRO, le concepteur du scanner 3D. Il est beaucoup plus proche que moi avec sa caméra et il travaille avec un fond noir. J'essaie de faire de même. Une fois de plus, je ne prends que 20 photos. Toujours la même erreur. Est-ce parce que je ne prends pas assez de photos ? Le message d'erreur est "No valid initial pair found automatically" (pas de paire initiale valide trouvée automatiquement).
Je vais googler le message d'erreur. Selon divers forums, il peut y avoir deux raisons pour lesquelles mon entreprise n'est pas couronnée de succès. Premièrement, il se peut que je n'aie pas pris assez de photos et deuxièmement, la lampe peut être gênante, car mon modèle est très réfléchissant. Tout est à refaire, cette fois avec 100 images et sans lampe. Dois-je encore mentionner l'étape pénible avec IrfanView?
Cool, maintenant Meshroom se démène avec les images. Il faut plus de 28 minutes au programme pour terminer les calculs. Maintenant, l'ensemble a l'air beaucoup plus raisonnable.
Comme le modèle reflète, j'ai encore certaines irrégularités. L'ombre portée de la voiture solaire modèle réduit n'a pas non plus aidé à la création du modèle. Je pourrais le corriger dans un autre programme comme Maya ou Blender. L'excédent de matière autour de la maquette de voiture solaire scannée pourrait également être supprimé de cette manière.
Je ne retravaille pas le modèle de voiture solaire. Je ne sais pas ce que j'en ferai une fois que j'aurai terminé. Je n'ai aucune expérience de Maya ou de Blender. Il me faudra certainement un certain temps pour me familiariser avec le programme. Après tout, je ne suis pas un génie du logiciel. Je garde cela pour un projet concret - je trouverai certainement quelque chose.
Dans l'ensemble, je considère que mon projet est une réussite. Le scanner fonctionne et, avec un peu de pratique, les numérisations sont tout à fait acceptables. Je suis sûr que je peux faire mieux avec un peu plus de pratique. Je vais devoir faire des retouches d'une manière ou d'une autre. Je m'y mets.
La technologie et la société me fascinent. Combiner les deux et les regarder sous différents angles est ma passion.