Fotogrametría Low-Cost: cómo conseguir tus réplicas en 3D

Charla en la Women Techmakers Galcia 2019
Charla en la Women Techmakers Galcia 2019

En marzo de 2019 participé como ponente en el evento Women Techmakers de Galicia. Evento con el Google Developer Group Vigo como principal organizador, para impulsar la visibilidad, la comunidad y los recursos para mujeres en tecnología, en honor al Día Internacional de la Mujer.

Se trataba de una charla para principiantes sobre pautas y herramientas con las que obtener réplicas en 3D sin necesidad de equipos profesionales.

Para ello, expuse el proceso y la metodología a seguir para generar modelos 3D a partir de una serie de fotografías de objetos reales.

Y ante el interés mostrado por los asistentes, en el mes de mayo, organicé un pequeño taller teórico-práctico, en la Asociación tecnológica A Industriosa, de iniciación en este proceso, con trucos y consejos.

Comparto con vosotros lo esencial de la charla, para aquellos que no pudieron acudir en su momento, y les interesa el tema.

Y dejo los trucos y consejos del taller teórico/práctico para otro post, y así, no extenderme demasiado.

Definiciones

La fotogrametría es la ciencia de hacer mediciones a partir de fotografías.

La fotografía es la proyección de una escena 3D en un plano 2D (fotografía), perdiendo información de profundidad.

El objetivo de la fotogrametría es revertir este proceso, y devolverle a la escena plasmada en las fotografías su volumen o situación en el espacio.

Para ello, debemos seguir los siguientes pasos:

Pasos del proceso para obtener réplicas 3D.
Pasos del proceso para obtener réplicas 3D

1. Toma de datos.

El primer paso, y quizá el más importante, es la toma de datos.

Si hacemos bien este paso, vamos a ahorrarnos tiempo de cálculos, y de tener que corregir o arreglar diferentes errores.

Igual que si un cocinero trabaja con productos de calidad, va a necesitar menos medios y conocimientos para conseguir un buen plato.

Si partimos de unas correctas fotografías, obtendremos un mejor resultado con un menor esfuerzo.

Los elementos que van a condicionar el resultado de la nuestra toma de datos son:

  • El dispositivo.
  • Los parámetros fotográficos.
  • Sesión fotográfica.

Dispositivo

La fotogrametría consiste en sustraer información de fotografías. Por lo que el dispositivo encargado de la toma de datos, es cualquier dispositivo/cámara que pueda capturar imágenes.

La gente que se dedica a realizar modelos fotogramétricos de forma profesional, suele realizar este proceso con cámaras profesionales que poseen unas determinadas características. Gracias a ellas, consiguen obtener una mayor exactitud y cantidad de datos.

Sin embargo, yo he realizado pruebas con cámaras compactas y dispositivos móviles, y en la actualidad, se pueden obtener unos resultados más que aceptables.

No hay que olvidar, que las lentes que se incorporan en los dispositivos móviles, son cada vez mejores.

Sin embargo, utilizar este tipo de dispositivos, puede condicionar que no podamos modificar los parámetros fotográficos.

Y por último, el empleo de cámaras de las que se utilizan para grabar actividades deportivas, están abriéndose un hueco debido a su uso mediante drones. Gracias a esta combinación, se pueden registrar grandes superficies, lugares de difícil acceso, o edificios.

Ejemplos de dispositivos y herramientas utilizadas para la toma de datos.
Ejemplos de dispositivos y herramientas utilizadas para la toma de datos.

Parámetros fotográficos

No me voy a parar a explicar los parámetros fotográficos porque en cualquier blog de fotografía, seguro que los explican mucho mejor que yo.

Simplemente, comparto algunas recomendaciones de los parámetros que serían ideales a la hora de realizar la captura de las fotografías para fotogrametría.

Pero como ya comenté antes, según el tipo de dispositivo que utilicéis, igual no podéis modificar ninguno de ellos, o sólo alguno.

Los más puristas dirían que es una aberración, pero los últimos modelos que he realizado, los he hecho en automático, y sin problema.

Parámetros recomendados para la captura de fotografías para emplear en fotogrametría.
Parámetros recomendados para la captura de fotografías para emplear en fotogrametría.

Sesión fotográfica

Para mí, es lo más importante de todo.

De nada vale que tengas los parámetros fotográficos perfectamente configurados y una cámara super profesional, que si no realizas una buena sesión fotográfica, por más que tengas un software de fotogrametría profesional y un ordenador con una memoria de elefante, el resultado va a estar lleno de vacíos y errores.

Cosa que tendremos que arreglar, si se puede, en un tedioso proceso de postprocesado.

Por eso, antes de empezar la sesión fotográfica debes hacer un análisis y estudio del objeto que vas a fotografiar, para adelantarte a los posibles problemas o inconvenientes, y tratar de evitarlos o solventarlos.

Aquí os dejo algunas recomendaciones, pero al final, son cosas que se van aprendiendo a base de fallar o de enfrentarte a diferentes trabajos fotogramétricos.

  • Las zonas que no se fotografían, NO EXISTEN. Si una parte de nuestro objeto no está documentada, el software de fotogrametría no puede inventársela. Por lo que se creará un hueco al no tener información de qué pasa en ese zona.
  • PLANIFICAR y hacer un croquis del trabajo para saber cuántas fotos van a ser necesarias y desde dónde. Es mejor hacer las justas y necesarias, que un sin fin de fotografías que no van a aportar ninguna mejoría y van a ralentizar los cálculos.
  • LA FOTO ES SAGRADA. No se edita, ni se transforma, ni se recorta. Además de estar alterando la información de esas fotografías, podemos estar perdiendo datos que son esenciales para el proceso fotogramétrico.
  • Evitar utilizar diferentes cámaras. Suele dar problemas, y dependiendo del software, puede que no te permita hacerlo.
  • SOLAPE! La información tiene que aparecer, al menos en 2 fotos, para que el software de fotogrametría pueda triangular la posición. Para ello, en objetos volumétricos, se debe sacar una fotografía cada 10º; y en superficie plana, 60-80% de solape de una foto con respecto a la siguiente.
  • Llenarla fotografía con el objeto. Todo lo que salga a mayores, va a ser información que tarde o temprano deberemos eliminar. Tampoco debemos tratar de que todo el objeto salga en la fotografía. Es mejor dividir el objeto por zonas, o dividirlo en filas y/o columnas.
  • Apuntar a las normales del objeto para evitar las aberraciones de las lentes.
  • Evitar objetos sin textura, brillantes, transparentes o traslúcidos. El software de fotogrametría suele tener problemas para identificar este tipo de superficies generando huecos o posiciones incorrectas. Cuando no podamos evitar este tipo de superficies, deberemos volverlas mates y/o opacas.
  • Evitar fondos no deseados. En exterior es más complicado, pero para sesiones en interior, es recomendable usar fondos monocromo fáciles de eliminar.

2. Procesado de los datos.

Este paso se debe realizar con un software específico de fotogrametría.

Según el software que utilicemos, puede ser capaz de realizar los siguientes pasos o sólo alguno de ellos.

  • Alineación de cámaras.
  • Creación de la nube de puntos.
  • Generación de la malla poligonal y la textura asociada.

Alineación de cámaras

La alineación de cámaras sirve para posicionar las cámaras en un espacio virtual.

Aunque sólo hayamos utilizado una cámara, el software asigna una cámara a cada fotografía. La posición que se le adjudica está relacionada con el cálculo del lugar desde el que se sacó la fotografía con respecto al objeto. Se obtiene gracias a los metadatos de esa imagen, y a los cálculos que realiza el software.

En algunos softwares, te permiten ayudarte de dianas o puntos que tu seleccionas en la fotografías, para ajustar o mejorar el posicionamiento.

Nube de puntos.

Una vez que las cámaras que sacaron las diferentes fotografías están situadas en el espacio virtual, el software posiciona en ese mismo espacio, los pixels que conforman nuestras imágenes.

Al conjunto que forman estos puntos georreferenciados (cada punto posee unas coordenadas x,y,z), se le llama nube de puntos.

Esta nube, si es muy densa, puede crear la sensación de que ya estamos viendo nuestra réplica. Pero esta nube no se considera un modelo 3D, ya que tan sólo es un conjunto de vértices (puntos en el espacio).

Ejemplo de la alineación de las cámaras y la nube de puntos.
Ejemplo de la alineación de las cámaras y la nube de puntos.

Malla poligonal

El modelo 3D o malla poligonal se genera en el siguiente paso.

El software interpreta la posición de esos puntos y genera una superficie con ellos.

Igual que los dibujos en los que tienes que unir puntos para ver la silueta que conforman. Pero en este caso, en vez de ser líneas, se generan múltiples planos que comprenden nuestros puntos.

Una malla poligonal es un tipo de modelo 3D en el que la superficie del modelo está definida por la conexión de diferentes polígonos. Estos polígonos están definidos por caras, aristas y vértices.

Componentes de una malla poligonal.
Componentes de una malla poligonal.

Podríamos decir que es como la piel del nuestro modelo.

Existen numerosos formatos de archivos de mallas poligonales, y dependiendo del software de fotogrametría podrás exportar la malla en un determinado formato o en varios. El más generalizado en este tipo de softwares, es el .obj, poro hay otros como .stl, .dae, etc.

Pero una malla tan sólo nos da información del volumen de nuestro objeto, no de su aspecto. Ni de qué color o material es.

Textura

Y por último, se genera la textura de nuestra réplica/modelo 3D, que es la encargada de mostrarnos su aspecto.

Una textura no deja de ser más que un archivo de imagen (.png, .jpg, .tiff, etc.) sólo que adaptado a nuestro modelo 3D.

Para ello, el software despliega la malla poligonal sobre un plano 2D. Igual que cuando despegamos una caja y conseguimos una plantilla plana.

Despliegue de un cubo sobre un plano 2D.
Despliegue de un cubo sobre un plano 2D.

Una vez que cada polígono ocupa su sitio en el plano 2D, el software asigna una información de color según los pixels que afecten a esa zona del modelo.

Deste modo, se genera una textura con la forma de la malla desplegada que cualquier software o un visor de modelos 3D puede interpretar para visualizarla sobre nuestra réplica.

Despliegue de la malla poligonal sobre la textura generada.
Despliegue de la malla poligonal sobre la textura generada.

Softwares de fotogrametría.

El software por excelencia de fotogrametría es Metashape, antes conocido como Agisoft Photoscan. Pero si no vas a hacer trabajos profesionales, no creo que estés por la labor de pagar lo que cuesta la licencia. Si queréis echarle un ojo, os dejo el enlace

En su momento, Autodesk, sacó el 123D Catch que era online y bastante sencillo e intuitivo, o el Remake, pero que ya no están disponibles. Ahora, tienen el ReCap, pero no sé qué tal funciona. Si os interesa saber más, os dejo el enlace

Para los amantes del Open Source, encontrar un software de fotogrametría hace años, era casi misión imposible. Existía alguno, pero con unos interfaces muy austeros, que para la gente que conocía Photoscan, era como comparar la capilla Sixtina con los dibujos de un niño de 3 años.

El año pasado, descubrí Meshroom, e hice una serie de pruebas para ver qué tal iba.

No he seguido porque no he tenido que realizar ningún trabajo de fotogrametría, pero realmente me sorprendió. El interfaz me recordó a Blender. Y me gusta la parte de los nodos, que te permite controlar y configurar cada uno de los paso si realizar diferentes salidas aprovechando los cálculos.

Le veo mucho potencial y porvenir, si siguen ampliando un par de cosillas que le faltan para ser de 10.

Os dejo el enlace a Meshroom y un tutorial para principiantes.

Interfaz de Meshroom
Interfaz de Meshroom

Postprocesado de datos

Y el último paso, es importar nuestros modelos fotogramétricos en un software de modelado 3D para arreglar los típicos fallos o errores u optimizar el modelo.

Errores o fallos.

Las tareas que más se suelen hacer con los modelos fotogramétricos son la de cerrar huecos que se generan por falta de información. Eliminar elementos que no nos interesan, como fondos u otros objetos cercanos. Y añadir elementos nuevos.

Errores y problemas de los modelos fotogramétricos.
Errores y problemas de los modelos fotogramétricos.

Optimización

Las mallas poligonales que generan los softwares de fotogrametría suelen ser mallas desorganizadas con una cantidad inmensa de polígonos.

Esto hace que nuestros modelos pesen demasiado y ocasionen problemas a la hora de integrarlos en webs, videojuegos, animaciones, etc.

Para evitar estos problemas, se suele hacer un proceso de retopología con el que conseguimos una malla más organizada y con un menor número de polígonos.

Modelo fotogramétrico; Modelo retopología automática; Modelo retopología manual.
Modelo fotogramétrico; Modelo retopología automática; Modelo retopología manual.

En cuanto a la textura, puede ser que necesitemos arreglar las zonas que antes eran huecos, porque no tienen una textura asignada. Que queramos pintar o cambiar la textura a nuestro gusto. O generar mapas de texturas para dar más realismo a nuestros modelos, cuando queramos integrarlos en un visor o trabajo de 3D.

Ejemplos de tareas que se pueden hacer con las texturas de nuestros modelos.

He intentado realizar un resumen del proceso bastante básico sin entrar en muchos detalles ni explicaciones técnicas para que cualquiera pueda entenderlo.

Si queréis ampliar información sobre el tema, os recomiendo los siguientes artículos o el curso de Koré formación.

2 comentarios en “Fotogrametría Low-Cost: cómo conseguir tus réplicas en 3D”

  1. Pingback: Impresión 3D para completos ignorantes. – Castrovilar Creativa Multidisciplinar

  2. Pingback: Consigue Top Models 3D para tu web – Castrovilar Creativa Multidisciplinar

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *