¿Crear un modelo 3D simplemente tomando muchas fotos de un objeto real? ¡Si! La fotogrametría ha vuelto, y es más fácil de usar, proporciona mejores resultados y es completamente gratis!

Has leído nuestro primer artículo sobre Fotogrametría, ¿Correcto? Una recapitulación rápida – utilizando muchas imágenes tomadas desde todas las direcciones posibles, el software de fotogrametría intenta encontrar las mismas características presentes en varias imágenes. Terminas con una llamada nube de puntos, un montón de puntos 3D que se asemejan al objeto. Para obtener una malla imprimible tenemos que triangular los datos. Esto puede ser complicado porque tenemos que descartar puntos que pertenecen al fondo y a otros objetos de la escena. ¡Limpiamos un poco el modelo, parcheamos todos los agujeros, lo laminamos y estamos listos para imprimir!

Bueno, todo esto suena agradable y simple, pero en realidad, nuestro tutorial original fue bastante complejo. Afortunadamente para nosotros, las cosas han cambiado y un nuevo jugador ha entrado en el anillo de fotogrametría: ¡conoce a Meshroom!

Meshroom/AliceVision

Meshroom es un software gratuito de fotogrametría de código abierto con una hermosa interfaz de usuario. Está construido sobre un marco subyacente llamado AliceVision, que es el resultado de la cooperación entre múltiples universidades y laboratorios (Czech Technical University, IMAGINE, INPT, Simula Research Laboratory, and Quine) y Mikros Image, una empresa de postproducción francesa.

Meshroom UI

La interacción básica es tan simple como parece. Arrastre y suelte imágenes en la ventana Meshroom, presione START y espere el modelo terminado. Sin embargo, con Meshroom también puedes realizar Reconstrucción aumentada. Eso significa que puede agregar más imágenes a una solución a medio terminar en caso de que note (en la vista previa) que algunas áreas podrían usar más detalles.

Y aún mejor, con Meshroom puedes hacer ¡Reconstrucción en vivo! En este modo, toma repetidamente conjuntos de imágenes, las carga en una carpeta y se procesan automáticamente. Se muestra una vista previa y puede decidir qué parte del modelo necesita más detalles. Luego, toma más fotos y todo el proceso se repite hasta que haya capturado el modelo desde todos los ángulos.

Puedes descargar la última versión de Meshroom aquí. Está disponible para Windows y OSX/Linux (pero debe compilarlo para OSX/Linux). Comprueba la wiki or la documentación google doc para instrucciones de instalación. Necesitarás una GPU con CUDA activado, así que solo tarjetas NVIDIA 🙁

Pero antes de jugar con Meshroom, repasemos varios pasos importantes que debes seguir al tomar fotos para la fotogrametría.

Cómo tomar fotos para fotogrametría

Cámera & ajustes

Una cámara de teléfono inteligente funcionará bien, pero si tiene una DSLR, es aún mejor. Si va a utilizar una DSLR, aumente la apertura al menos a 5-6 para que todo el modelo que intenta capturar esté enfocado.

Considere disparar en RAW si su cámara lo admite. Los archivos JPEG suelen estar perfectamente bien, pero el formato de archivo RAW ofrece algunas mejores opciones para ajustar la configuración de la imagen, como el brillo. Si está desarrollando imágenes RAW o editando JPG, asegúrese de no aplicar efectos de corrección de lente o filtros similares.

Tomando las fotos

Deberás capturar al menos 30 imágenes. Durante nuestras pruebas, a menudo disparamos 50, 100 o incluso más fotos para capturar cada detalle. No lleva casi el tiempo que esperabas. Tenga en cuenta que algunas imágenes pueden descartarse si el programa no encuentra suficientes similitudes con otras imágenes o si están borrosas.

  1. Moverse alrededor del objeto de destino en círculos. No mueva el objeto o su entorno entre imágenes.
  2. ¡Superposición! Desea que cada parte del modelo sea capturada por al menos 2 imágenes. Idealmente, tendría una superposición del 60-80% en las imágenes siguientes.
  3. Evitar sombras,use iluminación difusa o tome las fotos afuera en un día semi nublado.
  4. El objeto debe ocupar una parte significativa de cada imagen.
  5. Evite objetos muy brillantes o transparentes..

Estatua de Anontin Dvorak – link del STL

Puedes usar el zoom de la cámara o incluso mezclar imágenes de cámaras totalmente diferentes, Meshroom es realmente genial en este sentido. Sin embargo, no cambie el zoom innecesariamente después de cada imagen solo porque pueda. Es bueno tener muchas imágenes tomadas con la misma cámara y el mismo zoom (distancia focal), ya que esto crea los límites necesarios para el proceso interno de calibración de la cámara, que es lo que queremos.

¿Puedes hacer un video en su lugar? Sí… pero no lo hagas. Aunque, técnicamente, es posible usar video renderizado en imágenes individuales como entrada para Meshroom, pero la calidad es mucho menor en comparación con una imagen fija estándar. Faltarán los metadatos de la cámara (tamaño del sensor, lente) y usted importará cientos de imágenes. Lo que significa que el procesamiento tardará una eternidad en completarse.

¿Qué sucede si toma las imágenes frente a un fondo perfectamente blanco y gira el modelo entre las imágenes? Esto funciona… más o menos. Los resultados serán inferiores. Solo tendremos puntos en el objeto que representan una pequeña subparte de la imagen, por lo que los parámetros de la cámara están menos restringidos, lo que conduce a resultados menos precisos.

Los objetivos ideales para la fotogrametría son elementos texturizados o rugosos (por ejemplo, estatuas). Si es una opción, puede cubrir objetos brillantes o transparentes con polvo (harina/spray de tiza) para evitar reflejos. O cubrir la superficie brillante con una cinta de pintores.

Reconstrucción estándar

Lo más probable es que uses la reconstrucción estándar cuando procese fotos tomadas anteriormente en el exterior y no puede simplemente tomar más. Suponemos que ya tomó todas las fotos requeridas, llegó a casa y ahora desea reconstruir el modelo 3D. El flujo de trabajo es realmente simple.:

  1. Copie todas las imágenes a una carpeta en su disco duro
  2. Arrastra y suelta la carpeta (o las imágenes individuales) a la ventana de Meshroom
  3. Guarda el proyecto usando File – Save to un destino de tu agrado (de lo contrario, la reconstrucción se almacenará en una carpeta temporal)
  4. Presiona Start or botón derecho en Structure from motion (SFM) node y presiona Compute
    • Es mejor calcular el SFM porque verás la vista previa en minutos
  5. Tome un café y espere – esto lleva algo de tiempo 🙂
    • Los nodos en la parte inferior se volverán verdes uno por uno a medida que se completen
    • Puede presionar Stop en cualquier momento y reanudar la reconstrucción más tarde

Tan pronto como el nodo Structure from motion se complete, se le presentará una vista previa (haz doble clic en el nodo para cargar la vista previa si no se carga automáticamente). Todas las imágenes utilizadas con éxito en la reconstrucción tendrán untick verde cerca de ellas.

Las fotos descartadas están marcadas con un signo menos rojo

Si observas que se descartó una cantidad significativa de imágenes y que la vista previa tiene solo unas pocas cámaras, no tiene mucho sentido continuar con la reconstrucción. Tendrás que tomar mejores fotos, aumentar la reconstrucción con más fotos (explicadas en el próximo capítulo), o jugar con los ajustes.

Una vez que finalice la reconstrucción completa, puede hacer doble clic en el nodo Texturing para previsualizar la malla final.

Puede hacer clic con el botón derecho en cualquiera de los nodos completados y seleccionar Open folder. Abre el Texturing o la carpeta MeshFiltering para encontrar el archivo de salida en un formato .obj Wavefront de uso común.

La verdadera estatua de Spinx y una impresión terminada, descarga el modelo here

Aunque el archivo de salida se puede importar directamente a Slic3r PE,Lo más probable es que quieras hacer una limpieza básica del modelo antes de imprimirlo.

¿Está buscando fotos de muestra para poder probar la fotogrametría sin demasiado esfuerzo? Los creadores de 3DF Zephyr, que es otro excelente software de fotogrametría, tienen fotos de muestra en su página web, compruebalo aquí.

Reconstrucción aumentada

Digamos que estás escaneando algo en casa: un lindo dinosaurio de arcilla creado por tu hijo, tu figura de acción favorita o tu guitarra. Hiciste unas 60 fotos y la reconstrucción está yendo bien. A excepción de un área, que no capturaste bien, algunas imágenes se descartaron y a esa parte del modelo ahora le faltan muchos detalles.

¡Con Meshroom, simplemente puede tomar más fotos y agregarlas a la reconstrucción existente!No podemos enfatizar lo suficiente lo útil que es esta función. Nos ahorraste una gran cantidad de tiempo durante nuestras pruebas.

Es esencial que no haya movido el objeto entre las series individuales de imágenes. Si lo ha movido, ya no puede aumentar la reconstrucción.

Cuando necesites tomar fotos para llenar un área mal capturada, le sugerimos que tome de 5 a 10 fotos. Y puede intentar llenar varias áreas a la vez. Las nuevas imágenes coinciden con el conjunto original de fotos. Esto significa que agregar nuevas imágenes puede incluso hacer que las imágenes previamente descartadas coincidan con éxito con la nueva serie.

Cada vez que agregues una serie de imágenes a una reconstrucción existente, aparecerá una nueva rama en el editor de gráficos. Solo necesita calcular todo hasta el nodo StructureFromMotion (haga clic derecho sobre él y selecciona Compute), que suele ser bastante rápido. Tan pronto como se vuelva verde, puede hacer doble clic en el nodo para actualizar la vista previa en la ventana del Visor 3D.

Cuando crea que tiene suficientes imágenes para la reconstrucción final, haga clic con el botón derecho en el nodo inferior derecho (Texturing) y presiona Compute. Esto puede llevar mucho tiempo, por lo que es realmente beneficioso ejecutar solo la reconstrucción completa en la rama final con todas las imágenes incluidas.

Una figura de acción recreada con reconstrucción aumentada

 

Reconstrucción en vivo

¡La forma más divertida de trabajar con fotogrametría! Configura una carpeta, que será monitoreada por Meshroom. Cada vez que copie imágenes en esta carpeta, se procesarán automáticamente y se agregarán a la reconstrucción. Sigue tomando más fotos progresivamente y observe cómo mejora el modelo. Al final, finalmente puede dejar que Meshroom calcule el modelo con textura completa.

La primera serie de imágenes debe incluir al menos 10-20 imágenes y debe centrarse en forma general del objeto. Si captura todo el anverso del objeto y luego todo el reverso, es probable que tenga que crear un puente entre estas series de fotos. Puede hacerlo tomando fotos que pasen de adelante hacia atrás con pequeños incrementos.

Configuración

  1. Seleccione View – Live Reconstruction
  2. Selecciona la Carpeta de imágenes y la cantidad mínima de imágenes que se procesarán durante cada paso (mantenga esto por encima de 4)
  3. Presiona Startel en panel Live Reconstruction
  4. Comienza a copiar imágenes en la carpeta de imágenes

El número mínimo de imágenes está establecido en 4 de forma predeterminada, pero sugerimos tomar aún más fotos en cada serie.

Hay una pequeña captura al final. Para generar el modelo texturizado, deberá volver a vincular el último nodo StructureFromMotion al nodo PrepareDenseScene .

  1. Haga clic derecho en el enlace entre el primer StructureFromMotion y PrepareDenseScene node
  2. Selecciona Remove
  3. Arrastre un nuevo enlace desde la salida de StructureFromMotion a la entrada de PrepareDenseScene
  4. Clic derecho Texturing y selecciona Compute

Hidrante – Reconstrucción en vivo

Preparación de modelos para imprimir – cerrar agujeros & reparación

Casi todas las mallas creadas por escaneo 3D o fotogrametría tienen un agujero en la parte inferior. Afortunadamente para nosotros, necesitamos una base plana que se pueda colocar fácilmente en la cama de impresión de todos modos, por lo que un simple corte en plano en Meshmixer, Blender, 3D Builder (o cualquier otro programa que prefiera) será suficiente.

Además, la escala del modelo será bastante aleatoria, por lo que no se sorprenda cuando el modelo sea realmente pequeño después de la importación. Solo escalalo.

Hay una técnica en particular que hace una combinación perfecta con la fotogrametría y es esculpir . Escribiremos un artículo separado sobre esto en el futuro, pero mientras tanto, no dude en consultar los tutoriales existentes, como este.

Recomendamos encarecidamente consultar la wiki de Meshroom. Hay mucha información sobre cómo resolver algunos errores que pueda encontrar y con qué parámetros vale la pena jugar. Y si desea contribuir, eso es aún mejor, envía una pull request o contacta a los desarrolladores por correo electrónico.

Galería de impresión de fotogrametría

Conclusión

Gracias a Meshroom, la fotogrametría ahora es más fácil que nunca. Las mallas de salida no están listas para imprimir de inmediato, pero con algunas ediciones menores, puede obtener resultados absolutamente sorprendentes tanto para la impresión 3D como para la industria de juegos/animación. ¡Y todo es de código abierto! Por lo tanto, podemos esperar actualizaciones o incluso mejoras específicas de impresión 3D. Especialmente si nosotros, como comunidad, apoyamos el desarrollo incluso en las formas más pequeñas, como documentar errores o compartir buenas configuraciones.

Entonces, ¿estás convencido de que es hora de darle otra oportunidad a la fotogrametría? ¿Qué estás esperando? ¡Ve y explora el mundo! 🙂