Sommario:
- Passaggio 1: Introduzione
- Passaggio 2: software
- Passaggio 3: configurazione hardware
- Passaggio 4: sperimentare con lo scanner
- Passaggio 5: alcuni altri risultati di scansione
- Passaggio 6: GUI dello scanner 3D
Video: Scanner 3D fai-da-te basato su luce strutturata e visione stereo in linguaggio Python: 6 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:04
Questo scanner 3D è stato realizzato utilizzando articoli convenzionali a basso costo come videoproiettore e webcam. Uno scanner 3D a luce strutturata è un dispositivo di scansione 3D per misurare la forma tridimensionale di un oggetto utilizzando modelli di luce proiettati e un sistema di telecamere. Il software è stato sviluppato sulla base della luce strutturata e della visione stereo con linguaggio Python.
La proiezione di una sottile fascia di luce su una superficie sagomata tridimensionale produce una linea di illuminazione che appare distorta da prospettive diverse da quella del proiettore e può essere utilizzata per un'esatta ricostruzione geometrica della forma della superficie. Le bande luminose orizzontali e verticali vengono proiettate sulla superficie dell'oggetto e poi catturate da due webcam.
Passaggio 1: Introduzione
I dispositivi di acquisizione 3D automatici (spesso chiamati scanner 3D) consentono di costruire modelli altamente accurati di oggetti 3D reali in modo economico e rapido. Abbiamo sperimentato questa tecnologia nella scansione di un giocattolo per dimostrare le prestazioni. Esigenze specifiche sono: precisione medio-alta, semplicità di utilizzo, costo contenuto del dispositivo di scansione, acquisizione autoregistrata dei dati di forma e colore, ed infine sicurezza operativa sia per l'operatore che per gli oggetti scansionati. In base a questi requisiti, abbiamo progettato uno scanner 3D a basso costo basato sulla luce strutturata che adotta un approccio versatile con motivo a strisce colorate. Presentiamo l'architettura dello scanner, le tecnologie software adottate e i primi risultati del suo utilizzo in un progetto riguardante l'acquisizione 3D di un giocattolo.
Nella progettazione del nostro scanner a basso costo, abbiamo scelto di implementare l'unità di emissione utilizzando un videoproiettore. Il motivo era la flessibilità di questo dispositivo (che consente di sperimentare qualsiasi tipo di schema luminoso) e la sua ampia disponibilità. Il sensore può essere un dispositivo personalizzato, una fotocamera digitale standard o una webcam. deve supportare la cattura del colore di alta qualità (cioè l'acquisizione di un'elevata gamma dinamica) e possibilmente con un'alta risoluzione.
Passaggio 2: software
Il linguaggio Python è stato utilizzato per la programmazione per tre motivi, uno è facile da imparare e implementare, due possiamo usare OPENCV per le routine relative alle immagini e tre è portabile tra diversi sistemi operativi in modo da poter utilizzare questo programma in Windows, MAC e Linux. È inoltre possibile configurare il software per l'utilizzo con qualsiasi tipo di telecamera (webcam, reflex o telecamere industriali) o proiettore con risoluzione nativa 1024X768. È meglio usare fotocamere con una risoluzione più che doppia. Ho testato personalmente le prestazioni in tre diverse configurazioni, la prima era con due webcam cinema Microsoft parallele e un piccolo proiettore portatile, la seconda era con due webcamera cinema lifecam ruotate di 15 gradi l'una verso l'altra e proiettore Infocus, l'ultima configurazione era con webcamera logitech e proiettore Infocus. Per catturare la nuvola di punti della superficie dell'oggetto dovremmo seguire cinque passaggi:
1. Proiezione di motivi grigi e acquisizione di immagini da due fotocamere "SL3DS1.projcapt.py"
2. Elaborazione delle 42 immagini di ciascuna telecamera e codici dei punti di acquisizione "SL3DS2.procimages.py"
2. Regolazione della soglia per selezionare il mascheramento per le aree da elaborare "SL3DS3.adjustthresh.py"
4. Trova e salva punti simili in ogni telecamera "SL3DS4.calcpxpy.py"
5 Calcola le coordinate X, Y e Z della nuvola di punti "SL3DS5.calcxyz.py"
L'output è un file PLY con coordinate e informazioni sul colore dei punti sulla superficie dell'oggetto. Puoi aprire i file PLY con software CAD come i prodotti Autodesk o un software open source come Meshlab.
www.autodesk.com/products/personal-design-a…
Python 2.7, modulo OPENCV e NUMPY dovrebbero essere installati per eseguire questi programmi Python. Ho anche sviluppato una GUI per questo software in TKINTER che puoi trovare nel passaggio sei con due set di dati di esempio. È possibile trovare ulteriori informazioni su questo argomento sui seguenti siti 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…
Passaggio 3: configurazione hardware
L'hardware è composto da:
1. Due webcam (Logitech C920C)
2. Proiettore Infocus LP330
3. Supporto per fotocamera e proiettore (realizzato con lastre acriliche da 3 mm e legno HDF da 6 mm tagliato con un laser cutter)
Due fotocamere e un proiettore devono essere collegati a un computer con due uscite video come un computer portatile e lo schermo del proiettore deve essere configurato come un'estensione del desktop principale di Windows. Qui puoi vedere le immagini delle fotocamere, del proiettore e del supporto. I file di disegno pronti per il taglio sono allegati in formato SVG.
Il proiettore è un Infocus LP330 (risoluzione nativa 1024X768) con le seguenti specifiche. Luminosità: 650 lumen Colour Light Output: ** Contrasto (Full On/Off): 400:1 Auto Iris: nessuna risoluzione nativa: 1024 x 768 Aspect Ratio: 4: 3 (XGA) Modalità video:** Modalità dati: MAX 1024 x 768 Potenza massima: 200 Watt Tensione: 100 V - 240 V Dimensioni (cm) (A x L x P): 6 x 22 x 25 Peso: 2,2 kg Durata della lampada (piena potenza): 1.000 ore Tipo di lampada:UHPPotenza lampada:120 Watt Quantità lampada:1 Tipo di display:2 cm DLP (1) Obiettivo zoom standard:1,25:1 Messa a fuoco:Manuale Distanza di proiezione (m): 1,5 - 30,5 Dimensioni immagine (cm):76 - 1971
Questo videoproiettore viene utilizzato per proiettare modelli di luce strutturata sull'oggetto da scansionare. Il modello strutturato è costituito da strisce luminose bianche verticali e orizzontali che vengono salvate su un file di dati e le webcam catturano quelle strisce distorte.
Utilizzare preferibilmente quelle telecamere che sono controllabili dal software perché è necessario regolare la messa a fuoco, la luminosità, la risoluzione e la qualità dell'immagine. È possibile utilizzare fotocamere DSLR con SDK forniti da ciascuna marca.
Assemblaggio e test sono stati condotti a Copenhagen Fablab con il suo supporto.
Passaggio 4: sperimentare con lo scanner
Per testare il sistema è stato utilizzato un giocattolo a forma di pesce e si può vedere l'immagine catturata. Tutti i file acquisiti e anche la nuvola di punti di output sono inclusi nel file allegato, puoi aprire il file della nuvola di punti PLY con Meshlab:
meshlab.sourceforge.net/
Passaggio 5: alcuni altri risultati di scansione
Qui puoi vedere alcune scansioni del volto umano e la scansione 3D di un muro. Ci sono sempre alcuni punti anomali dovuti a riflessi o risultati dell'immagine imprecisi.
Passaggio 6: GUI dello scanner 3D
Per testare il software di scansione 3D in questo passaggio aggiungo due set di dati, uno è la scansione di un pesce e l'altro è solo una parete piana per vederne l'accuratezza. Apri i file ZIP ed esegui SL3DGUI.py. Per l'installazione, controlla il passaggio 2. Invia un messaggio alla mia casella di posta qui per tutti i codici sorgente.
Per utilizzare la parte di scansione 3D è necessario installare due fotocamere e un proiettore, ma per altre parti è sufficiente fare clic sul pulsante. Per testare i dati di esempio, fare prima clic su processo, quindi su soglia, corrispondenza stereo e infine nuvola di punti. Installa Meshlab per vedere la nuvola di punti.
meshlab.sourceforge.net/
Consigliato:
Becco laser per visione notturna! (OPPURE Come realizzare una torcia per la conservazione della visione notturna, LED Throwie, Transformer Toy Mashup!): 5 passaggi
Becco laser per visione notturna! (OPPURE Come creare una torcia per la conservazione della visione notturna, LED Throwie, Transformer Toy Mashup!): Un istruibile da un noob per il noob. Cosa ottieni quando mashup una torcia per la conservazione della visione notturna, un Throwie LED e un trasformatore spiffy giocattolo? Un istruibile con un nome davvero lungo! Lo chiameremo "Nightvision Laserbeak" per
Generatore musicale basato sulle condizioni meteorologiche (generatore MIDI basato su ESP8266): 4 passaggi (con immagini)
Generatore di musica basato sul tempo (Generatore MIDI basato su ESP8266): Ciao, oggi spiegherò come creare il tuo piccolo generatore di musica basato sul tempo. È basato su un ESP8266, che è un po' come un Arduino, e risponde alla temperatura, alla pioggia e l'intensità della luce. Non aspettarti che produca intere canzoni o programmi di accordi
Videocamera di sicurezza per visione notturna professionale open source fai-da-te: 10 passaggi (con immagini)
Telecamera di sicurezza per visione notturna professionale open source fai-da-te: in questo nuovo tutorial, realizzeremo insieme la nostra telecamera di sorveglianza video open source Raspberry Pi. Sì, stiamo parlando di una vera telecamera di sorveglianza per esterni open source, in grado di visione notturna e rilevamento del movimento, tutto collegato al nostro Jeed
Pick-and-place basato sulla visione con UArm: 6 passaggi
Il pick-and-place basato sulla visione con UArm: Recentemente, la maggior parte delle domande che abbiamo ricevuto da te riguardano le applicazioni basate sulla visione di uArm, come il riconoscimento di oggetti, la correlazione fotocamera-uArm, ecc. In realtà abbiamo lavorato su questo per un periodo di tempo. Abbiamo condotto una semplice visione basata p
Trasformare la fotocamera in "visione notturna militare", aggiungere l'effetto di visione notturna o creare la modalità di visione notturna su qualsiasi telecamera!!!: 3 passaggi
Trasforma la tua fotocamera in "visione notturna militare", aggiungi l'effetto di visione notturna o crea la modalità di visione notturna" su qualsiasi telecamera!!!: *** Questo è stato inserito nel CONCORSO DIGITAL DAYS PHOTO, per favore votami** *Se hai bisogno di aiuto, invia un'e-mail a: [email protected] Parlo inglese, francese, giapponese, spagnolo e conosco altre lingue se