Fotogrametría y colorimetría en digitalización del patrimonio
Miércoles, 10 de Octubre de 2012 16:03
En artículos anteriores me adentraba en la instalación de VisualSFM como propuesta de herramienta para trabajos de fotogrametría para digitalización 3D en el ámbito del patrimonio cultural. A lo largo de este artículo profundizaré un poco más en el trabajo con VisualSFM y MeshLAB como editor de nubes de puntos, haciendo un especial hincapié en ciertas reflexiones sobre los aspectos colorimétricos de la fotogrametría.
Como fotogrametría entendemos el estudio de las características geométricas de los objetos o escenas, sin embargo como veremos, hay una importante información colorimétrica en los datos generados a partir de un proyecto de fotogrametría. Siendo esta una estrategia muy utilizada en los últimos años en procesos de documentación y estudio sobre Bienes Culturales, y en general todos los campos del patrimonio como la arqueológia, conservación de BC, etc.
Aunque la herramienta líder indiscutible en este sector es Photomodeler, sus costes no lo hacen accesible a todos los profesionales, o al menos aquellos que necesitan recurrir a trabajos puntuales. Por ello me centraré en el trabajo con VisualSFM un herramienta open source con un flujo de trabajo más simplificado.
Flujo de trabajo
Los fundamentos de los flujos de trabajo y procesos en los que se fundamenta la fotogrametría a partir de series de fotografías son los siguientes:
A.- Por un lado necesitamos una serie de imágenes que recojan todas las vistas posible de un objeto o inmueble. No existen reglas para realizar estas capturas, ya que la distancia y angulación de la cámara puede variar con el fin de recoger en lo posible todas las características geoméricas de nuestro motivo.
B.- En una segunda fase es necesario computar estas imágenes dentro de VisualSFM, esto consta de tres fases esenciales:
- Cargar las imágenes.
- Buscar puntos comunes entre nuestras imágenes. Para ello hay que comparar nuestra colección de imágenes a través de pares, por lo que cuantas más imágenes usemos, los tiempos para esta operación crecen exponencialmente. Mientras en Photomodeler hay que introducir manualmente estos puntos comunes a través de la inspección visual de cada imagen o el uso de dianas, situación que exige de bastante tiempo, VisualSFM calcula automáticamente estos puntos comunes, quizás para ello necesita de más imágenes con más detalles. Es común que tras hace un buen número de tomas no sea posible detectar correctamente estos puntos en común, por lo que muchas de ellas son descartadas por la aplicación. VisualSFM usa los datos EXIF de la distancia de enfoque de nuestras imágenes para ayudarse en la posición de las cámaras, sin embargo también es capaz de funcionar sin esta información.
- Tras la detección de puntos comunes en los pares de imágenes mediante una tercera acción se desencadena la creación de la nube de puntos 3D. Tras finalizar este proceso, dependiendo del número de imágenes usadas, y puntos creados, podemos intuir más o menos la forma de nuestro objeto.
- El cuarto proceso que nos falta, es crear lo que se conoce como “nube de puntos densa”, o lo que es lo mismo, a partir de la nube anterior “poco densa” se van generando nuevos puntos a partir de nuestras imágenes. Mientras que el paso anterior sólo tenemos puntos con coordenadas XYZ, mediante la creación de la nube densa vamos a tener puntos con información XYZ RGB por lo que el resultado final será una nube de puntos cuyo aspecto será el de una imagen 3D más o menos realista.
C.- En este momento ya hemos terminado el proceso de trabajo con VisualSFM, de forma que ya tenemos una nube de puntos que puede ser usada en multitud de programas de modelado 3D. Para continuar el trabajo de modelado podemos usar otra herramienta libre muy popular denominada MeshLAB, la cual nos va a permitir atribuirle una escala a nuestra nube de puntos, limpiar los puntos que nos sobren, convertir esta nube en una maya o realizar exportaciones a otros formatos.
Como vemos el proceso es un proceso tremendamente simple, que en pocos minutos nos puede permitir disponer disponer de un modelo 3D altamente fiable.
Recordar que en los modelos fotograméticos son perfectamente proporcionados, no existen deformaciones por perspectivas o lentes como suceden en la fotografía 2D, sin embargo cabe matizar que para conocer las dimensiones originales de un objeto debemos tener siempre una referencia de la realidad.
Consideraciones en el uso para digitalización de bienes patrimoniales.
Aunque como vemos se trata de un proceso sencillo, son varias las consideraciones que debemos plantearnos, si queremos dotar nuestras digitalizaciones de un cierto carácter de preservación.
Dado que existe multitud de literatura entorno a las bondades geométricas, de estas técnicas en el registro y documentación del patrimonio, voy a centrarme en los aspectos colorimétricos y preservación de dichos proyectos.
A nivel filosófico, podemos entender una nube de puntos como una fotografía en tres dimensiones donde los puntos equivalen a pixels, donde además de contener una información RGB poseen una tercera dimensión espacial.
Cómo decía en el capítulo anterior de este artículo, en nuestra nube de puntos densa existe una información espacial pero también colorimétrica, por lo que es una pena centrarse únicamente en los aspectos geométricos.
La información colorimétrica de estas nubes densas se reducen a valores RGB más en ciertos casos un canal Alfa. Por el momento no existen iniciativas en la gestión del color en nubes de puntos, pero al menos si podemos mantener cierta profilaxis en este aspecto ya que la información colorimétrica contenida en estos puntos puede llegar a alcanzar una cierta fiabilidad y por tanto interés documental.
En primera instancia durante las experiencias llevadas a cabo para la elaboración de este artículo, he creado una nube de puntos de mi Colorchecker Passport, a partir de la habitual serie de imágenes.
Aunque VisualSFM solo soporta imágenes jpeg, no debemos caer en la tentación de realizar nuestras tomas directamente en este formato, ya que de las imágenes resultantes estarán condicionadas de forma indeterminada por los ajustes de nuestra cámara, por lo que la colorimetría resultante será en cierta manera imprecisa, por lo que es más adecuado trabajar cómo siempre en RAW y someter nuestro revelado al correspondiente flujo de gestión de color.Cómo debería ser habitual en cualquier proceso de captura fotográfica de cierta rigurosidad he realizado un perfil de cámara y un perfil de caracterización ICC con el fin de establecer las correcciones oportunas en mi serie de imágenes. El perfil de destino de esta serie de imágenes fue Adobe RGB con el fin de disponer de gamut suficiente para no recortar ningún valor de mi carta.
Tras construir la nube de puntos densa con VisualSFM, debemos pasar a MeshLAB. Desafortunadamente esta herramienta no dispone de ninguna opción para conocer la colorimetría de cada punto, por lo que debemos trabajar descartando todos los puntos de nuestra nube excepto los que nos interese estudiar, por ejemplo un determinado parche. Posteriormente exportamos nuestro proyecto al formato PLY (Stanford Polygon File Format) desactivando la opción binaria. A partir de este archivo podemos discernir fácilmente las coordenadas XYZ de cada punto y sus valores RGB más alfa, los cuales podemos introducir en un Excel para operaciones.
Dado que nuestra colorimetría esta en RGB, podemos recurrir al conocido trabajo de Danny Pascale sobre los valores RGB de las Colorchecker y si queremos calcular los deltas a partir de valores LAB hay que realizar la conversión de estos valores RGB a través del espacio Adobe RGB.
Con esta pequeña estrategia ya podemos realizar estimaciones de diferencias de color entre nuestra nube de puntos y una carta de color con colorimetría conocida. De esta forma he podido observar deltas muy bajos, con un promedio de entorno a los 2 ΔE* para CIED00 y 3.6 ΔE*para CIE73, lo cual se proponen como valores altamente optimistas, como podemos ver en la siguiente tabla:
Nube puntos | RGB->AdobeRGB->LAB | Colorchecker | Deltas | ||||||||
R | G | B | L | a | b | L | a | b | CIEDE00 | CIE76 | |
---|---|---|---|---|---|---|---|---|---|---|---|
A01 | 109 | 82 | 69 | 38,95 | 14,41 | 14,77 | 34,84 | 11,45 | 12,37 | 4,09 | 5,39 |
A02 | 189 | 148 | 132 | 67,07 | 19,35 | 17,35 | 60,01 | 17,25 | 16,20 | 6,00 | 7,35 |
A03 | 98 | 122 | 155 | 50,17 | -6,12 | -22,97 | 45,34 | -3,46 | -21,55 | 5,66 | 5,92 |
A04 | 100 | 109 | 69 | 44,60 | -11,00 | 22,00 | 39,69 | -12,45 | 20,99 | 4,75 | 5,48 |
A05 | 135 | 134 | 177 | 58,01 | 7,98 | -23,37 | 50,05 | 8,68 | -23,33 | 7,74 | 8,06 |
A06 | 130 | 191 | 174 | 71,65 | -33,81 | -0,53 | 64,45 | -31,37 | -0,93 | 5,64 | 7,28 |
B01 | 205 | 123 | 50 | 63,55 | 37,52 | 59,82 | 63,68 | 36,00 | 58,10 | 0,86 | 2,24 |
B02 | 74 | 91 | 171 | 40,36 | 10,99 | -48,47 | 40,63 | 12,61 | -46,06 | 2,25 | 2,83 |
B03 | 179 | 82 | 96 | 52,36 | 50,31 | 17,78 | 52,33 | 48,83 | 17,75 | 0,68 | 2,00 |
B04 | 89 | 60 | 105 | 31,56 | 24,29 | -21,02 | 31,30 | 22,86 | -20,19 | 1,00 | 2,24 |
B05 | 170 | 190 | 74 | 73,62 | -23,17 | 58,45 | 72,69 | -24,28 | 56,65 | 1,24 | 2,45 |
B06 | 215 | 161 | 51 | 72,57 | 19,83 | 69,31 | 72,64 | 17,42 | 68,03 | 1,10 | 2,24 |
C01 | 46 | 66 | 149 | 29,88 | 14,23 | -52,31 | 29,39 | 13,73 | -50,17 | 0,44 | 2,24 |
C02 | 104 | 154 | 79 | 57,76 | -39,39 | 34,53 | 56,36 | -39,73 | 32,31 | 1,25 | 2,24 |
C03 | 161 | 56 | 58 | 44,36 | 53,20 | 30,74 | 43,79 | 52,47 | 29,90 | 1,02 | 1,73 |
C04 | 235 | 206 | 48 | 84,69 | 2,76 | 83,33 | 82,16 | 1,91 | 80,76 | 1,58 | 3,74 |
C05 | 174 | 86 | 150 | 53,38 | 50,88 | -14,32 | 52,51 | 50,97 | -13,21 | 1,08 | 1,41 |
C06 | 54 | 136 | 167 | 51,27 | -31,40 | -28,54 | 50,00 | -27,77 | -28,06 | 2,06 | 4,12 |
D01 | 251 | 251 | 242 | 98,48 | -1,17 | 4,36 | 96,25 | -0,50 | 2,72 | 2,52 | 3,00 |
D02 | 215 | 216 | 213 | 86,59 | -0,89 | 1,34 | 80,34 | -0,05 | 0,11 | 4,14 | 6,08 |
D03 | 168 | 167 | 164 | 69,25 | 0,08 | 1,80 | 66,17 | -0,50 | -0,31 | 2,58 | 3,16 |
D04 | 126 | 125 | 124 | 53,18 | 0,40 | 0,77 | 50,05 | -0,31 | -0,15 | 2,98 | 3,00 |
D05 | 84 | 84 | 86 | 36,07 | 0,36 | -1,26 | 35,89 | -0,48 | -0,71 | 1,28 | 1,41 |
D06 | 46 | 47 | 48 | 18,96 | -0,45 | -0,93 | 20,81 | 0,44 | -0,17 | 1,37 | 2,00 |
Promedio | 2,63 | 3,65 | |||||||||
Max | 7,74 | 8,06 |
Actualización: Esta tabla ha sido creada según el procedimento que se cita en el artículo "CloudCompare, análisis de nubes de puntos en fotogrametría" ya que esta herramienta es más adecuada para el análisis de nubes de puntos densas que el propio MesLab
Cabe recordar que estas nubes de puntos se forman a partir de los datos de diversas imágenes, por ejemplo un sólo parche de mi Colorchecker estaba constituido por algo más de 600 puntos, de los cuales probablemente hayan sido extraídos de la información de varias imágenes, por tanto se trata de valores coloriméticos promediados donde los errores de exposición, sombra, flares, etc, se ven minimizados en cierta manera por las diferentes capturas.
Otro aspecto bastante relevante en el uso de esta herramienta en combinación con MeshLab, es la posibilidad de conservar nuestro modelo 3D en un archivo del tipo PLY donde toda la información se encuentra en texto plano muy fácilmente accesible en un tiempo futuro, lo cual estamos ante una herramienta capaz de generar información muy valiosa de un objeto con fines a su preservación a largo plazo.
En MeshLab u otras herramientas podemos convertir la nube de puntos en mallas y transferir los valores colorimétricos de estos puntos a la maya, sin embargo en este proceso se genera una importante interpolación de colores ya que existen numerosas zonas donde es necesario rellenar huecos vacíos. Durante este proceso la colorimetría se altera considerablemente, por lo que a fines de preservación, es más adecuado conservar la información geométrica y colorimétrica de la nube de puntos densa, que guardar un proyecto basado en mayas y texturas.
< Prev | Próximo > |
---|