Archivo por meses: septiembre 2021

Escaneado 3D a partir de vídeo

Las técnicas de escaneado 3D mediante fotogrametria nos permiten obtener modelos en 3D de objetos del mundo real mediante la toma de una serie de fotografías adyacentes del objeto a modelar. El software de fotogrametría se encargará de encontrar puntos análogos en el conjunto de fotografías, realizando una triangulación que le permita representar el modelo en 3D.

Para que el modelo se pueda generar correctamente, es necesario que las fotografías se puedan solapar. Que todas tengan un poco de la anterior para que el software pueda enlazarlas. Algo similar a lo que hacen los móviles para hacer fotos panorámicas. Eso es difícil de conseguir tomando fotos «a pulso», por lo que se suele montar la cámara en un trípode, poner el objeto en una peana giratoria y se van tomando fotos a medida que se va girando poco a poco el trípode. Luego, subimos un poco el trípode, modificamos el ángulo de enfoque, y volvemos a empezar. Y así se hacen barridos completos con varias alturas y ángulos.

Sin embargo, si lo piensas, una manera de conseguir el mismo efecto sin necesidad de tanto montaje sería hacer un vídeo con los barridos «a mano» y después extraer fotogramas del vídeo de forma automática. Y eso es lo que voy a contar en esta entrada.

Recientemente, he estado en la National Gallery of Art de Vilnius donde decidí hacer algunas pruebas con esta técnica. Para ello, tomé unos vídeos cortos con mi viejo BQ Aquarius de algunas esculturas con la idea de generar modelos en 3D de algunas de las piezas expuestas. Veamos los resultados.

Los vídeos

Como he comentado, los vídeos fueron tomados con un móvil relativamente antiguo, aunque es capaz de grabar en 720p, está lejos de la calidad que se puede obtener con dispositivos más modernos. Traté de hacer un vídeo en el que iba haciendo un barrido de la pieza a escanear, lo que no siempre era fácil, porque la mayoría estaban apoyadas o ubicadas muy cerca de la pared, con lo que no podía dar la vuelta entera. Dependiendo de la pieza, los vídeos oscilan entre 25 y 60s.

Veamos un ejemplo:

Se trata de Nike (1978) de Petras Mazūras. (fichero de vídeo fuente)

Como se puede ver, el vídeo apenas dura unos segundos y se ha hecho un único barrido. La estátua es bastante alta y no disponía de un palo selfie o similar para poder obtener otros ángulos.

Los fotogramas

Una vez en el ordenador, lo que voy a hacer es extraer fotogramas del vídeo para obtener una secuencia de imágenes adyacentes.

Para ello, utilizaré ffmpg, un comando de GNU/Linux para tarbajar con vídeos que proporciona una infinidad de opciones. En este caso, simplemente utilizaré una opción que extrae fotogramas (-r) y le pasaré el número de fotogramas que quiero obtener por segundo. Es tan fácilo como escribir lo siguiente en el terminal (en la misma ruta en la que se encuentra el vídeo):

$ ffmpeg -i nike.MP4 -r 5 img-%03d.png

Lo que hago es invocar el programa, seguido de la opción -i, para indicarle el archivo de entrada (input), que es directamente el archivo con el vídeo que he extraído del móvil. Luego le pongo la opción -r y el valor 5, para decirle que saque 5 fotogramas por cada segundo de vídeo. Los archivos resultantes se generarán en el mismo directorio con los nombres img-001.png, img-002.png… y así sucesivamente.

Para más información sobre el uso del comando ffmpg, consultar el siguiente enlace.

En cualquier caso, comparto el resultado de la operación en un fichero ZIP:

Archivo ZIP con las fotos extraídas del vídeo.

Procesando

Para procesar las imágenes, he utilizado el Metashape con las opciones por defecto. Prácticamente, arrastrar y soltar. El proceso duró poco menos de una hora.

El resultado

Este es el resultado:

Nike, 1978 by Carlos M on Sketchfab

Como se puede ver, al modelo le falta detalle, pero teniendo en cuenta la rapidez con la que se tomó el vídeo y la poca duración del mismo, el resultado es espectacular.

Otros ejemplos

A continuación comparto otros modelos generados siguiendo el mismo procedimiento, todos ellos capturados el mismo día durante la visita al museo (incluyo el archivo de vídeo original por si quieres hacer pruebas):

Figure, 1970 by Carlos M on Sketchfab (fichero de vídeo fuente)

The First Swallows, 1963 by Carlos M on Sketchfab (fichero de vídeo fuente)

The Dance, 1945-1946 by Carlos M on Sketchfab (fichero de vídeo fuente)

Conclusión

Con el proceso expuesto en la entrada se demuestra la facilidad con la que se puede escanear un objeto 3D con la ayuda de un teléfono móvil. Aunque la extracción de fotogramas no consigue imágenes de tanta calidad como la fotografía individual (de hecho, muchos fotogramas eran desechados por el software de fotogrametría por estar borrosos o movidos), el resultado es sorprendente y con una buena cámara y un buen barrido, se pueden conseguir resultados sorprendentes.

Esta técnica es especialmente útil para casos en los que no es posible ubicar el objeto en una peana o cuando es muy grande (por ejemplo, para escanear una estatua en un parque). Sin duda, es una técnica que puede ser muy interesante por su sencillez para trabajarla en el aula o durante una actividad extraescolar.

Bonus

Hablando de estatuas en el parque, este el resultado de procesar con esta técnica un vídeo a un tótem tallado en la madera típico de Lituania que encontramos en un bosque al sur del país. El vídeo era un barrido con vuelta completa al monumento.

Escultura en el bosque by Carlos M on Sketchfab