Desarrollo de un sistema de visión de bajo costo para reconstrucción 3d de objetos by Jaime Pérez Álvarez
El presente artículo completo lo puedes encontrar en el siguiente link: Desarrollo de un sistema de visión de bajo costo para reconstrucción 3d de objetos
Algunos de los materiales que utilizarán los puedes encontrar en nuestra tiena online Ferrustronix:
RESUMEN
El proyecto tratará sobre el diseño de un sistema de visión con el cual se captarán imágenes de un objeto y se procesarán para la reconstrucción del mismo en 3D. Para ello se tomarán dos planos perpendiculares entre si que contengan la pieza a reconstruir para tomar las imágenes, con las cuales se reconstruirá posteriormente el objeto.
Se espera aplicar dicho proceso para la detección de errores en piezas imprimidas mediante técnicas de adición de plástico (ABS/PLA) o comúnmente llamada impresión 3D. Los errores a detectar son los más frecuentes que suelen aparecer en la técnica citada anteriormente, que son el despegue entre las capas de material y la deformación del contorno de la pieza.
La detección de errores se realizará mediante la detección de bordes tanto exteriores de la pieza, para detectar la deformación de la misma, como interiores, para detectar el despegue entre capas. Aplicándose tanto en las imágenes en 2D como en la pieza final reconstruida.
Para ello se utilizará un sistema con dos cámaras, una para el plano que contiene el contorno de la pieza o plano superior y otra para el plano que contiene el perfil de las capas de material o plano frontal, las cuales habrá que calibrar para poder realizar mediciones exactas en las imágenes.
Una vez obtenidas las mediciones, para el plano superior compararemos el contorno real de la pieza con las coordenadas del contorno que nos da el software de la impresora. Para el plano frontal compararemos, del mismo modo, la coordenada exacta de la capa superior y si existen bordes dentro de la pieza (que indicará que las capas inferiores se han despegado).
Una vez comprobada la detección de errores en cada plano, procederemos, como ya se ha hablado, a reconstruir la pieza mediante OpenCV y, posteriormente, se aplicarán las mismas técnicas de detección de errores en la pieza reconstruida.
Se necesitará, asimismo, una correcta iluminación de la pieza, por lo que se colocarán dos focos halógenos, jugando con su posición e inclinación para obtener una luz adecuada y se procederá a aislar (en la medida de lo posible) el sistema del exterior para que la luz ambiental no influya en las imágenes.
Por último, debido a que se busca un sistema de bajo coste y alta resolución, se analizará la relación resolución/coste del sistema y se comparará con el mismo parámetro de un sistema de visión 3D conocido como es la cámara Kinect v2 desarrollada por la compañía Microsoft. En esta comparación se intentará obtener un sistema de visión con una resolución similar o superiór a la de la Kinect y con un coste significativamente inferior a la misma.
El principal objetivo de este proyecto es aplicar el proceso de reconstrucción 3D de un objeto para la detección de errores en piezas imprimidas mediante la técnica de adición de plástico (ABS/PLA) o comúnmente llamada impresión 3D. Los errores a detectar son los más frecuentes que suelen aparecer en la técnica citada anteriormente, que son el despegue entre las capas de material y la deformación de la geometría exterior de la pieza.
Es posible que no sea factible arreglar todos los errores que se puedan detectar en una pieza imprimida en 3D, pero dado el alto grado de automatización del proceso es de gran importancia el hecho de poder detectar cuándo se produce un error y dónde está dicho error en la pieza para poder evaluar si puede ser reparado, si debido a su magnitud puede ser ignorado sin afectar a la calidad final de la pieza o si, por el contrario, el error es de tal elevada magnitud que se debe desechar la pieza. La evaluación de los errores detectados quedaría fuera del presente proyecto debido, principalmente, al tiempo que esto acarrearía, aunque podría resultar de gran interés para el desarrollo de la tecnología de impresión 3D a fin de poder obtener un mayor grado de automatización en la misma.
El proyecto tratará sobre el diseño de un sistema de visión con el cual se captarán imágenes de un objeto desde diferentes planos. Se tomarán dos planos perpendiculares entre si que contengan la pieza a reconstruir para tomar las imágenes, con ello se pretende tener información de cada punto perteneciente al objeto. Después de su captura, lasimágenes serán almacenadas y procesadas de forma que se pueda obtener la reconstrucción parcial del objeto en 3D.
Elección del sistema de adquisición de imágenes
Para la adquisición de las imágenes se plantearon varias alternativas:
- Webcams
- Módulos de cámara para Raspberry Pi
Las Webcams cuentan con una conexión muy sencilla mediante puerto USB, no requieren de instalación previa salvo los Drivers que se instalan, generalmente, de forma automática una vez se conecta el dispositivo, por tanto solo se debe tener en cuenta la resolución/precio que ofrecen, dado que los módulos de cámara para Raspberry Pi cuentan con una resolución máxima de 5 Megapíxeles se buscarán Webcams de la misma resolución para poder hacer una comparativa equánime.
Después de consultar diferentes fuentes se determina que el valor medio de una Webcam de 5 Megapíxeles es de 42,1 euros, por tanto el coste total del sistema de visión sería de 84.2 euros, ya que se necesitan dos cámaras. Este sistema cuenta con la desventaja de ser totalmente dependiente de un ordenador tanto para la adquisición como para el posterior tratamiento de las imágenes, el cuál podría incrementar significativamente el coste del sistema.
Por otro lado, los módulos de cámara para Raspberry Pi se conectan mediante un bus a la conexión habilitada para ello en la Raspberry Pi, no necesitan de instalación previa más que la habilitación del puerto una vez se ha inicializado el sistema operativo por primera vez.
Por tanto, para este sistema, sería necesario un módulo de cámara por cada plano, una Raspberry Pi modelo 2 (ya que cuesta lo mismo que el modelo anterior y ofrece mayores prestaciones) y un multiplexor para conmutar la adquisición de las imágenes entre los dos módulos. El coste de los módulos de cámara es de 25 euros por cada uno, la Raspberry Pi 2 tiene un coste de 52 euros (incluyendo tarjeta SD) y el del multiplexor es de 76 euros, con un total de 178 euros.
La ventaja que plantea este sistema frente al anterior expuesto es la total dependencia del mismo, ya que la misma Raspberry Pi 2 tiene la capacidad para adquirir y procesar las imágenes sin necesidad de procesamiento externo.
Una vez planteadas las dos opciones se opta por realizar el sistema de visión mediante módulos de cámara para Raspberry Pi, ya que aunque con la misma resolución el coste del sistema es, a priori, superior al formado por las Webcams, la flexibilidad que ofrece trabajar con el sistema operativo Raspbian proporciona una mayor libertad para el proyectista, además del mayor aprendizaje y aplicación de conocimientos que supone la puesta en marcha desde cero de la Raspberry Pi.
Preparación de la Raspberry Pi y librerías a usar
Para la realización de este proyecto se ha sopesado usar la placa Raspberry Pi 2 B o la anterior versión de la misma, la Raspberry Pi B+ .El nuevo modelo ofrece todas las características del anterior con una mejora de la memoria del doble de capacidad (la versión 2 B tiene 1 Gigabyte, frente a los 512 Megabytes de la B+) y consta también de la mejora de poseer 4 núcleos de procesador en el caso de la 2 B, en lugar de 1 núcleo que posee la B+.
Todas estas mejoras son incrementadas en rendimiento económico, ya que los dos modelos cuestan lo mismo, aproximadamente 36 euros. Es por estas razones que se ha optado por usar la versión Raspberry Pi 2 B.
Una vez elegida la placa, se procede a elegir las librerías a usar para la realización del presente trabajo. Para ello se necesitará:
- Librería de tratamiento de imagen
- Librería para trabajar con vectores y matrices
- Librería para la inicialización de los pines de E/S de la placa
Para la librería de inicialización de los pines de E/S de la placa se va a utilizar la librería “RPIO.rpi”, ya que está hecha específicamente para trabajar con Raspberry Pi.
La librería a utilizar para vectores y matrices será la librería “numpy”, ya que permite crear vectores y matrices de cualquier forma y tamaño de una manera muy sencilla e intuitiva, a parte de poseer funciones que podrían ser de gran ayuda para operar con matrices y vectores en el caso de ser necesarias.
Por último, la librería para el procesamiento de las imágenes será la librería “OpenCV”, exactamente la versión 3.0.0 de la misma, ya que cuenta con múltiples herramientas que serán de gran ayuda para la realización de éste proyecto, además de disponer de una amplia documentación, tutoriales y círculos de trabajo dónde encontrar ayuda si fuera menester.
Además, dicha librería tiene una licencia de uso BSD, que otorga amplios permisos al usuario para su uso.
BIBLIOGRAFÍA
PÉREZ ÁLVAREZ, J. A. I. M. E. (2015). Desarrollo de un sistema de visión de bajo coste para reconstrucción 3D de objetos (Doctoral dissertation).



Comentarios recientes