Ajuste de superficies implícitas a conjuntos de puntos orientados

13

Tengo una pregunta sobre el ajuste cuadrático de un conjunto de puntos y las normales correspondientes (o, de forma equivalente, tangentes). La exploración de las superficies cuadráticas para señalar datos está bien explorada. Algunos trabajos son los siguientes:

La adaptación a contornos proyectivos también está cubierta por algunos trabajos, como este .

De todos estos trabajos, creo que el método de Taubin para la adaptación cuadrática es bastante popular:

Déjame resumir brevemente. Una Q cuadrática se puede escribir en forma algebraica:

f(c,x)=Ax2+By2+Cz2+2Dxy+2Exz+2Fyz+2Gx+2Hy+2Iz+J
donde c es el vector coeficiente yx son las coordenadas 3D. Cualquier puntox encuentra en el cuadráticoQ sixTQx=0 , donde:
Q=[ADEGDBFHEFCIGHIJ]

Ajuste algebraico En principio, nos gustaría resolver los parámetros que minimizan la suma de las distancias geométricas cuadradas entre los puntos y la superficie cuadrática. Desafortunadamente, resulta que este es un problema de optimización no convexo sin soluciones analíticas conocidas. En cambio, un enfoque estándar es resolver un ajuste algebraico, es decir, resolver los parámetros c que minimizan:

i=1nf(c,xi)2=cTMc
con
M=i=1nl(xi)l(xi)T
donde{xi}son los puntos en la nube de puntos y
l=[x2,y2,z2,xy,xz,yz,x,y,z,1]T

Observe que tal minimización directa produciría la solución trivial con c en el origen. Esta pregunta ha sido estudiada ampliamente en la literatura. Una resolución que funciona bien en la práctica es el método de Taubin (citado anteriormente), que introduce la restricción:

xf(c,xi)2=1

Esto se puede resolver de la siguiente manera: Sea: donde los subíndices denotan las derivadas. La solución viene dada por la descomposición generalizada de Eigen, . El vector de parámetro de mejor ajuste es igual al vector propio correspondiente al valor propio más pequeño.

N=i=1nlx(xi)lx(xi)T+ly(xi)ly(xi)T+lz(xi)lz(xi)T
(MλN)c=0

Pregunta principal En muchas aplicaciones, las normales de la nube de puntos están disponibles (o calculadas). Las normales del quadric también se pueden calcular diferenciando y normalizando la superficie implícita:N(x)

N(x)=f(c,x)f(c,x)
where
f(c,x)=2[Ax+Dy+Fz+GBy+Dx+Ez+HCz+Ey+Fx+I]

Sin embargo, el método de Taubin utiliza solo la geometría del punto, y no el espacio tangente. Y no conozco muchos métodos, que son adecuados para ajustar cuádricos de modo que las tangentes del cuadrático también coincidan con las tangentes de la nube de puntos subyacente. Estoy buscando posibles extensiones del método anterior, o cualquier otra para cubrir estos derivados de primer orden.

Lo que me gustaría lograr quizás se aborde parcialmente en espacios de dimensiones inferiores, con tipos de superficie (curva) más primitivos. Por ejemplo, ajustando líneas a los bordes de la imagen, teniendo en cuenta la información del gradiente, aquí se trata . El ajuste de planos (un tipo simple de cuadrático) a nubes 3D es muy común ( enlace 1 ) o las esferas o cilindros de ajuste se pueden ajustar a conjuntos de puntos orientados ( enlace 2 ). Entonces, lo que me pregunto es algo similar, pero la primitiva ajustada es un cuádruple.

También agradecería el análisis del método propuesto, como por ejemplo:

  • ¿Cuál es el número mínimo de puntos orientados requeridos?
  • ¿Cuáles son los casos degenerados?
  • ¿Se puede decir algo sobre la robustez?

Actualización : me gustaría presentar una dirección a seguir. Formalmente, lo que deseo lograr:

fn=0
en el punto . ¿Tal vez sea posible fusionarlo con el método de Taubin para crear una restricción adicional y minimizar el uso de multiplicadores de Lagrange?x

Tolga Birdal
fuente
¿No están mal posicionados muchos de los elementos de Q en Q?
Museful
Tienes razón, y ahora he arreglado esto.
Tolga Birdal

Respuestas:

5

Me sorprendió no haber recibido una respuesta satisfactoria a la pregunta anterior y mis investigaciones me mostraron que esto, de hecho, es un área inexplorada. Por lo tanto, puse un esfuerzo en desarrollar soluciones a este problema y publiqué los siguientes manuscritos:

T. Birdal, B. Busam, N. Navab, S. Ilic y P. Sturm. "Un enfoque minimalista para la detección agnóstica de tipos de cuádricos en nubes de puntos". Actas de la Conferencia IEEE sobre visión por computadora y reconocimiento de patrones. 2018. http://openaccess.thecvf.com/content_cvpr_2018/html/Birdal_A_Minimalist_Approach_CVPR_2018_paper.html

T. Birdal, B. Busam, N. Navab, S. Ilic y P. Sturm, "Detección primitiva genérica en nubes de puntos utilizando ajustes cuádruples mínimos novedosos", en Transacciones IEEE sobre análisis de patrones e inteligencia artificial. https://arxiv.org/abs/1901.01255

Tocaré brevemente la idea principal aquí:

Este enfoque es similar al ajuste de gradiente uno ( ). Alineamos el vector gradiente del cuadrático con la normalidad de la nube de puntos . Sin embargo, a diferencia de -fits, optamos por usar una restricción lineal para aumentar el rango en lugar de regularizar la solución. Esto aparentemente no es trivial ya que la alineación vector-vector trae una restricción no lineal de cualquiera de las formas: 1Q(xi)niR31

Q(xi)Q(xi)ni=0orQ(xi)Q(xi)ni=1.
La no linealidad es causada por la normalización, ya que es difícil conocer la magnitud y, por lo tanto, la escala homogénea de antemano. Resolvemos este problema introduciendo una escala homogénea normal entre las incógnitas y escribimos: donde Apilando esto para todos los puntos y normales conduce a un sistema de la forma : αi
Q(xi)=viTq=αini
v=[x2y2z22xy2xz2yz2x2y2z1]T
NxiniAq=0
[v1T000v2T000vnT000v1Tn10303v2T03n203vnT0303nn][ABIJα1α2αn]=0
- \ mathbf {n} _n \ end {bmatrix} \ begin {bmatrix} A \\ B \\ \ vdots \\ I \\ J \\ \ alpha_1 \\ \ alpha_2 \\ \ vdots \\ \ alpha_n \ end { bmatrix} = \ mathbf {0} \ end {ecuación} donde , es unviT=v(xi)TR3×10033×1 vector de columna de ceros, es y son las escalas homogéneas desconocidas.A4N×(N+10)α={αi}

Si bien la solución de esta formulación que se encuentra en el espacio nulo de produce resultados aceptables, el sistema no tiene restricciones en cuanto a lo que podría hacer (los factores de escala son demasiado libres). Es mejor encontrar un regularizador apropiado que tampoco sea demasiado complicado de implementar. En la práctica, una vez más análogo al ajuste de gradiente uno, podríamos preferir gradientes polinómicos de norma unitaria y, por lo tanto, podemos escribir o equivalentemente , un factor de escala común. Esta restricción suaveAαi=1αiα¯intentará forzar un conjunto cero del polinomio respetando la continuidad local de los datos. Dicha regularización también nos salva de resolver el sistema homogéneo sensible y nos permite volver a escribir el sistema en una forma más compacta :Aq=n

[x12y12z122x1y12x1z12y1z12x12y12z11x22y22z222x2y22x2z22y2z22x22y22z212x1002y12z10200002y102x102z10200002z102x12y100202x2002y22z20200002y202x202z20200002z202x22y20020][ABCDEFGHIJ]=[00nx1ny1nz1nx2ny2nz2]

En general, la resolución de este sistema de ecuaciones guiará simultáneamente el cuadrático para que incida en la nube de puntos mientras alinea sus gradientes hacia las normales. También es posible sopesar las contribuciones de puntos y normales de manera diferente. En ciertos casos, para obtener un ajuste de tipo específico, basta un rediseño menor de adaptado a las primitivas deseadas. Para todos estos detalles, así como algunos análisis teóricos y pseudocódigo, los remito a las publicaciones antes mencionadas.A

Tolga Birdal
fuente
¡Esto es genial! ¿Cómo se modificaría A para ponderar las contribuciones relativas de puntos y normales de manera diferente?
Museful
Simplemente multiplique las primeras filas que son las ecuaciones de puntos, con el peso deseado. Opcionalmente, para escalar las filas correspondientes a las normales, también sería necesario escalar el lado derecho de la ecuación: . n
Tolga Birdal
Gracias. ¿No debería eliminarse el símbolo de transposición de q y n en la última ecuación?
Museful
Gracias de nuevo. Los quitó.
Tolga Birdal