Taula de continguts:

Escàner 3D de bricolatge basat en llum estructurada i visió estèreo en llenguatge Python: 6 passos (amb imatges)
Escàner 3D de bricolatge basat en llum estructurada i visió estèreo en llenguatge Python: 6 passos (amb imatges)

Vídeo: Escàner 3D de bricolatge basat en llum estructurada i visió estèreo en llenguatge Python: 6 passos (amb imatges)

Vídeo: Escàner 3D de bricolatge basat en llum estructurada i visió estèreo en llenguatge Python: 6 passos (amb imatges)
Vídeo: CS50 2013 - Week 10, continued 2024, Desembre
Anonim
Escàner 3D de bricolatge basat en llum estructurada i visió estèreo en llenguatge Python
Escàner 3D de bricolatge basat en llum estructurada i visió estèreo en llenguatge Python
Escàner 3D de bricolatge basat en llum estructurada i visió estèreo en llenguatge Python
Escàner 3D de bricolatge basat en llum estructurada i visió estèreo en llenguatge Python

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ó

Introducció
Introducció
Introducció
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

Programari
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

Configuració del maquinari
Configuració del maquinari
Configuració del maquinari
Configuració del maquinari
Configuració del maquinari
Configuració del maquinari
Configuració del maquinari
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

Experimentar amb l'escàner
Experimentar amb l'escàner
Experimentar amb l'escàner
Experimentar amb l'escàner
Experimentar amb l'escàner
Experimentar 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

Alguns altres resultats d'escaneig
Alguns altres resultats d'escaneig
Alguns altres resultats d'escaneig
Alguns altres resultats d'escaneig
Alguns altres resultats d'escaneig
Alguns altres resultats d'escaneig
Alguns altres resultats d'escaneig
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

GUI de l’escàner 3D
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: