SciELO - Scientific Electronic Library Online

 
vol.74 número152MODELLING OF THE POLLUTANT FRONTS GENERATED BY PIPELINE FUEL TRANSPORTATIONTHE EFFECT OF ALTITUDE ON THE THERMOECONOMIC ANALYSIS OF A COGENERATION SYSTEM índice de autoresíndice de assuntospesquisa de artigos
Home Pagelista alfabética de periódicos  

Serviços Personalizados

Journal

Artigo

Indicadores

Links relacionados

  • Em processo de indexaçãoCitado por Google
  • Não possue artigos similaresSimilares em SciELO
  • Em processo de indexaçãoSimilares em Google

Compartilhar


DYNA

versão impressa ISSN 0012-7353versão On-line ISSN 2346-2183

Dyna rev.fac.nac.minas v.74 n.152 Medellín maio/ago. 2007

 

MÉTODO DE LLENADO DE HUECOS EN MALLAS TRIANGULARES EMPLEANDO FUNCIONES DE BASE RADIAL

METHOD OF  HOLE-FILLING  ON TRIANGULAR MESHES USING LOCAL RADIAL BASIS FUNCTION

JOHN WILLIAM BRANCH
Escuela de Sistemas, Universidad Nacional de Colombia  Sede Medellín jwbranch@unalmed.edu.co

FLAVIO PRIETO
Departamento de Eléctrica, Electrónica y Computación, Universidad Nacional de Colombia  Sede Manizales faprietoo@unal.edu.co

PIERRE BOULANGER
Department of Computing Science, Alberta of University, Canada pierreb@cs.ualberta.ca

Recibido para revisar 29 de Septiembre de 2006, aceptado 12 de Febrero de 2007, versión final 19 deMarzo de 2007

RESUMEN: La creación de modelos de objetos reales es una tarea compleja para la cual se ha visto que el uso de técnicas tradicionales de modelamiento tiene restricciones. Para resolver algunos de estos problemas, los sensores de rango basados en láser se usan con frecuencia para muestrear la superficie de un objeto desde varios puntos de vista, lo que resulta en un conjunto de imágenes de rango que son registradas e integradas en un modelo final triangulado. En la práctica, debido a las propiedades reflectivas de la superficie, las oclusiones, y limitaciones de acceso, ciertas áreas de la superficie del objeto usualmente no son muestreadas, dejando huecos que pueden crear efectos indeseables en el modelo integrado. En este trabajo, presentamos un nuevo algoritmo para el llenado de huecos a partir de modelos triangulados. El algoritmo comienza localizando la frontera de las regiones donde están los huecos. Un hueco consiste de un camino cerrado de bordes de los triángulos en la frontera que tienen al menos un borde que no es compartido con ningún otro triangulo. El borde del hueco es entonces adaptado mediante un B-Spline donde la variación promedio de la torsión del la aproximación del B-spline es calculada. Utilizando un simple umbral de la variación promedio a lo largo del borde, se puede clasificar automáticamente, entre huecos reales o generados por intervención humana. Siguiendo este proceso de clasificación, se usa entonces una versión automatizada del interpolador de funciones de base radial para llenar el interior del hueco usando los bordes vecinos.

PALABRAS CLAVE: Funciones de Base Radial, Reconstrucción 3-D, Objetos de Forma Libre.

ABSTRACT: Creating models of real objects is a complex task for which the use of traditional modeling techniques has proven to be difficult. To solve some of these problems, laser rangefinders are frequently used to sample an objects surface from several viewpoints resulting in a set of range images that are registered and integrated into a final triangulated model. In practice, due to surface reflectance properties, occlusions and accessibility limitations, certain areas of the object’s surface are usually not sampled, leaving holes which create undesirable artifacts in the integrated model. In this paper, we present a novel algorithm for the automatic hole-filling of triangulated models. The algorithm starts by locating hole boundary regions. A hole consists of a closed path of edges of boundary triangles that have at least an edge, which is not shared with any other triangle. The edge of the hole is then fitted with a b-spline where the average variation of the torsion of the b-spline approximation is calculated. Using a simple threshold of the average variation of the torsion along the edge, one can automatically classify real holes from man-made holes. Following this classification process, we then use an automated version of a radial basis function interpolator to fill the inside of the hole using neighboring edges.

KEY WORDS: Radial Basic Functions, 3-D Reconstruction, Free Form Objects.

 

1. INTRODUCCIÓN

Crear modelos precisos de ambientes reales no es una tarea trivial y para ello las técnicas tradicionales de modelado son inadecuadas [3, 13]. Los sensores de rango pueden medir la forma de la superficie de un objeto con gran exactitud y resolución. Sin embargo, para hacer un modelo completo generalmente se requieren múltiples vistas. Características de la superficie como: la baja reflectancia, las oclusiones y las limitaciones de accesibilidad hacen que el escáner pierda algunas superficies, conduciendo a una reconstrucción incompleta de la escena, y muchas veces introduciendo huecos en los modelos resultantes. Crear representaciones 3-D de alta calidad, basadas en información incompleta es un desafío [15]. Debido a los costos y a las dificultades implicadas en el escaneo de ambientes reales, es absolutamente deseable tener herramientas automáticas o semiautomáticas para ayudar a los usuarios a mejorar la calidad del conjunto de datos incompletos.

Tradicionalmente, la corrección de huecos en los modelos digitales es realizada por técnicas de post-procesamiento, aplicadas después de la etapa final de la reconstrucción de superficies. Sin embargo, en algunos casos se asume que la superficie del objeto es continua. Los huecos son corregidos implícitamente durante la etapa de ajuste de la superficie. Inicialmente, los intentos por resolver el problema de la corrección de huecos  se basaron en la reparación directa de la representación en malla triangular.

Generar superficies completas en regiones con falta de información implica: primero, la identificación de huecos, y segundo, la generación de nuevos datos en esas zonas. Desafortunadamente, ninguno de estos problemas es trivial, debido a que los huecos creados durante el proceso de escaneo de objetos geométricamente ricos, puede ser bastante complejo [5]. No obstante, en muchos casos, los huecos ocurren en imágenes de rango que pueden ser topológicamente más simples. Este es el caso de muchos huecos encontrados cuando se escanean ambientes interiores, donde la mayoría de las superficies tienden a ser suaves y abundan las áreas planas.

Los trabajos existentes sobre llenado de huecos se basan en la construcción de una superficie implícita de los datos que interpolan el hueco. Una parte significativa de tal investigación, integra el proceso de llenado del hueco en la reconstrucción de la superficie. Carr et al. [3] proponen un método para reconstruir superficies a partir de nubes de puntos usando Funciones de Base Radial (RBF), la corrección de los huecos se logra de manera implícita reconstruyendo la totalidad de la superficie mediante la interpolación de todos los puntos. En este trabajo se asume la continuidad en la totalidad de la superficie del objeto, es decir, que cualquier hueco o discontinuidad es corregida. Sin embargo, en objetos reales existen discontinuidades que pertenecen a la superficie original y que deben permanecer en las representaciones digitales finales.

En este artículo se propone un nuevo algoritmo para identificar y llenar automáticamente los huecos en regiones asociadas con superficies suaves mediante interpoladores de funciones de base radial locales. El algoritmo toma una malla triangulada, la cual es analizada para detectar la existencia de bordes que pertenecen a un solo triángulo. La ocurrencia de un hueco implica la existencia de un ciclo definido por los bordes de la frontera. Así, una vez que se encuentra un borde de frontera, el algoritmo traza la frontera completa. Los puntos cercanos al hueco se usan para adaptar una superficie usando un interpolador de RBF. Un objetivo importante de nuestro algoritmo es garantizar que los parches reconstruidos se ajusten suavemente a la superficie original; más aún, la superficie reconstruida deberá preservar el muestreo de la malla original. La efectividad de nuestro algoritmo es demostrado empleando conjuntos de datos reales.

El resto del trabajo está organizado de la siguiente manera: En la sección 2, se presenta una introducción a las funciones de base radial. En la sección 3, se describe el método propuesto para el llenado de huecos en mallas triangulares empleando funciones de base radial. En la sección 4, se discuten los resultados obtenidos usando el algoritmo propuesto y por último, en la sección 5, se presentan las conclusiones.

 

2. FUNCIONES DE BASE RADIAL

Debido a los avances en computación y a la disponibilidad de hardware de altas prestaciones, en las dos últimas décadas se ha dado un creciente interés por las aplicaciones de la interpolación multivariable en muchas áreas de la ciencia y la ingeniería, tales como la computación gráfica, sistemas CAD, imágenes médicas, sistemas de información geográfica, entre otras. En las aplicaciones originadas en problemas reales, los datos que se deben interpolar están colocados de manera dispersa; por ello, se necesitan algoritmos aplicables a una distribución arbitraria de puntos. Tales algoritmos existen y son bien conocidos para el caso univariado, pero las dificultades se aumentan en el caso multivariado. Las funciones de base radial constituyen una herramienta que facilita la solución del problema de interpolación de datos dispersos en varias variables [10].

El problema de la reconstrucción se puede modelar considerando los datos en la forma . En el caso particular de nubes de puntos provenientes de imágenes de rango, se tiene un conjunto  que se pueden ver en la forma  donde

 y .

Se asume que los datos obedecen a una representación funcional  y queremos encontrar un interpolante  que aproxime a .

Un interpolante de base radial tiene la forma:

Donde  y en el caso de superficies la,  es un polinomio de grado pequeño y  son los pesos o escalares que se determinan con las condiciones de interpolación, es la norma Euclideana y  es una función  continua y fija de una sola variable,  es el número de puntos que se utilizan para la interpolación.

Se puede decir entonces que la aproximación  representa combinaciones lineales de traslaciones de una función fija que es radialmente simétrica con respecto a la norma euclídea, lo cual la hace sencilla de implementar.

Frecuentemente se dirá que el punto  es un centro de la función interpolante de base radial. Más aún, es usual referirse a  como la función de base radial, si se entiende que ésta es evaluada en la norma euclídea.

Los valores  se determinan resolviendo el sistema de ecuaciones siguiente:

Es decir, para el caso de superficies

Formando el sistema de ecuación, donde la matriz  está definida así:

Es fácil ver que la matriz de interpolación  es simétrica y además puede ser una matriz definida positiva con una selección apropiada de la función básica , es decir, para cualquier conjunto finito  de  puntos diferentes, se cumple [12]:

Para cualquier vector

. Esto hace que el sistema  tenga siempre solución y puede resolverse directamente por un método de descomposición LU.

Duchon [6] propone el uso de la función  para la interpolación en 3-D, obteniéndose una superficie  (infinitamente derivable). Aunque con esta elección  puede ser singular para conjuntos de puntos no triviales con centros diferentes.

En la Tabla 1 y en la Figura 1 se muestran algunas funciones de base radial típicamente usadas.

Tabla 1. Funciones de base radial típicamente usadas [1].
Table 1. Typically used radial basis functions [1]


Figura 1.
Funciones de base radial [9]
Figure 1. Radial Basis Functions [9]

Funciones de Base Radial de Soporte Compacto (RBF-SC).
Las funciones de base radial se pueden clasificar de acuerdo con su soporte en: funciones de soporte compacto y funciones de soporte global.

Una función básica  es de soporte compacto si existe un intervalo cerrado  tal que, , es decir,  se anula por fuera de un intervalo cerrado. Si el interpolante  se construye usando funciones de base radial de soporte compacto, la matriz definida en la ecuación , es una matriz dispersa (con gran cantidad de entradas nulas), puesto que  se anula en una gran cantidad de valores; en otras palabras, una gran cantidad de centros dejan de tener influencia sobre los otros. A la vez desde el punto de vista computacional, resolver un sistema con una matriz dispersa es más eficiente que con una matriz densa.

Por otra parte, las funciones que no son de soporte compacto se llaman de soporte global, por ejemplo, las funciones de la Tabla 1 son de soporte global.

Una definición típica de una RBF-SC tiene la forma:

Donde  es una función polinómica,  es el radio de soporte y  se conoce como parámetro de escalamiento.

Obsérvese que este tipo de funciones se anulan para valores de  fuera del intervalo , lo que hace particularmente interesante la interpolación con estas funciones, pues al escalar  adecuadamente la interpolación toma la forma local. Esto es, se produce un ajuste que es localmente detallado.

Wendland [14] construyó distintas funciones de base radial de soporte compacto, de tipo polinómico de mínimo grado, para un orden de suavidad dado, algunas de estas funciones se presentan en la Tabla 2. El radio de soporte de cada una de estas funciones está normalizado en 1, pero puede ser fácilmente escalado a un radio de soporte  tomando . Se debe tener cuidado al seleccionar este radio de soporte, pues cuando éste se elige demasiado pequeño, la vecindad local a una semilla o centro no aparecerá capturada correctamente (ver Figura 2(a)). Sin embargo, la selección de un radio muy grande decrementa la efectividad del algoritmo, al generar muchos datos diferentes de cero en la matriz de interpolación (ver Figura 2(b)).

Tabla 2. Funciones de base radial de soporte compacto de tipo polinómico.
Table 2. Radial basis function of compact support of polynomial type.


Figura 2.
Problemas con el tamaño del radio de soporte.
Figure 2. Problems with the support radius size.

 

3. MÉTODO DE LLENADO DE HUECOS EN MALLAS TRIANGULARES EMPLEANDO FUNCIONES DE BASE RADIAL.

La revisión de la literatura sobre la problemática de la integración de imágenes de rango revela numerosos intentos por resolver dicho problema. Encontrar la conexión correcta entre los puntos en tres dimensiones es generalmente un problema muy complejo. La presencia de ruido y el muestreo no uniforme en los datos constituyen también un problema difícil de resolver. Existen además enfoques paramétricos usando métodos variacionales basados en Ecuaciones Diferenciales Parciales (EDP), para los cuales es necesario disponer de una buena parametrización. Tal parametrización es casi imposible de obtener para topologías complejas. En general, la forma paramétrica carece de información sobre la profundidad y requiere de una parametrización global que hace difícil trabajar con deformaciones y cambios en la topología de la superficie [2].

Para el llenado de huecos se utilizan las RBF, ya que presentan ventajas comparativas frente a las técnicas típicamente empleadas para la corrección de anomalías topológicas en imágenes de rango [4, 13]. Con las RBF se obtiene una superficie implícita que permite aproximar superficies de objetos con pocos datos. La superficie reconstruida es localmente detallada y globalmente suave, pues el uso de RBF permite altos órdenes de suavidad, justificado en la selección de una adecuada familia de RBF.

Carr et al. [3] proponen un método para reconstruir superficies a partir de nubes de puntos usando funciones de base radial poliarmónicas, el proceso de integración se logra por medio del uso de una función implícita obtenida a partir de un subconjunto de puntos. En este proceso se utilizan métodos rápidos para el ajuste y la evaluación de la RBF, lo que permite una modelación del conjunto completo de puntos. Para la reducción del número de centros, se utiliza un proceso aleatorio, adecuado para reconstruir superficies a partir de datos muestreados no uniformemente. Las zonas con ausencia de información son llenadas suavemente durante la evaluación del interpolante mediante el cambio de la función base. La representación funcional genera un modelo sólido, lo que significa que los gradientes y las normales a la superficie se pueden determinar analíticamente, esto ayuda a generar mallas uniformes. La principal desventaja de este método es la utilización de todos los centros resultantes para el llenado de huecos, esto hace costoso el proceso computacional.

Reuter [11] presenta una técnica de modelamiento de superficies 3-D basada en los puntos, en ésta, las superficies son modeladas especificando un conjunto de puntos no ordenados sobre ellas y luego se calcula una representación de la nube de puntos usando RBF, el algoritmo garantiza un grado de continuidad especificado como un parámetro del método. El grado de continuidad deseado se logra adicionando al interpolante un polinomio definido para cada grado de suavidad [14], además la superficie es renderizada directamente con base en el conjunto de puntos.

Con el objetivo de corregir las anomalías topológicas relacionadas con la ausencia de información en mallas triangulares, es necesario generar nuevos puntos en regiones que no han sido sensadas correctamente, debido en su mayoría, a problemas de oclusión.

El método propuesto en este capítulo para el llenado de huecos en mallas triangulares se presenta en el Algoritmo 1, el cual consiste principalmente de tres etapas. Inicialmente se detectan los huecos analizando la malla triangular mediante la determinación de un camino cerrado de aristas límite. Posteriormente se analizan los huecos para determinar cuales deben ser llenados y cuales hacen parte de la topología del objeto. El análisis de los huecos consiste en estudiar la torsión de la curva del contorno de cada uno de éstos. Este análisis se basa en la idea que cada hueco que pertenece a la superficie es suave y regular, pero los huecos generados por la oclusión tienden a presentar grandes irregularidades reflejadas en altas variaciones de la torsión del contorno. El proceso de llenado de huecos es realizado mediante un procedimiento iterativo para la determinación de los nuevos puntos; estos puntos son generados mediante interpoladores locales de funciones de base radial, construidos a partir de un vecindario seleccionado alrededor del hueco, hasta alcanzar un umbral de ajuste establecido.


Algoritmo 1:
Método propuesto para la corrección de huecos en mallas triangulares.
Algorithm 1: Proposed method for the correction of holes on triangular meshes.

En los párrafos siguientes se explicará en detalle cada una de las etapas que componen el método propuesto.

3.1. Identificación del hueco.
En esta etapa es posible encontrar dos tipos de huecos presentes en la topología de un objeto, aquellos que pertenecen realmente a la superficie y aquellos que fueron causados por el proceso de adquisición, debido a la oclusión o por un mal proceso de escaneo (ver Figura 3).


Figura 3.
Tipos de huecos.
Figure 3. Hole types.

Inicialmente el algoritmo toma un triángulo semilla ubicado en cualquier parte de la malla y busca en toda la malla hasta encontrar un triángulo límite. Un triángulo límite  es aquel que posee por lo menos una arista que no es compartida por ningún otro triángulo, esto es , a esa arista se le denomina arista límite (ver Figura 4). A partir del primer triángulo límite encontrado se inicia una búsqueda recursiva para hallar el camino cerrado. Es decir, si el objeto es una malla triangular , un hueco consiste de un camino cerrado de aristas de triángulos límites.


Figura 4.
Triángulo límite.
Figure 4. Border Triangle

Esta búsqueda se realiza determinando la arista límite y mediante el vértice final, encontrando el triángulo límite adyacente hasta formar el contorno cerrado. Para realizar eficientemente esta búsqueda, es necesario construir una estructura de datos que relacione cada vértice con los triángulos que lo contienen. Adicionalmente, cada uno de los triángulos recorridos son marcados como visitados, para no repetir triángulos dentro de la búsqueda.

Para el proceso de llenado, el camino que representa el contorno externo de la superficie es eliminado dentro del conjunto de huecos detectados, ya que este no es un hueco sino un camino que encierra la superficie.

En esta etapa se realizaron pruebas para verificar la funcionalidad del proceso de identificación. En la Figura 5 se muestra la imagen del conejo de Stanford con cinco huecos detectados mediante el algoritmo propuesto. Los cinco huecos detectados corresponden a anomalías presentes en la imagen. La cantidad de aristas límite que forman los contornos de los huecos corresponden a 39, 22, 42, 80 y 40 aristas, respectivamente. El algoritmo detectó cuatro huecos en la superficie de la máscara. La cantidad de aristas límite que forman los contornos de los huecos corresponden a 60, 32, 57 y 25 respectivamente.


Figura 5.
Identificación de los huecos en el conejo de Stanford.
Figure 5 Holes identification of the Stanford Bunny.

3.2. Análisis del hueco.
Una vez detectados los huecos se debe determinar si un hueco será llenado o no, estableciendo si el hueco está presente en la superficie del objeto real o si fue causado en alguna de las etapas intermedias del proceso de reconstrucción tridimensional. Existe un número infinito de configuraciones de huecos en los objetos de forma libre, que hacen muy difícil establecer la pertenencia real del hueco a la superficie, motivo por el cual el proceso de llenado de huecos exige generalmente, una interacción con el usuario. Una propuesta para automatizar este procedimiento consiste en analizar la curva de contorno generada por cada uno de los huecos.

El contorno del hueco puede ser caracterizado y clasificado de acuerdo a sus propiedades geométricas como la curvatura y la torsión. Geométricamente, la curvatura es la tasa de cambio del vector tangente con respecto a la longitud de la curva, es decir, mide que tan rápido o lento la curva cambia respecto a un mismo plano (ver Figura 6(a)). La torsión indica una medida de la rotación del plano osculador con respecto a la longitud de la curva, es decir, mide el cambio de plano de la curva en el espacio (ver Figura 6(b)). Para la clasificación de las curvas de contorno de los huecos, sólo se considera importante la torsión y no la curvatura, debido a que la curvatura mide variaciones de una curva considerándola en un mismo plano, por el contrario, la torsión mide la manera como la curva se desvía de su comportamiento local o como cambia con respecto a un plano. Por lo tanto, los cambios presentes en las vecindades de un hueco son más fácilmente detectables con la torsión que con la curvatura.


Figura 6.
Propiedades geométricas de una curva.
Figure 6. Geometric properties of a curve.

El estudio de la torsión de una curva depende del comportamiento del plano osculador. El plano osculador en un punto  es aquel que contiene a la tangente  y la normal  de la curva en  (ver Figura 7). De un punto a otro a lo largo de una curva, la posición del plano osculador varía en forma similar a como lo hace la dirección de la tangente que permite caracterizar la curvatura. La variación del plano osculador es medida de acuerdo a la longitud de arco; esto es, si  es el ángulo entre los planos osculadores en un punto fijo  y un punto próximo , y si  es la longitud de arco , entonces la torsión  en el punto  se define como:


Figura 7.
Plano osculador P.
Figure 7. Osculatory plane P.

El signo de la torsión depende del lado de la curva hacia la que gira el plano osculador al moverse a lo largo de la curva. Sin embargo, desde la geometría diferencial, las propiedades de una curva en un punto, son aquellas propiedades que dependen de un entorno arbitrariamente pequeño. Así, las propiedades de este tipo se definen en términos de derivadas en el punto dado de la ecuación que define la curva. La estimación de la torsión se define como sigue:

Para estimar la torsión de la curva de contorno se necesita una ecuación  que la describa, debido a que lo que se tiene es un camino continuo y cerrado de aristas. Para obtener una ecuación del conjunto de aristas, éstas se aproximan mediante curvas de Bézier, teniendo en cuenta que la función  que describa la curva debe ser diferenciable hasta por lo menos en tercer grado. Una curva paramétrica de Bézier es definida por:

En general: , donde  son los polinomios de Berstein de tercer grado y se definen así:

El contorno es aproximado parcialmente mediante curvas de Bézier de tercer grado obtenido con conjuntos de cuatro puntos continuos, hasta obtener la estimación de la torsión en todos los puntos que conforman el contorno. Una vez obtenidas las ecuaciones de los segmentos de la curva, la torsión es evaluada en el último punto. Esto debido a que Bézier garantiza que la curva obtenida contenga los puntos extremos del conjunto sobre el cual se calcula, de tal forma que el error de aproximación que se presenta en los puntos intermedios no afecta considerablemente la estimación de la torsión (ver Figura 8).


Figura 8
. Aproximación de la curva de contorno mediante curvas de Bézier y puntos sobre los cuales se estima la torsión.
Figure 8. Approximation of the contour cuve by means of B´ezier curves and points where the torsion is estimated on.

Finalmente se calcula la varianza de las torsiones para medir el nivel de dispersión de los valores medidos en cada punto, así:

Los huecos cuyos contornos posean una varianza de torsión superior a un umbral establecido, se clasifican como huecos que deben ser corregidos.

En esta etapa se realizaron pruebas para determinar el umbral de torsión para la clasificación de los huecos mediante la medición de un conjunto de huecos generados sintéticamente sobre una esfera y un conjunto de huecos obtenidos de imágenes reales. La generación sintética de huecos permite analizar de manera controlada el nivel de variación del contorno.

Resultado del trabajo experimental se encontró que el valor de umbral para la variación de la torsión es 0.1. De esta manera, serán huecos pertenecientes a la topología de la superficie, todos aquellos con valores de variación de la torsión menores o iguales a 0.1. Por el contrario, los huecos asociados con ausencia de información  presentan comúnmente grandes variabilidades en la curva de contorno, es decir, son todos aquellos con valores mayores a 0.1.

El procedimiento se aplicó a un par de imágenes reales para determinar cuales de los huecos detectados deben ser corregidos. En la Figura 9 se muestran los huecos identificados en el objeto denominado conejo de Stanford, los cuales tienen un valor de la variación de la torsión de 0.0046 y 0.0030 para la Figura 9(a) y 0.5230, 0.8020, 0.3120 para la Figura 9(b) respectivamente. El procedimiento de análisis de huecos determinó que los huecos 1 y 2 no deberían ser corregidos, por poseer un valor de variación de la torsión inferior a 0.1.


Figura 9
. Clasificación de los huecos identificados en el conejo de Stanford.
Figure 9. Classification of the holes identified on the Stanford Bunny.

3.3. Llenado del hueco
Una vez clasificados los huecos que deberán ser corregidos, el proceso de generación de nuevos puntos requiere que se estime una aproximación de la superficie faltante. Para tal propósito se calcula una función , a partir de un conjunto de puntos distribuidos homogéneamente alrededor del contorno del hueco, esta función es construida como un interpolante de función de base radial.

Para el llenado de huecos no se calcula un sólo interpolante con el conjunto total de puntos. Por el contrario, se calculan diferentes e independientes interpolantes locales a cada uno de los huecos, debido principalmente a que es muy costoso computacionalmente interpolar grandes cantidades de puntos para llenar pequeñas regiones de superficie faltante. Por lo tanto, para cada uno de los huecos, un interpolante diferente es estimado con un conjunto reducido de puntos. El proceso de llenado de huecos inicia con la selección de un conjunto de puntos tomados como centros de referencia para la interpolación, con los cuales se construye el interpolante. Este interpolante es utilizado para generar el nuevo conjunto de puntos que serán triangulados para reproducir la región faltante de la superficie.

Selección de centros de interpolación.
La estimación del vecindario adecuado o conjunto de centros de interpolación es realizada mediante un proceso iterativo. Este proceso inicia con un número pequeño de centros seleccionados como un conjunto de puntos cercanos a cada uno de los vértices de la curva de contorno, como se muestra en la Figura 10.


Figura 10
. Estimación del conjunto de centros.
Figure 10. Estimation of the centers set.

Una vez obtenido el vecindario inicial, es decir, el que se obtiene en la primera iteración, se debe determinar el conjunto de puntos de referencia, utilizados para medir la calidad del interpolante. Este conjunto de puntos debe permanecer constante en las iteraciones posteriores del algoritmo, para medir el error de ajuste. El conjunto de puntos del vecindario inicial es agrupado para obtener regiones homogéneas, que describan las diferentes variaciones de la topología en las regiones alrededor del hueco. Un agrupamiento de tipo k-means [7] es utilizado, donde la determinación del parámetro  será igual al número de vértices que forma el contorno del hueco.

Una vez obtenidos los subconjuntos de regiones por cada grupo, se selecciona aleatoriamente dentro de cada uno de ellos un punto, que representará cada una de las diferentes regiones, de esta forma se garantiza que la evaluación es realizada homogéneamente alrededor del hueco. Si un interpolante alcanza el umbral de ajuste significa que representa con precisión la topología de la vecindad del hueco, por lo tanto, se espera reproduzca adecuadamente la región de la superficie faltante.

Cálculo del interpolante.
Un interpolante es calculado en cada una de las iteraciones hasta alcanzar un valor del error de ajuste igual o inferior a un valor del umbral establecido por el usuario, de acuerdo al nivel de suavidad deseado, así:

La evaluación de la calidad de la interpolación es realizada sobre un conjunto de puntos de referencia que inicialmente pertenecen al vecindario del hueco pero, que no son utilizados para calcular el interpolante, así:

Donde  es el tamaño del conjunto de centros de interpolación,  es el resultado del interpolante en el punto ,  es el conjunto de puntos de referencia.

Generación y triangulación de nuevos puntos.

En el proceso final de llenado de cada hueco, una nueva región debe ser reconstruida. Esta región debe preservar la densidad de muestreo de la malla original. Para los huecos clasificados como una anomalía topológica de la superficie, se estima la densidad de cada hueco a partir del conjunto de centros seleccionados. En general, dos criterios importantes se usan para determinar los nuevos puntos que llenan el hueco. Primero, la posición de los nuevos puntos debe estar al interior del hueco y los nuevos triángulos agregados al hueco deben ser fusionados con la malla original. Segundo, la densidad del nuevo conjunto de puntos debe ser similar a la que se tiene en el vecindario alrededor de cada hueco.

Para generar la nueva región de la malla y garantizar un valor de densidad igual al vecindario local, el contorno se proyecta sobre un plano de regresión y se determina el cuadrilátero que lo contiene. El conjunto de puntos se genera como una rejilla regular de densidad deseada y posteriormente los puntos por fuera del polígono descrito por el contorno son eliminados (ver Figura 11). La superficie es generada con el conjunto de puntos restantes y con los vértices del contorno mediante una triangulación se genera una iso-superficie. La superficie es construida utilizando un algoritmo de generación de iso-superficies mediante RBF como el propuesto por Carr et al. [3].


Figura 11
. Generación de nuevos puntos.
Figure 11. New points generation.

El cálculo de la superficie requiere la estimación de una función de distancia que se utiliza para construir el sistema de ecuaciones asociado a una RBF. Si todos los puntos se asumen que describen el objeto, su valor de distancia entonces es 0. Para que la matriz resultante no posea todos los valores en cero, se deben añadir puntos adicionales cuyos valores de distancia sean diferentes de cero. Este conjunto de puntos se conoce como puntos fuera de la superficie (off-surface). Estos son puntos que no pertenecen a la superficie, pero para ellos se conoce el valor de su distancia a la superficie , ya que son generados a un desplazamiento  en dirección a la normal de la superficie en cada uno de los puntos a ambos lados de la superficie. El signo de la distancia determina el lado en el cual se ubica el punto respecto a la superficie. Una vez obtenido el interpolante, este se usa para generar el nuevo conjunto de puntos que llenará el hueco.

Para la generación de la nueva región de superficie, el conjunto de puntos obtenidos con el interpolante y el conjunto de vértices del contorno se triangulan localmente, lo que permite la fusión automática de la nueva región con la malla original. La triangulación local es un procedimiento eficiente para el llenado de huecos porque evita el remallado de la nube de puntos. Los procedimientos adicionales tales como la estimación de normales sobre los nuevos puntos  y las nuevas normales de los puntos de contorno que serán diferentes debido a la nueva región de la superficie, también se pueden hacer localmente. Para esto, se utiliza el algoritmo de triangulación Marching Cubes [8] (ver Figura 12).


Figura 12
. Triangulación del hueco.
Figura 12. Hole triangulation.

Para determinar la capacidad de recuperación de datos del interpolante estimado en esta etapa, se diseñó un experimento que consiste en generar un hueco sintético  a cada de las imágenes de rango de un conjunto de 30 imágenes empleadas para este propósito. Cada hueco es creado con la ayuda de una estructura de datos k-d. La estructura de datos k-d nos permite seleccionar un conjunto de puntos cercanos a un punto específico dado, los cuales son eliminados de la imagen de rango y almacenados en la memoria del computador. Cada hueco generado es llenado con  diferentes tamaños de vecindarios establecidos manualmente para estimar el interpolante.

Para cada interpolante, la precisión del nuevo conjunto de puntos es medida como la media de la distancia entre el conjunto de puntos almacenados y los nuevos puntos. Esta diferencia se realiza punto a punto debido a que se genera el mismo número de puntos que se extrajeron inicialmente y al interpolante calculado se le envían dos de las tres coordenadas de los puntos, el error nos indica que tan alejado está el punto generado del punto original. Los tamaños de los huecos generados en cada una de las imágenes, corresponden a 30, 50, 100 y 200 puntos. Cada uno de estos huecos son corregidos con vecindarios del 2.0%, 3.0%, 9.0% y 15.0% respectivamente, alrededor de cada hueco generado. El resultado obtenido en la corrección de un hueco de 50 puntos para cada uno de los vecindarios establecidos, para una de las imágenes de rango de la muestra empleada para este experimento. Los errores promedio para los huecos de 30, 50, 100 y 200 puntos del conjunto de imágenes empleado en este experimento, son mostrados en la Tabla 3, y el comportamiento del error promedio se ilustra en la Figura 13.

Tabla 3. Errores promedio del llenado de los huecos sintéticos.
Table 3. Average errors in the synthetic holes filling.


Figura 13.
Comportamiento del error promedio para el llenado de los huecos sintéticos.
Figure 13. Average error behavior for the filling of synthetic holes.

Los resultados indican que huecos de tamaños pequeños, es decir, aproximadamente cercanos al 3% de la superficie son recuperados con niveles altos de precisión. En cada una de las pruebas el error tiene un comportamiento de alta variación para los diferentes tamaños del vecindario. Este comportamiento puede ser explicado debido a que el error es medido exclusivamente sobre el nuevo conjunto de puntos. Las variaciones topológicas incluidas al aumentar el tamaño del vecindario pueden llevar a un suavizado excesivo de la región desconocida, el suavizado es incorporado debido al comportamiento de soporte global en las RBF utilizadas. Es decir, todos los puntos influyen en el cálculo del interpolante.

Sin embargo, existe un tamaño de vecindario adecuado en donde se recupera la región de superficie que llena el hueco. Las pruebas muestran que el vecindario cercano al 9\% de la superficie, generan los menores errores en huecos de diferentes tamaños con una media de 0.1146 y una varianza de 0.045 como se muestra en la Tabla 4. Valores inferiores en el  tamaño de los vecindarios generan altos errores debido a que son insuficientes para reproducir la topología de la superficie y valores superiores en el tamaño del vecindario generan variaciones topológicas que alteran la representación de la región faltante.

Tabla 4. Media y varianza de los errores promedios del llenado de los huecos sintéticos.
Table 4. Mean and variance of the average error of the synthetic holes filling.

Adicionalmente, el procedimiento se aplicó al conjunto de huecos clasificados como anomalías topológicas de la superficie causada por ausencia de información en el conejo de Stanford. En la Figura 14(a), se muestra el resultado de la selección del vecindario alrededor de cada contorno de los huecos. El procedimiento iterativo de selección de centros determinó un tamaño de 80, 150 y 60 en el orden respectivo de identificación. En la Figura 14(b), se presenta el resultado del agrupamiento y la selección de los puntos de referencia para cada uno de los huecos. El conjunto de puntos de referencia se formó con un tamaño de 20, 45 y 12 respectivamente. En la Figura 14(c), se ilustra la rejilla regular generada para cada uno de los huecos corregidos y la nueva región fusionada con la malla original.


Figura 14.
Llenado de huecos en el conejo de Stanford.
Figure 14. Holes filling on the Stanford Bunny.

 

4. RESULTADOS

Para validar la funcionalidad del método propuesto para el llenado de huecos en mallas triangulares mediante RBF se presentan los resultados obtenidos para un objeto de cerámica precolombina, perteneciente a la colección del museo universitario de la Universidad de Antioquia y el cual fue digitalizado con el escaner de rango Minolta Vivid 9i, disponible en la Universidad Nacional de Colombia - Sede Manizales (ver Figura 15).


Figura 15.
Proceso completo para la corrección de huecos.
Figure 15. Complete process for the holes correction.

En la Tabla 5 se muestra los resultados obtenidos en cada una de las etapas del proceso de llenado de huecos propuesto: identificación, análisis y llenado de huecos.

Tabla 5. Resultado de las etapas del proceso para el objeto cerrado.
Table 5. Result of the process stages for the closed object.

 

5. CONCLUSION

Se presentó un método automático, simple y efectivo para la corrección de anomalías topológicas asociadas con ausencia de información. Este método es novedoso, debido a dos contribuciones importantes: la primera es la clasificación automática de huecos que deben ser llenados, basada en la estimación de la medida de la torsión de los contornos que define cada hueco. La segunda consiste en el llenado de huecos mediante interpolantes de funciones de base radial, definidos localmente, para reproducir las características topológicas de las regiones alrededor de cada hueco a llenar.

 

REFERENCIAS         [ Links ] [2]BESL P. J. and McKay N. D. A method for registration of 3-d shapes. IEEE Trans. Pattern Anal. Mach. Intell., 14(2):239-256, 1992.         [ Links ] [3]CARR J., Beatson R., Cherrie J., Mitchell T., Fright W., McCallum B., and Evans T. Reconstruction and representation of 3d objects with radial basis functions. In Eugene Fiume, editor, SIGGRAPH 2001, Computer Graphics Proceedings, pages 67-76. ACM Press / ACM SIGGRAPH, 2001.         [ Links ] [4]CURLESS B. New methods for surface reconstruction from range images. Technical Report CSL-TR-97-733, Stanford, 1997.         [ Links ] [5]DAVIS J., Marschner S., Garr M., and Levoy M. Filling holes in complex surfaces using volumetric diffusion, 2002.         [ Links ] [6]DUCHON J. Spline minimizing rotation-invariant seminorms in soboley spaces. Constructive Theory of Functions of several Variables, 571:85-100, 1997.         [ Links ] [7]HARTIGAN J. A. and Wong M. A. A k-means clustering algorithm. Applied Statistics, 28:100-108, 1979.         [ Links ] [8]LORENSEN W. and Cline H. Marching cubes: A high resolution 3d surface construction algorithm. In SIGGRAPH '87: Proceedings of the 14th annual conference on Computer graphics and interactive techniques, volume 21, pages 163-169, New York, NY, USA , 1987. ACM Press.         [ Links ] [9]LOZANO E. Tópicos en reconocimiento de patrones funciones de base radial. Technical report, Departamento de Matemáticas, Universidad de Puerto Rico Recinto Universitario de Mayagüez, 2002.         [ Links ] [10]MONTEGRANARIO H. Reconstrucción de superficies mediante funciones de base radial. 2004.         [ Links ] [11]REUTER P., Tobor I. , Schlick C., and Dedieu S. Point-based modelling and rendering using radial basis functions. In GRAPHITE '03: Proceedings of the 1st international conference on Computer graphics and interactive techniques in Australasia and South East Asia, pages 111-118, New York, NY, USA, 2003. ACM Press.         [ Links ] [12]SCHABACK R. caracterization and construction of radial basis functions in multivariate approximation and application. Cambrigde University Press, Nashville, 2002.         [ Links ] [13]TURK G. and Levoy M. Zippered polygon meshes from range images. In SIGGRAPH '94: Proceedings of the 21st annual conference on Computer graphics and interactive techniques, pages 311-318, New York, NY, USA , 1994. ACM Press.         [ Links ] [14]WENDLAND H. Piecewise polynomial, positive definite and compactly supported radial functions of minimal degree. Advances in Computational Mathematics, 4(4):389-96, 1995.         [ Links ] [15]YU Y., Ferencz A., and Malik J. Extracting objects from range and radiance images. IEEE Transactions on Visualization and Computer Graphics, 7(4):351-364, 2001.         [ Links ]

Creative Commons License Todo o conteúdo deste periódico, exceto onde está identificado, está licenciado sob uma Licença Creative Commons