Tabla de contenido:

Escáner 3D de bricolaje basado en luz estructurada y visión estéreo en lenguaje Python: 6 pasos (con imágenes)
Escáner 3D de bricolaje basado en luz estructurada y visión estéreo en lenguaje Python: 6 pasos (con imágenes)

Video: Escáner 3D de bricolaje basado en luz estructurada y visión estéreo en lenguaje Python: 6 pasos (con imágenes)

Video: Escáner 3D de bricolaje basado en luz estructurada y visión estéreo en lenguaje Python: 6 pasos (con imágenes)
Video: SLS Structured Light System Escaner 3d Luz Estructurada 2024, Mes de julio
Anonim
Escáner 3D de bricolaje basado en luz estructurada y visión estéreo en lenguaje Python
Escáner 3D de bricolaje basado en luz estructurada y visión estéreo en lenguaje Python
Escáner 3D de bricolaje basado en luz estructurada y visión estéreo en lenguaje Python
Escáner 3D de bricolaje basado en luz estructurada y visión estéreo en lenguaje Python

Este escáner 3D se fabricó con elementos convencionales de bajo costo como un proyector de video y cámaras web. Un escáner 3D de luz estructurada es un dispositivo de escaneo 3D para medir la forma tridimensional de un objeto utilizando patrones de luz proyectada y un sistema de cámara. El software se desarrolló en base a luz estructurada y visión estéreo con lenguaje Python.

Proyectar una banda estrecha de luz sobre una superficie de forma tridimensional produce una línea de iluminación que parece distorsionada desde otras perspectivas distintas a la del proyector, y puede usarse para una reconstrucción geométrica exacta de la forma de la superficie. Las bandas de luz horizontales y verticales se proyectan sobre la superficie del objeto y luego se capturan mediante dos cámaras web.

Paso 1: Introducción

Introducción
Introducción
Introducción
Introducción

Los dispositivos de adquisición 3D automáticos (a menudo llamados escáneres 3D) permiten construir modelos altamente precisos de objetos 3D reales de una manera rentable y rentable. Hemos experimentado esta tecnología al escanear un juguete para demostrar su rendimiento. Las necesidades específicas son: precisión media-alta, facilidad de uso, costo asequible del dispositivo de escaneo, adquisición auto-registrada de datos de forma y color y, finalmente, seguridad operativa tanto para el operador como para los objetos escaneados. De acuerdo con estos requisitos, diseñamos un escáner 3D de bajo costo basado en luz estructurada que adopta un enfoque de patrón de rayas de colores versátil. Presentamos la arquitectura del escáner, las tecnologías de software adoptadas y los primeros resultados de su uso en un proyecto de adquisición 3D de un juguete.

En el diseño de nuestro escáner de bajo costo, optamos por implementar la unidad emisora mediante el uso de un proyector de video. El motivo fue la flexibilidad de este dispositivo (que permite experimentar cualquier tipo de patrón de luz) y su amplia disponibilidad. El sensor puede ser un dispositivo personalizado, una cámara fotográfica digital estándar o una cámara web. debe admitir captura de color de alta calidad (es decir, adquisición de alto rango dinámico) y posiblemente con alta resolución.

Paso 2: software

Software
Software

El lenguaje Python se usó para la programación por tres razones, una es fácil de aprender e implementar, dos podemos usar OPENCV para rutinas relacionadas con imágenes y tres es portátil entre diferentes sistemas operativos para que pueda usar este programa en Windows, MAC y Linux. También puede configurar el software para utilizarlo con cualquier tipo de cámara (webcams, SLR o cámaras industriales) o proyector con resolución nativa de 1024X768. Es mejor usar cámaras con más de dos veces la resolución. Personalmente probé el rendimiento en tres configuraciones diferentes, la primera fue con dos cámaras web de cine de Microsoft paralelas y un pequeño proyector portátil, la segunda fue con dos cámaras web de cine lifecam que giraban 15 grados una hacia la otra y el proyector Infocus, la última configuración fue con cámaras web logitech y proyector Infocus. Para capturar la nube de puntos de la superficie del objeto, debemos seguir cinco pasos:

1. Proyección de patrones grises y captura de imágenes de dos cámaras "SL3DS1.projcapt.py"

2. Procesamiento de las 42 imágenes de cada cámara y códigos de puntos de captura "SL3DS2.procimages.py"

2. Ajuste del umbral para seleccionar el enmascaramiento de las áreas que se van a procesar "SL3DS3.adjustthresh.py"

4. Busque y guarde puntos similares en cada cámara "SL3DS4.calcpxpy.py"

5 Calcule las coordenadas X, Y y Z de la nube de puntos "SL3DS5.calcxyz.py"

La salida es un archivo PLY con información de coordenadas y color de puntos en la superficie del objeto. Puede abrir archivos PLY con software CAD como los productos de Autodesk o un software de código abierto como Meshlab.

www.autodesk.com/products/personal-design-a…

Se deben instalar Python 2.7, el módulo OPENCV y NUMPY para ejecutar estos programas de Python. También he desarrollado una GUI para este software en TKINTER que puede encontrar en el paso seis con dos conjuntos de datos de muestra. Puede encontrar información adicional sobre este tema en los siguientes sitios 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…

Paso 3: configuración del hardware

configuración de hardware
configuración de hardware
configuración de hardware
configuración de hardware
configuración de hardware
configuración de hardware
configuración de hardware
configuración de hardware

El hardware consta de:

1. Dos cámaras web (Logitech C920C)

2. Proyector Infocus LP330

3. Soporte para cámara y proyector (hecho de placas acrílicas de 3 mm y madera HDF de 6 mm cortada con un cortador láser)

Dos cámaras y un proyector deben estar conectados a una computadora con dos salidas de video, como una computadora portátil, y la pantalla del proyector debe configurarse como una extensión del escritorio principal de Windows. Aquí puede ver imágenes de cámaras, proyector y soporte. El archivo de dibujo listo para cortar se adjunta en formato SVG.

El proyector es un Infocus LP330 (resolución nativa 1024X768) con las siguientes especificaciones: Brillo: 650 lúmenes Emisión de luz en color: ** Contraste (encendido / apagado total): 400: 1 Iris automático: No Resolución nativa: 1024x768 Relación de aspecto: 4: 3 (XGA) Modos de video: ** Modos de datos: MAX 1024x768 Potencia máxima: 200 Watts Voltaje: 100V - 240V Tamaño (cm) (HxWxD): 6 x 22 x 25 Peso: 2,2 kg Vida útil de la lámpara (potencia máxima): 1000 horas Tipo de lámpara: UHPL Vataje de amplificador: 120 Watts Cantidad de lámpara: 1 Tipo de pantalla: 2 cm DLP (1) Lente de zoom estándar: 1.25: 1 Enfoque: Distancia de proyección manual (m): 1.5 - 30.5 Tamaño de imagen (cm): 76 - 1971

Este video proyector se utiliza para proyectar patrones de luz estructurados sobre el objeto a escanear. El patrón estructurado consta de franjas de luz blanca verticales y horizontales que se guardan en un archivo de datos y las cámaras web capturan esas franjas distorsionadas.

Utilice preferiblemente aquellas cámaras que sean controlables por software porque necesita ajustar el enfoque, el brillo, la resolución y la calidad de la imagen. Es posible utilizar cámaras DSLR con SDK proporcionados por cada marca.

El montaje y las pruebas se realizaron en Copenhagen Fablab con su apoyo.

Paso 4: Experimentar con Scanner

Experimentar con el escáner
Experimentar con el escáner
Experimentar con el escáner
Experimentar con el escáner
Experimentar con el escáner
Experimentar con el escáner

Para probar el sistema se utilizó un pez de juguete y se puede ver la imagen capturada. Todo el archivo capturado y también la nube de puntos de salida se incluyen en el archivo adjunto, puede abrir el archivo de nube de puntos PLY con Meshlab:

meshlab.sourceforge.net/

Paso 5: Otros resultados de escaneo

Algunos otros resultados de escaneo
Algunos otros resultados de escaneo
Algunos otros resultados de escaneo
Algunos otros resultados de escaneo
Algunos otros resultados de escaneo
Algunos otros resultados de escaneo
Algunos otros resultados de escaneo
Algunos otros resultados de escaneo

Aquí puede ver algunos escaneos de rostros humanos y escaneos en 3D de una pared. Siempre hay algunos puntos atípicos debido a reflejos o resultados de imagen inexactos.

Paso 6: GUI del escáner 3D

GUI del escáner 3D
GUI del escáner 3D

Para probar el software de escaneo 3D en este paso, agrego dos conjuntos de datos, uno es el escaneo de un pez y otro es solo una pared plana para ver la precisión del mismo. Abra archivos ZIP y ejecute SL3DGUI.py. Para la instalación, marque el paso 2. Envíe un mensaje a mi bandeja de entrada aquí para todos los códigos fuente.

Para usar la parte de escaneo 3D, necesita instalar dos cámaras y un proyector, pero para otras partes, simplemente haga clic en el botón. Para probar los datos de muestra, primero haga clic en proceso, luego en el umbral, coincidencia estéreo y finalmente en la nube de puntos. Instale Meshlab para ver la nube de puntos.

meshlab.sourceforge.net/

Recomendado: