6.2. Parametrización - Universidad Nacional de Colombia

Anuncio
68
buena alternativa para una reconstrucción efectiva mediante el método propuesto.
6.1.5.
Tiempo de cálculo
El tiempo de cálculo del particionamiento cuadrilateral es muy bajo. Este no de-
pende del número de muestras en los conjuntos de datos, sino del número de puntos de
control en el grafo de Delaunay y del número de ejes en el borde del modelo. Incluso para
esquemas con un número elevado de puntos de control el tiempo de cálculo del algoritmo
no supera 1 segundo. Para 58 puntos de control y 570 vecindarios, el cálculo del particionamiento tardó 0,032s.
6.2.
Parametrización
El proceso de parametrización es el más importante en un esquema de reconstruc-
ción mediante funciones NURBS. Se analizaron los diferentes pasos que componen el método propuesto sobre los modelos de prueba escogidos.
6.2.1.
Selección de puntos de control en el plano
El método de selección de puntos de control en el plano no presentó errores de cál-
culo, esto debido a que se trata de una construcción completamente geométrica que no depende de los datos en el modelo a reconstruir. Al igual que en el particionamiento, el tiempo
de cálculo de la selección de puntos de control en el plano durante el proceso de parametrización es muy pequeño, este no depende del número de datos en el modelo a reconstruir,
sino del número de cuadriláteros en el particionamiento, del número de ejes en el borde del
modelo y del número de divisiones que se requieran en ambas direcciones paramétricas.
En una prueba con 494 vecindarios, y 100 divisiones en cada dirección paramétrica (10000
puntos de control sobre cada vecindario), el tiempo promedio del cálculo para el caso regular fue de 0,878ms, y para el caso irregular de 6,84ms. El tiempo total de cálculo fue de
69
0,625s.
6.2.2.
Indexación cuadrada
El tiempo de cálculo de un algoritmo de búsqueda completa en los procesos de
proyección 3D, (punto a punto y punto a triángulo) es muy alto, debido que se deben
encontrar los datos objetivos en un conjunto extenso para cada punto de control en la parametrización planar. En el caso de la proyección punto a punto se debe encontrar el punto
más cercano a cada dato en la parametrización sobre la nube de puntos. Para solucionar este
problema se generó un algoritmo de indexación cuadrada que se encarga de almacenar los
puntos de control (o los triángulos) en una estructura matricial de a cuerdo a su posición en
el plano, de esta manera, para un punto dado en la parametrización solo se debe analizar un
conjunto reducido de muestras que corresponde a los puntos en la nube (o los triángulos en
la reconstrucción) que se encuentran más cercanos a dicho punto y por tanto son candidatos
a proyección.
Figura 6.7: Parametrización - indexación cuadrada
En la figura 6.7 se aprecia claramente la diferencia en el tiempo de cálculo entre la
indexación cúbica y la búsqueda sobre el espacio de datos completo. Mientras el tiempo de
70
cálculo aumenta exponencialmente con el número de divisiones para la búsqueda en todo
el espacio, en la indexación cúbica presenta un comportamiento mucho más estable con
tiempos de cálculo muchísimo menores.
6.2.3.
Proyección punto a punto
La estrategia de proyección punto a punto puede ser aplicada incluso cuando ex-
isten errores en la reconstrucción inicial del modelo a reconstruir, esto debido a que la
aproximación de la profundidad depende del punto más cercano a cada partición en la parametrización.
El algoritmo presenta errores de parametrización, cuando existen puntos sobre la
nube que no tienen normales asociadas. Para estos casos específicos se analizaron los puntos más cercanos hasta encontrar un candidato válido.
(a) Parametrización Incorrecta
(b) Corregida
Figura 6.8: Parametrización punto a punto
La figura 6.8 muestra una reconstrucción para el modelo buda mediante el método
71
de parametrización punto a punto. En la figura 6.8(a) se aprecia un error en la reconstrucción producto de una parametrización incorrecta debido a la presencia de puntos que no
tienen una normal asociada. La figura 6.8(b) muestra la reconstrucción corregida para el
modelo buda.
Figura 6.9: Parametrización - tiempo de cálculo
La figura 6.9 muestra la gráfica de tiempo de cálculo contra el número de divisiones en la parametrización para la proyección punto a punto en los conjuntos de datos
rostro, buda y máscara. En la gráfica se aprecia como el tiempo de cálculo se eleva para
un número mayor de divisiones, sin embargo, este resulta menor al calcular la proyección
punto a triángulo en el conjunto de datos cerámica que en el conjunto válvula. Esto se debe
al algoritmo de indexación cuadrada implementado para reducir el tiempo de cálculo del
algoritmo.
6.2.4.
Proyección punto a triángulo
La metodología de proyección punto a triángulo presentó errores de cálculo en pres-
encia de agujeros en los conjuntos de datos. Para este caso particular, no se puede encontrar
el triángulo más cercano al punto analizado para aproximar la proyección, debido a que el
72
algoritmo está basado sobre el hecho de que cada punto de control en la parametrización
está contenido en por lo menos un triángulo de la proyección planar de la reconstrucción
inicial.
En la proyección punto a triángulo, cuando un modelo tiene pocos triángulos en la
reconstrucción inicial, y se parametriza con un número elevado de divisiones y cuadriláteros,
la reconstrucción se asemeja a una voxelización triangulada, esto debido a que la proyección es una aproximación de la profundidad hacia un modelo triangulado, y al ser muy fina,
su apariencia final será la del modelo triangulado original.
Figura 6.10: Parametrización punto a triángulo
En la figura 6.10 se aprecia un acercamiento en la parametrización del modelo rostro, el cual cuenta solo con 2849 triángulos. La reconstrucción parece discreta y triangulada,
aunque tiene un número elevado de datos (125 cuadriláteros y 100 divisiones en ambas direcciones paramétricas para un total de 1125000 polígonos).
73
Figura 6.11: Parametrización - Tiempo de Cálculo
La figura 6.11 muestra la gráfica de tiempo de cálculo contra el número de divisiones en la parametrización para la proyección punto a triángulo en los conjuntos de datos
rostro, válvula y cerámica. La tendencia de los tiempos es similar en la proyección punto a
punto, sin embargo, con un número mayor de divisiones, el cálculo de la proyección punto
a triángulo es más rápido.
6.2.5.
Error en la aproximación
Se realizó una prueba de error aumentando el número de divisiones en la parame-
trización sobre un mismo esquema de particionamiento con 9 cuadriláteros y los mismos
puntos de control en todas las pruebas.
La figura 6.12 muestra como en un esquema de particionamiento constante, al aumentar el numero de divisiones en la parametrización, el error en la aproximación disminuye considerablemente. Esto de debe a que al elevar la densidad de los datos en la
parametrización, se cuenta con un mayor número de puntos de control.
74
Figura 6.12: Parametrización - error de aproximación
6.3.
Continuidad
Se analizó la continuidad entre las fronteras de los parches NURBS de forma cual-
itativa, al comparar las reconstrucciones resultantes de los modelos de prueba mediante la
técnica propuesta aplicando el proceso de ajuste de continuidad.
La figura 6.13 muestra el efecto visual del ajuste de la continuidad para la reconstrucción del modelo válvula (con 18 cuadriláteros en el particionamiento). Las figuras
6.13(a) y 6.13(b) ilustran el efecto del ajuste de continuidad y de la falta de esta respectivamente, para una parametrización con 10 divisiones en cada dirección paramétrica. De
forma similar, las figuras 6.13(c) y 6.13(d) ilustran el efecto del ajuste de continuidad, para
una parametrización con 50 divisiones en cada dirección paramétrica. Estos dos ejemplos
muestran claramente como el efecto visual del ajuste de continuidad se hace más importante para un nivel de parametrización bajo.
75
(a)
(b)
(c)
(d)
Figura 6.13: Continuidad en modelo válvula
6.3.1.
Tiempo de cálculo
Al igual que en el particionamiento, el tiempo de cálculo del análisis de continuidad
es considerablemente bajo y este no depende de la cantidad de datos en el modelo a reconstruir sino del número de cuadriláteros en el particionamiento y del número de divisiones
en cada uno de estos. En una prueba con 734 cuadriláteros y 100 divisiones por partición,
el tiempo de cálculo del análisis de continuidad fue de 0,316s.
76
6.4.
Optimización
Se optimizó el error de ajuste en una reconstrucción del modelo cerámica con dos
esquemas de particionamiento diferentes (con 9 y 14 cuadriláteros) y con 3 niveles de parametrización diferentes (con 12, 15 y 18 divisiones en ambas direcciones paramétricas).
Divisiones
error promedio
error optimizado
tiempo (s)
12
0.2518
0.1057
475.2
15
0.1218
0.0484
636.3
18
0.1123
0.0462
787.5
Tabla 6.2: Optimización con 9 vecindarios
La tabla 6.2 muestra el error promedio de ajuste, el error optimizado y el tiempo
de cálculo total para el proceso de optimización en el esquema de particionamiento con 9
vecindarios.
Divisiones
error promedio
error optimizado
tiempo (s)
12
0.1602
0.0672
836.4s
15
0.1052
0.0418
1120.3s
18
0.0923
0.0379
1432.8s
Tabla 6.3: Optimización con 14 vecindarios
La tabla 6.3 muestra los resultados para un esquema de particionamiento con 14
vecindarios.
77
6.5.
Reconstrucción completa
El proceso de reconstrucción completo fue aplicado a los modelos cerámica pre-
colombina y máscara.
Figura 6.14: Reconstrucción cerámica precolombina
La figura 6.14 muestra la reconstrucción del modelo cerámica mediante el método
propuesto. Para esta reconstrucción se emplearon 11 puntos de control seleccionados manualmente. El particionamiento cuenta con 53 cuadriláteros, de los cuales 14 son irregulares
y pertenecen al borde exterior del modelo; el tiempo de cálculo del particionamiento fue
de 0,016s. Se emplearon 30 divisiones en cada dirección paramétrica para el proceso de
parametrización, la cual fue calculada mediante el método de proyección punto a punto; el
tiempo de cálculo de la parametrización fue de 4,797s. En la reconstrucción inicial, el error
en la aproximación fue de 0,0123, el cual luego de aplicar el proceso de optimización se
redujo hasta 0,0046; el tiempo de cálculo de la optimización fue de 7832s.
78
Figura 6.15: Reconstrucción máscara
La figura 6.15 muestra la reconstrucción del modelo máscara mediante el método propuesto. Para esta reconstrucción se emplearon 8 puntos de control seleccionados
automáticamente. El particionamiento cuenta con 32 cuadriláteros, de los cuales 20 son irregulares, 12 pertenecen al borde exterior del modelo, y 8 pertenecen a la caracterización
de los agujeros; el tiempo de cálculo del particionamiento fue de 0,012s. Se emplearon 20
divisiones en cada dirección paramétrica para el proceso de parametrización, la cual fue
calculada mediante el método de proyección punto a triángulo, el tiempo de cálculo de la
parametrización fue de 23,478s. En la reconstrucción inicial, el error en la aproximación
fue de 0,0532, el cual luego de aplicar el proceso de optimización se redujo hasta 0,0154,
el tiempo de cálculo de la optimización fue de 4254s.
Capítulo 7
Conclusiones y Trabajo Futuro
7.1.
Conclusiones
Las funciones NURBS presentan una formulación matemática unificada que permite
su fácil implementación y digitalización, además, el alto grado de adaptación y la capacidad de aproximación local hacen de las superficies NURBS una herramienta poderosa para
generar modelos computacionales de objetos tridimensionales a partir de datos de rango.
El método de particionamiento propuesto puede ser aplicado a conjuntos de datos
compuestos por uno a más imágenes de rango. El esquema empleado permite crear vecindarios irregulares que rastrean la curvatura cambiante de bordes irregulares de forma libre,
además, el análisis de agujeros en el particionamiento es un aporte que no se encontró en la
literatura relacionada.
Mediante la estrategia de parametrización diseñada, es posible generar redes de
control matriciales ordenadas sobre las cuales se pueden aplicar directamente funciones
paramétricas como NURBS o B-Splines. Además, mediante los métodos de proyección implementados se puede aproximar la información tridimensional de vistas parciales de modelos tridimensionales.
79
80
El esquema de ajuste de continuidad C l emoleado es simple y generalizante, debido a que emplea un modelo simplificado de superficies NURBS con una distribución uniforme de la parametrización y un número igual de puntos de control en ambas direcciones
paramétricas.
Las representación mediante curvas y superficies NURBS con funciones base Splines
cúbicas es ideal para el proceso de aproximación, debido a que estas presentan condiciones
de continuidad adecuadas que garantizan las derivadas continuas de primer y segundo orden
sobre todo el intervalo paramétrico. Además tienen un efecto de filtrado pasabajos deseable
y la aproximación de la representación final es lo suficientemente local para ajustarse a curvas y superficies de forma libre.
La optimización lineal planteada por Elsaesser para funciones NURBS, presenta facilidades de cálculo, sin embargo, el costo computacional del algoritmo es demasiado alto.
El modelo de reconstrucción propuesto ofrece un método de multiresolución directo, ya que es posible ajustar el nivel de detalle de la parametrización variando la cantidad
de puntos de control para obtener modelos mas detallados o mas livianos.
Al concentrar los puntos de control del grafo de Delaunay de la partición, es posible
resaltar detalles específicos del modelo a reconstruir, debido a que el rastreo de los puntos
de control sobre la parametrización va a se más fino en zonas donde los puntos de control
se encuentren más agrupados.
81
7.2.
Trabajo Futuro
Desarrollar un método de particionamiento volumétrico efectivo que permita la re-
construcción de modelos completos mediante funciones NURBS, considerando los agujeros
en el particionamiento o la parametrización. Para dicho particionamiento es necesario encontrar una metodología que permita mapear la distribución superficial de la nube de puntos
o de una reconstrucción inicial del modelo para poder integrar la información volumétrica
del modelo.
Implementar una metodología de selección automática de puntos de control para el
grafo de Delaunay en el particionamiento, con el fin de concentrar la parametrización en
las zonas con mayor curvatura, y de esta forma representar de manera fina los detalles en
objetos de forma libre.
Diseñar o aplicar una estrategia de optimización que permita ajustar los parámetros
de las funciones NURBS con un costo computacional menor.
Bibliografía
[1] F. Blais. Review of 20 years of range sensor development. Electronic Imaging,
13:231–240, 2004.
[2] Yang Chen and M. Gerard. Surface description of coplex objects from multiple range
images. Technical report, Institute for Robotics and Intelligent Systems, University of
Southern California, 1994.
[3] J. Valencia y J. Gómez. Registro de imágenes de rango para la reconstrucción de
modelos faciales. 2004.
[4] C. Dorai, G. Wang, A. Jain, and C. Mercer. From images to models: Automatic 3d
object model construction from multiple views. In In Proceedings of the 13th IAPR
International Conference on Pattern Recognition, 1996.
[5] J.B. Gómez y F. Prieto. Reconstrucción de superficies a partir de imágenes de rango.
2004.
[6] Jhon William Branch Juan Bernardo Gómez, Flavio Prieto. Reconstrucción de superficies a partir de imágenes de rango, revisión de la literarua. Technical report,
Universidad Nacional de Colombia, 2004.
[7] M. de Berg y M. van Kreveld. Computational Geometry, Algorithms and Applications.
Springer Verlag, second edition edition, 2000.
[8] P.J. Besl and N.D. McKay. A method for registration of 3d shapes. 1992.
82
83
[9] T. Wayne. The NURBS Book. Springer-Verlag, New York, 2nd edition, 1997.
[10] B Curless. New Methods for Surface Reconstruction from Range Images. PhD thesis,
Stanford University, 1997.
[11] H Hoppe. Surface reconstruction from unorganized points. Computer Graphics,
1992.
[12] H Hoppe. Mesh optimization. Computer Graphics, 1993.
[13] Tony DeRose Hugues Hoppe. Piecewise smooth surface reconstruction. Technical
report, University of Washington, 1994.
[14] C.W. Anderson and Crawford-Hines. Fast generatión of nurbs surfaces from polygonal mesh models of human anatomy. Technical Report Technical Report CS-99-101,
Department of Computer Science, Colorado State University, Fort Collins, Colorado
State University, 2000.
[15] Randrianarivony, M. y Brunnett, G. Parallel implementation of surface reconstruction
from noisy samples. 2002.
[16] R. Fisher, R. Craig. Constrainde object reconstruction incorporating free-form surfaces. Technical report, University of Edinburgh, 2001.
[17] Matthias Eck y Hugues Hoppe. Automatic reconstruction of b-spline surfaces of arbitrary topological type. In : Proceedings of the 23rd annual conference on Computer
graphics and interactive techniques, pages 325–334. ACM Press, 1996.
[18] In Kyu Park. Sang Uk Lee. Constructing nurbs surface model from scattered and unorganized range data. Second International Conference on 3D Imaging and Modeling,
1999.
[19] In Kyu Park. Sang Uk Lee. Geometric model from scattered 3d range data. Seoul
National University, 1998.
84
[20] C. Loop. Smooth spline surfaces over irregular meshes. Computer Graphics, pages
303–310, 1994.
[21] J. Peters. Constructing cl surfaces of arbitrary topology using bicuadric and bicubis
splines. Designing Fair Curves and Surfaces, pages 277–293, 1994.
[22] Kai Hormann. From scattered samples to smooth surfaces. Technical report, California Institute of Technology, 2002.
[23] K. Maeda, M. y Kumamaru. Shapes modeling of 3d objects based on a hybrid representation using extended b-spline surface model. IEEE Pattern Recognition, 2002.
[24] Flavio Prieto Ernesto Cuartas Morales. Optimización de superficies nurbs mediante
el algoritmo de levemberg-marquardt. Technical report, Universidad Nacional de
Colombia sede Manizales, 2004.
[25] David M. Mount. Voronoi diagrams on the surface of a polyhedron. Technical Report
Technical Report CAR-TR-121, University of Maryland, Department of Computer
Science, 1985.
[26] T. Hoppe H. Eck, M. DeRose. Multiresolution analysis of arbitrary meshes. Computer
Graphics, pages 173–782, 1995.
[27] Xianfeng Gu Ying He, Miao Jin and Hong Qin. A c1 globally interpolatory spline of
arbitrary topology. Technical report, Stony Brook University, 2004.
[28] Xianfeng Gu Ying He, Miao Jin and Hong Qin. Automatic shape control of triangular
b-splines of arbitrary topology. Technical report, Stony Brook University, 2005.
[29] Roth, G. y Boulanger, P. Cad model building from multiple range images. In Proceedings of Vision Interface 98, pages 274–281, June 1998.
[30] G. Farin. Shape. Springer-Verlag, New York, 3 edition, 2001.
85
[31] Richard Hartley y Andrew Zisserman. Multiple View Geometry in computer vision.
Cambridge University, second edition edition, 2003.
[32] J. Peters. Smoothness, fairness and the need for better multi-sided patches. Technical
report, University of Florida, 2002.
[33] S. L. Lee y H. H. Tan. Smooth piecewise biquartic surfaces from quadrilateral control polyhedra with isolated n-sided faces. Computer Aided Desing, 27(10):741–758,
1995.
[34] Bernhard Elsaesser. Approximation whit Rational B-splines Curves and Surfaces. PhD
thesis, Vanderbilt Univessity, 1998.
[35] Farin Gerald. Curves and Surfaces for CAGD. Morgan Kaufmann Publishers, 5 edition, 2002.
[36] Robert P. y Linda, C. Generalized bernstein polynomials and symmetric functions.
2001.
[37] H. Xie and H. Qin. Automatic knot determination of nurbs for interactive geometric
design. In Proceedings of International Conference on Shape Modelling and Applications (SMI 2001), Nov 2001.
[38] Randrianarivony, M. y Brunnett, G. Parallel implementation of curve reconstruction
from noisy samples. 2002.
[39] M.G. Cox and M. Harris. Fixed and free knot univariate least-squares data approximation by polynomial splines. Technical Report Technical Report ISSN 1471-0005,
National Physical Laboratory, Queens Road, United Kingdom, 2002.
Apéndice A
NURBS
Las curvas y superficies NURBS evolucionaron a partir del trabajo pionero de Pierre
Bézier quien planteó la formulación matemática de una clase de curvas paramétricas, para
crear gráficas en un ordenador, en el año de 1970 [9]. Sin embargo, las curvas de Bézier
presentan problemas de estabilidad y cálculo debido al alto grado de sus funciones base.
La formulación de las NURBS plantea una solución a este problema y añade otro tipo de
propiedades adicionales que se ilustrarán a lo largo de este capítulo anexo.
La digitalización mediante NURBS se ha convertido en un estándar en la industria
para la representación, diseño e intercambio de datos de información geométrica procesados por ordenador debido a sus excelentes cualidades [9, 14].
• Las NURBS brindan una base unificada para la representación de formas analíticas,
como secciones cónicas, superficies cuadráticas o entidades de forma libre como rostros o modelos irregulares.
• Los algoritmos para el cálculo de las funciones NURBS son rápidos y numéricamente
estables.
• Las curvas y superficies NURBS son invariantes ante transformaciones geométricas
A–1
A–2
comunes como traslaciones o rotaciones.
• Las funciones paramétricas NURBS tienen un alto grado de libertad lo cual permite
tener un control local de la representación.
A.1.
Curvas y Superficies de Bézier
Los métodos más comunes de representación de curvas y superficies en mode-
lamiento geométrico son las ecuaciones implícitas y las funciones paramétricas [9]. La
ecuación implícita de una curva en el plano xy tiene la forma f (x, y) = 0. Esta ecuación
describe una relación implícita entre la coordenadas x y y de los puntos sobre la curva. En la
forma paramétrica, cada una de las coordenadas de un punto sobre la curva es representada
como una función explícita de un parámetro independiente.
C(u) = (x(u), y(u))
a≤u≤b
(A.1)
Así, C(u) es una función valorada por la variable independiente u en el intervalo
paramétrico arbitrario [a, b], el cual usualmente está normalizado entre [0, 1]. De igual forma
una superficie definida por una ecuación implícita f (x, y, z) = 0 tiene una representación
paramétrica de la forma
S(u, v) = (x(u, v), y(u, v), z(u, v))
(A.2)
De las ecuaciones A.1 y A.2 se puede inferir que el proceso de parametrización
implica un cambio dimensional de Rn → Rn−k .
La parametrización planteada por Bézier en 1972 [35] se basa en los polinomios de
Bernstein de grado n para crear curvas y superficies paramétricas que dependen de unos
puntos de control. Una curva de Bézier de grado n tiene la forma
A–3
C(u) =
n
X
Bi,n (u)Pi
(A.3)
i=0
En donde Bi,n (u) son las funciones base. Estas tienen la forma característica de los
polinomios de Bernstein de grado n [36]. Su formulación es la siguiente
Bi,n (u) =
n!
ui (1 − u)n−i
i! (n − i)!
(A.4)
Las superficies de Bézier se definen como
S(u, v) =
n X
m
X
Bi,n (u)Bj,m (v)Pi,j
(A.5)
i=0 j=0
De las ecuaciones A.3 y A.5, se puede apreciar que el grado de las funciones base
que generan las curvas y superficies de Bézier depende del número de puntos de control
con los cuales se genera la representación. Esta forma paramétrica presenta problemas de
cálculo en las funciones base cuando hay demasiados puntos de control (ecuación A.4).
Las curvas y superficies de Bézier se pueden extender a una forma racional en donde cada
punto de control Pi tiene asociado un peso wi (ecuación A.11). Las B-Splines presentan una
solución al problema del orden elevado en las funciones base, haciendo que estas existan
solo en una parte del intervalo paramétrico.
A.2.
Funciones Base Splines
Como se mencionó anteriormente, el orden de las funciones base en la expansión
polinomial de Bernstein utilizada por Bézier (ecuación A.4) depende del número de puntos de control del modelo. Debido a ello, se necesitan funciones base de grado (n − 1)
para pasar una curva polinomial de Bézier a través de n puntos. Sin embargo, el cálculo de
funciones de orden elevado es ineficiente y numéricamente inestable. Este tipo de curvas
tienen problemas para ajustarse a algunas funciones complejas, además el control que se
A–4
tiene sobre la aproximación cuendo existen demasiados puntos de control es pobre.
La solución a este problema es utilizar funciones base polinomiales por partes conocidas como splines. Este tipo de funciones existen solo en una parte del intervalo paramétrico y dependen de algunos puntos de control, lo cual permite tener un control local de la
representación. Adicionalmente, el orden de estas funciones pede ser escogido según sea
conveniente. Las funciones base splines se definen de la siguiente manera:
Sea U = {u0 , · · · um } una secuencia no decreciente de números reales, i.e., ui ≤
ui+1 , i = 0, · · · , m − 1. Donde ui son llamados nodos (knots), y U es el vector de nodos.
La ith función base de grado p, denotada por Ni,p se define como

 1 si ui ≤ t < ui+1
Ni,0 (u) =
 0 en caso contrario
Ni,p (u) =
A.2.1.
ui+p+1 − u
u − ui
Ni,p−1 (u) +
Ni+1,p−1 (u)
ui+p − ui
ui+p+1 − ui+1
(A.6)
Propiedades de las Funciones Base Splines
Las funciones base B-Splines tienen una serie de propiedades importantes que deter-
minan las características geométricas deseables que poseen las curvas y superficies NURBS.
• Ni,0 (u) es una función escalón que es igual a cero excepto por el intervalo semiabierto u ∈ [ui , ui+1 )
• Ni,p (u) = 0 si u está por fuera del intervalo [ui , ui+p+1 ). Propiedad de soporte local.
• En cualquier expansión de nodos dada, [ui , ui+1 ), por lo menos p + 1 de las Ni,p
funciones base son diferentes de cero. Distribución piramidal.
A–5
• Ni,p (u) ≥ 0 para todo i, p, y u. No negatividad.
• En un intervalo arbitrario de nodos, [ui , ui+1 ),
Pi
j=i−p Nj,p (u)
= 1 para todo u ∈
[ui , ui+1 ). Partición de unidad.
• Todas las derivadas de Ni,p (u) existen al interior del intervalo dado por el vector
de nodos U (ecuación A.7). En un nodo n, Ni,p (u) es p − k veces continuamente
diferenciable, donde k es la multiplicidad del nodo n. Diferenciación continua.
• Ni,p (u) tienen exactamente un valor máximo (excepto para el caso en el que p = 0).
Máximo absoluto.
Figura A.1: Funciones base splines
En la Fig. A.1 se aprecian las funciones base de orden 3 generadas a partir del vector
de nodos U = {0 0 0 0 0, 25 0, 5 0, 75 1 1 1 1}.
A.2.2.
Vector paramétrico de nodos
La distribución del vector paramétrico de nodos que genera las funciones base tiene
una gran influencia en el proceso de aproximación de las B-Splines. Este debe tener cuali-
A–6
dades específicas que garantizan la convergencia de la parametrización.
Sea U un vector paramétrico de nodos de longitud m + p + 1, en donde m es el
número de puntos de control y p es el grado de las funciones base. U define la partición del
intervalo de variación del parámetro u, permitiendo ajustar la zona de influencia de cada
punto de control.
U = {u0 = . . . = up , up+1 , . . . , um−1 , um = . . . = um+p }
(A.7)
• Los primeros y los últimos nodos en U deben tener multiplicidad p+1 para garantizar
la interpolación de los puntos de control inicial y final.
• El vector de nodos U es una secuencia no decreciente de números reales en donde
ui ≤ ui+1 .
• Se deben calcular m funciones base de orden p que se requieren para aproximar una
B-Spline a m puntos de control.
La representación general para un vector de nodos en un intervalo paramétrico normalizado entre [0, 1] esta dada por:
U = {0
. . 0} ≤ up+1 ≤ up+2 ≤ . . . ≤ um−2 ≤ um−1 ≤ 1| .{z
. . 1}}
| .{z
p+1
(A.8)
p+1
La distribución de los nodos en el vector paramétrico U define los intervalos de
mapeo de las Funciones Base Splines y la distribución no uniforme de las funciones NURBS.
En la Fig. A.2 se aprecian las funciones base de orden 3 generadas a partir del vector de nodos no uniforme U = {0 0 0 0 0, 6 0, 6 0, 7 1 1 1 1}.
A–7
Figura A.2: Funciones base con nodos no uniformes
A.3.
B-Splines
Las curvas y superficies B-Splines surgen a partir de una combinación de las fun-
ciones base Splines (ecuación A.6) y los puntos de control a aproximar. Las propiedades de
las funciones base Ni,p (u) se transfieren a las curvas y superficies paramétricas B-Splines
con lo cual esta representación presenta solución a varios de los problemas que tienen la
aproximación con funciones de Bézier.
A.3.1.
Curvas B-Splines
Una curva B-Spline de grado p está definida por
C (u) =
n
X
Ni,p (u)Pi
(A.9)
i=0
En donde Pi son los puntos de control, y Ni,p (u) son las funciones base B-Splines
de grado p.
Las B-Splines son una generalización de las funciones de Bézier, ya que si p = n y
A–8
U = {0, . . . , 0, 1, . . . , 1}, entonces C(u) es una curva de Bézier (ecuación ??).
C(u) tiene un esquema de modificación local de forma tal que al mover el punto
de control Pi la curva cambiará solo en el intervalo [ui , ui+p+1 ), lo cual permite que las
B-Splines tengan un ajuste más fino sobre la aproximación que las curvas de Bézier. Esta
propiedad se debe a que las funciones base Ni,p (u) = 0 para todo u ∈
/ [ui , ui+p+1 ).
Las propiedades de continuidad y derivación de las funciones base Splines están
presentes en C(u) ya que esta es una combinación lineal de Ni,p (ecuación A.9). De esta
manera, C(u) es infinitamente diferenciable al interior de los intervalos definidos por el
vector de nodos U (ecuación A.7), y tiene por lo menos p − k derivadas continuas en un
nodo de multiplicidad k.
A.3.2.
Superficies B-Splines
Una superficie B-Spline se obtiene al combinar linealmente una red bidireccional
de puntos de control Pi,j y los productos de las funciones base Splines Ni,p (u) y Nj,q (v)
definidas en los vectores nodo U y V respectivamente.
S (u, v) =
n X
m
X
Ni,p (u)Nj,q (v)Pi,j
(A.10)
i=0 j=0
Las superficies B-Splines conforman una representación unificada que tiene todas
las propiedades de continuidad y derivación de las funciones base Splines en ambas direcciones paramétricas. En las superficies B-Splines se genera un producto tensor de las
funciones base bivariadas que presenta capacidad de ajuste local y alta continuidad. El producto tensor de las funciones base Ni,p (u)Nj,q (v) con orden p en la dirección u y q en la
dirección v está definido por los vectores de nodos normalizados
A–9
U = {0, . . . , 0, up+1 , . . . , un−1 , 1, . . . , 1}
| {z }
| {z }
p+1
p+1
V = {0, . . . , 0, vq+1 , . . . , vm−1 , 1, . . . , 1}
| {z }
| {z }
q+1
q+1
para una red bidireccional de puntos de control Pi,j con n puntos de control en la
dirección u, y m en la dirección v de acuerdo a la ecuación A.6.
De forma análoga a las curvas B-Splines, las superficies tienen propiedades de control local dado que Ni,p (u)Nj,q (v) = 0, si (u, v) están por fuera del rectángulo [ui , ui+p+1 )×
[vj , vj+q+1 ). La continuidad y las derivadas de S(u, v) provienen del producto tensor de sus
funciones base Ni,p (u)Nj,q (v). En particular, S(u, v) es p − k (q − k) veces diferenciable
en la dirección u (v) para un nodo u (v) de multiplicidad k. El producto tensor de las funciones base interpola las 4 esquinas de la red bidireccional de puntos de control Pi,j en una
superficie B-Spline.
A.4.
B-Splines Racionales no Uniformes (NURBS)
A pesar de que la representación polinomial ofrece muchas ventajas, existen cier-
tos tipos de curvas y superficies cónicas importantes que no pueden ser representadas con
B-Splines. La solución a este problema es utilizar funciones racionales, ya que con estas es
posible definir matemáticamente todas las curvas y superficies cónicas.
Una curva polinomial en un espacio n-dimensional tendrá una representación racional
en un espacio (n + 1)-dimensional.
Siendo P = (x, y) un punto en el espacio euclídeo bidimensional (X, Y ), su representación racional se extiende a un espacio tridimensional (X, Y, W ) donde W es la nueva
dimensión y P w = (wx, wy, wz, w). P es obtenido nuevamente de P w al dividir todas las
A–10
Figura A.3: Proyección del plano racional W
coordenadas por la cuarta entrada W .
La forma racional de las curvas y superficies de Bézier están dadas por
n
P
C(u) =
i=0
n
P
i=0
A.4.1.
n P
m
P
Bi,n (u)wi Pi
y
Bi,n (u)wi
S(u, v) =
Bi,n (u)Bj,m (v)wi,j Pi,j
i=0 j=0
n P
m
P
(A.11)
Bi,n (u)Bj,m (v)wi,j
i=0 j=0
Propiedades de la representación racional con B-Splines
Las curvas y superficies NURBS cuentan con todas las propiedades de continuidad
y derivación de las B-Splines, pero proveen una capacidad de aproximación local aún mayor. Esto se aprecia al modificar el peso wi , en una curva NURBS, asociado al punto de
control Pi , ya que este solo afecta a la curva en el intervalo u ∈ [ui , ui+p+1 ).
A–11
(a) w = 1
(b) w = 3
(c) w = 10
Figura A.4: Superficies NURBS con diferentes pesos
En las figuras A.4(a), A.4(b) y A.4(c) se puede apreciar el efecto de la aproximación
local en una superficie NURBS, al variar el peso asociado a un punto de control.
Las funciones NURBS tienen un efecto de filtro pasabajos al aproximar un conjunto
de datos. La curva o superfice paramétrica tendrá un efecto suavizante en la aproximación
que depende del orden de sus funciones base. Mientras mayor sea el orden de las funciones
base, mayor será el efecto pasabajos de la parametrización sobre los datos de rango y por
lo tanto mayor será el error de la aproximación final. La representación racional no esta
definida para el espacio Wneg , por lo tanto se debe cumplir que wi ≥ 0 para todo i.
A–12
A.4.2.
Curvas y Superficies NURBS
Una curva NURBS de grado p está definida por la siguiente ecuación
n
P
C (u) =
Ni,p (u)wi Pi
i=0
n
P
(A.12)
Ni,p (u)wi
i=0
Donde Ni,p (u) son las funciones base splines de grado p, Pi son los puntos de
control y wi son los pesos asociados a cada punto de control.
Figura A.5: Curva NURBS
La figura A.5 es una curva NURBS graficada con las librerías del OpenGL.
La ecuación general para las superficies paramétricas NURBS está dada por
n P
m
P
S (u, v) =
Ni,p (u)Nj,q (v)wi,j Pi,j
i=0 j=0
n P
m
P
(A.13)
Ni,p (u)Nj,q (v)wi,j
i=0 j=0
Donde Ni,p (u)Nj,q (v) es el producto tensor de las funciones base B-Splines con
A–13
grado p en la dirección paramétrica u, y grado q en la dirección v. Pi,j es la malla de puntos
de control, y wi,j son los pesos asociados a cada punto de control.
Figura A.6: Superficie NURBS
La figura A.6 es una superficie NURBS con sus normales graficada con las librerías
del OpenGL.
A.4.3.
Grados de libertad
Las NURBS permiten adaptar curvas y superficies polinomiales tanto a representa-
ciones de forma libre como a formas geométricas comunes. Esto se logra gracias a los
grados de libertad que tienen las NURBS en su formulación matemática, los cuales permiten tener un control de aproximación local por medio de los pesos y puntos de control,
y un mapeo no uniforme de la parametrización por medio del vector paramétrico de nodos.
Los grados de libertad de las funciones NURBS a optimizar son:
• Puntos de control.
A–14
• Pesos asociados a los puntos de control.
• Vectores paramétricos de nodos.
Para optimizar la aproximación mediante curvas y superficies NURBS se deben
modificar sus grados de libertad con el fin de minimizar la distancia entre la representación
paramétrica y el conjunto de datos.
La selección del vector paramétrico de nodos tiene gran influencia en el proceso de
aproximación mediante NURBS [37, 15, 38, 39].
Apéndice B
Algoritmos de reconstrucción
Existen diversos métodos que permiten la construcción matemática o geométrica
de los diagramas de Voronoy y/o la triangulación de Delaunay. Los métodos algorítmicos
mas conocidos son: La construcción divide y conquista, línea de barrido, elevando hacia un
espacio 3D y los métodos incrementales.
Los algoritmos que presentan el mejor balance entre costo computacional y efectividad de cálculo son los métodos incrementales.
A continuación se exponen los algoritmos que conforma la reconstrucción Incremental de Delaunay implementada para el algoritmo de particionamieto.
B.1.
Algoritmo de Delaunay
Al definir subdivisión maximal planar como:
Subdivisión S a la cual no es posible agregar un eje que conecte dos vértices sin
destruir su planaridad. Es decir, la introducción de cualquier eje que no está en S intersecta
B–1
B–2
uno o mas ejes existentes en S.
Se define entonces una trangulación como cualquier subdivisión maximal planar
de un conjunto de puntos en el plano.
El grafo de Delaunay fue desarrollado por el matemático Ruso Boris Nikolaevich
Delone. Su método se basa en la disposición óptima de la trangulación en el sentido de
maximizar los mínimos ángulos en los triángulos de la subdivisión maximal planar.
Se implementó el método de triangulación planar de Delaunay para triangular conjuntos planares de puntos.
B–3
Algorithm 2 DelaunayIncremental(P)
Entradas: Conjunto de puntos p1 , p2 , . . . , pn ∈ P en el plano.
Salida: Triangulación de Delaunay T de P .
Paso 1:
Se genera un triángulo con vértices en p−1 , p−2 y p−3 que contenga a P .
Se inicializa la triangulación T con el triángulo p−1 p−2 p−3 .
InsertTriangle(p−1 , p−2 , p−3 , T );
Paso 2:
para r = 1 hasta n haga
tint , eint =
WhereIsPoint(pr , T );
si pr se encuentra en el interior del triángulo tint entonces
InTriagle(tint , pr , T );
sino
si pr se encuentra sobre uno de los ejes de T entonces
OnEdge(eint , pr , T );
fin si
fin si
fin para
B–4
Algorithm 3 WhereIsPoint(p, T )
Entradas: Punto p, triangulación T .
Salida: Triángulo tint , o eje eint que contiene al punto p.
t = T;
mientras t haga
PointInTriangle(t, p);
si p pertenece al triángulo t entonces
Devolver tint = t;
sino
El triángulo t contiene 3 ejes, t = (e1 , e2 , e3 )
InLine(e1 , p);
InLine(e2 , p);
InLine(e3 , p);
si p pertenece a uno de los 3 ejes de t entonces
Devolver el eje eint ∈ t;
fin si
fin si
t = t → next
fin mientras
B–5
Algorithm 4 PointInTriangle(t, p)
Entradas: Punto p, triángulo t.
Salida: Informa si el punto p se encuentra al interior de t.
El triángulo t tiene 3 vértices, t = (a, b, c);
F AB = (py − ay ) (bx − ax ) − (px − ax ) (by − ay );
F BC = (py − by ) (cx − bx ) − (px − bx ) (cy − by );
F CA = (py − cy ) (ax − cx ) − (px − cx ) (ay − cy );
si F AB · F BC > 0 y F BC · F CA > 0 entonces
El punto p se encuentra al interior del triángulo t;
sino
El punto p NO se encuentra al interior del triángulo t;
fin si
B–6
Algorithm 5 InLine(e, p)
Entradas: Eje e, punto p.
Salida: Informa si el punto p se encuentra sobre el eje e.
El eje e tiene 2 vértices, e = (a, b);
si ax = bx entonces
si px = ax = bx y py ∈ hay , by i entonces
El punto p ∈ e;
sino
El punto p ∈
/ e;
fin si
fin si
si ay = by entonces
si py = ay = by y px ∈ hax , bx i entonces
El punto p ∈ e;
sino
El punto p ∈
/ e;
fin si
sino
m = (by − ay )/(bx − ax );
r = m (px − ax ) − (py − ay );
si r = 0 y px ∈ hax , bx i entonces
El punto p ∈ e;
sino
El punto p ∈
/ e;
El punto p ∈ e;
fin si
fin si
B–7
Algorithm 6 InTriangle(t, p, T )
Entradas:Triangulación de Delaunay T , Punto p, triángulo t que contiene a p.
El triángulo t tiene 3 vértices, t = (a, b, c);
Paso 1:
DeleteTriangle(t);
InsertTriangle(p, a, b);
InsertTriangle(p, b, c);
InsertTriangle(p, c, a);
Paso 2:
LegalizeEdge(p, a, b);
LegalizeEdge(p, b, c);
LegalizeEdge(p, c, a);
B–8
Algorithm 7 OnEdge(e, p, T )
Entradas:Triangulación de Delaunay T , Punto p, eje e que contiene a p.
El eje e tiene 2 vértices, e = (a, b);
Paso 1:
Se encuentran los 2 triángulos q y t que contienen el eje e;
Se encuentran los vértices c ∈ q, c ∈
/ e y d ∈ t, d ∈
/ e;
Paso 2:
DeleteTriangle(q);
DeleteTriangle(t);
InsertTriangle(p, a, c);
InsertTriangle(p, c, b);
InsertTriangle(p, b, d);
InsertTriangle(p, d, a);
Paso 3:
LegalizeEdge(p, a, c);
LegalizeEdge(p, c, b);
LegalizeEdge(p, b, d);
LegalizeEdge(p, d, a);
B–9
Algorithm 8 LegalizeEdge(r, a, b)
Entradas:Punto nuevo r, Puntos a, b ∈ e = (a, b) con e ∈ T .
Los puntos a y b generan el eje, e = (a, b);
Paso 1:
Se encuentran los 2 triángulos q y t que contienen los vértices a y b;
Se encuentra el vértice c ∈ q, c ∈
/ e;
si c = r entonces
Se encuentra el vértice k ∈ t, k ∈
/ e;
sino
k = c;
fin si
Paso 2:
si k está InCircle(r, a, b, k) entonces
DeleteTriangle(q);
DeleteTriangle(t);
InsertTriangle(r, k, a);
InsertTriangle(r, k, b);
LegalizeEdge(r, k, a);
LegalizeEdge(r, k, b);
fin si
Descargar