NOVIEMBRE
PROTOTIPOS
MEMORIA DESCRIPTIVA DE LAS TÉCNICAS UTILIZADAS DE INGENIERÍA INVERSA
DAVID ESPINOZA M.
MÁSTER DISEÑO Y FABRICACIÓN INTEGRADA ASISTIDOS POR COMPUTADOR
2017
PROTOTIPOS
MEMORIA DESCRIPTIVA TÉCNICAS DE INGENIER
En el siguiente documento detallaré los distintos pasos y primeras experiencias derivadas
de
mi
primer
modelo
escaneado 3D por medio de Fotos
INTRODUCCIÓN
/ imágenes ya sea con una cámara normal o la Kinect. A su vez agregare notas de interés y consejos que quizás puedan servir a futuros interesados en desarrollar modelos con esta tecnología.
UPV / ETSID
Por: David Espinoza Martinez
A DE LAS S UTILIZADAS RÍA INVERSA
Memoria descriptiva de las técnicas utilizadas de ingeniería inversa.
Tecnologías y recursos utilizados. Kinect
(Microsoft Xbox 360) Lanzado en noviembre del 2011, este Sensor diseñado originalmente para controlar videojuegos, proyecta un mapa de puntos de luz Infra Rojos en un área frente a él, la cual es analizada por la Cámara de profundidad y genera un Mapa en 3d de todo lo que ve además es apoyada por una cámara web normal que le ayuda a captar el detalle de los objetos posicionados frente a ella. Debido a que la malla proyectada es básicamente ases de luz, la capacidad de captura se ve afectada directamente por lugares muy iluminados o superficies muy brillantes, generando errores de lectura. Debido a su gran potencial, distintos profesionales desde desarrolladores a artistas visuales comenzaron a usarla en distintas áreas de aplicación aprovechando estas características para hacer desde escaneo de objetos para impresión o modelado para FX como para instalaciones de arte interactivo.
Skanect Este software utiliza la información captada a tiempo real de distintos dispositivos además de la Kinect, el software conectado a la cámara analiza los datos recibidos tanto desde la cámara de profundidad como los de la cámara web estos son analizados para después ser traducidos en una malla 3d además de una Textura la cual colorizará nuestro modelo capturado, este podrá ser exportado en diferentes formatos para ser post-procesado ya sea para uso digital o impresión. Este consta de una versión gratis con ciertas limitaciones como 5000 polígonos por escaneo, pero no son de gran incidencia para un uso doméstico. Su versión completa rodea los $125 usd. http://skanect.occipital.com/
4
Máster Diseño y Fabricación Integrada Asistidos por Computador
Camara Nikon 5300 + Kit Lens 18-55
Camera DSLR de Sensor Dx y 24mpx, siendo esta una cámara de entrada en el ámbito de la fotografía se escogió debido a la posibilidad de capturar imágenes con mejor definición así potenciar la obtención de un modelo más detallado por medio las imágenes obtenidas, esto debido a que las primeras imágenes fueron realizadas con un móvil de 13mpx dando resultados (mayormente en el mapeado de texturas) algo deficientes.
Autodesk Remake
(Actualmente Recap Photo)
Herramienta creada por Autodesk, que por medio de un algoritmo calcula diferentes puntos en el espacio que traza sobre un conjunto de imágenes capturadas alrededor o interior de un objeto o espacio, estas imágenes pueden ser capturadas con una cámara común y corriente teniendo en cuenta ciertos aspectos restrictivos al momento de generarlas al igual que con la Kinect, de los cuales dependerán la calidad del modelo final obtenido. El programa con esta información genera: nubes de punto, malla poligonal y ortho Tif.
Estos pueden ser exportados a distintos Softwares compatibles tanto con Autodesk como con de otras compañías, estos van desde softwares de impresión, modelación arquitectónicos, mecánicos y Animación entre otros. Debido a que actualmente Remake está bajo una renovación total de su entorno, pasando a ser Autodesk Recap, el cual tuvo una preetapa online (gratuita) en el Recap360 el cual actualmente está fuera de servicio (este será citado en el siguiente documento) y desde el 1 de diciembre del 2017 pasará a ser solo Recap Photo. https://remake.autodesk.com/
5
Memoria descriptiva de las técnicas utilizadas de ingeniería inversa.
Photoscan Pro Al igual que Recap este software de fotogrametría permite transformar un conjunto de fotografías en nube de puntos o malla en 3d, siendo capaz de subdividir en grupos y editar dichas mallas para luego ser utilizadas en software de modelado o impresión. Este software es pagado, pero tiene licencia de prueba por 30 días gratis. http://www.agisoft.com/
Meshlab Es según dicen, la aplicación más popular dentro de las open source para editar y procesar mallas triangulares en 3d. Esta comprende una serie de herramientas para edición, limpieza, reparación, inspección, renderizado, texturizado y conversión de mallas. También incorpora algunas prestaciones para la preparación de modelos 3d para impresión. http://www.meshlab.net/
CloudCompare Es un software de procesado de nube de puntos 3d (y malla triangular), fue diseñado para hacer comparaciones entre 2 mallas densas de puntos 3d (como las capturadas con un escáner laser) o entre una malla triangular, se basa en estructura Octree específicamente dedicada a esta tarea. A lo largo de su desarrollo se han extendido las capacidades de este software incluyendo algoritmos avanzados (registro, resampleado, color/alineación/escala, estadísticas etc. http://www.cloudcompare.org/
6
Máster Diseño y Fabricación Integrada Asistidos por Computador
Blender Este sin lugar a duda, es el software open source de creación 3d más popular, con este podremos generar todo tipo de modelos, rigging, animación, simulación, rendering y motion tracking. En este documento lo utilizaremos para la postproducción del mapa de textura. https://www.blender.org
7
Memoria descriptiva de las técnicas utilizadas de ingeniería inversa.
CAPTURA DE MODELO EN KINECT CAPTURA CON KINECT+ SKANECT
(Fig.1)
Debido a que no cuento con el dispositivo necesario solo me referiré a grandes rasgos a la obtención del modelo en 3d que hicimos en Clases, este modelo será el que final del documento, compararemos con el obtenido por medio de Photoscan+imágenes.
Kinect+Skanect
Camara DSLR+Photoscan
Con la Kinect conectada al ordenador y todo previamente configurado, Seleccionamos el tipo de objeto que vamos a capturar. Ponemos la cámara fija apuntando a la silla que usaremos como soporte para poder girar en un eje fijo, aseguramos por medio de la vista de previsualización que el modelo a capturar está dentro del Área de captura (Fig. 1).
8
Máster Diseño y Fabricación Integrada Asistidos por Computador
Apretamos en capturar y mientras el programa captura cuadro por cuadro lo que está frente a él, nosotros (objeto) giramos en menos de 360º para evitar que capture 2 veces el mismo punto, ya que como no somos una figura estática, generamos variaciones/errores en el modelo a capturar, especialmente en la Textura de color que se genera a través de las imágenes capturadas por la cámara web del dispositivo.
Consideraciones al momento de la captura • Exceso de Iluminación: Como mencione en la descripción de la Kinect esta funciona con unos puntos IR los cuales con mucha luz son invisibles para la cámara de profundidad generando así vacíos o lecturas erróneas. Por otra parte, una luz direccionada con mucha intensidad desde un costado del objeto generará sombras las cuales el software tratará de igualar y no podrá debido a que como estamos girando esa sombra siempre será distinta en cada fotograma. Por esto es bueno utilizar varios focos de luz suave, ojalá con algún tipo de reflector que pueda difuminarla. • Evitar superficies brillantes: La luz IR pierde nitidez al momento de proyectarse sobre superficies muy brillantes, por lo que hace casi imposible capturar exitosamente objetos brillantes, para esto podemos utilizar un spray Matte especializado para este tipo de trabajos (PVP 30€) o algún tipo de talco para bebes con una brocha de maquillaje.
• Velocidad de Giro: intentar girar a una velocidad baja y constante, preferiblemente que alguien asista este movimiento para evitar variaciones en el sujeto de captura, que se traducen en errores de alineación de la nube/malla capturada.
• Mantener postura: Este es el más importante de todos, mientras estamos escaneando debemos intentar mantener la postura inicial o el resultado no será el esperado y habrá que comenzar nuevamente. Procesado de la captura en Skanect Con la captura ya terminada, debemos rellenar vacíos en el modelo y generar la malla de color. Luego podemos simplificar la calidad de la captura dependiendo el uso que le vayamos a dar. Una vez listo vamos a exportar nuestro modelo el cual guardaremos en formato OBJ el cual nos servirá para utilizador en otros programas como los ya mencionados en este documento.
9
Memoria descriptiva de las técnicas utilizadas de ingeniería inversa.
CAPTURA DE MODELO POR FOTOGRAMETRÍA NUBE PUNTOS GENERADA POR ALINEACIÓN IMÁGENES
El proceso de obtención de imágenes para importar a un software de fotogrametría es muy similar al descrito en el proceso anterior. En este también se deben obtener la mayor cantidad de información de todo alrededor de lo que se va a capturar.
Se deben tomar fotos desde la mayor cantidad de ángulos posibles girando alrededor del sujeto. Lo ideal sería desde arriba, medio y bajo. Con esto se puede llegar a una cantidad de 50 fotos por cada giro alrededor del sujeto. Al igual que en la técnica anterior se deben evitar luminosidad extrema y superficies brillantes (lejos la más importante).
Primer intento Hicimos alrededor de 60 fotos con un celular de 13mpx girando alrededor del objeto en un lugar con demasiada luz donde mi pelo genero reflejos y el programa genero mallas erróneas las cuales eran difíciles de corregir, además me capture con lentes por lo cual su material altamente brillante no fue procesado y genero puntas alrededor de mis ojos, debiendo repetir la captura.
10
Máster Diseño y Fabricación Integrada Asistidos por Computador
Autodesk Recap Online El primer set de imágenes se cargó al programa, como ya mencione, genero varias formas erróneas, pensando que era problema del fondo limpie las 50 fotos con Photoshop, dejando solo mi contorno en la imagen, pero el software genero exactamente la misma malla, por lo que volví a capturar las imágenes con luz artificial las cuales generaron un error muy parecido, debido a que ni la plataforma web ni la versión de escritorio me dejaba editar o modificar debido a que bloquearon la pagina debido a su pronta actualización, decidí buscar un software alternativo.
Aegis Photoscan Pro Después de buscar y mirar tutoriales en la Web, me decidí por probar el Photoscan Pro, básicamente debido a la posibilidad de precargar una imagen del fondo donde se sacaron las imágenes o también poder seleccionar/generar una máscara del objeto capturado, mejorando la obtención del modelo, además de funcionar extremadamente rápido en comparación con el Recap, ya que este genera una pre-nube de puntos más fina la cual sirve para decidir que mejorar. Segundo Intento Para probar el programa, me dispuse a capturar un objeto casero, un modelo de una calavera el cual es completamente opaco con gran cantidad de detalle el cual podía manipular fácilmente sobre una mesa. Con la cámara sobre un trípode comencé a obtener foto a foto girando el objeto, una vez cargadas las fotos en el software se le adjunta el fondo, para que este puede diferenciar entre entorno y modelo. Una de las principales ventajas que me atrajo de PhotoScan fue la posibilidad de alinear y generar nubes de punto por lotes, así podemos verificar que es lo que el programa ve en cada lote por giro alrededor del sujeto para luego combinarlos y obtener resultados deseados. Omitirré el proceso del primer escaneo solo enseñare los resultados, debido a este rápido ejercicio de la calavera y los excelentes resultados que pueden verificar en la imagen adjunta me decidí a tomar las fotos nuevamente. Tomé fotos en con luz natural y sin proyección excesiva de sombras. Tome 2 sets de giro, uno superior y otro medio. Una vez en el programa importamos el primer set de imágenes (giro superior), seguido vamos a Workflow y seleccionamos Alinear, con esto el software identifica desde donde se tomaron las fotos posicionándolas en dirección de donde fueron tomadas en relación del sujeto. Esta operación genera automáticamente una nube de puntos básica la cual nos permite seleccionar y borrar áreas no deseadas dentro del modelo para evitar sobre cargas al momento de crear nuestra nube de puntos definitiva.
11
Memoria descriptiva de las técnicas utilizadas de ingeniería inversa.
Una vez limpia nuestra primera nube hacemos la importación del segundo Lote de imágenes (Giro medio) y hacemos lo mismo del proceso anterior. Ya con estas dos nubes de punto más o menos limpias y satisfechos con lo que vemos, vamos a unir estas dos para generar la alineación final para generar nuestro modelo.
Con todo alineado y correcto vamos a generar nuestra malla final la cual podemos optar entre 10.000 a 90.000 caras o también personalizado. Con 30.000 es suficiente para nuestro objetivo. También tenemos la opción de editar los puntos o la malla según nuestros resultados, para hacerla más fina o mejorar la alineación entre ellos, así obtendremos una malla mucho más suave y sin tantas imperfecciones, a su vez podemos cerrar vacíos que hayan quedado o solidificar el modelo. Con el modelo generado lo revisamos y miramos con detalle para luego agregar un mapa de imagen el cual coloreara la superficie con las fotos tomadas, ahora con todo listo exportamos nuestro modelo al mismo formato que tenemos el de Kinect .OBJ el cual utilizaremos en Cloudcompare.
Consejos útiles • Siempre preferir girar alrededor del sujeto, así se tendrá mejores resultados. • Capturar todas las imágenes de un giro a la vez cuidando mantener la distancia de enfoque y altura en la cual está posicionada la cámara, esto le hará mas fácil la identificación del Angulo de captura al programa. • Evitar lugares luminosos o muy oscuros, ojalá hacerlo en un día nublado al aire libre, ese es el mejor tipo de iluminación natural que podrías lograr sin tener un equipo profesional. • Capturar fotos de detalles en lugares de interés o de difícil acceso, como las orejas, parte inferior del mentón o superior de la cabeza. El programa es suficientemente capaz de conectar estas imágenes con el resto sin generar errores en la nube de puntos. • Opacar objetos brillantes o dar referencias a objetos muy lisos, al aplicar polvo o spray mate al objeto puedes usar un poco de tempera negra y salpicar levemente el contorno de la superficie o puntos adhesivos, esto ayudara al programa a cuadrar las imágenes y obtendrás resultados mucho mejores con objetos de color solido. 12
Máster Diseño y Fabricación Integrada Asistidos por Computador
Meshlab
Debido a que la mayoría de las modificaciones y arreglos los realice directo en el Photoscan, pero lo utilice para limpiar y simplificar el mallado del OBJ obtenido con Skanect. Siendo un programa sumamente útil (por ser gratuito) para el post procesado de mallas, nos permite (como hemos revisado en clases) resamplear o simplificar mallas que quizás nos sean muy pesadas o muy detalladas generando imperfecciones sobre las superficies, bajando la cantidad de vértices, suavizando y normalizando la posición de la malla.
Simplificación de Malla
más rápido yendo desde la cifra base que en mi caso es 30 y Ya con el modelo agregándole decimales hasta más normalizado buscamos Simplification Quadratic Edge Collapse Decimation la que nos solicitará la cantidad de caras que tendrá el modelo después de procesado, la operación nos entrega por defecto la mitad de las caras que tenemos actualmente que aparecen en el borde inferior de la ventana tener el resultado esperado (en principal. mi caso 300).
Limpieza de Malla Importamos el modelo y lo primero que debemos hacer es Seleccionar y eliminar Non Manifold Edges y Vertices que de no realizarlo nos acusara que existen estas entidades y no podrá realizar los demás pasos. En mi caso 40.000 para que se correspondiera con la resolución (+/-) de mi modelo obtenido en Photoscan.
Luego con el icono de seleccionar caras vamos a quitar el exceso de información en la base del modelo, lo tratamos de alinear para hacer una selección lo mas horizontal posible y seleccionamos borrar puntos y caras. Haremos esto primero debido así facilitamos la simplificación de la malla al ordenador. Llenado de Vacíos Con todo listo ya solo nos queda rellenar los vacíos que quedan en la malla con la opción Close Holes, esta funciona tanto con un área seleccionada como con todo el modelo, yo prefiero hacerlo con todo el modelo. Al ejecutar la operación no pedirá un tamaño de lo que vamos a cerrar, esto lo podemos saber midiendo el modelo, pero es
Con todo listo exportamos a OBJ que es el formato original del archivo se recomienda siempre si se trabaja en un formato mantener este siempre independiente si se generar copias del mismo así aseguramos que mantenga los mismos parámetros de información del modelo anterior, como sus texturas, por ejemplo. Aquí también se pueden unir dos mallas complementarias para luego generar un conjunto nuevo normalizado. Una de las ventajas que son más cosméticas de este software es la capacidad de poder retocar el mapa de textura del modelo, mejorando ciertos rellenos de color que no corresponden a los contiguos a esa zona, como por ejemplo el pelo y la base, podemos pintar fácilmente usando la herramienta Zpainting, pero por alguna razón (no encontraba la ruta o nexo a el mapa de textura del archivo) que no logre solucionar antes de escribir este informe decidí usar el Blender que se explica al final de este informe. 13
Memoria descriptiva de las técnicas utilizadas de ingeniería inversa.
CloudCompare (CC)
Con los dos archivos OBJ listos los importamos a CC, es probable que las escalas sean distintas y que hay diferencias en las densidades de los puntos, para solucionar primero la densidad de malla, hacemos el proceso anterior en Meshlab. Segundo paso Alinear y escalar los modelos, seleccionamos ambos modelos y vamos al icono de alinear donde nos pedirá seleccionar al menos 3 pares puntos para lograr la alineación y le indicamos que a su vez queremos iguala su escala.
Seleccione 7 puntos para poder tener la mayor cantidad de referencias en torno a el área de la cara. Priorizando partes clave como la nariz, comienzo de los lóbulos de las orejas y mentón.
14
Verificamos la escala de los modelos y seleccionamos ambas nubes de puntos para verificar las diferencias entre ambos modelos.
Con ambas nubes seleccionadas vamos al icono de análisis de puntos. Le damos el rango de análisis entre puntos. Nos entrega dos nubes coloreadas de cada selección, indicando la diferencia en colores refiriéndose según la tolerancia predefinida si es mayor o menos a su contra parte.
Dentro de cada nube podemos ajustar el tipo de esquema de color, niveles de muestreo de color y densidad de los puntos, si aumentamos esta ultima podemos apreciar con mayor detalle las áreas que presentan diferencias más notorias.
Activando el Color Scale nos indicara en la barra lateral las diferencias que nos indican cada color.
De la comparación de ambas capturas podemos concluir que son extremadamente similares en su mayor parte en el área de la cara, debido a la cantidad de puntos seleccionados para su alineación, de igual manera las variaciones de postura entre ellas, también se aprecian algunas diferencias notorias en la parte baja de los hombros y claramente en el cabello.
Máster Diseño y Fabricación Integrada Asistidos por Computador
Blender Debido al problema de mapeo que tuve con el archivo decidí probar con otro que tampoco manejaba, el ya mencionado Blender, a pesar de no tener experiencia con este software me fue muy fácil encontrar la herramienta de pintado sobre mapa, con la cual retoqué ciertos huecos dejados en el mapa de textura para mejorar la apariencia final del modelo. Modelo 3d importado desde PhotoScan
Mapa Original
Mapa Modificado
Modelo Final
15
Memoria descriptiva de las técnicas utilizadas de ingeniería inversa.
CONCLUSIÓN Sin duda las distintas herramientas aprendidas dan una variedad de usos relacionados con la recreación y comprobación de geometrías a través de la fotogrametría o comparación de modelos fabricados con sus contrapartes CAD a una escala quizás baja pero deja el punto de partida a la investigación y practica de estos recursos para con proyectos futuros, personalmente me interesaría seguir hondando un poco más en estos recursos ya que en trabajos anteriores podrían haber sido de ayuda en ciertas situaciones de levantamiento y referenciado de áreas pudiendo acelerar cierta obtención de información para intervención de equipos de geometrías complejas.
16
DOCUMENTO REALIZADO POR DAVID ESPINOZA M. PARA PROTOTIPOS 2017 MÁSTER DISEÑO Y FABRICACIÓN INTEGRADA ASISTIDOS POR COMPUTADOR PROFESOR SANTIAGO FERRÁNDIZ.