ALGORITMOS DE MAPEADO 3D -...

22
5 ALGORITMOS DE MAPEADO 3 D 5.1 introducción A continuación se presentan los diferentes algoritmos que componen cada una de las partes que se ocupan de la generación de mapas 3D. Típicamente, este proceso se divide en dos etapas: en la primera se genera un mapa 3D disperso de la escena, haciendo uso de la técnica conocida como Structure From Motion. En base a este mapa disperso, se utilizarán técnicas de correlación y procesado de nubes de puntos 3D para generar un mapa denso de la superficie. En el caso de mapas 3D dispersos, se ha realizado una implemen- tación en C++ haciendo uso de funciones de la librería OpenCV y PCL, mientras que para el mapeado denso se introducirá el uso del paquete open-source MICMAC. 5.2 modelo de caja negra De forma resumida, el esquema de software o pipeline que conlleva la generación de mapas 3D puede verse como un modelo de caja negra donde obtenemos unas salidas a partir de unas entradas dadas. Aunque se profundizará más adelante en el interior de esa caja, en esta sección se realizará esa abstracción para estudiar cuales son las necesidades desde el punto de vista entrada-salida. Figura 15: Modelo de caja negra de la generación de mapas 3D En la figura 15 se presenta este tipo de modelos, los cuales son típicos de empresas que ofrecen servicios de mapeado 3D como por ejemplo, Pix4D. Aparte de las propias imágenes aéreas, se necesita información sobre el posicionamiento de la cámara en un sistema de coordenadas así como de los parámetros relativos al proceso de 29

Transcript of ALGORITMOS DE MAPEADO 3D -...

5A L G O R I T M O S D E M A P E A D O 3 D

5.1 introducción

A continuación se presentan los diferentes algoritmos que componencada una de las partes que se ocupan de la generación de mapas 3D.Típicamente, este proceso se divide en dos etapas: en la primera segenera un mapa 3D disperso de la escena, haciendo uso de la técnicaconocida como Structure From Motion. En base a este mapa disperso,se utilizarán técnicas de correlación y procesado de nubes de puntos3D para generar un mapa denso de la superficie.

En el caso de mapas 3D dispersos, se ha realizado una implemen-tación en C++ haciendo uso de funciones de la librería OpenCV yPCL, mientras que para el mapeado denso se introducirá el uso delpaquete open-source MICMAC.

5.2 modelo de caja negra

De forma resumida, el esquema de software o pipeline que conllevala generación de mapas 3D puede verse como un modelo de cajanegra donde obtenemos unas salidas a partir de unas entradas dadas.Aunque se profundizará más adelante en el interior de esa caja, enesta sección se realizará esa abstracción para estudiar cuales son lasnecesidades desde el punto de vista entrada-salida.

Figura 15: Modelo de caja negra de la generación de mapas 3D

En la figura 15 se presenta este tipo de modelos, los cuales sontípicos de empresas que ofrecen servicios de mapeado 3D como porejemplo, Pix4D. Aparte de las propias imágenes aéreas, se necesitainformación sobre el posicionamiento de la cámara en un sistemade coordenadas así como de los parámetros relativos al proceso de

29

30 algoritmos de mapeado 3d

calibración. En las siguientes secciones se describen estos parámetroscomúnmente conocidos como parámetros extrínsecos e intrínsecos

respectivamente, además de describir el formato de las imágenes ylos mapas 3D obtenidos.

5.2.1 Imágenes aéreas

Desde el punto de vista de los algoritmos de reconstrucción 3D, lasimágenes utilizadas para tal fin deben cumplir una serie de requisitoslos cuales se muestran a continuación:

• Calidad de la imagen: Las imágenes que se usen deben estarbien enfocadas y con una iluminación acorde a la escena a re-construir. Para ello, hay que configurar adecuadamente paráme-tros de la cámara relacionados con la exposición o la sensibili-dad ISO.

• Solapamiento entre imágenes: Como ya se mencionó anterior-mente, el principio de reconstrucción 3D se basa en el estableci-miento de correspondencias entre las imágenes captadas. Paraello, habrá que diseñar un plan de vuelo acorde a un solapa-miento previamente calculado.

• Contenido: Para poder establecer esas correspondencias, es ne-cesario que la imagen sea rica en lo que a textura se refiere.Fenómenos atmosféricos como destellos o sombras provocaránunas imágenes que no serán aptas para la generación de mapas3D. Por este mismo motivo, se debe evitar las zonas homogé-neas como mares o grandes campos, en los cuales los algoritmosutilizados fallan.

• Resolución: A más resolución, más características podremos ob-tener de una imagen, lo que mejorará considerablemente la re-solución espacial del resultado final, al disminuir la GSD. Lascámaras actuales ofrecen la posibilidad de captar imágenes conuna resolución en torno a los 16 megapíxeles.

En resumen, antes del proceso de adquisición de imágenes se nece-sita un estudio previo sobre el terreno a mapear, ya que los paráme-tros arriba expuestos dependen sensiblemente del diseño de un buenplan de adquisición. Para un estudio más profundo, se recomienda lalectura del capítulo 3: Diseño de un vuelo para mapeado 3D, dondese dan las pautas necesarias para cumplir con estos requisitos.

5.2.2 Parámetros extrínsecos

Los parámetros extrínsecos (ver tabla 2) definen la transformación dela posición de la cámara a lo largo del tiempo en un sistema de re-

5.2 modelo de caja negra 31

ferencia global. Es necesario pues, realizar un tracking o seguimientode la cámara para cada una de las imágenes tomadas.

Parámetro extrínseco Descripción del parámetro

Rx,Ry,Rz Ángulos de rotación para la transformación delsistema de referencia global al de la cámara.

Tx, Ty, Tz Componentes de traslación para la transforma-ción del sistema de referencia global de cadaimagen.

Tabla 2: Definición de parámetros extrínsecos

Como se verá más adelante, esta información de posicionamientotambien puede obtenerse mediante el establecimiento de puntos encomún entre cada una de las imágenes. Sin embargo, es necesarioinformación externa para deshacer la ambigüedad de proyección queexiste utilizando este método. En el caso de integración de cámarasfotográficas en un UAV, se puede asignar a cada imagen un datoproveniente de los sensores inerciales (GPS/IMU) para representarel movimiento de la cámara en un sistema de coordenadas dado. Apartir de estos datos, se crearán unas matrices de traslación y rotaciónque definan ese movimiento, de manera que la matriz de proyecciónP sea:

P = [R|t] (9)

5.2.2.1 Matriz de traslación

Puesto que una traslación es un caso particular de transformaciónafín pero no una transformación lineal, generalmente se usan coorde-nadas homogéneas para representar la traslación mediante una ma-triz y poder así expresarla como una transformación lineal sobre unespacio de dimensión superior.

Así un vector tridimensional T = (Tx, Ty, Tz) puede ser reescritousando cuatro coordenadas homogéneas de manera que :

t = (Tx, Ty, Tz, 1)′

(10)

Por último, debido a que el sistema de ecuaciones que resolveremosmás adelante es lineal, se hará uso de un sistema de coordenadas car-tesiano. Usualmente, los GPS que se encuentran a bordo de los UAVobtienen la posición en coordenadas WGS84, el cual utiliza un siste-ma de coordenadas esférico. Será necesario pues una transformacióna otro tipo de sistemas cartesianos como por ejemplo UTM.

5.2 modelo de caja negra 33

En general, cualquier rotación puede expresarse como el productode las matrices anteriores. Al tratarse de producto de matrices, nocumple la propiedad conmutativa por lo que es importante el ordende aplicación. Por ejemplo, si aplicamos los giros en el orden yaw,pitch y roll, obtenemos una matriz de rotación resultante:

Rn = Rψ · Rθ · Rφ (14)

Rn =

cosθcosψ cosθsenψ −senθ

cosψsinθsenφ− senψcosθ cosψcosφ+ senθsenψsenφ cosθsenφ

cosψsenθcosφ+ senψsenφ senψsenθcosφ− cosψsenφ cosθcosφ

(15)

Por tanto, para el calculo de la matriz de rotación habrá que teneren cuenta cual es el sistema de referencia y aplicar la transformaciónen el orden correcto. Como en el caso anterior, se asignará a cada ima-gen unos ángulos de Euler concretos los cuales serán proporcionadospor los sensores inerciales a bordo del UAV.

5.2.3 Parámetros intrínsecos

Los parámetros intrínsecos sirven para efectuar la transformación deun punto en 3D en el sistema de referencia de la cámara a un puntoen 2D en el sistema de coordenadas de la imagen, y su descripción semuestra en la tabla 3

Parámetro intrínseco Descripción del parámetro

fx, fy Distancia focal efectiva en el modelo de cáma-ra estenopéica, que equivale a la distancia delorigen de coordenadas de la cámara al planode la imagen.

s Factor de skew

Cx,Cy Coordenadas (en píxeles) del centro de distor-sión radial de la imagen.

Tabla 3: Definición de parámetros intrínsecos

Asociada a estos parámetros, se define la matriz K, tal que:

K =

fx s cx

0 fy cy

0 0 1

(16)

A continuación se realiza algunas generalizaciones con respecto aesta matriz:

34 algoritmos de mapeado 3d

1. El factor skew es cero.

2. Los píxeles son cuadrados fx = fy.

3. El punto principal (Cx,Cy) es conocido y suele coincidir con elcentro de la imagen.

Existen parámetros intrínsecos no lineales como las distorsiones delente que no son contempladas por este tipo de modelo de cámara.Sin embargo existen muchos algoritmos de calibración para calcularcada uno de estos parámetros, entre los más famosos se encuentra elalgoritmo de Tsai [16]

5.2.4 Mapas 3D

Prosiguiendo con el modelo de caja negra, a continuación se detallanlos principales outputs o salidas del sistema de generación de mapas3D:

• Mapa 3D disperso: En una primera etapa, se reconstruye la es-tructura a partir del establecimiento de correspondencias entreimagenes. Debido a que los detectores de caracteristicas detec-tan un número pequeño de puntos en común, el mapa obtenidoes un mapa disperso. La densidad del mapa suele rondar el mi-llón de puntos 3D y el formato más usado es el .ply

• Mapa 3D denso: Posteriormente, se utiliza la estructura anteriorcomo esqueleto para utilizar técnicas de correlación que permi-tan expandir regiones y densificar el mapa. Obtenemos así ma-pas con densidades en torno a los 5 o 6 millones de puntos ycuyo formato más común es el .obj

• Ortomosaico: Una vez tenemos el mapa 3D denso, se realizauna vista ortogonal del mismo para la creación de un ortomo-saico geo-referenciado. Los formatos más comunes son el .TIFFy el .GEOTIFF debido a la posibilidad de incluir metadatos degeolocalización, para su posterior procesado en programas soft-ware GIS tales como arcGIS o similares.

• Ficheros KML: Por último, se propone tambien la generaciónde los ficheros .KML necesarios para compatibilizar el mapacon los servicios ofrecidos por Google Earth, lo cual es muy útilpara aplicaciones que usen esa plataforma.

En la figura 17 se muestra la diferencia entre un mapa disperso yuno denso al aplicar los algoritmos de mapeado 3D sobre un datasetproporcionado por la empresa Elimco.

36 algoritmos de mapeado 3d

Figura 18: Esquema general de generación de mapas dispersos (Structure from Motion).

una imagen para resolver cierto problema. Estos rasgos o features enla imagen pueden tratarse de puntos aislados, curvas o regiones co-nectadas.

La detección de características puede verse como una operación debajo nivel, ya que se examina cada píxel en busca de un determinadopatrón. Normalmente este bloque suele ser el primero en una cadenade procesado mayor, por lo que la bondad del algoritmo completosuele depender en parte de estos detectores.

Debido a que muchos algoritmos de visión artificial empiezan conuna extracción de características, existen varios operadores como Canny,Sobel o el detector de esquinas de Harris. Sin embargo, para la gene-ración de un modelo 3D disperso, se necesita la mayor cantidad decaracterísticas posible además de que el detector sea capaz de identi-ficar características ante cambios de escala y rotación, pues se proce-sarán imágenes desde diferentes ángulos.

Con el objetivo de elegir el mejor descriptor de características, sepresenta a continuación el trabajo recogido en [15], en el que se so-mete una imagen a diferentes transformaciones para comparar la efi-ciencia de varios extractores de características.

5.3.1.1 Test de rotación

En este test se ha rotado la imagen original 360º con respecto a sucentro con el objetivo de ver la dependencia de la extracción de carac-terísticas con la rotación. Como se puede observar, todos los descrip-tores escogidos son invariantes a rotación excepto BRIEF, por lo quese obtienen buenos resultados en general.

5.3 mapas 3d dispersos 37

Figura 19: Prueba de rotación para extractores de características

5.3.1.2 Test de escalado

Figura 20: Prueba de escalado para extractores de características.

Para la realización de este test, se ha escalado la imagen originaldesde 0.25X hasta 2X con el propósito de ver como actúan los descrip-tores de características ante cambios de escala. El resultado muestracomo SIFT y SURF poseen una mejor estabilidad debidos a que sonmás costosos computacionalmente hablando.

38 algoritmos de mapeado 3d

Figura 21: Prueba de rendimiento para extractores de características.

5.3.1.3 Test de rendimiento

La figura 21 muestra el tiempo de extracción para N características, elcual crece de manera lineal teniendo en cuenta la escala logarítmicadel eje y.

5.3.1.4 Elección del extractor de características

En conclusión, para obtener un modelo 3D disperso necesitamos es-tablecer el mayor número de correspondencias posibles así como con-fiar en que estas correspondencias sean invariantes a escalado y ro-tación. En nuestro caso, el tiempo de computación no es un factorlimitante por tanto, la mejor opción disponible actualmente se basaen el uso de descriptores SIFT o SURF.

Para finalizar, en la figura 22 se ha realizado una prueba de extrac-ción de características utilizando los descriptores SIFT disponibles enOpenCV, donde se puede apreciar la dependencia del contenido dela imagen con el número de características detectadas.

5.3.2 Establecimiento de correspondencias

Una vez se han extraído las diferentes características, debemos reali-zar un seguimiento de esos puntos en el resto de imágenes captadas.Por tanto, hay que ordenar el set de imágenes para ver cuales poseenzonas de solape. La opción más fácil sería comparar todas con todasen busca de puntos en común, lo cual es extremadamente ineficienteen datasets de centenares de imágenes de alta resolución. En vistas arealizar una comparación más eficiente, se proponen dos alternativas:

40 algoritmos de mapeado 3d

Figura 23: Resultado del proceso de matching entre dos imágenes aéreas con-secutivas.

Si la distancia del mejor candidato es pequeña y la del segundo esmuy grande, se acepta con seguridad la elección del primero, pues esclaramente la mejor opción. Recíprocamente, si la distancia de amboscandidatos son del mismo orden de magnitud, existe la posibilidadde cometer un error si elegimos uno u otro, por lo que se eliminaríanesos puntos.

5.3.2.2 Filtro de simetría

Si tenemos dos imágenes, todo el proceso de establecimiento de co-rrespondencias se realiza en ambos sentidos con el objetivo de poderestablecer una similitud entre ambos sets de emparejamientos.

Una vez se ha eliminado outliers mediante el test de distancia, seaplica este filtro con el objetivo de eliminar aquellos puntos que nocumplan con una determinada regla de simetría. Esta regla consisteen comprobar si la correspondencia es la mejor en ambas direcciones,es decir, se calcula los mejores candidatos en ambas direcciones y ,en caso de no coincidencia, se eliminan, al ser considerados falsasdetecciones.

5.3.2.3 Filtro basado en la geometría Epipolar

Como última etapa se propone un filtrado mediante el uso de las res-tricciones propuestas por la geometría epipolar. Después del filtradoanterior, se deben haber eliminado la mayoría de outliers, por lo quedespués de esta última etapa, la mayoría de los puntos emparejadosserán correctos.

De acuerdo con [18], consideremos dos imágenes consecutivas cap-tadas por una cámara, tal y como se muestra en la siguiente figura:

Con el objetivo de encontrar la imagen x de un punto 3D X, se pue-de trazar la linea que une este punto 3D con el centro de proyección

5.3 mapas 3d dispersos 43

común anteriormente calculados y filtrados. Se pretende estimar unpunto 3D que cumpla con esas proyecciones, por tanto:

x′

= P′

X x = PX (19)

Estas ecuaciones pueden combinarse de la forma AX=0 , la cuales una ecuación lineal en X. Como se desarrolla en [20], A es de laforma:

A =

xp3T − p1T

xp3T − p2T

xp′3T − p

′1T

xp′3T − p

′2T

(20)

donde piT son las filas de P. Se tienen 4 ecuaciones con 4 incógnitashomogéneas. Esto es un sistemas de ecuaciones redundante, ya que lasolución está determinada para un cierto factor de escala. Desde [21]se propone la implementación de una solución iterativa que permiteresolver este sistema de ecuaciones, con el objetivo de reconstruir lospuntos 3D proyectados.

Por último hay que especificar que los resultados obtenidos siem-pre tendrán un cierto grado de error, debido a que a lo largo delproceso hay muchos puntos en los que se va perdiendo precisión yacumulando grados de error. Por ejemplo, estamos situando la pro-yección de X en el plano de imagen exactamente en un píxel, cuandopuede darse en el espacio sub-píxel, o podemos tener errores de co-rrespondencia que generen modelos no válidos e introduzcan erroren la estimación. Una medida geométrica denominada error de re-proyección cuantifica este error, al medir la distancia entre el puntooriginal xi y la proyección del punto 3D obtenido xRi = Pi · X de talmanera que:

errorrep =∥

∥xi − xRi

∥ (21)

5.3.4 Bundle Adjustment

Sean n puntos 3D vistos desde M vistas diferentes , xRij la re-proyeccióndel punto i en la imagen j y xij el punto original. Sea vij una variablebinaria igual a 1 si el punto i es visible en la imagen j y 0 en caso con-trario. Se define bundle adjustment como el proceso que minimiza elerror de reproyección total de tal manera que:

minaj,bi

n∑

i=1

m∑

j=1

vij

∥xij − xRij

∥ (22)

44 algoritmos de mapeado 3d

Para conseguir reducir el error de reproyección se utiliza un al-goritmo de minimización no lineal robusto que modifica los valoresestimados de los parámetros conjuntamente, o dicho de otra forma,intenta ajustar el grupo (bundle) de rayos que unen las proyecciones ylos puntos físicos de tal forma que el error de reproyección sea el me-nor posible. Este método fue creado en el campo de la fotogrametríadurante la década de 1950 y ha incrementado su uso en los últimosaños gracias a los avances en visión artificial.

Al tratarse de un problema de optimización sobre una función nolineal, bundle adjustment hace uso de algoritmos de mínimos cua-drados. El más conocido, Levenberg-Marquardt (LM) ha probado seruno de las mejores opciones debido a su fácil implementación y rápi-da convergencia.Para poder empezar con la optimización, LM necesi-ta un punto de partida, un conjunto de valores para los parámetros ylas mediciones de error para dichos parámetros. A cada iteración deLM se calcula un nuevo conjunto de parámetros que reduce el error,hasta llegar a la solución óptima, y la modificación que se produceentre una iteración y la siguiente es aquella que minimiza el error enun cierto grado.

En cuanto a su implementación, existen herramientas open sourcecomo sba [22] el cual implementa en el lenguaje de programación C++una versión dispersa del algoritmo LM especialmente adaptado a re-construcción 3D. En la figura 27 se ha representado de manera gráficael error de reproyección con el objetivo de ver el efecto de bundle ad-justment. En 27a el error de reproyección era de unos 400 píxeles demedia mientras que en 31b el error disminuye hasta 0,3 píxeles. Cabeaclarar que el error de reproyección es una medida geométrica, porlo que no corresponde con medidas de error absolutas.

5.4 mapas 3d densos

Hasta ahora, el procedimiento seguido para la reconstrucción de unpunto 3D aislado ha sido localizar ese punto en las imágenes de lasque disponemos y mediante técnicas de triangulación y optimización,calcular su coordenada 3D. Como ya se mencionó anteriormente, lamedia de puntos emparejados entre dos imágenes suele rondar los10.000 píxeles en imágenes cuya resolución ronda los 14 millones depíxeles. El rendimiento de detección es muy bajo y , por consiguiente,el mapa 3D obtenido es disperso. Por tanto, el objetivo de esta eta-pa consiste en expandir esas regiones de correspondencia haciendouso de técnicas de correlación. Para ello, se explicará la implementa-ción sugerida por el IGN francés a través de su librería open-sourceMICMAC

46 algoritmos de mapeado 3d

(a) Imagen escalada 2k k=1. (b) Imagen escalada 2k k=3.

(c) Imagen escalada 2k k=5. (d) Imagen escalada 2k k=7.

Figura 28: Ejemplo de aproximación multi-resolución.

5.4.2 Función de energía

El principal objetivo del establecimiento de correspondencias es cal-cular una función Fz con la restricción de que las imágenes que seapliquen sean similares (de hecho serán las utilizadas en la aproxima-ción piramidal).

Sea:

• Corr(x,y, Fz(x,y))) > 0 un criterio para medir la similitud en-tre las diferentes imágenes. Cuando Corr=0 las imágenes sonperfectamente idénticas.

• ▽(Fz) el gradiente de Fz.

•∥

∥▽(Fz)

reg

la norma del gradiente que es usada como un pará-metro de regulación (penaliza la variación de Fz).

Se define la función de energía a minimizar como:

ε(Fz)

∫∫

Corr(x,y, Fz(x,y) +∥

∥▽(Fz)

reg

(23)

5.4 mapas 3d densos 47

Para minimizar esta función varios son los algoritmos propuestospor MICMAC. El primero de ellos trata de buscar el mínimo absoluto,lo cual es muy ineficiente computacionalmente hablando en proble-mas de dos dimensiones. Al contrario, el segundo algoritmo se basaen el cálculo un pseudo-óptimo a través de programación dinámica.Este último método tiene la ventaja de ser mucho más rápido que elanterior, además de que puede ser generalizable para problemas dedos dimensiones.

5.4.3 Coeficiente de correlación

Como criterio para establecer correspondencias, MICMAC hace usodel coeficiente de correlación ZNCC (Zero-mean Normalized CrossCorrelation). Este criterio se adapta bien a la generación de mapas,debido a que entre las imágenes existe variación de intensidad y con-traste. La correlación en el punto x = (x,y)T en un entorno de vecin-dad △ = (△x,△y)T se define:

Corrx(△) =

(I(x+ i) − I(x))(I′

(x+△+ i) − I′

(x+△))

(∑

i(I(x+ i) − I(x))2∑

i(I′

(x+△+ i) − I′

(x+△)2)12

(24)

donde I y I′

hace referencia al valor medio de la intensidad de laventana elegida y centrada en x.

Por último, la figura 29 muestra los mapas de correlación haciendouso de la aproximación multi-resolución mencionada anteriormente.

5.4.4 Procesado de la nube de puntos

Una vez tenemos el mapa 3D densificado, es necesario aplicar unpost-procesado a la nube de puntos obtenida con el objetivo de textu-rizar y dar continuidad al mapa. El principal problema de las técnicasde correlación es que no solucionan el problema de las occluded zones

o zonas oscuras. Este problema está presente debido a la presenciade zonas homogéneas en la imagen las cuales poseen un coeficientede correlación ZNCC bajo. En vistas a obtener un modelo continuo,se propone a continuación el uso de técnicas de interpolación 3D quepermitirá la obtención de un modelo triangular del mapa 3D.

5.4.4.1 Triangulación de Delaunay

La triangulación de Delaunay consiste en la creación de una red detriángulos a partir de un set de puntos aislados los cuales cumplen lacondición de Delaunay.

48 algoritmos de mapeado 3d

(a) Mapa de correlación escalado 2k k=1. (b) Mapa de correlación escalado 2k k=3.

(c) Mapa de correlación escalado 2k k=5. (d) Mapa de correlación escalado 2k k=7.

Figura 29: Comparativa de diferentes sistemas de captación de imágenes.

Según la definición de Delaunay la circunferencia circunscrita es va-cía, si no contiene otros vértices aparte de los tres que la definen. Lacondición de Delaunay dice que una red de triángulos es una triangu-lación de Delaunay si todas las circunferencias circunscritas de todoslos triángulos de la red son vacías. Esa es la definición original pa-ra espacios bidimensionales. Sin embargo, es posible ampliarla paraespacios tridimensionales usando la esfera circunscrita en vez de lacircunferencia circunscrita.

En la figura 46 se puede observar un ejemplo de triangulación deDelaunay

5.4.4.2 Reconstrucción de superficies de Poisson

El algoritmo de reconstrucción de superficies de Poisson es una apro-ximación que permite el cálculo de superficies como una solución a

5.4 mapas 3d densos 49

(a) Puntos iniciales. (b) Creación del mo-delo triangular

(c) Aplicación de lacondición de De-launay

Figura 30: Triangulación de Delaunay.

una ecuación de Poisson. De acuerdo con [23] primero se calcula elindicador de función de la figura, definido como:

χM(p) =

{

1 ifp ∈M

0 ifp /∈M(25)

Además se sabe que existe una relación entre los puntos muestrea-dos de una superficie y el indicador de función del modelo. Másespecíficamente, el gradiente del indicador de función es un campovectorial que es cero en casi todo el modelo excepto en los puntoscercanos a la superficie, donde es igual a la normal en ese punto.Entonces, el problema se resume en encontrar una función escalar χcuyo gradiente mejor se aproxime al campo vectorial ~V tal que:

minχ

∥▽χ− ~V

∥ (26)

Aplicando el operador de divergencia, este problema se transformaen un problema de Poisson:

▽ · (▽χ) = ▽ · ~V ⇔ ▽2χ = ▽ · ~V (27)

Existen varias implementaciones de estos algoritmos aunque la quese ha hecho uso para este proyecto es la implementación en la libreríade tratamiento de nubes de puntos PCL [6]. La figura 31muestra elmodelo triangular haciendo uso de la implementación del algoritmode Poisson. Se ha realizado la triangulación sobre el modelo dispersocon vistas a observar mejor la interpolación realizada.

50 algoritmos de mapeado 3d

(a) Reconstrucción de superficies de Poisson sobre modelo 3D disperso

(b) Visualización octree del mapa 3D.

Figura 31: Ejemplo de técnicas de reconstrucción de superficies