12
Traducido por: Orozco Lisset, López Jair, Gámez Kelwin, Laverde Yarilenis, Neuman Hernán. El Algoritmo de Pivoteo de Bola para la Reconstrucción de Superficie Fausto Bernardini Joshua Mittleman Holly Rushmeier Claudio Silva Gabriel Taubin Resumen - El algoritmo de pivoteo de bola (APB) calcula una malla de triángulos interpolando una nube de puntos dada. Normalmente, los puntos son muestras de la superficie adquiridos con los análisis de rango múltiple de un objeto. El principio del APB es muy sencillo: Tres puntos forman un triángulo si una bola de un radio p especificado por el usuario los toca sin contener cualquier otro punto. Comenzando con un triángulo semilla, la bola pivotea alrededor de un borde (es decir, que gira alrededor del borde mientras se mantiene en contacto con los extremos del borde) hasta que toca otro punto, formando otro triángulo. El proceso continúa hasta que todas las aristas alcanzables hayan sido tratadas, y entonces comienza a partir de otro triángulo semilla, hasta que todos los puntos han sido considerados. Hemos aplicado el APB a conjuntos de datos de millones de puntos que representan el análisis real de objetos complejos en 3D. La cantidad relativamente pequeña de memoria requerida por el APB, su eficiencia de tiempo y la calidad de los resultados obtenidos se comparan favorablemente con las técnicas existentes. Palabras Clave Escaneo 3D, reconstrucción de figuras, nube de puntos, rango de la imagen. I. INTRODUCCIÓN Los avances en hardware de adquisición de datos 3D han facilitado el uso más amplio del análisis para documentar la geometría de objetos físicos para fines de archivo o como un paso en el diseño de un nuevo producto. Una típica tubería de adquisición de datos 3D consta de los siguientes pasos (adaptado de [1]): Escaneo: Adquisición de muestras de la superficie con un dispositivo de medición, tal como un lector de láser o un sistema estereográfico. Registro de datos: La alineación de varios análisis en un único sistema de coordenadas. Integración de datos: La interpolación de las muestras medidas, o puntos derivados de las muestras medidas, con una representación de superficie, por lo general una malla de triángulos. La conversión del modelo: Malla de decimación/ optimización, adecuada con las representaciones de orden superior, etc. Este documento se centra en la fase de integración de datos. Presentamos un nuevo método para encontrar una malla de triángulos que interpole un conjunto desorganizado de puntos. La figura 1 muestra una vista en primer plano de una malla de triangulos de 14M obtenida por la ejecución de nuestro algoritmo de cientos de análisis del Michelangelo’s Florentine Pietá. El modelo tomó 30 minutos en calcularse en una PC Pentium II. IBM T. J. Watson Research Center, P.O. Box 704, Yorktown Heights, NY 10598. email: {fausto, mittle, holly, taubing}@watson.ibm.com Claudio Silva’s current address: AT&T Labs-Research, Shannon Laboratory, 180 Park Avenue, Florham Park, NJ 07932-0971. [email protected] Fig. 1. Sección de Michelangelo’s Florentine Pieta. Esta malla de triángulos 14M fue generada a partir de más de 700 escaneos con el algoritmo de pivoteo de bola. El método crea dos supuestos de suavidad sobre las muestras que son válidas para una amplia gama de técnicas de adquisición: que las muestras sean distribuidas sobre toda la superficie con una frecuencia espacial mayor que o igual a un cierto valor mínimo especificado por la aplicación, y que una estimación de la superficie normal esté disponible para cada muestra medida. A. Principales Contribuciones El método es conceptualmente simple. Comenzando con un triángulo semilla, que pivota una bola alrededor de cada arista en el límite de la malla actual hasta que un nuevo punto es alcanzado por la bola. La arista y el punto define un triangulo nuevo, el cual es agregado a la malla, y el algoritmo considera una nueva frontera de aristas para pivotear. La malla resultante es un subconjunto múltiple de un alpha-shape [2] del conjunto de puntos. Algunas de las propiedades agradables de alpha-shape pueden ser también probadas por nuestra reconstrucción. El algoritmo de pivoteo de bola (APB por sus siglas) es eficiente en términos de tiempo de ejecución y requerimientos de almacenamiento. Se mostró el rendimiento en tiempo lineal en grupos de datos que consisten en millones de muestras de entrada. Ha sido implementado en una forma que no requiere todos los datos de entrada para ser cargado en memoria simultáneamente. La malla de triángulos resultante es guardada incrementalmente para almacenamiento externo para su cálculo, y no usa ninguna memoria adicional.

Algoritmo de Pivoteo de Bola Para La Reconstruccion de Superficie

  • Upload
    litz612

  • View
    85

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Algoritmo de Pivoteo de Bola Para La Reconstruccion de Superficie

Traducido por: Orozco Lisset, López Jair, Gámez Kelwin, Laverde Yarilenis, Neuman Hernán.

El Algoritmo de Pivoteo de Bola

para la Reconstrucción de Superficie

Fausto Bernardini Joshua Mittleman Holly Rushmeier Claudio Silva Gabriel Taubin

Resumen - El algoritmo de pivoteo de bola (APB) calcula una

malla de triángulos interpolando una nube de puntos

dada. Normalmente, los puntos son muestras de la superficie

adquiridos con los análisis de rango múltiple de un objeto. El

principio del APB es muy sencillo: Tres puntos forman un triángulo

si una bola de un radio p especificado por el usuario los toca sin

contener cualquier otro punto. Comenzando con un triángulo

semilla, la bola pivotea alrededor de un borde (es decir, que gira

alrededor del borde mientras se mantiene en contacto con los

extremos del borde) hasta que toca otro punto, formando otro

triángulo. El proceso continúa hasta que todas las aristas

alcanzables hayan sido tratadas, y entonces comienza a partir de

otro triángulo semilla, hasta que todos los puntos han sido

considerados. Hemos aplicado el APB a conjuntos de datos de

millones de puntos que representan el análisis real de objetos

complejos en 3D. La cantidad relativamente pequeña de memoria

requerida por el APB, su eficiencia de tiempo y la calidad de los

resultados obtenidos se comparan favorablemente con las técnicas

existentes.

Palabras Clave ─ Escaneo 3D, reconstrucción de figuras, nube

de puntos, rango de la imagen.

I. INTRODUCCIÓN

Los avances en hardware de adquisición de datos 3D han

facilitado el uso más amplio del análisis para documentar la

geometría de objetos físicos para fines de archivo o como un

paso en el diseño de un nuevo producto. Una típica tubería

de adquisición de datos 3D consta de los siguientes pasos

(adaptado de [1]):

Escaneo: Adquisición de muestras de la superficie con

un dispositivo de medición, tal como un lector de láser o

un sistema estereográfico.

Registro de datos: La alineación de varios análisis en un

único sistema de coordenadas.

Integración de datos: La interpolación de las muestras

medidas, o puntos derivados de las muestras medidas,

con una representación de superficie, por lo general una

malla de triángulos.

La conversión del modelo: Malla de decimación/

optimización, adecuada con las representaciones de orden

superior, etc.

Este documento se centra en la fase de integración de

datos. Presentamos un nuevo método para encontrar una

malla de triángulos que interpole un conjunto desorganizado

de puntos. La figura 1 muestra una vista en primer plano de

una malla de triangulos de 14M obtenida por la ejecución de

nuestro algoritmo de cientos de análisis del Michelangelo’s

Florentine Pietá. El modelo tomó 30 minutos en calcularse

en una PC Pentium II.

IBM T. J. Watson Research Center, P.O. Box 704, Yorktown Heights,

NY 10598. email: {fausto, mittle, holly, taubing}@watson.ibm.com

Claudio Silva’s current address: AT&T Labs-Research, Shannon Laboratory, 180 Park Avenue, Florham Park, NJ 07932-0971.

[email protected]

Fig. 1. Sección de Michelangelo’s Florentine Pieta. Esta malla de

triángulos 14M fue generada a partir de más de 700 escaneos

con el algoritmo de pivoteo de bola.

El método crea dos supuestos de suavidad sobre las

muestras que son válidas para una amplia gama de técnicas

de adquisición: que las muestras sean distribuidas sobre toda

la superficie con una frecuencia espacial mayor que o igual a

un cierto valor mínimo especificado por la aplicación, y que

una estimación de la superficie normal esté disponible para

cada muestra medida.

A. Principales Contribuciones

El método es conceptualmente simple. Comenzando con

un triángulo semilla, que pivota una bola alrededor de cada

arista en el límite de la malla actual hasta que un nuevo

punto es alcanzado por la bola. La arista y el punto define un

triangulo nuevo, el cual es agregado a la malla, y el

algoritmo considera una nueva frontera de aristas para

pivotear.

La malla resultante es un subconjunto múltiple de un

alpha-shape [2] del conjunto de puntos. Algunas de las

propiedades agradables de alpha-shape pueden ser también

probadas por nuestra reconstrucción.

El algoritmo de pivoteo de bola (APB por sus siglas) es

eficiente en términos de tiempo de ejecución y

requerimientos de almacenamiento. Se mostró el

rendimiento en tiempo lineal en grupos de datos que

consisten en millones de muestras de entrada. Ha sido

implementado en una forma que no requiere todos los datos

de entrada para ser cargado en memoria simultáneamente. La

malla de triángulos resultante es guardada incrementalmente

para almacenamiento externo para su cálculo, y no usa

ninguna memoria adicional.

Page 2: Algoritmo de Pivoteo de Bola Para La Reconstruccion de Superficie

El APB demostró suficiente robustez para manejar la

presencia de ruido en el escaneo real de datos 3D. Fue

probado en varios grandes conjuntos de datos escaneados, y

en particular fue usado para crear los modelos de

Michelangelo’s Florentine Pieta [3] a partir de cientos de

escáneres adquiridos con un sensor de luz estructurada

(Visual Interface’s Virtuoso ShapeCamera).

El resto del documento está estructurado de la siguiente

manera: en la sección II se define el problema y se discute el

trabajo relacionado. En la sección III se discuten los

conceptos que subyacen del Algoritmo de Pivoteo de Bola, y

en la sección IV se describe el algoritmo en detalle, y se

presentan los resultados en la sección V, y se discuten los

problemas abiertos y trabajo futuro en la sección VI.

II. ANTECEDENTES

En años recientes se ha visto una proliferación de equipos

de escaneo y algoritmos para modelos sintetizados a partir de

datos escaneados. Nos referimos al lector a dos revisiones

recientes de la investigación en el campo [4], [5]. En esta

sección nos centramos en el papel de los esquemas de

mallado de interpolación que pueden desempeñar en el

escaneado de objetos, y por qué no se han utilizado en

sistemas de escaneo prácticos.

A. Mallas de Interpolación en los sistemas de escaneo

Se define el problema de escaneo: dado un objeto

encontramos una representación continua de la superficie del

objeto que captura las características de una escala de

longitud 2d o más grande. El valor de d es impuesto por la

aplicación. La captura de las características de escala 2d

requiere el muestreo de la superficie con una resolución

espacial d o menor. La superficie puede consistir de áreas

grandes que pueden ser bien aproximadas por mallas mucho

más dispersas; sin embargo en la ausencia de información a

priori, necesitamos empezar con una resolución de muestreo

de d o menos para garantizar que ninguna característica se

pierda.

Consideramos sistemas de adquisición que producen

conjuntos de rango de imágenes, es decir, las matrices de

profundidades, cada uno de los cuales cubre un subconjunto

de la superficie total. Porque son los campos de altura con la

toma regular de muestras, imágenes de rango individual son

malladas fácilmente. Las mallas individuales pueden ser

utilizadas para calcular un estimado de la normal de la

superficie por cada punto de muestra.

Un sistema de adquisición ideal sería retornar muestras

situadas exactamente sobre la superficie del objeto.

Cualquier sistema de medición real introduce algunos

errores. Sin embargo, si un sistema retorna muestras con un

error que es ordenado de la magnitud menor que el tamaño

mínimo de característica, el muestreo puede ser considerado

como perfecto. Una superficie puede entonces ser

reconstruida por la búsqueda de una malla de interpolación

sin operaciones adicionales en los datos medidos. La

mayoría de los sistemas de escaneo todavía necesitan tener

en cuenta el error de adquisición. Hay dos fuentes de error:

error en el registro, y error a lo largo de la línea del sensor de

visión. Las estimaciones de los puntos de la superficie real

son derivados usualmente por las muestras promedio a partir

de análisis redundantes. Estas estimaciones son luego

conectadas en una malla de triángulos.

La mayoría de los métodos de estimación de puntos de

superficie depende de las estructuras de datos que facilitan la

construcción de la malla. Dos clases de métodos han sido

utilizados con éxito para grandes conjuntos de datos, ambos

asumen un error de registro insignificante y calcular las

estimaciones para corregir el error de la línea de visión. La

primera de estas clases son los métodos volumétricos, como

el establecido por Curless y Levoy [6]. En estos métodos, las

mallas alineadas individuales son utilizadas para calcular

una función distancia con signo sobre una rejilla de volumen

que abarca el objeto. La estimación de los puntos de la

superficie son calculados como los puntos en la red donde la

función distancia es cero. La estructura del volumen

entonces facilita la construcción de una malla utilizando el

algoritmo marching cubes [7].

La segunda clase de métodos, son métodos de unión de

mallas, tales como la técnica de Soucy y Laurendeau [8].

Disjuntos de campo de altura de mallas son unidos en una

sola superficie. Las regiones disjuntas son definidas

mediante la búsqueda de áreas de superposición de diferentes

subconjuntos de un conjunto de análisis. Estimación de los

puntos de la superficie de cada región son calculados como

promedios ponderados a partir del escaneo de superposición.

Los puntos estimados en cada región se vuelven a triangular,

y las mallas resultantes se suturan en una única malla. Turk y

Levoy desarrollaron un método similar [9], que une los

primeros puntos (o cierres) las mallas disjuntas y luego

calcula estimados de los puntos de la superficie.

Se observa que en ambas clases de métodos, el método

de estimación de puntos de superficie no necesita ser tan

estrechamente relacionado con el método para construir la

malla final. En el enfoque volumétrico, una técnica distinta

como marching cubes podría ser utilizada para encontrar

una malla de triángulos que pasa por los puntos de la

superficie estimada. En los enfoques de unión de malla, una

técnica para encontrar una malla que conecte todos los

puntos de superficie estimados podría ser utilizada en lugar

de unir las mallas existentes. Lo más importante, con un

algoritmo eficiente para el cálculo de una malla que une los

puntos, cualquier método para calcular los puntos de la

superficie estimada podría ser utilizado, incluyendo aquellas

que no imponen una estructura adicional de los datos y no

tratan de registro y error en la línea de visión por separado. Por ejemplo, se ha demostrado que la reducción de errores en

mallas individuales antes de la alineación puede reducir el

error de registro [10].

Estamos desarrollando un método que mueve muestras

dentro de los límites conocidos de error del escáner para

conformar las mallas entre sí ya que están alineadas. Nuestra

implementación actual de este método fue utilizado para pre-

procesar los datos mostrados en la sección de resultados. El

método se describe en un artículo futuro.

Finalmente, puede ser deseable encontrar una malla de

interpolación de los datos medidos incluso si contiene

errores no compensados. La malla preliminar podría ser

suavizada, limpiada, y decimada para su uso en la

Page 3: Algoritmo de Pivoteo de Bola Para La Reconstruccion de Superficie

planificación de las funciones. Una malla de interpolación de

los puntos medidos también se podría utilizar como un punto

de partida para los puntos de consenso para calcular.

B. Estado del Arte para la interpolación de las mallas

Las actuales técnicas de interpolación se dividen en dos

categorías-la escultura-en base [11], [12], [4] y la región de

crecimiento [13], [14], [15], al igual que el APB. En los

métodos basados en la escultura, una tetraedralización de

volumen se calcula a partir de los puntos de datos, por lo

general la triangulación de Delaunay en 3D. Los tetraedros

son retirados entonces de la envolvente convexa para extraer

la forma original. Los métodos de la región creciente

comienzan con un triángulo de semillas, considera un nuevo

punto y lo une a la frontera de la región ya existente, y

continua hasta que todos los puntos han sido considerados.

La fuerza de la escultura basada en enfoques es que a

menudo proporcionar garantías teóricas para la calidad de la

superficie resultante, por ejemplo que la topología es

correcta, y que la superficie converge a la superficie

verdadera como la densidad de muestreo aumenta (ver por

ejemplo [16], [17]). Sin embargo, el cálculo de la

triangulación de Delaunay 3D requerida puede ser muy caro

en términos de tiempo y la memoria necesaria, y puede

conducir a la inestabilidad numérica cuando se trata de

conjuntos de datos de millones de puntos. El objetivo del

APB es mantener los puntos fuertes de anteriores técnicas de

interpolación en un método que muestra la complejidad del

tiempo lineal y la solidez de los datos escaneados reales.

III. SUPERFICICE DE RECONSTRUCIÓN

Y PIVOTEO DE BOLA

El concepto principal que subyace en el algoritmo de

pivoteo de bola es bastante simple. Permite que la variedad

M sea la superficie de un objeto tridimensional y S un punto

de muestreo de M. Vamos a suponer por ahora que S es lo

suficientemente densa que una bola (una bola de radio) no se

puede pasar a través de la superficie, sin tocar los puntos de

muestreo (ver figura 3 para un ejemplo 2D). Comenzamos

colocando una bola en contacto con tres puntos de muestra. Se mantiene la bola en contacto con dos de estos puntos

iniciales, se “pivota” la bola hasta que toque a otro punto,

como se ilustra en la figura 2 (se dan más detalles en la

sección IV-C). Se pivota alrededor de cada arista de la

frontera de la malla actual. Tripletes de puntos que hacen

contacto con la bola forman nuevos triángulos. El conjunto

de triángulos formados, mientras que la pelota "pasa" sobre

la superficie que constituye la malla de interpolación.

El APB está estrechamente relacionado con el alpha-

shapes [18], [2]. De hecho, cada triángulo t calculado por el

paso de la bola p, obviamente, tiene un pequeño vacío de

bola bT abierta cuyo radio es menor que p (ver [2], página

50). Así, el APB calcula un subconjunto de las 2-caras de las

formas p de S. Estas caras son también un subconjunto de los

2-esqueletos de la triangulación de Delaunay tridimensional

del conjunto de puntos. Alpha shapes son una herramienta

eficaz para el cálculo de la "forma" de un conjunto de

puntos.

La superficie reconstruida por el APB conserva algunas

de las cualidades de alpha-shapes: Tiene garantías

demostrables de reconstrucción bajo supuestos de muestreo

determinados, y un significado geométrico intuitivamente

simple.

Sin embargo, los 2-esqueletos de un alpha-shapes

calculado a partir de un muestreo ruidoso de una variedad

suave puede contener múltiples conexiones no variadas. Es

no trivial para filtrar los componentes no deseados.

Asimismo, en su formulación original, alpha-shapes son

calculados mediante la extracción de un subconjunto de la

triangulación de Delaunay 3D del conjunto de puntos, una

estructura de datos que no se calcula fácilmente para

conjuntos de datos de millones de puntos. Con las hipótesis

sobre la entrada indicada en la introducción, el APB eficiente

y sólido calcula una variedad de subconjunto de un alpha-

shape que es muy adecuado para esta aplicación.

En [16], las condiciones suficientes para la densidad de

muestreo de una curva en el plano fueron derivados lo cual

garantiza que la reconstrucción de un alpha-shape es

homeomorfo a la variedad original y que se encuentra dentro

de una distancia limitada. El teorema se puede extender

fácilmente a las superficies (dicho aquí sin pruebas):

Supongamos que, para la variedad de suavidad M el

muestreo S satisface las siguientes propiedades:

1. La intersección de cualquier bola de radio p con el

manifold es un disco topológico.

2. Cualquier bola de radio p centrado en el manifold

contiene al menos un punto de muestra en su interior.

La primera condición garantiza que el radio de curvatura

del colector es mayor que p, y que la bola p también puede

pasar a través de las cavidades y otras características

cóncavas sin múltiples contactos con la superficie. La

segunda condición nos dice que el muestreo es

suficientemente denso que la bola puede pasar sobre los

puntos de muestra, sin dejar huecos (ver figura 3 para ver

ejemplos en 2D). El APB produce entonces una

aproximación T homeomorfa de la variedad diferenciable M.

También podemos definir un homeomorfismo h: T M tal

que la distancia || p - h(p) || < ρ.

En la práctica, a menudo deben hacer frente a menos que

ideales muestreos. Cuál es el comportamiento del algoritmo

en estos casos? Consideremos el caso de los datos

escaneados reales. Los problemas más comunes son los

puntos faltantes, densidad no uniforme, imperfectamente

alineado a la superposición de escaneos de rango, y el error

del escáner de la línea de visión.1

El APB está diseñado para procesar la salida de un

preciso registro / algoritmo de conformidad (véase la sección

II), y no trata de promediar el ruido o los errores residuales

de registro. No obstante, el APB es robusto en la presencia

de datos imperfectos. 1Algunos tipos de escáneres también producen “valores

atípicos", los puntos que se encuentran lejos de la superficie real.

Estos valores atípicos ocurren más frecuentemente en las fronteras

de imágenes de rango, o en la presencia de discontinuidades

cortantes. La eliminación de valores atípicos se hace mejor con un

dispositivo dependiente de pre-procesamiento. El escáner utilizado

Page 4: Algoritmo de Pivoteo de Bola Para La Reconstruccion de Superficie

para adquirir los datos presentados en la sección de resultados no se

ve afectada por este problema.

Se aumentaron los puntos de datos con las normales

aproximadas de superficie calculada a partir de una serie de

mapas para eliminar la ambigüedad de los casos que se

producen cuando se trata con la falta o datos ruidosos. Por

ejemplo, si partes de la superficie no han sido analizadas,

habrá agujeros más grandes que p en el muestreo. Usamos

las normales de la superficie (para la cual asumimos

orientación hacia el exterior) para decidir la orientación de la

superficie. Por ejemplo, cuando se elige un triángulo semilla

comprobamos que las normales de superficie en los tres

vértices son constantemente orientadas.

Las áreas de mayor densidad que p no presentan ningún

problema. La bola de pivoteo seguirá pasando sobre los

puntos, formando pequeños triángulos. Si los datos son libre

de ruido y p es menor que la curvatura local, todos los

puntos serán interpolados. Lo más probable, es que los

puntos sean afectados por el ruido, y que algunos de los que

se encuentran debajo de la superficie no serán tocados por la

bola y no serán parte de la malla de reconstruida (véase la

figura 4 (a)).

Los puntos faltantes crean agujeros que no pueden ser

ocupados por la bola giratoria. Cualquier tratamiento

posterior del algoritmo para el llenado de agujeros podría ser

empleado; en particular, el APB puede ser aplicado varias

veces, con incrementos del radio de la bola, como se explica

en la sección IV-F. Sin embargo, es necesario para manejar

posibles ambigüedades que los datos faltantes pueden

introducir. Cuando pivota alrededor de la frontera de la

arista, la bola puede tocar un punto no utilizado situado cerca

de la superficie. Una vez más se uso las normales de la

superficie para decidir si el punto tocado es válido o no

(véase la figura 4 (b)). Un triángulo se rechaza si el producto

escalar de su normal con la normal de la superficie es

negativo.

La presencia de escaneos de rango superpuestos

desalineados puede conducir a resultados pobres si el error

de registro es similar al tamaño de la bola de pivoteo. Los

Fig. 3 Algoritmo de pivoteo de bola en 2D. (a) Un círculo de pivote de radio ρ de un punto a otro, conectándolos con las aristas.

(b) Cuando la densidad de muestreo es demasiado baja, algunas de las aristas no se crearán, dejando huecos. (c) Cuando la

curvatura de la variedad es mayor que 1/ρ , algunos de los puntos de muestra no serán alcanzados por la bola que pivotea, y

sus características se perderán.

Fig. 2 Operaciones de pivoteo de bola. Véase la sección IV-C

para más detalles. La bola que pivotea está en contacto

con los tres vértices del triángulo τ = (σi , σj , σo) cuya

normal es n. La arista e(i, j) pivotante se encuentra en el

eje z (perpendicular a la página y apunta hacia el

espectador), con su punto medio m en el origen. El

círculo si j o es la intersección de la bola que pivotea con

z = 0. El cuadro de coordenadas es tal que el centro ci j o

de la bola se encuentra en el eje x positivo. Durante el

pivoteo el radio de la bola permanece en contacto con los

dos extremos de las aristas σi , σj, y es el centro que

describe la trayectoria circular ϒ con un centro m de radio

|| cijo - m ||. En su movimiento pivotante la bola alcanza

un nuevo punto de datos σk. Sea sk la intersección una

esfera de radio ρ centrada en σk con z = 0. El centro ck de

la bola pivotante cuando toca σk es la intersección de ϒ

con sk encontrándose en el plano negativo de la línea lk

orientada.

Page 5: Algoritmo de Pivoteo de Bola Para La Reconstruccion de Superficie

componentes pequeños no deseados conectados situados

cerca de la superficie principal serán formados, y la

superficie principal afectado por el ruido de alta frecuencia

(véase la figura 4 (c)). La estrategia de selección de semillas

evita la creación de un gran número de componentes

pequeños. Un simple procesamiento posterior que elimina

los componentes pequeños y el suavizado de la superficie

[19] puede mejorar significativamente el resultado en estos

casos, al menos estéticamente.

Independientemente de los defectos en los datos, el APB

se garantiza para construir una variedad orientable. Hay que

tener en cuenta que el APB siempre tratará de construir el

manifold más grande posible conectado desde un triángulo

semilla dado. La elección de un valor adecuado para el radio

p de la bola de pivoteo es típicamente fácil. La actual

estructura de luz o escáneres de triangulación láser producen

muestreos muy densos, superior a los requerimientos de

modo que la distancia entre muestras sea inferior a la mitad

del tamaño de las características de interés.

El conocimiento de las características de densidad de

muestreo del escáner, y el tamaño de la característica que se

quiere capturar, son suficientes para escoger un radio

apropiado. Alternativamente, se podría analizar un pequeño

subconjunto de los datos para calcular la densidad de puntos.

Un muestro desigual puede surgir cuando se escanea una

superficie compleja, con las regiones que se proyectan en

áreas pequeñas en la dirección del escáner. El mejor enfoque

consiste en tomar escaneos adicionales con la perpendicular

del escáner para estas regiones, para obtener datos

adicionales. Nótese sin embargo que el APB se puede aplicar

varias veces, con radios de bola en aumento, para manejar

densidades desiguales de muestreo, como se describe en la

sección IV-F.

IV. EL ALGORITMO DE PIVOTEO DE BOLA

El APB sigue el paradigma de avance frontal para

construir incrementalmente una triangulación de

interpolación. El APB toma como entrada una lista de los

puntos de datos de las muestras de la superficie σi, cada uno

asociado con una normal ni (y otros atributos opcionales,

tales como las coordenadas de textura) y un radio p de la

bola. El algoritmo básico funciona mediante la búsqueda de

un triángulo de semilla (es decir, tres puntos de datos (σi σj

σk) tal que una bola de radio p los toca sin contener otro

punto de datos), y añadiendo un triángulo en el momento de

realizar la operación de pivoteo de bola que se explicó en la

sección III.

El frente F se representa como una colección de listas

enlazadas de aristas, e inicialmente se compone de un solo

bucle que contiene las tres fronteras definidas por el primer

triángulo semilla. Cada arista e(i, j) de la parte delantera, está

representada por sus dos extremos (σi σj), el vértice opuesto

σo, el centro ci j o de la bola que toca los tres puntos, y se

enlaza a la arista anterior y la siguiente a lo largo en el

mismo bucle de la parte frontal. Una arista puede estar

activa, como frontera o congelada. Una arista activa es una

que se utilizará para pivotar. Si no es posible para pivotar

desde una arista, esta se marca como frontera.

El estado de congelación se explica a continuación, en el

contexto de las extensiones fuera del núcleo. Mantener toda

esta información con cada arista hace más sencillo el pivote

de la bola a su alrededor. La razón por la cual el frente es una

colección de listas enlazadas, en lugar de solo una, es que

como los pivotes de bola a lo largo de una arista, dependen

de si tocan un punto de dato encontrado recientemente o uno

utilizado anteriormente, en el frontal cambia la topología. El

APB se encarga de todos los casos con dos simples

operadores topológicos, unir y encolar, que aseguran que en

cualquier momento, el frente es una colección de listas

enlazadas.

Algoritmo APB(S, p)

Fig. 5. Esqueleto del algoritmo APB. Varias pruebas de errores

necesarias han sido dejadas fuera para facilitar la lectura, tales

como comprobar la orientación de las aristas. Las aristas en el

frente F se acceden generalmente por mantener una cola de

aristas activas. La operación de unión (join) añade dos aristas

activas en el frente. La operación de encolar (glue) elimina

dos aristas del frente, y cambia la topología del frente por

separar un solo bucle en dos, o la combinación de dos bucles

en uno. Ver texto para más detalles. La función de encontrar

un triángulo semilla (find_seed_triangle) devuelve un

triángulo descubierto ρ, el cual es usado para inicializar el

frente.

El algoritmo básico de APB se muestra en la figura 5.

Más abajo se detallan las funciones y estructuras de datos

utilizadas. En particular, luego se describe una modificación

simple necesaria para el algoritmo básico para soportar una

ejecución eficiente fuera de núcleo. Esto permite que APB

triangule conjuntos de datos grandes con un uso de memoria

mínima.

Page 6: Algoritmo de Pivoteo de Bola Para La Reconstruccion de Superficie

A. Consultas espaciales

Tanto ball_pivot como find_seed_triangle (líneas 3 y

10 en la figura 5) requieren de búsqueda eficiente de

subconjuntos de puntos contenidos en un pequeño vecindario

espacial. Se implementó esta consulta espacial utilizando una

red regular de células cúbicas, o pixeles volumétricos

(voxel). Cada voxel tiene lados de tamaño δ = 2ρ. Los puntos

de datos se almacenan en una lista, y la lista es organizada

usando el algoritmo de ordenamiento bucket-sort de manera

que los puntos que están en el mismo voxel forman una lista

secundaria contigua. Cada voxel almacena un puntero al

principio de su lista secundaria de puntos (a la sub-lista

siguiente si el voxel está vacío). Un voxel extra al final de la

red almacena un puntero NULL. Para visitar todos los puntos

en un voxel es suficiente para atravesar la lista desde el nodo

al que apunta el voxel para apuntar al siguiente voxel.

Dado un punto p se puede hallar fácilmente el voxel V

que se encuentra dividiendo sus coordenadas por δ. Por lo

general, es necesario buscar todos los puntos dentro de una

distancia 2ρ desde p, los cuales son un subconjunto de todos

los puntos contenidos en los 27 voxels adyacentes a V

(incluida la V en sí mismo).

La red permite el acceso en tiempo constante a los

puntos. Su tamaño sería prohibitivo si se procesa un gran

conjunto de datos en un solo paso; pero una aplicación fuera

del núcleo, que se describe en la sección IV-E, puede

procesar los datos en porciones manejables. El uso de

memoria puede reducirse aún más, a expensas de un acceso

más lento, utilizando las representaciones más compactas,

tales como la estructura de datos en una matriz esparcida.

B. Selección de semilla

Dados los datos que cumplen las condiciones del teorema

de la reconstrucción de la sección III, una semilla por

componente conectada es suficiente para reconstruir toda la

variedad (función find_seed_triangle línea 10 figura 5). Una

manera sencilla de encontrar una semilla válida es:

Elegir cualquier punto σ que aún no se haya utilizado por

la triangulación reconstruida.

Considerar todos los pares de puntos σa , σb en su

vecindario en orden de distancia desde σ.

Construir triángulos semilla potenciales σ, σa , σb.

Comprobar que la normal del triángulo es consistente con

las normales de los vértices, es decir, apuntando hacia

afuera.

Probar que una bola de radio ρ con centro en el semi-

espacio exterior que toca los tres vértices y no contiene otro

punto de dato.

Parar cuando un triángulo semilla válido ha sido

encontrado.

En presencia de ruido, datos incompletos, es importante

seleccionar una eficiente estrategia de búsqueda de semillas.

Dada una semilla válida, el algoritmo genera el componente

conectado más grande posible que contiene la semilla.

Puntos ruidosos situados a una distancia ligeramente mayor

que 2ρ desde la triangulación reconstruida podrían formar

otros triángulos de semillas potenciales, que conducen a la

construcción de pequeños conjuntos de triángulos situadas

cerca de la superficie principal (véase la figura 4 (c)). Estos

componentes pequeños son un artefacto del ruido presente

en los datos, y son por lo general no deseados. Mientras que

son fáciles de eliminar por el post-filtrado de los datos, una

cantidad significativa de recursos computacionales se

desperdicia en la construcción de ellos.

Sin embargo, se puede observar lo siguiente: Si nos

limitamos a considerar sólo un punto de datos por cada voxel

como candidato vértice de un triángulo de las semillas, no

podemos dejar que los componentes abarquen un volumen

más grande que unos pocos voxels. Además, para un voxel

dado, se considera la media normal n de los puntos que estén

dentro. Esto se aproxima a la normal, de la normal de la

superficie en esa región. Como queremos que nuestra bola

pase "sobre" la superficie, es conveniente considerar en

Fig. 4 Bola pivotante en la presencia de datos ruidosos. (a) Muestras de superficie de que se encuentran por "debajo" del nivel de la

superficie, no son tocados por la bola que pivotea y permanecen aislados (y son desechados por el algoritmo). (b) Debido a la

falta de datos, la bola pivotea alrededor de una arista hasta que toque una muestra que pertenece a una parte diferente de la

superficie. Al comprobar que las normales del triángulo y los puntos de datos son consistentemente, se evita la generación de

un triángulo en este caso. (c) Las muestras ruidosas forman dos capas, con una distancia suficiente para permitir que el radio

de la bola pase por ambas capas. Un falso componente es creado. Nuestra estrategia de selección de semillas evita la creación

de un gran número de estos pequeños componentes. Restantes se pueden quitar con un paso post-procesado simple. En todos

los casos, el APB emite una variedad triangulada.

Page 7: Algoritmo de Pivoteo de Bola Para La Reconstruccion de Superficie

primer lugar los puntos cuya proyección sobre n es grande y

positiva.

Por lo tanto, simplemente se mantiene una lista de voxels

no-vacíos. Buscamos estos voxels para los triángulos de

semillas válidos, y cuando uno es encontrado, comenzamos a

construir una triangulación usando las operaciones de

pivoteo. Cuando no es posible pivotar más, continuamos la

búsqueda de un triángulo semilla de donde nos habíamos

detenido, saltando todos los voxels que contienen un punto

que ahora es parte de la triangulación. Cuando no hay más

semillas que se puedan encontrar, el algoritmo se detiene.

C. Pivoteo de Bola

Una operación de pivoteo (línea 3 en la figura 5)

comienza con un triángulo τ = (σi , σj , σo) y una bola de

radio ρ que toque los tres vértices. Sin pérdida de

generalidad, se asume que la arista e(i, j) es la arista de

pivoteo. La bola en su posición inicial (deja que ci j o sea el

centro) no contiene ningún punto de datos, ya sea porque τ es

un triángulo de semillas, o porque τ fue calculado mediante

una operación de pivoteo anterior. El pivoteo es en principio

un movimiento continuo de la bola, durante el cual la bola se

mantiene en contacto con los dos extremos de arista e(i, j), como se ilustra en la figura 2. Debido a este contacto, el

movimiento está restringido como sigue: El centro c i j o de la

bola describe un círculo ϒ que se encuentra sobre el plano

perpendicular a e(i,j) y a través de su punto medio m = ½(σj +

σi). El centro de esta trayectoria circular es m y su radio es ||

cijo - m ||. Durante este movimiento, la bola puede tocar otro

punto σk. Si no hay puntos que sea tocado, entonces la arista

es una arista de frontera. De lo contrario, el triángulo (σi , σk ,

σj) es un triángulo válido nuevo, y la bola en su posición

final no contiene ningún otro punto, siendo así una bola de

partida válida para la siguiente operación de pivoteo.

En la práctica encontramos σk como sigue. Consideramos

que todos los puntos en una 2 vecindad ρ de m. Para cada

punto de dicho σx, calculamos el centro cx de la bola que toca

σi , σj y σx, si dicha bola existe. Cada cx que se encuentra en

la trayectoria circular ϒ en tor no a m, y puede ser calculado

por la intersección de una esfera de radio ρ centrada en σx

con el círculo ϒ. De estos puntos cx se selecciona uno que sea

el primero a lo largo de la trayectoria ϒ. Se presenta el

primer punto que se toca y el centro de la bola

correspondiente. Las pruebas triviales de rechazo se pueden

añadir para acelerar la búsqueda del primer punto que toca.

D. Operaciones de unión y de cola

Estas dos operaciones generan triángulos añadiendo y

moviendo las aristas de los bucles delanteros (líneas 5-7 en

la figura 5). La operación más simple es la unión, que se

utiliza cuando los pivotes de bola alrededor de la arista e(i, j)

tocando un vértice no usado σk (es decir, σk es un vértice que

todavía no forma parte de la malla). En este caso, la salida

del triángulo triángulo (σi , σk , σj), y localmente modificar el

frente mediante la eliminación e(i, j) y añadiendo las dos

aristas e(i, k) y e(k, j) (véase el gráfico 6).

Cuando σk es ya parte de la malla, uno de los dos casos

puede surgir:

Fig. 6. Una sencilla operación de unión añade un triángulo

removiendo aristas e(i, j) del frente, y se añaden dos

aristas nuevas e(i, k), e(k, i) . Fig. 8. Ejemplo de una secuencia de operaciones de unir y

encolar. (a) Un nuevo triángulo se añade a la parte frontal

existente. Los cuatro vértices del frente en el interior del

círculo de trazos, todos representan un solo punto de

datos. (b) Una unión elimina una arista y crea dos aristas

delanteras nueva, coincidentes con las existentes. (c), (d)

Dos operaciones para encolar quitar pares coincidentes de

aristas. (d) también se muestra el triángulo sque añadió.

(e) Sólo uno de las aristas creadas por esta unión es

coincidente con una arista existente. (f) La operación de

cola elimina el par duplicado.

Page 8: Algoritmo de Pivoteo de Bola Para La Reconstruccion de Superficie

1. σk es un vértice interno de la malla, (es decir, no se

utiliza la arista frontal σk). El triángulo correspondiente no se

puede generar, ya que crearía un vértice non-manifold. En

este caso, e(i, j) se marca simplemente como una arista de

frontera;

2. σk pertenece al frente. Después de comprobar la

orientación de la arista a evitar creando un manifold no

orientable. Se aplica una operación de unión, y salida de la

nueva malla de triángulo (σi , σk , σj). La unión podría crear

potencialmente (una o dos) pares de aristas coincidentes

(con orientación opuesta), que se eliminan mediante la

operación de cola.

La operación de cola elimina de los pares delanteros de

las aristas coincidentes, con orientación opuesta (aristas

coincidentes con la misma orientación nunca son creadas por

el algoritmo). Por ejemplo, cuando la arista e(i, k) es añadida a

la parte del frente por una operación de unión (lo mismo

aplica a e(k, j)), si e(k, j) está en el frente, la cola removerá el

par de aristas e(i, k), e(k, i) y se ajusta de acuerdo al frente. Cuatro casos son posibles, como se ilustra en la figura 7.

Una secuencia de operaciones de unión y cola se ilustra en

la figura 8

E. Extensiones fuera de núcleo.

Ser capaz de utilizar un ordenador personal para

triangular las escaneos de alta resolución permite a bajo

costo en el sitio el procesamiento de datos. Debido a su

localidad de referencia, el avance frontal de los algoritmos es

adecuado para extensiones muy simples fuera de núcleo.

Se empleó un simple esquema de corte de los datos para

extender el algoritmo mostrado en la figura 5. La idea básica

es la de almacenar en caché la parte del conjunto de datos

que actualmente se utilizan para pivotar, para vaciar los

datos que ya no se usan, y cargar los datos que son

necesarios. En nuestro caso, hemos utilizado dos planos π0 y

π1 con ejes alineados para definir la región activa de trabajo

para el pivoteo. Inicialmente se coloca π0 de tal manera que

no hay puntos de datos se encuentran "por debajo", y π1

encima de π0 a cierta distancia especificada por el usuario.

Como cada arista se crea, comprobamos si sus extremos

están "por encima" de π1; en este caso se marca la arista

congelada. Cuando todas las aristas restantes en la cola se

congelan, simplemente se intercambian los planos, y

actualizan todas las aristas congeladas en activos, y así

sucesivamente. Un subconjunto de puntos de datos se carga

y se desecha de la memoria cuando la casilla correspondiente

delimitada entra y sale de la porción activa. Analiza

fácilmente puede ser pre-procesado para romperlas en

pequeños mallas, de modo que sólo abarcan unos pocos

cortes, y la carga de la memoria sigue siendo baja.

El único cambio necesario en el algoritmo para aplicar

este refinamiento es un bucle externo para mover el trozo

activo, y la añadir las instrucciones para descongelar aristas

entre las líneas 1-2 de la figura 5.

F. Múltiples pasadas

Para hacer frente a las superficies de forma desigual en la

muestra, fácilmente se puede extender el algoritmo para

ejecutar múltiples pasadas con radios de bola cada vez

mayor. El usuario especifica una lista de radios {ρ0, …,

ρn}como parámetros de entrada. En cada corte, para

aumentar ρi , i= 0,…, n, empezamos por la inserción de los

puntos en una red de tamaño de vóxel δ = 2ρi . Dejamos que

el APB se ejecute hasta que no queden más aristas activas en

la cola. En este punto incrementamos i, y se pasan todas las

aristas del frente, y se comprueba si cada arista con su

vértice opuesto σo forma una semilla de triángulo válida para

una bola de radio ρi. Si lo es, entonces se añade a la cola de

aristas activas. Finalmente, el pivoteo se inicia de nuevo.

Fig. 7. Una operación de cola es aplica cuando la unión crea una aristas idénticas a una ya existente, pero con orientación opuesta.

Las dos aristas que coinciden se remueven, y por lo tanto se ajusta la parte del frente. Existen cuatro casos posibles: (a) Las

dos aristas forman un bucle. El bucle se elimina de la parte delantera. (b) Las dos aristas pertenecen al mismo bucle y son

adyacentes. Las aristas se eliminan y se acorta el bucle. (c) Las aristas no son adyacentes, y pertenecen a un mismo bucle.

El bucle se divide en dos. (d) Las aristas no son adyacentes y pertenecen a un mismo bucle. Los bucles se fusionan en uno.

Page 9: Algoritmo de Pivoteo de Bola Para La Reconstruccion de Superficie

G. Comentarios

El algoritmo APB fue implementado en C++ usando la

librería de plantillas estándar. El código de conjunto es

menos de 4000 líneas, incluyendo las extensiones fuera del

núcleo.

El algoritmo es lineal en el número de puntos de datos y

utiliza el almacenamiento lineal, bajo la suposición de que la

densidad de datos es limitada. Esta suposición es apropiada

para los datos digitalizados, que es recogido por el equipo

con un espaciado de muestra conocido. Incluso si varios

análisis se superponen, el número total de puntos en

cualquier región estará delimitado por una constante

conocida.

La mayoría de los pasos son simples O(1) que verifican

los estados o actualizaciones de las colas, listas encadenadas,

y similares. Con una densidad limitada, un punto sólo

necesita estar relacionado con un número constante de los

vecinos. Así, por ejemplo, un único punto puede estar

contenido en un número constante de bucles en el frente de

avance. Las dos operaciones ball_pivot y

find_seed_triangle son más complejas.

Cada ball_pivot opera en una arista de diferentes mallas

por lo que el número de pivotes es O(n). Un simple pivote

requiere identificar todos los puntos en una vecindad 2ρ. Una

lista de estos puntos se puede recoger a partir de 27 voxels

que rodean el punto candidato en nuestra red. Con una

densidad limitada, esta lista tiene un tamaño fijo B.

Llevamos a cabo un pocos cálculos algebraicos en cada

punto de la lista y seleccionar el resultado mínimo, todas las

operaciones O(1) en una lista de tamaño O(1).

Cada find_seed_triangle recoge puntos no utilizados uno

a la vez y comprueba si cualquier triángulo incidente es una

semilla válida. Ningún punto es considerado más de una vez,

por lo que esta prueba se realiza sólo O(n) veces. Para probar

un punto candidato, nos reunimos el mismo punto de la lista

se discutió anteriormente, y considerar los pares de puntos

hasta que, o bien encontrar un triángulo semilla o rechazar al

candidato. Prueba uno de estos triángulos pueden requerir la

clasificación de todos los lugares en contra de una esfera de

tocar los tres vértices, en el peor de los casos, O(B3) = O(1)

pasos. En la práctica, se limita el número de puntos y

triángulos candidatos probados por las heurísticas discutidas

en la sección IV-B.

Una implementación en el núcleo del APB usa de

memoria O(n + L), donde L es el número de celdas en la red

del voxel. El término O(n) incluye los datos, el avance de

frente (que sólo puede incluir cada arista de la malla una

vez), y la cola de aristas candidato. La implementación en el

núcleo usa O(m + L’) de memoria, donde m es el número de

puntos de datos en el mayor trozo y L’ es el tamaño de red

más pequeño que cubre un solo corte. Dado que el usuario

puede controlar el tamaño de los cortes, los requisitos de

memoria se pueden adaptar para el hardware disponible. La

red voxel puede ser más compacta representada como una

matriz dispersa, con un pequeño (constante) aumento del

tiempo de acceso.

V. RESULTADOS DE LAS PRUEBAS

Los experimentos para este trabajo se llevaron a cabo en

una 450MHz Pentium II Xeon processor de una IBM

IntelliStation Z Pro con Windows NT 4.0.

En estos experimentos se utilizaron varios conjuntos de

datos: conjunto de datos "limpios" (es decir, los puntos de la

superficie analítica, ver figura 9); los conjuntos de datos de

la base de datos analizados de Stanford (véase la figura 11

(a) - (c)), y un conjunto de datos muy grande adquiridos (y

la motivación principal de este trabajo), un modelo de

Michelangelo’s Florentine Pieta [3] (véase la figura 11 (d)).

Para permitir la entrada flexible de varios análisis y fuera

del núcleo de ejecución, el programa lee la entrada en cuatro

partes: una lista de las exploraciones individuales que se

convierten en una malla de triángulos único y coherente, y

para cada ciclo, una matriz de transformación, un puesto -

transformar el cuadro delimitador (utilizada para estimar con

rapidez la posición de malla para la asignación a una

división), y el escaneo real, que se carga sólo cuando sea

necesario.

A. Pruebas

La tabla de la figura 10 se resume los resultados. El

conjunto de datos "limpios" es una colección de puntos de

una superficie analítica. El conejito de conjuntos de datos de

Stanford, el Dragón y el Buda son múltiples escaneos de

rango láser de objetos pequeños. El escáner utilizado para

adquirir los datos era un 3030MS Cyberware.

Estos datos se requiere algún preprocesamiento menor.

Se utilizó el programa vrip de Standord para conectar los

puntos dentro de cada rango de datos individuales de

Fig. 9. Resultados. Datos limpios a partir de una figura

analítica.

Page 10: Algoritmo de Pivoteo de Bola Para La Reconstruccion de Superficie

Fig. 10. Resumen de los resultados. Número de puntos y número de escaneos son el número original de los puntos de datos e

imágenes de rango, respectivamente. ρ lista de radios de las bolas de pivoteo. Radio múltiple significa los múltiples

pasos del algoritmo, con aumenta de tamaño de la bola, se utilizaron. # Slices es el número de cortes en el que los

datos se repartieron para ser procesados fuera del núcleo. # Triangles es el número de triángulos creados por el APB.

Mem. Usage es la máxima cantidad de memoria utilizada durante la generación de mallas, en MB. I/O Time el tiempo

dedicado a la lectura de los archivos binarios de entrada, también incluye el tiempo para escribir la malla de salida,

como un conjunto de triángulo indexado, en formato binario. CPU Time es el tiempo gastado para calcular la

triangulación. La franja horaria es en minutos, salvo que se indique lo contrario. Todas las pruebas se realizaron en un

450 MHz Pentium II Xeon.

son en minutos, salvo que se indique lo contrario.

Fig. 11. Resultados. (a) Conejo de Stanford. (b) Dragon de Stanford. (c) Buda de Stanford. (d) Reconstrucción

preliminar de Michelangelo’s Florentine Pieta.

Page 11: Algoritmo de Pivoteo de Bola Para La Reconstruccion de Superficie

escaneo para proporcionar estimaciones de las normales de

la superficie. También elimina los planos a esculpidos, los

planos grandes de triángulos utilizados para el llenado de

agujeros de los algoritmos descritos en [6]. Este cambio se

hizo sólo por razones estéticas, el APB no tiene problemas

para manejar la entrada completa.

Con el fin de confirmar la eficacia de nuestras

capacidades fuera de núcleo, hemos modificado el Dragón de

Stanford mediante la subdivisión de cada malla amplia en

varios pedazos, la multiplicación de las originales 71 mallas

a más de 7500. Un pre-procesamiento similar se aplica

también al conjunto de datos de Buda. Tomamos nota de que

estas descomposiciones se puede realizar de manera eficiente

para las exploraciones del área de distribución

arbitrariamente grandes (que no necesariamente tienen que

caber en la memoria) mediante las técnicas descritas en [20].

Los datos de Pieta han sido objeto de pre-procesamiento

extenso durante y después del escaneo y registro que está

fuera del alcance de este documento. Los datos son lo

suficientemente grandes que no pueden ser procesados en el

núcleo, y sólo se procesan en cortes. El escaneo de Pieta

también incluye la captura de múltiples imágenes de color

con iluminación calibrada, los mapas de reflexión y las

normales para aumentar los datos geométricos que son

calculados (ver [21]).

VI. CONCLUSIONES

En este trabajo, presentamos el algoritmo de pivoteo de

bola, un algoritmo de avance frontal para construir

gradualmente una triangulación de interpolación de una nube

de puntos dado. APB tiene varias propiedades deseables:

Intuitivo: APB triangula un conjunto de puntos por el

rodamiento del radio de una bola en una nube de puntos. El

usuario elige un solo parámetro.

Flexible, eficiente y robusto: Nuestras bases de datos de

prueba oscilaron entre los pequeños datos sintéticos de

grandes escaneos del mundo real. Hemos demostrado que

nuestra implementación de BPA trabaja en conjuntos de

datos de millones de puntos que representan los escaneos

reales de complejos objetos en 3D. Para nuestros datos de

Pieta, encontramos que en un PC Pentium II, el algoritmo

genera y escribe en el disco de la malla de salida a una

velocidad de aproximadamente 500K triángulos por minuto.

Fundamentos teóricos: el APB se relaciona con el alpha-

shapes [2], y teniendo en cuenta el muestreo lo

suficientemente denso, se garantiza para reconstruir una

superficie homeomorfa y dentro de una distancia limitada

desde el manifold original.

Hay algunas pistas para seguir trabajando. Sería

interesante para evaluar si el APB se puede utilizar para

triangular superficies muestreadas con sistemas de partículas.

Esta posibilidad quedó como un problema abierto en [22], y

desarrollado en [23] en el contexto de la generación de

isosuperficie.

Mediante el uso de puntos ponderados, podríamos ser

capaces de generar triangulaciones de muestreos de

adaptación. La densidad de muestreo podría ser cambiado

dependiendo de las propiedades superficiales locales, y el

peso del punto de acuerdo asignado o calculado. Una

extensión de nuestro algoritmo a lo largo de las líneas de la

generalización ponderada de alpha-shapes [18], deben ser

capaces de generar una más compacta, adaptativa,

interpolación de triangulación.

Hemos hecho algunos experimentos iniciales en el uso de

un algoritmo de suavizado adaptado de [19] para pre-

procesar los datos y para calcular los puntos de consenso a

partir de múltiples escaneos superpuestos para ser utilizado

como entrada para el APB, mientras que al mismo tiempo

haciendo pequeños refinamientos a la alineación rígida de

los análisis a los demás. Conjuntos de datos utilizados en

este trabajo se pre-procesaron utilizando nuestra actual

implementacion de este algoritmo.

Agradecimientos. Gracias al Laboratorio de

Computación Gráfica de la Universidad de Stanford, por

crear algunos de los datos de rango utilizados en este

documento a disposición del público. El Museo dell’Opera

del Duomo in Florence, Italia nos ha permitido analizar el

Michelangelo’s Florentine Pieta. Reconocemos su amable

colaboración.

REFERENCIAS

[1] K. Pulli, T. Duchamp, H. Hoppe, J. McDonald, L. Shapiro, and

W. Stuetzle, “Robust meshes from multiple range maps,” in Intl.

Conf. on Recent Advances in 3-D Digital Imaging and Modeling.

May 1997, pp. 205–211, IEEE Computer Society Press.

[2] H. Edelsbrunner and E. P. M¨ ucke, “Three-dimensional alpha

shapes,” ACM Trans. Graph., vol. 13, no. 1, pp. 43–72, Jan. 1994.

[3] J. Abouaf, “The Florentine Piet` a: Can visualization solve the

450-year-old mystery?,” IEEE Computer Graphics & Applications,

vol. 19, no. 1, pp. 6–10, Feb. 1999.

[4] F. Bernardini, C. Bajaj, J. Chen, and D. Schikore, “Automatic

reconstruction of 3D CAD models from digital scans,” International

Journal of Computational Geometry and Applications, vol. 9, no. 4

& 5, pp. 327–370, Aug.-Oct. 1999.

[5] R. Mencl and H. M¨ uller, “Interpolation and approximation of

surfaces from three-dimensional scattered data points,” in

Proceeding of Eurographics ’98. Eurographics, 1998, State of the

Art Reports.

[6] B. Curless and M. Levoy, “A volumetric method for building

complex models from range images,” in Computer Graphics

Proceedings, 1996, Annual Conference Series. Proceedings of

SIGGRAPH 96, pp. 303–312.

[7] W. Lorensen and H. Cline, “Marching cubes: a high resolution

3d surface construction algorithm,” Comput. Graph., vol. 21, no. 4,

pp. 163–170, 1987.

[8] M. Soucy and D. Laurendeau, “A general surface approach to

the integration of a set of range views,” IEEE Transactions on

Pattern Analysis and Machine Intelligence, vol. 17, no. 4, pp. 344–

358, Apr. 1995.

Page 12: Algoritmo de Pivoteo de Bola Para La Reconstruccion de Superficie

[9] G. Turk and M. Levoy, “Zippered polygonal meshes from range

images,” in Computer Graphics Proceedings, 1994, Annual

Conference Series. Proceedings of SIGGRAPH 94, pp. 311–318.

[10] C. Dorai, G. Wang, A. K. Jain, and C. Mercer, “Registration

and integration of multiple object views for 3D model

construction,” IEEE Transactions on Pattern Analysis and Machine

Intelligence, vol. 20, no. 1, pp. 83–89, Jan. 1998.

[11] C. Bajaj, F. Bernardini, and G. Xu, “Automatic reconstruction

of surfaces and scalar fields from 3D scans,” in Computer Graphics

Proceedings, 1995, Annual Conference Series. Proceedings of

SIGGRAPH 95, pp. 109–118.

[12] N. Amenta, M. Bern, and M. Kamvysselis, “A new voronoi-

based surface reconstruction algorithm,” in Proc. SIGGRAPH ’98,

July 1998, Computer Graphics Proceedings, Annual Conference

Series, pp. 415–412.

[13] J.-D. Boissonnat, “Geometric structures for three-dimensional

shape representation,” ACM Trans. Graph., vol. 3, no. 4, pp. 266–

286, 1984.

[14] R. Mencl, “A graph-based approach to surface reconstruction,”

Computer Graphics Forum, vol. 14, no. 3, pp. 445–456, 1995, Proc.

of EURO-GRAPHICS ’95.

[15] A Hilton, A Stoddart, J Illingworth, and T Windeatt,

“Marching triangles: Range image fusion for complex object

modelling,” in Proc of IEEE International Conference on Image

Processing, Laussane, 1996, vol. 2, pp. 381–384.

[16] F. Bernardini and C. Bajaj, “Sampling and reconstructing

manifolds using alpha-shapes,” in Proc. of the Ninth Canadian

Conference on Computational Geometry, Aug. 1997, pp. 193–198,

Updated online versión available at www.qucis.queensu.ca/cccg97.

[17] Nina Amenta and Marshall Bern, “Surface reconstruction by

voronoi filtering,” in Proc. 14th Annual ACM Sympos. Comput.

Geom., 1998, pp. 39–48.

[18] H. Edelsbrunner, “Weighted alpha shapes,” Technical Report

UIUCDCS-R-92-1760, Dept. Comput. Sci., Univ. Illinois, Urbana,

IL, 1992.

[19] Gabriel Taubin, “A signal processing approach to fair surface

design,” in Proc. of SIGGRAPH ’95. ACM SIGGRAPH, Aug.

1995, Computer Graphics Proceedings, Annual Conference Series,

pp. 351–358.

[20] Yi-Jen Chiang, Cl´ audio T. Silva, and William Schroeder,

“Interactive out-of-core isosurface extraction,” in Proc. IEEE

Visualization ´ 98, Nov. 1998, pp. 167–174.

[21] H. Rushmeier and F. Bernardini, “Computing consistent

normals and colors from photometric data,” in Proc. of the Second

Intl. Conf. on 3-D Digital Imaging and Modeling, Ottawa, Canada,

October 1999, To appear.

[22] Andrew P. Witkin and Paul S. Heckbert, “Using parzicles to

sample and control implicit surfaces,” in Proceedings of

SIGGRAPH ’94 (Orlando, Florida, July 24–29, 1994), Andrew

Glassner, Ed. ACM SIGGRAPH, July 1994, Computer Graphics

Proceedings, Annual Conference Series, pp. 269–278, ACM Press,

ISBN 0-89791-667-0.

[23] Patricia Crossno and Edward Angel, “Isosurface extraction

using particle systems,” in IEEE Visualization ´ 97, Roni Yagel and

Hans Hagen, Eds. IEEE, Nov. 1997, pp. 495–498.