Taula de continguts:
- Pas 1: Introducció
- Pas 2: programari
- Pas 3: Configuració del maquinari
- Pas 4: Experimentació amb l'escàner
- Pas 5: alguns altres resultats d'escaneig
- Pas 6: GUI de l'escàner 3D
Vídeo: Escàner 3D de bricolatge basat en llum estructurada i visió estèreo en llenguatge Python: 6 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:15
Aquest escàner 3D es va fer amb articles convencionals de baix cost com ara projector de vídeo i càmeres web. Un escàner 3D de llum estructurada és un dispositiu d’escaneig 3D per mesurar la forma tridimensional d’un objecte mitjançant patrons de llum projectats i un sistema de càmera. El programari es va desenvolupar basat en la llum estructurada i la visió estèreo amb llenguatge python.
La projecció d’una estreta banda de llum sobre una superfície en forma de tres dimensions produeix una línia d’il·luminació que apareix distorsionada des d’altres perspectives diferents de la del projector i que es pot utilitzar per a una reconstrucció geomètrica exacta de la forma de la superfície. Les bandes de llum horitzontals i verticals es projecten sobre la superfície de l'objecte i després es capturen mitjançant dues càmeres web.
Pas 1: Introducció
Els dispositius d’adquisició 3D automàtics (sovint anomenats escàners 3D) permeten construir models d’objectes 3D reals de gran precisió d’una manera eficaç en termes de costos i temps. Hem experimentat aquesta tecnologia escanejant una joguina per demostrar el seu rendiment. Les necessitats específiques són: precisió mitjana-alta, fàcil d’utilitzar, cost assequible del dispositiu d’escaneig, adquisició autoregistrada de dades de forma i color i, finalment, seguretat operativa tant per a l’operador com per als objectes escanejats. Segons aquests requisits, hem dissenyat un escàner 3D de baix cost basat en llum estructurada que adopta un enfocament versàtil de patrons de ratlles de colors. Presentem l'arquitectura de l'escàner, les tecnologies de programari adoptades i els primers resultats del seu ús en un projecte sobre l'adquisició en 3D d'una joguina.
En el disseny del nostre escàner de baix cost, vam optar per implementar la unitat emissora mitjançant un projector de vídeo. El motiu va ser la flexibilitat d’aquest dispositiu (que permet experimentar qualsevol tipus de patró de llum) i la seva àmplia disponibilitat. El sensor pot ser un dispositiu personalitzat, una càmera fotogràfica digital estàndard o una càmera web. ha de ser compatible amb la captura de color d'alta qualitat (és a dir, l'adquisició d'un alt rang dinàmic) i possiblement amb alta resolució.
Pas 2: programari
El llenguatge Python es va utilitzar per programar per tres motius, un és fàcil d'aprendre i implementar, dos podem utilitzar OPENCV per a rutines relacionades amb la imatge i tres és portàtil entre diferents sistemes operatius, de manera que podeu utilitzar aquest programa a Windows, MAC i Linux. També podeu configurar el programari per utilitzar-lo amb qualsevol tipus de càmera (càmeres web, rèflex o càmeres industrials) o projector amb resolució nativa de 1024X768. És millor utilitzar càmeres amb una resolució de més de dues vegades. Personalment vaig provar el rendiment en tres configuracions diferents, la primera va ser amb dues càmeres de cinema paral·leles de Microsoft i un petit projector portàtil, la segona va ser amb dues càmeres web de càmeres de vida que giraven 15 graus entre elles i el projector Infocus, la darrera configuració va ser amb càmeres web logitech i projector Infocus. Per capturar el núvol de punts de la superfície de l’objecte hauríem de passar per cinc passos:
1. Projecció de patrons grisos i captura d'imatges de dues càmeres "SL3DS1.projcapt.py"
2. Processament de les 42 imatges de cada càmera i codis de punts de captura "SL3DS2.procimages.py"
2. S'està ajustant el llindar per seleccionar l'emmascarament de les àrees a processar "SL3DS3.adjustthresh.py"
4. Cerqueu i deseu punts similars a cada càmera "SL3DS4.calcpxpy.py"
5 Calculeu les coordenades X, Y i Z del núvol de punts "SL3DS5.calcxyz.py"
La sortida és un fitxer PLY amb informació de coordenades i colors dels punts de la superfície de l'objecte. Podeu obrir fitxers PLY amb programari CAD com productes Autodesk o un programari de codi obert com Meshlab.
www.autodesk.com/products/personal-design-a…
El Python 2.7, el mòdul OPENCV i NUMPY s’han d’instal·lar per executar aquests programes Python. També he desenvolupat una GUI per a aquest programari a TKINTER que podeu trobar al pas sis amb dos conjunts de dades de mostra. Podeu trobar informació addicional sobre aquest tema als següents llocs web:
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…
Pas 3: Configuració del maquinari
El maquinari consta de:
1. Dues càmeres web (Logitech C920C)
2. Projector Infocus LP330
3. Suport per a càmera i projector (fabricat amb plaques acríliques de 3 mm i fusta HDF de 6 mm tallada amb un tallador làser)
Dues càmeres i el projector haurien d’estar connectats a un ordinador amb dues sortides de vídeo com un ordinador portàtil i la pantalla del projector s’hauria de configurar com una extensió de l’escriptori principal de Windows. Aquí podeu veure imatges de càmeres, projector i suport. Els fitxers de dibuix llestos per tallar s’adjunten en format SVG.
El projector és un Infocus LP330 (resolució nativa 1024X768) amb les especificacions següents. Lluminositat: 650 lúmens Color sortida de llum: ** Contrast (Activat / Apagat complet): 400: 1 Iris automàtic: No Resolució nativa: 1024x768 Relació d’aspecte: 4: 3 (XGA) Modes de vídeo: ** Modes de dades: Màx. 1024x768 Potència màxima: 200 watts Voltatge: 100V - 240V Mida (cm) (HxWxD): 6 x 22 x 25 Pes: 2,2 kg Vida útil de la làmpada (plena potència): 1, 000 hores Tipus de làmpada: UHPL Potència de la làmpada: 120 watts Quantitat de làmpada: 1 Tipus de pantalla: 2 cm DLP (1) Objectiu de zoom estàndard: 1,25: 1 Enfocament: Distància de llançament manual (m): 1,5 - 30,5 Mida de la imatge (cm): 76 - 1971
Aquest projector de vídeo s’utilitza per projectar patrons de llum estructurats sobre l’objecte a escanejar. El patró estructurat consisteix en tires de llum blanca verticals i horitzontals que es guarden en un fitxer de dades i les càmeres web capturen aquestes tires distorsionades.
Utilitzeu preferentment aquelles càmeres que es puguin controlar mitjançant programari perquè necessiteu ajustar el focus, la brillantor, la resolució i la qualitat de la imatge. És possible utilitzar càmeres DSLR amb SDK que proporcionen cada marca.
El muntatge i les proves es van dur a terme a Copenhaguen Fablab amb el seu suport.
Pas 4: Experimentació amb l'escàner
Per provar el sistema es va utilitzar una joguina de peix i es pot veure la imatge capturada. Tots els fitxers capturats i també el núvol de punts de sortida s’inclouen al fitxer adjunt, podeu obrir el fitxer núvol de punts PLY amb Meshlab:
meshlab.sourceforge.net/
Pas 5: alguns altres resultats d'escaneig
Aquí podeu veure algunes exploracions de rostres humans i 3D d’una paret. Sempre hi ha alguns punts extrems a causa de reflexos o resultats de la imatge inexactes.
Pas 6: GUI de l'escàner 3D
Per provar el programari d’escaneig 3D en aquest pas, afegeixo dos conjunts de dades: un és l’escaneig d’un peix i l’altre només és una paret plana per veure’n la precisió. Obriu fitxers ZIP i executeu SL3DGUI.py. Per a la instal·lació, comproveu el pas 2. Envieu un missatge a la meva safata d'entrada aquí per obtenir tots els codis font.
Per utilitzar una peça d’escaneig en 3D, heu d’instal·lar dues càmeres i un projector, però per a altres parts només cal que feu clic al botó. Per provar les dades de mostra, primer feu clic a Procés, després al llindar, coincidència estèreo i, finalment, al núvol de punts. Instal·leu Meshlab per veure el núvol de punts.
meshlab.sourceforge.net/
Recomanat:
Generador de música basat en el temps (generador de midi basat en ESP8266): 4 passos (amb imatges)
Generador de música basat en el temps (generador de midi basat en ESP8266): Hola, avui explicaré com fer el vostre propi generador de música basat en el temps. Es basa en un ESP8266, que és com un Arduino, i respon a la temperatura, a la pluja i intensitat lumínica. No espereu que faci cançons senceres o progrés d’acords
Llum LED de bricolatge: llum d'ànim moderna d'escriptori amb control remot: 8 passos (amb imatges)
Llum LED de bricolatge: làmpada moderna d'ànim d'escriptori amb control remot: en aquest article repassaré el procés que vaig fer per construir aquesta impressionant làmpada d'ànim LED en forma de piràmide. Vaig utilitzar l'auró per a l'estructura principal i algunes espines de caoba per obtenir més resistència. Per a les llums he utilitzat llums LED RGB que vénen en una tira de 16 peus
Escàner CT i escàner 3D amb Arduino: 12 passos (amb imatges)
Escàner CT i 3D amb Arduino: la tomografia computada (TC) o la tomografia axial computaritzada (TAC) s’associa amb més freqüència a la imatge del cos perquè permet als clínics veure l’estructura anatòmica del pacient sense haver de fer cap cirurgia. Imatge dins de l'home b
Una solució de visió assequible amb braç de robot basat en Arduino: 19 passos (amb imatges)
Una solució de visió assequible amb braç de robot basat en Arduino: quan parlem de visió artificial, sempre ens resulta tan inabastable. Tot i que vam fer una demostració de visió de codi obert que seria molt fàcil de fer per a tothom. En aquest vídeo, amb la càmera OpenMV, independentment d’on estigui el cub vermell, el robot és
Sabre de llum basat en Arduino amb efectes de llum i so: 14 passos (amb imatges)
Sabre de llum basat en Arduino amb efectes de llum i so: Hola jedi! Aquest instructiu tracta de fer un sabre de llum que sembli, soni i funcioni com el de la pel·lícula. L'única diferència: no pot tallar metall: (Aquest dispositiu es basa en la plataforma Arduino i li dono moltes funcions i funcions, però