Table des matières:

Scanner 3D DIY basé sur la lumière structurée et la vision stéréo en langage Python : 6 étapes (avec images)
Scanner 3D DIY basé sur la lumière structurée et la vision stéréo en langage Python : 6 étapes (avec images)

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)

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)
Vidéo: Веб-семинар по 3D Vision и binpicking ENG от KUKA Nordic 2024, Novembre
Anonim
Scanner 3D DIY basé sur la lumière structurée et la vision stéréo en langage Python
Scanner 3D DIY basé sur la lumière structurée et la vision stéréo en langage Python
Scanner 3D DIY basé sur la lumière structurée et la vision stéréo en langage Python
Scanner 3D DIY basé sur la lumière structurée et la vision stéréo en langage Python

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

introduction
introduction
introduction
introduction

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

Logiciel
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

configuration materielle
configuration materielle
configuration materielle
configuration materielle
configuration materielle
configuration materielle
configuration materielle
configuration materielle

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

Expérimenter avec le scanner
Expérimenter avec le scanner
Expérimenter avec le scanner
Expérimenter avec le scanner
Expérimenter avec le scanner
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

Quelques autres résultats d'analyse
Quelques autres résultats d'analyse
Quelques autres résultats d'analyse
Quelques autres résultats d'analyse
Quelques autres résultats d'analyse
Quelques autres résultats d'analyse
Quelques autres résultats d'analyse
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

Interface graphique du scanner 3D
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é: