Inicio | Software y utilidades | Apero-Micmac, nubes de puntos más densas

Servicios

Descarga Rough Profiler

Apero-Micmac, nubes de puntos más densas

Martes, 27 de Mayo de 2014 22:40

apero micmacApero-Micmac es una colección de herramientas open-source, liberadas en 2007, orientadas a trabajos relacionados con la fotogrametría, desarrollado desde el laboratorio MATIS del IGN France.

La colección de herramientas de este entorno es amplia, sin embargo en los últimos años ha sido simplificada con herramientas que a modo de interfaz, simplifican los flujos de trabajo.

Aunque Apero-Micmac posee un cierto nexo común con las herramientas habituales del mundo de la fotogrametría y el Structure from Motion, como veremos a continuación se desmarca en cierta manera de muchas de estas herramientas, al fundamentar su uso en los mapas de profundidad, en vez de los habituales clusters multivistas (Multi-view Stereo, CMVS). Y es en este punto, donde quizás, resida la capacidad de Apero-Micmac de generar nubes de puntos con una densidad y detalle mucho mayor al de sus rivales

Instalación de Apero-Micmac

Una de las ventajas a tener presente, es que aunque se trata de una herramienta por línea de comandos, es relativamente fácil de instalar, además de ser multiplataforma.

El entorno Apero-Micmac puede ser descargardo ya compilado o el código fuente desde la web del IGN France

Pero también lo podemos descargar desde el repositorio usando Mercurial:

hg clone https://geoportail.forge.ign.fr/hg/culture3d micmac

Usando como usuario: culture3d y contraseña: culture3d

La compilación en entornos Linux y Mac es sencilla, ya que solo nos va exigir como dependencias la instalación previa de Exiftools, proj4; exiv2 y ImageMagick

Tras descargar ya sea desde el repositorio o el código fuente, entramos en el directorio micmac o culture3d y realizamos la siguiente secuencia:

  mkdir build
  cd build
  cmake ../
  make install -jn
  

Donde n es el número de procesadores de nuestro equipo.

Tras estos comandos, se creará un directrio "bin" con los ejecutables de Apero-Micmac.

En el momento de escribir este artículo la web oficial de Apero-Micmac (http://www.micmac.ign.fr/) estaba offline, por lo que alguna documentación no estaba disponible por eso no la he podido referenciar.

Introducción al uso de Apero-Micmac

A continuación vamos a describir algunas herramientas características de un flujo de trabajo mínimo para modelar nubes de puntos densas:

El flujo de trabajo de Apero-micmac es similar a cualquier otro flujo de trabajo:

Tapioca en esencia es una interfaz de Pastis (Program using Autopano Sift for the Tie-points in the images) la cual esta dedicada a la búsqueda y coincidencia de puntos entre imágenes. Entre sus algoritmos incorpora el conocido algoritmo SIFT (Scale-invariant feature transform) de David Lowe. La herramienta Tapioca opera con diferentes modos (MulScale, All, Line, File y Graph) donde se permite optimizar los métodos de cotejo, por ejemplo MulScale trabaja con bancos de imágenes de diferentes tamaños, o Line con bancos de imágenes tomadas secuencialmente.

Indicar que Tapioca soporta imágenes en Tiff, JPG y RAW ya que en su interior alberga el motor de revelado raw DCRAW.

Tapioca All "DSC[0-5].JPG" 1000
Tapioca MulScale "DSC[0-5].JPG" 500 1000

Donde 1000 es el ancho de la imagen máximo y 500 el mínimo.

Tapas es una interfaz de Apero (Relatively Operational Experimental Photogrammetric Aerotriangulation) es la herramienta encargada de la orientación relativa de las cámaras, sus calibraciones y como su nombre indica, la triangulación.

El uso de Tapas podría ser:

Tapas trabaja con diferentes modelos de distorsión como RadialExtended, RadialBasic, Fraser, FraserBasic e incluso dos modelos para ojos de pez como FishEyeEqui y HemiEqui

Tapas FraserBasic .*.JPG Out=Ground

Donde podemos ver el modo de distorsión, la colección de imágenes sobre la que se va a trabajar y la salida. “Ground” puede ser cualquier nombre indicativo de nuestro proyecto.

Tapas realiza la calibración de nuestras imágenes a partir de los datos EXIF de logitud focal, ancho del sensor, etc. por lo que dichos datos deben existir en los metadatos de nuestras imágenes.
Tras ejecutar Tapas podemos acudir a continuación a AperiCloud, el cual será el encargado de representar gráficamente nuestra cámaras junto a nuestra nube dispersa.

AperiCloud .*.JPG Ground Out=apericloud.ply

Nos fijamos que como parámetro se indica la salida (“Ground”) de Tapas, así como el nombre de nuestro archivo .ply

mapas de profundidadLa siguiente herramienta de interés es Malt la cual es una interfaz de Micmac (Multi Image Matches for Auto Correlation Methods). Micmac es una herramienta desarrollada por Marc Pierrot-Desseilligny encargada entre otras misiones, de diseñar “mapas de profundad” a partir de un conjunto de imágenes y en referencia a una imagen "master". Un “mapa de profundidad” es una imagen donde cada pixel representa la profundidad correspondiente con un punto de vista particular, en relación a una imagen o escena maestra.

Micmac, como muchas otras herramientas del campo de la fotogrametría esta basada en la geometría epipolar (geometría de la visión estereoscópica), pero no da soporte para la multi-estereoscopia, lo que implica una cierta especialización en escenarios cuasi-planar, tales como imágenes del terreno, fachadas, paramentos, relieves, etc. excluyendo objetos o artefactos del tipo bulto redondo.

El uso de Malt sería el siguiente:

Malt GeomImage .*.JPG Ground Master=P1110068.JPG ZoomF=2

camarasDonde además de indicar la colección de imágenes con la que vamos a trabajar, como decíamos en el párrafo anterior añadiremos la imagen “master” la cual será la usada de referencia para orientar todo el proyecto. y “Ground” son los datos de calibración calculados por Tapas.

Y la última fase, necesaria para disponer de una nube de puntos densa es invocar a Nuage2Ply el cual realiza la conversión entre los mapas de profundidad en una nube de puntos densa.

El uso de Nuage2Ply es:

Nuage2Ply "MM-Malt-Img-P1110071/NuageImProf_STD-MALT_Etape_7.xml"  Out= P1110071.ply RatioAttrCarte=2

Donde el directorio “MM-Malt-Img-P1110071” es generado automáticamente por Malt usando el nombre de la imagen maestra.

Para una comprensión más profunda es recomendable el manual “MicMac, Apero, Pastis and Other Beverages in a Nutshell!

Diseño de flujos de trabajo

El trabajo con Apero-Micmac, aunque pueda parecer tedioso, se puede automatizar fácilmente con scripts tipo bash. Por ejemplo el flujo de trabajo descrito se puede resumir en este script:

#!/bin/sh
BIN_DIR="/opt/micmac/bin/" CHANT_DIR=$3 GEOMIMG=$1 EXT=$2 "${BIN_DIR}Tapioca" MulScale "${CHANT_DIR}.*.${EXT}" 500 1500 "${BIN_DIR}Tapas" FraserBasic "${CHANT_DIR}.*.${EXT}" Out=Ground "${BIN_DIR}AperiCloud" "${CHANT_DIR}.*.${EXT}" Ground Out=Apericloud.ply "${BIN_DIR}Malt" GeomImage "${CHANT_DIR}.*.${EXT}" Ground Master=${GEOMIMG}.JPG ZoomF=2 "${BIN_DIR}Nuage2Ply" "${CHANT_DIR}MM-Malt-Img-${GEOMIMG}/NuageImProf_STD-MALT_Etape_7.xml" \
"Attr=${CHANT_DIR}${GEOMIMG}.${EXT}" "Out=${CHANT_DIR}${GEOMIMG}.ply" RatioAttrCarte=2

De esta forma a dicho script se le pasaría como primer parámetro el nombre la imagen maestra (sin extensión), como segundo la extensión de las imágenes con las que vamos a trabajar y finalmente de forma opcional, si no estamos invocando dicho script desde el directorio que contiene nuestra colección de imágenes, la ruta a dicho directorio.

La ruta a este script se puede guardar en el path para poder ser invocado desde cualquier parte del sistema, por ejemplo:

vim ~/.profile

y añadimos

export PATH=$PATH:/opt/micmac/scripts/

Como podemos ver, aunque la línea de comandos, pueda restarnos ergonomía, el trabajo por scripting añade más rapidez y eficiencia a nuestros flujos de trabajo, pudiendo automatizar procesos relativamente complejos con solo unos pocos parámetros.

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