Inicio | Software y utilidades | CloudCompare, análisis de nubes de puntos para fotogrametría

CloudCompare, análisis de nubes de puntos para fotogrametría

Jueves, 11 de Octubre de 2012 12:55

cloudCompare fotogrametria arqueologia

Dentro de las herramientas libres para aplicaciones relacionadas con la fotogrametría en digitalización de patrimonio que he estado revisando estos días, me he encontrado con CloudCompare que me ha resultado un buen complemento a la falta de herramientas de análisis de MeshLab.

CloudCompare es una herramienta diseñada por el ingeniero francés Daniel Girardeau-Montaut, y como su nombre indica sirve para comparar y realizar estudios sobre nubes de puntos. Uno de los objetivos principales de estas comparaciones es realizar estimaciones sobre las diferencias entre dos mediciones de un mismo objeto o grupo de objetos, de esta forma es posible determinar por ejemplo deformaciones, etc. Esta situación es muy habitual en la medición con escáneres láser y quizás no sea tan precisa en fotogrametría, por lo pequeños márgenes de error, aún así sin duda nos puede ser útil para realizar ciertas estimaciones geométricas.

cloudCompare fotogrametria gestion de color colorchecker 3DSin embargo esta herramienta me ha sido muy útil para recuperar los valores RGB de un punto concreto, con el fin de poder realizar evaluaciones relativas al control de calidad en la captura del color gracias a la ayuda de cartas o escalas de color con colorimetría conocida. Con la herramienta "Point Picking", además de calcular distancias entre puntos podemos conocer al instante las coordenadas de un punto y sus valores RGB.

Como relataba en el artículo anterior “Fotogrametría y colorimetría en digitalización del patrimonio“ la fotogrametría no sólo nos puede aportar información geométrica sino que también colorimétrica debido a la capacidad de la nubes de puntos densas para almacenar esta información. Además esta información colorimétrica esta construida a partir de la información de varias imágenes por lo que los errores son promediados y minimizados en cierta forma.

gestion de color 3DDada esta situación, cuando trabajamos con fotogrametría con una finalidad orientada a la digitalización de patrimonio, ya sea arqueológico, arquitectónico o la conservación de bienes culturales, debemos respetar los habituales protocolos de gestión de color relacionado con los perfiles de cámara y los perfiles de caracterización ICC.

Para realizar una evaluación colorimétrica de una nube de puntos densa procedente de una reconstrucción 3D tenemos que tener en cuenta ciertas características:

  1. Las nubes de puntos están descritas en un modelo RGB, sin embargo nosotros necesitamos valores LAB para poder realizar los habituales cálculos de delta-e para la evaluación de la calidad de nuestro proceso. Por tanto necesitamos representar los valores RGB de la nube en un espacio CIELAB, este proceso se hace describiendo los valores RGB a través de un perfil de color ICC y esto nos lleva al segundo punto.
  2. Si realizamos las tareas de gestión de color oportunas en las imágenes que usamos para la reconstrucción 3D, no hay que olvidar en convertir nuestras imágenes a un espacio de color de trabajo o pantalla (sRGB, Adobe, Prophoto, etc) ya que durante la creación de la nube de puntos densa, se toman datos RGB descartando la información de caracterización de nuestro perfil de caraterización, por lo cual es necesario realizar una “conversión” a un espacio de trabajo o pantalla, para aplicar los aspectos de caracterización de nuestro perfil de entrada a los valores RGB de la imagen.
  3. Partiendo de la idea, de que por ejemplo nuestras imágenes han sido convertidas a un espacio de destino suficientemente amplio como el Adobe RGB, sabemos entonces que para obtener unos valores CIELAB a partir de los valores RGB tenemos que describir estos valores RGB en dicho espacio a través del perfil de color ICC Adobe RGB. Para esta tarea podemos usar la herramienta transicc de LittleCMS, la línea de comandos necesaria sería la siguiente:
    transicc -i AdobeRGB1998.icc -o *Lab
    De esta forma la herramienta nos solicitará que le indiquemos los valores R, G y B y nos devolverá los valores CIELAB.
    Si tenemos problemas con la terminal, podemos usar un pequeño truco con nuestro Photoshop: creamos una imagen con el espacio de color RGB y luego en la paleta de colores introducimos los valores RGB, al instante en el mismo panel podemos conocer los valores CIELAB correspondientes.

Con estos pequeños conceptos ya estamos en disposición de realizar las típicas evaluaciones de deltas ya sean CIEDE00 o CIE76 a partir de los valores CIELAB deducidos de nuestra nube de puntos y los valores CIELAB de nuestra carta de color de esta forma podemos obtener tablas como la siguiente:

ake confclean

Nube puntos RGB->Adobe RGB->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

En el artículo anterior "Fotogrametría y colorimetría en digitalización del patrimonio" detallo los procesos de creación de nubes de puntos densas con software libre y sus connotaciones en la preseravación y documentación del patrimonio cultural.

Como se puede ver en los resultados de la tabla anterior, la gestión de color juega un papel bastante relevane en los trabajos de fotogrametría, en circustancias donde el color constituya un atributo relevante de nuestro objeto, inmueble o escena a modelar.

Instalación de CloudCompare en Ubuntu 12

La instalación de CloudCompare esta bastante orientada a su uso en Windows, por lo que quizás la instalación sea un poco más sencilla, pero sin embargo es posible instalarla en Linux, e incluso en su foro podemos encontrar una propuesta, para hacerlo en Mac Os X.

En la web del programa tenemos acceso a una wiki donde se indican los requisitos y dependencias de la instalación y un foro donde podemos plantear cuestiones.

Dependiendo de las librerías que tengamos instaladas en nuestro sistema, la instalación puede ser más o menos tediosa, a continuación voy a indicar los pasos que he tenido que realizar yo, y que por supuesto pueden variar:

Primeramente hay que descargar el código fuente de:

https://github.com/cloudcompare/trunk

O usar Git para descargarnos el trunk directamente a nuestro equipo
git clone https://github.com/cloudcompare/trunk.git

Se nos pedirá un usuario y contraseña que son: invite_cc/invite_cc
Para compilar podemos usar

cmake CMakeLists.txt 

Aunque quizás sea más cómodo usar la GUI de cmake por que hay que realizar algunas configuraciones. Primeramente hay que indicar que como compilador vamos a usar CodeBlocks, después habrá que configurar diversas rutas entre ellas PCL, o LIBLAS. Por ejemplo el uso de LIBE57, LIBLAS y XIOT son opcionales. En el momento de intentar conseguir XIOT su web no esta operativa, por lo que me fue imposible, el resto de librerías si me fue posible conseguirlas. Sobre los plugins, aunque marque su instalación y no obtuve errores, en la aplicación no me aparecen, de hecho algunos de ellos solo son operativos en Windows.

Las librerías que he tenido que instalar fueron:

Antes de comenzar hay que asegurarse de tener instalado QT4:

sudo apt-get install libqt4-dev

Primero LIBLAS que se hace con el siguiente procedimiento:

  wget http://download.osgeo.org/liblas/libLAS-1.7.0.tar.gz
  tar xf libLAS-1.7.0.tar.gz
  cd libLAS-1.7.0/
  mkdir makefiles
  cd makefiles
  cmake -G "Unix Makefiles" ../
  make
  sudo make install

Después he instalado XERCES ya que de el depende LIBE57, para ello hacemos:

  wget http://apache.rediris.es//xerces/c/3/sources/xerces-c-3.1.1.zip
  cd xerces-c-3.1.1/
  ./configure
  make
  sudo make install

Ahora ya podemos instalar E57 de la siguiente forma:

wget http://netcologne.dl.sourceforge.net/project/e57-3d-imgfmt/E57Refimpl-src/E57RefImpl_src-1.1.312.zip
  unzip E57RefImpl_src-1.1.312
  cd ../E57RefImpl_src-1.1.312
  cmake CMakeLists.txt
  make

Quizás antes de instalar E57 hay que hacer un “updatedb” para actualizar la herramienta “locate” de nuestro Ubuntu, de la contra es probable que E57 no localice correctamente XERCES

Finalmente es necesario, instalar PCL. Point Cloud Library es un conocido framework para el trabajo con nubes de puntos.

En su web hay abundante documentación para la instalación de las librerías, aunque la mas cómoda que he podido encontrar es a través de los repositorios, para ello hacemos:

  sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
  sudo apt-get update
  sudo apt-get install libpcl-1.6-all-dev

Ahora ya estamos en condiciones de compilar CloudCompare, ya sea con la GUI de Cmake o con el habitual make.

x-rite Professional LED Lighting, DSLR Support and Accessories for Photo and Video BabelColor asociacion española de imagen cientifica y forense