Table des matières:
- Étape 1: Présentation
- Étape 2: Logiciel
- Étape 3: configuration du matériel
- Étape 4: Expérimenter avec le scanner
- Étape 5: Quelques autres résultats d'analyse
- Étape 6: interface graphique du scanner 3D
Vidéo: Scanner 3D DIY basé sur la lumière structurée et la vision stéréo en langage Python : 6 étapes (avec images)
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:09
Ce scanner 3D a été fabriqué à l'aide d'articles conventionnels à faible coût comme un vidéoprojecteur et des webcams. Un scanner 3D à lumière structurée est un dispositif de numérisation 3D permettant de mesurer la forme tridimensionnelle d'un objet à l'aide de motifs lumineux projetés et d'un système de caméra. Le logiciel a été développé sur la base de la lumière structurée et de la vision stéréo avec le langage python.
La projection d'une bande étroite de lumière sur une surface de forme tridimensionnelle produit une ligne d'éclairage qui apparaît déformée depuis d'autres perspectives que celle du projecteur, et peut être utilisée pour une reconstruction géométrique exacte de la forme de la surface. Des bandes lumineuses horizontales et verticales sont projetées sur la surface de l'objet puis capturées par deux webcams.
Étape 1: Présentation
Les dispositifs d'acquisition 3D automatiques (souvent appelés scanners 3D) permettent de créer des modèles très précis d'objets 3D réels de manière économique et rapide. Nous avons expérimenté cette technologie en scannant un jouet pour prouver ses performances. Les besoins spécifiques sont: une précision moyenne à élevée, une facilité d'utilisation, un coût abordable du dispositif de numérisation, une acquisition auto-enregistrée des données de forme et de couleur, et enfin une sécurité opérationnelle pour l'opérateur et les objets numérisés. Conformément à ces exigences, nous avons conçu un scanner 3D à faible coût basé sur la lumière structurée qui adopte une approche polyvalente de motif à rayures colorées. Nous présentons l'architecture du scanner, les technologies logicielles adoptées et les premiers résultats de son utilisation dans un projet d'acquisition 3D d'un jouet.
Dans la conception de notre scanner low-cost, nous avons choisi de mettre en œuvre le bloc émetteur en utilisant un vidéoprojecteur. La raison en était la flexibilité de cet appareil (qui permet d'expérimenter tout type de motif lumineux) et sa grande disponibilité. Le capteur peut être un appareil personnalisé, un appareil photo numérique standard ou une webcam. il doit prendre en charge une capture couleur de haute qualité (c'est-à-dire l'acquisition d'une plage dynamique élevée) et éventuellement avec une haute résolution.
Étape 2: Logiciel
Le langage Python a été utilisé pour la programmation pour trois raisons, l'une est facile à apprendre et à mettre en œuvre, deux nous pouvons utiliser OPENCV pour les routines liées aux images et trois il est portable entre différents systèmes d'exploitation afin que vous puissiez utiliser ce programme sous Windows, MAC et Linux. Vous pouvez également configurer le logiciel pour l'utiliser avec tout type de caméra (webcams, reflex ou caméras industrielles) ou projecteur avec une résolution native de 1024X768. Il est préférable d'utiliser des caméras avec une résolution de plus de deux fois. J'ai personnellement testé les performances dans trois configurations différentes, la première était avec deux webcams Microsoft parallèles cinéma et un petit projecteur portable, la seconde était avec deux webcaméras cinéma lifecam qui pivotaient de 15 degrés l'une vers l'autre et un projecteur Infocus, la dernière configuration était avec des webcaméras logitech et projecteur Infocus. Pour capturer le nuage de points de la surface de l'objet, nous devons suivre cinq étapes:
1. Projection de motifs gris et capture d'images à partir de deux caméras "SL3DS1.projcapt.py"
2. Traiter les 42 images de chaque caméra et capturer les codes des points " SL3DS2.procimages.py"
2. Réglage du seuil pour sélectionner le masquage des zones à traiter "SL3DS3.adjustthresh.py"
4. Recherchez et enregistrez des points similaires dans chaque caméra "SL3DS4.calcpxpy.py"
5 Calculer les coordonnées X, Y et Z du nuage de points "SL3DS5.calcxyz.py"
La sortie est un fichier PLY avec des informations de coordonnées et de couleur des points sur la surface de l'objet. Vous pouvez ouvrir les fichiers PLY avec un logiciel de CAO comme les produits Autodesk ou un logiciel open source comme Meshlab.
www.autodesk.com/products/personal-design-a…
Python 2.7, le module OPENCV et NUMPY doivent être installés pour exécuter ces programmes Python. J'ai également développé une interface graphique pour ce logiciel dans TKINTER que vous pouvez trouver à l'étape six avec deux exemples de jeux de données. Vous pouvez trouver des informations complémentaires à ce sujet sur les sites suivants:
docs.opencv.org/modules/calib3d/doc/camera_…
docs.opencv.org/modules/highgui/doc/reading…
www.3dunderworld.org/software/
arxiv.org/pdf/1406.6595v1.pdf
mesh.brown.edu/byo3d/index.html
www.opticsinfobase.org/aop/fulltext.cfm?uri…
hera.inf-cv.uni-jena.de:6680/pdf/Brauer-Bur…
Étape 3: configuration du matériel
Le matériel se compose de:
1. Deux webcaméras (Logitech C920C)
2. Projecteur Infocus LP330
3. Support pour appareil photo et projecteur (fabriqué à partir de plaques acryliques de 3 mm et de bois HDF de 6 mm découpé au laser)
Deux caméras et un projecteur doivent être connectés à un ordinateur avec deux sorties vidéo comme un ordinateur portable et l'écran du projecteur doit être configuré comme une extension du bureau Windows principal. Ici, vous pouvez voir des images de caméras, de projecteur et de support. Le fichier de dessin prêt à être découpé est joint au format SVG.
Le projecteur est un Infocus LP330 (résolution native 1024X768) avec les spécifications suivantes. Luminosité:650 Lumens Sortie lumineuse couleur:**Contraste (Full On/Off):400:1 Iris automatique:Non Résolution native:1024x768 Ratio d'aspect:4:3 (XGA) Modes vidéo:** Modes de données: MAX 1024 x 768 Puissance max: 200 watts Tension: 100 V - 240 V Taille (cm) (H x L x P): 6 x 22 x 25 Poids: 2,2 kg Durée de vie de la lampe (pleine puissance): 1 000 heures Type de lampe: UHPL Puissance de la lampe: 120 watts Quantité de lampe: 1 Type d'affichage: 2 cm DLP (1) Objectif zoom standard: 1,25: 1 Mise au point: Manuel Dist (m): 1,5 - 30,5 Taille de l'image (cm): 76 - 1971
Ce vidéoprojecteur permet de projeter des motifs lumineux structurés sur l'objet à scanner. Le motif structuré se compose de bandes lumineuses blanches verticales et horizontales qui sont enregistrées dans un fichier de données et les webcams capturent ces bandes déformées.
Utilisez de préférence les caméras contrôlables par logiciel car vous devez régler la mise au point, la luminosité, la résolution et la qualité de l'image. Il est possible d'utiliser des appareils photo reflex numériques avec les SDK fournis par chaque marque.
L'assemblage et les tests ont été réalisés dans le Fablab de Copenhague avec son soutien.
Étape 4: Expérimenter avec le scanner
Pour tester le système, un jouet de poisson a été utilisé et vous pouvez voir l'image capturée. Tous les fichiers capturés ainsi que le nuage de points de sortie sont inclus dans le fichier joint, vous pouvez ouvrir le fichier de nuage de points PLY avec Meshlab:
meshlab.sourceforge.net/
Étape 5: Quelques autres résultats d'analyse
Ici, vous pouvez voir des scans de visages humains et un scan 3D d'un mur. Il y a toujours des points aberrants dus à des réflexions ou à des résultats d'image inexacts.
Étape 6: interface graphique du scanner 3D
Pour tester le logiciel de scan 3D dans cette étape, j'ajoute deux ensembles de données, l'un est le scan d'un poisson et l'autre est juste un mur plan pour en voir la précision. Ouvrez les fichiers ZIP et exécutez SL3DGUI.py. Pour l'installation, vérifiez l'étape 2. Envoyez un message à ma boîte de réception ici pour tous les codes sources.
Pour utiliser la partie scan 3D, vous devez installer deux caméras et un projecteur, mais pour les autres parties, cliquez simplement sur le bouton. Pour tester les échantillons de données, cliquez d'abord sur le processus, puis sur le seuil, la correspondance stéréo et enfin le nuage de points. Installez Meshlab pour voir le nuage de points.
meshlab.sourceforge.net/
Conseillé:
Générateur de musique basé sur la météo (Générateur Midi basé sur ESP8266): 4 étapes (avec images)
Générateur de musique basé sur la météo (Générateur Midi basé sur ESP8266): Bonjour, aujourd'hui, je vais vous expliquer comment créer votre propre petit générateur de musique basé sur la météo. Il est basé sur un ESP8266, qui ressemble un peu à un Arduino, et il réagit à la température, à la pluie et l'intensité lumineuse. Ne vous attendez pas à ce qu'il fasse des chansons entières ou un programme d'accords
TUTORIEL DE BASE SUR LE LANGAGE DE MARQUAGE D'INTELLIGENCE ARTIFICIELLE (AIML) VIA LE BLOC-NOTES : 8 étapes
TUTORIEL DE BASE SUR LE LANGAGE DE MARQUAGE D'INTELLIGENCE ARTIFICIELLE (AIML) VIA LE BLOC-NOTES : AIML (Artificial Intelligence Markup Language) est un langage de programmation qui est une spécification XML (Extensible Markup Language) utilisée par chatbot, verbot, pandorabot, superbot et autre robot parlant. Il a été développé par le Dr Richard Wallace et …
Affichage d'ergomètre simple basé sur Arduino avec rétroaction différentielle : 7 étapes (avec images)
Affichage d'ergomètre simple basé sur Arduino avec rétroaction différentielle : l'entraînement cardio est ennuyeux, en particulier lorsque vous faites de l'exercice à l'intérieur. Plusieurs projets existants tentent d'atténuer cela en faisant des trucs sympas comme coupler l'ergomètre à une console de jeu, ou même simuler une vraie balade à vélo en VR. Excitant comme ça
Lumière réactive musicale--Comment créer une lumière réactive musicale super simple pour créer un bureau génial.: 5 étapes (avec images)
Lumière réactive musicale || Comment faire de la lumière réactive musicale super simple pour rendre le bureau génial.: Hé quoi de neuf les gars, aujourd'hui, nous allons construire un projet très intéressant. la basse qui est en fait un signal audio basse fréquence. C'est très simple à construire. Nous allons
Comment flasher le micrologiciel MicroPython sur un commutateur intelligent Sonoff basé sur ESP8266 : 3 étapes (avec images)
Comment flasher le micrologiciel MicroPython sur un commutateur intelligent Sonoff basé sur ESP8266: What's Sonoff? Sonoff est une gamme d'appareils pour Smart Home développée par ITEAD. L'un des appareils les plus flexibles et les moins chers de cette gamme est le Sonoff Basic et le Sonoff Dual. Ce sont des commutateurs compatibles Wi-Fi basés sur une excellente puce, ESP8266. Tandis que