Tabla de contenido:
- Paso 1: Introducción
- Paso 2: software
- Paso 3: configuración del hardware
- Paso 4: Experimentar con Scanner
- Paso 5: Otros resultados de escaneo
- Paso 6: GUI del escáner 3D
Video: Escáner 3D de bricolaje basado en luz estructurada y visión estéreo en lenguaje Python: 6 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
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
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
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
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
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
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
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:
Lente macro de bricolaje con AF (diferente a todas las demás lentes macro de bricolaje): 4 pasos (con imágenes)
Lente macro de bricolaje con AF (diferente a todas las demás lentes macro de bricolaje): He visto a muchas personas fabricar lentes macro con un kit de lentes estándar (generalmente un 18-55 mm). La mayoría de ellos son una lente que simplemente se pega en la cámara al revés o se quita el elemento frontal. Hay desventajas para ambas opciones. Para montar la lente
Generador de música basado en el clima (generador Midi basado en ESP8266): 4 pasos (con imágenes)
Generador de música basado en el clima (Generador Midi basado en ESP8266): Hola, hoy explicaré cómo hacer tu propio generador de música basado en el clima. Está basado en un ESP8266, que es como un Arduino, y responde a la temperatura, la lluvia y la intensidad de la luz. No espere que haga canciones completas o programas de acordes
Amplificador estéreo compacto de bricolaje: 11 pasos (con imágenes)
Amplificador estéreo compacto de bricolaje: ¡Oye! todos Mi nombre es Steve Hoy les mostraré cómo hacer un amplificador portátil de 60 vatios de una manera muy simple usando TDA2050 ic es un ic muy popular que puede encontrar en muchos sistemas de cine en casa que puede proporcionar una potencia máxima de 30 vatios a 4
Riego inteligente basado en humedad de bricolaje: 10 pasos (con imágenes)
Riego inteligente basado en humedad de bricolaje: sabemos que las plantas requieren agua como medio de transporte de nutrientes al transportar el azúcar disuelto y otros nutrientes a través de la planta. Sin agua, las plantas se marchitarán. Sin embargo, el riego excesivo llena los poros del suelo, perturbando el
Sable de luz basado en Arduino con efectos de luz y sonido: 14 pasos (con imágenes)
Sable de luz basado en Arduino con efectos de luz y sonido: ¡Hola jedi! ¡Este instructivo trata de hacer un sable de luz, que se ve, suena y funciona como uno en la película! La única diferencia: no puede cortar metal: (este dispositivo está basado en la plataforma Arduino, y le doy muchas características y funciones, es