stringtranslate.com

Procesamiento de geometría

Procesamiento de malla poligonal por Mario Botsch et al. es un libro de texto sobre el tema del procesamiento de geometría. [1]

El procesamiento de geometría es un área de investigación que utiliza conceptos de matemáticas aplicadas , informática e ingeniería para diseñar algoritmos eficientes para la adquisición, reconstrucción , análisis , manipulación, simulación y transmisión de modelos 3D complejos. Como su nombre lo indica, muchos de los conceptos, estructuras de datos y algoritmos son directamente análogos al procesamiento de señales y al procesamiento de imágenes . Por ejemplo, donde el suavizado de imágenes podría convolucionar una señal de intensidad con un núcleo de desenfoque formado utilizando el operador de Laplace , el suavizado geométrico podría lograrse convolucionando una geometría de superficie con un núcleo de desenfoque formado utilizando el operador de Laplace-Beltrami .

Las aplicaciones de los algoritmos de procesamiento de geometría ya cubren una amplia gama de áreas, desde multimedia , entretenimiento y diseño clásico asistido por computadora , hasta computación biomédica, ingeniería inversa y computación científica . [1]

El procesamiento de geometría es un tema de investigación común en SIGGRAPH , la principal conferencia académica de gráficos por computadora , y el tema principal del Simposio anual sobre procesamiento de geometría .

El procesamiento de geometría como ciclo de vida.

Una malla de un cactus que muestra la curvatura gaussiana en cada vértice, utilizando el método del defecto angular.

El procesamiento de geometría implica trabajar con una forma , generalmente en 2D o 3D, aunque la forma puede vivir en un espacio de dimensiones arbitrarias. El procesamiento de una forma implica tres etapas, lo que se conoce como su ciclo de vida. En su "nacimiento", se puede crear una instancia de una forma mediante uno de tres métodos: un modelo , una representación matemática o un escaneo . Una vez que nace una forma, se puede analizar y editar repetidamente en un ciclo. Esto suele implicar adquirir diferentes medidas, como las distancias entre los puntos de la forma, la suavidad de la forma o su característica de Euler . La edición puede implicar eliminar ruido, deformar o realizar transformaciones rígidas . En la etapa final de la "vida" de la forma, ésta se consume. Esto puede significar que un espectador lo consume como un recurso renderizado en un juego o película, por ejemplo. El final de la vida de una forma también puede definirse mediante una decisión sobre la forma, como si satisface o no algunos criterios. O incluso se puede fabricar en el mundo real, mediante un método como la impresión 3D o el corte por láser.

Representación discreta de una forma

Como cualquier otra forma, las formas utilizadas en el procesamiento geométrico tienen propiedades relacionadas con su geometría y topología . La geometría de una forma se refiere a la posición de los puntos de la forma en el espacio , las tangentes , las normales y la curvatura . También incluye la dimensión en la que vive la forma (ej. o ). La topología de una forma es un conjunto de propiedades que no cambian incluso después de que se hayan aplicado transformaciones suaves a la forma. Se trata de dimensiones como el número de agujeros y límites , así como la orientabilidad de la forma. Un ejemplo de forma no orientable es la cinta de Mobius .

En las computadoras todo debe estar discretizado. Las formas en el procesamiento de geometría generalmente se representan como mallas triangulares , que pueden verse como un gráfico . Cada nodo del gráfico es un vértice (normalmente en ), que tiene una posición. Esto codifica la geometría de la forma. Los bordes dirigidos conectan estos vértices en triángulos, que según la regla de la mano derecha, tienen una dirección llamada normal. Cada triángulo forma una cara de la malla. Estos son de naturaleza combinatoria y codifican la topología de la forma. Además de los triángulos, también se puede utilizar una clase más general de mallas poligonales para representar una forma. Las representaciones más avanzadas, como las mallas progresivas , codifican una representación aproximada junto con una secuencia de transformaciones, que producen una representación fina o de alta resolución de la forma una vez aplicada. Estas mallas son útiles en una variedad de aplicaciones, incluidas geomorfosis, transmisión progresiva, compresión de malla y refinamiento selectivo. [2]

Una malla del famoso conejito de Stanford. Las formas suelen representarse como una malla, una colección de polígonos que delimitan los contornos de la forma.

Propiedades de una forma

Característica de Euler

Una propiedad particularmente importante de una forma tridimensional es su característica de Euler , que también puede definirse en términos de su género . La fórmula para esto en el sentido continuo es , donde es el número de componentes conectados, es el número de agujeros (como en los agujeros de rosquilla, ver toro ) y es el número de componentes conectados del límite de la superficie. Un ejemplo concreto de esto es la malla de un pantalón . Hay un componente conectado, 0 orificios y 3 componentes conectados del límite (la cintura y dos orificios para las piernas). Entonces, en este caso, la característica de Euler es -1. Para llevar esto al mundo discreto, la característica de Euler de una malla se calcula en términos de sus vértices, aristas y caras. .

Esta imagen muestra la malla de un pantalón, con la característica de Euler -1. Esto se explica mediante la ecuación para calcular la característica: 2c - 2h - b. La malla tiene 1 componente conectado, 0 agujeros topológicos y 3 límites (el agujero de la cintura y cada agujero de las piernas): 2 - 0 - 3 = -1.

Reconstrucción de superficie

Reconstrucción de Poisson desde puntos de superficie hasta malla.

Se construye una malla triangular a partir de una nube de puntos . A veces las formas se inicializan sólo como "nubes de puntos", una colección de puntos muestreados de la superficie de la forma. A menudo, estas nubes de puntos deben convertirse en mallas.

Dependiendo de cómo se inicialice o "nazca" una forma, la forma podría existir sólo como una nebulosa de puntos muestreados que representan su superficie en el espacio. Para transformar los puntos de la superficie en una malla, se puede emplear la estrategia de reconstrucción de Poisson [3] . Este método establece que la función indicadora , una función que determina qué puntos en el espacio pertenecen a la superficie de la forma, en realidad se puede calcular a partir de los puntos muestreados. El concepto clave es que el gradiente de la función del indicador es 0 en todas partes, excepto en los puntos muestreados, donde es igual a la normal de la superficie interior. Más formalmente, supongamos que la colección de puntos muestreados de la superficie se denota por , cada punto en el espacio por y la normal correspondiente en ese punto por . Entonces el gradiente de la función indicadora se define como:

La tarea de reconstrucción se convierte entonces en un problema variacional . Para encontrar la función indicadora de la superficie, debemos encontrar una función minimizada , donde está el campo vectorial definido por las muestras. Como problema variacional, se puede ver al minimizador como una solución de la ecuación de Poisson . [3] Después de obtener una buena aproximación y un valor para el cual los puntos se encuentran en la superficie a reconstruir, el algoritmo de los cubos en marcha se puede usar para construir una malla triangular a partir de la función , que luego se puede aplicar en gráficos por computadora posteriores. aplicaciones.

Registro

Un problema común que se encuentra en el procesamiento de geometría es cómo fusionar múltiples vistas de un solo objeto capturado desde diferentes ángulos o posiciones. Este problema se conoce como registro . En el registro, deseamos encontrar una transformación rígida óptima que alinee superficie con superficie . Más formalmente, si es la proyección de un punto x de una superficie a otra , queremos encontrar la matriz de rotación y el vector de traslación óptimos que minimicen la siguiente función objetivo:

Si bien las rotaciones son no lineales en general, las rotaciones pequeñas se pueden linealizar como matrices simétricas sesgadas. Además, la función de distancia no es lineal, pero se presta a aproximaciones lineales si el cambio es pequeño. Por lo tanto, se emplea una solución iterativa como el punto más cercano iterativo (ICP) para resolver pequeñas transformaciones de forma iterativa, en lugar de resolver la transformación potencialmente grande de una sola vez. En ICP, se eligen n puntos de muestra aleatorios y se proyectan sobre . Para muestrear puntos uniformemente al azar a lo largo de la superficie de la malla triangular, el muestreo aleatorio se divide en dos etapas: muestreo uniforme de puntos dentro de un triángulo; y muestreo de triángulos de manera no uniforme, de modo que la probabilidad asociada de cada triángulo sea proporcional a su área de superficie. [4] A partir de entonces, se calcula la transformación óptima en función de la diferencia entre cada uno y su proyección. En la siguiente iteración, las proyecciones se calculan en base al resultado de aplicar la transformación anterior sobre las muestras. El proceso se repite hasta la convergencia.

Suavizado

Cuando se definen o escanean formas, puede haber ruido que las acompañe, ya sea debido a una señal que actúa sobre la superficie o a la geometría real de la superficie. La reducción del ruido en el primero se conoce como eliminación de ruido de datos , mientras que la reducción del ruido en el segundo se conoce como carenado de superficie . La tarea del suavizado geométrico es análoga a la reducción del ruido de la señal y, en consecuencia, emplea enfoques similares.

El lagrangiano pertinente a minimizar se deriva registrando la conformidad con la señal inicial y la suavidad de la señal resultante, que se aproxima a la magnitud del gradiente con un peso :

.

Tomar una variación emite la condición necesaria.

.

Al discretizar esto en elementos constantes por partes con nuestra señal en los vértices, obtenemos

Una esfera ruidosa que se suaviza de forma iterativa.

donde nuestra elección es para el laplaciano cotangente y el término es mapear la imagen del laplaciano de áreas a puntos. Debido a que la variación es libre, esto da como resultado un problema lineal autoadjunto que se resuelve con un parámetro : cuando se trabaja con mallas de triángulos, una forma de determinar los valores de la matriz laplaciana es analizando la geometría de los triángulos conectados en la malla.

Donde y son los ángulos opuestos al borde [5] La matriz de masa M como operador calcula la integral local del valor de una función y, a menudo, se establece para una malla con m triángulos de la siguiente manera:

Parametrización

Ocasionalmente, necesitamos aplanar una superficie 3D en un plano. Este proceso se conoce como parametrización . El objetivo es encontrar las coordenadas u y v sobre las cuales podamos mapear la superficie para minimizar las distorsiones. De esta manera, la parametrización puede verse como un problema de optimización. Una de las principales aplicaciones de la parametrización de mallas es el mapeo de texturas .

Método de resortes de masa

Tutte Embedding muestra parametrizaciones no suaves en el lado del escarabajo.

Una forma de medir la distorsión acumulada en el proceso de mapeo es medir cuánto difiere la longitud de los bordes en el mapeo 2D de sus longitudes en la superficie 3D original. En términos más formales, la función objetivo se puede escribir como:

Dónde está el conjunto de aristas de la malla y es el conjunto de vértices. Sin embargo, optimizar esta función objetivo daría como resultado una solución que asigna todos los vértices a un solo vértice en las coordenadas uv . Tomando prestada una idea de la teoría de grafos, aplicamos el Mapeo Tutte y restringimos los vértices límite de la malla a un círculo unitario u otro polígono convexo . Al hacerlo, se evita que los vértices colapsen en un solo vértice cuando se aplica el mapeo. Luego, los vértices no límite se ubican en la interpolación baricéntrica de sus vecinos. El Tutte Mapping, sin embargo, todavía sufre severas distorsiones ya que intenta igualar las longitudes de los bordes y, por lo tanto, no tiene en cuenta correctamente los tamaños de los triángulos en la malla de la superficie real.

Mapeos conformes de mínimos cuadrados

Una comparación de la parametrización de Tutte Embedding y Least-Squares-Conformal-Mapping. Observe cómo la parametrización de LSCM es suave en el costado del escarabajo.

Otra forma de medir la distorsión es considerar las variaciones en las funciones de coordenadas u y v . La oscilación y la distorsión aparentes en los métodos de resortes de masa se deben a grandes variaciones en las funciones de coordenadas u y v . Con este enfoque, la función objetivo se convierte en la energía de Dirichlet en u y v:

Hay algunas otras cosas a considerar. Nos gustaría minimizar la distorsión del ángulo para preservar la ortogonalidad . Eso significa que nos gustaría . Además, también nos gustaría que el mapeo tuviera regiones de tamaño proporcionalmente similares al original. Esto da como resultado establecer el jacobiano de las funciones de coordenadas u y v en 1.

Al reunir estos requisitos, podemos aumentar la energía de Dirichlet de modo que nuestra función objetivo sea: [6] [7]

Para evitar el problema de tener todos los vértices asignados a un solo punto, también requerimos que la solución al problema de optimización tenga una norma distinta de cero y que sea ortogonal a la solución trivial.

Deformación

Un ejemplo de deformación lo más rígida posible.

La deformación se ocupa de transformar una forma en reposo en una nueva forma. Normalmente, estas transformaciones son continuas y no alteran la topología de la forma. Los métodos modernos de deformación de formas basados ​​en mallas satisfacen las restricciones de deformación del usuario en los controles (vértices o regiones seleccionados en la malla) y propagan estas deformaciones de los controles al resto de la forma suavemente y sin eliminar ni distorsionar detalles. Algunas formas comunes de deformaciones interactivas son las basadas en puntos, las basadas en esqueletos y las basadas en jaulas. [8] En la deformación basada en puntos, un usuario puede aplicar transformaciones a un pequeño conjunto de puntos, llamados identificadores, en la forma. La deformación basada en esqueleto define un esqueleto para la forma, que permite al usuario mover los huesos y rotar las articulaciones. La deformación basada en jaula requiere que se dibuje una jaula alrededor de toda o parte de una forma de modo que, cuando el usuario manipule puntos en la jaula, el volumen que encierra cambie en consecuencia.

Deformación basada en puntos

Los mangos proporcionan un conjunto escaso de restricciones para la deformación: cuando el usuario mueve un punto, los demás deben permanecer en su lugar.

Una superficie de descanso sumergida se puede describir con un mapeo , donde es un dominio paramétrico 2D. Lo mismo se puede hacer con otro mapeo para la superficie transformada . Lo ideal es que la forma transformada agregue la menor distorsión posible al original. Una forma de modelar esta distorsión es en términos de desplazamientos con una energía basada en Laplaciano. [9] La aplicación del operador de Laplace a estas asignaciones nos permite medir cómo cambia la posición de un punto en relación con su vecindad, lo que mantiene los controles suaves. Así, la energía que nos gustaría minimizar se puede escribir como:

.

Si bien este método es invariante en la traducción, no puede tener en cuenta las rotaciones. El esquema de deformación Lo más rígido posible [10] aplica una transformación rígida a cada mango i, donde es una matriz de rotación y es un vector de traslación. Desafortunadamente, no hay forma de conocer las rotaciones de antemano, por lo que elegimos una "mejor" rotación que minimice los desplazamientos. Sin embargo, para lograr la invariancia de rotación local, se requiere una función que genere la mejor rotación para cada punto de la superficie. La energía resultante, entonces, debe optimizarse sobre ambos y :

Tenga en cuenta que el vector de traducción no está presente en la función objetivo final porque las traducciones tienen un gradiente constante.

Segmentación interior-exterior

Aunque parezca trivial, en muchos casos determinar el interior desde el exterior de una malla triangular no es un problema fácil. En general, dada una superficie, planteamos este problema como determinar una función que regresará si el punto está dentro y en caso contrario.

En el caso más sencillo, la forma es cerrada. En este caso, para determinar si un punto está dentro o fuera de la superficie, podemos proyectar un rayo en cualquier dirección desde un punto de consulta y contar el número de veces que pasa por la superficie. Si estaba afuera , entonces el rayo no debe pasar (en cuyo caso ) o, cada vez que entra , debe pasar dos veces, porque S está acotado, por lo que cualquier rayo que entre debe salir. Entonces si está afuera, está parejo. Asimismo si está dentro, se aplica la misma lógica al caso anterior, pero el rayo debe cruzarse una vez más la primera vez que sale . Entonces:

Ahora bien, muchas veces no podemos garantizar que esté cerrado. Tomemos como ejemplo el par de pantalones que aparece al principio de este artículo. Esta malla tiene claramente una semántica de interior y exterior, a pesar de tener agujeros en la cintura y las piernas.

Aproximar la segmentación interior-exterior disparando rayos desde un punto de consulta para un número variable de rayos.

El intento ingenuo de resolver este problema es disparar muchos rayos en direcciones aleatorias y clasificarlos como interiores si y sólo si la mayoría de los rayos se cruzan un número impar de veces. Para cuantificar esto, digamos que proyectamos rayos, . Asociamos un número que es el valor promedio de cada rayo. Por lo tanto:

En el límite de disparar muchos, muchos rayos, este método maneja mallas abiertas; sin embargo, para ser preciso, se requieren demasiados rayos para que este método sea computacionalmente ideal. En cambio, un enfoque más sólido es el número de liquidación generalizado. [11] Inspirado en el número de bobinado 2D , este enfoque utiliza el ángulo sólido de cada triángulo en la malla para determinar si está dentro o fuera. El valor del número de devanado generalizado en , es proporcional a la suma de la contribución del ángulo sólido de cada triángulo en la malla:

Para una malla cerrada, equivale a la función característica para el volumen representada por . Por eso decimos:

Debido a que es una función armónica , se degrada con gracia, lo que significa que la segmentación interior-exterior no cambiaría mucho si hiciéramos agujeros en una malla cerrada. Por esta razón, el Número de Bobinado Generalizado maneja las mallas abiertas con robustez. El límite entre el interior y el exterior pasa suavemente por los agujeros de la malla. De hecho, en el límite, el número de devanado generalizado es equivalente al método de proyección de rayos cuando el número de rayos llega al infinito.

Aplicaciones

Ver también

Referencias

  1. ^ ab Botsch, Mario; Kobbelt, Leif; Pauly, Marcos; Alliez, Pierre (2010). Procesamiento de malla poligonal . Prensa CRC . ISBN 9781568814261.
  2. ^ Hugues Hoppe. «Mallas Progresivas» (PDF) .
  3. ^ ab "Reconstrucción de la superficie de Poisson". hhoppe.com . Consultado el 26 de enero de 2017 .
  4. ^ Szymon Rusinkiewicz, Marc Levoy. «Variantes eficientes del algoritmo ICP» (PDF) .
  5. ^ "Chris Tralie: mallas laplacianas". www.ctralie.com . Consultado el 16 de marzo de 2017 .
  6. ^ Desbrun, Mathieu (2002). "Parametrizaciones intrínsecas de mallas superficiales" (PDF) . Eurografía . 21 .
  7. ^ Levy, Bruno (2002). "Mapas conformes de mínimos cuadrados para la generación automática de atlas de texturas" (PDF) . Transacciones ACM sobre gráficos . 21 (3): 362–371. doi :10.1145/566654.566590.
  8. ^ Jacobson, Alec; Baran, Ilya; Popović, Jovan; Sorkine, Olga (2011). "Pesos biarmónicos acotados para deformación en tiempo real" (PDF) . Transacciones ACM sobre gráficos . 30 (4): 1. doi :10.1145/2010324.1964973.
  9. ^ Marc, Alexa (2003). "Coordenadas diferenciales para la transformación y deformación de mallas locales". La computadora visual . 19 (2): 105-114. doi :10.1007/s00371-002-0180-0. S2CID  6847571.
  10. ^ Sorkine, Olga ; Alexa, Marc (2007). "Modelado de superficies lo más rígidas posible" (PDF) . Actas del Simposio EUROGRAPHICS/ACM SIGGRAPH sobre procesamiento de geometría : 109–116.
  11. ^ Jacobson, Alec; Ladislav, Kavan; Sorkine-Hornung, Olga (2013). "Segmentación robusta dentro-exterior utilizando números de bobinado generalizados" (PDF) . Transacciones ACM sobre gráficos . 32 (4): 1. doi :10.1145/2461912.2461916. S2CID  207202533.

enlaces externos