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:
Adaptación directa con restricciones de tipo de superficies cuadráticas , James Andrews, Diseño y aplicaciones asistidas por computadora Carlo H. Sequin , 10 (a), 2013, bbb-ccc
Adaptación algebraica de superficies cuadráticas a datos , I. Al-Subaihi y GA Watson , Universidad de Dundee
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:
- G. Taubin, "Estimación de curvas planas, superficies y curvas espaciales no planas definidas por ecuaciones implícitas, con aplicaciones a la segmentación de imagen de borde y rango ", IEEE Trans. PAMI, vol. 13, 1991, pp1115-1138.
Déjame resumir brevemente. Una cuadrática se puede escribir en forma algebraica:
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 que minimizan:
Observe que tal minimización directa produciría la solución trivial con 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:
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.
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:
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:
fuente
Respuestas:
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:
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:∇1 ∇Q(xi) ni∈R3 ∇1 ∇Q(xi)∥∇Q(xi)∥−ni=0or∇Q(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)=∇vTiq=αini v=[x2y2z22xy2xz2yz2x2y2z1]T N xi ni A′q=0 ⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢vT1vT2⋮vTn∇vT1∇vT2⋮∇vTn00⋮0−n103⋮0300⋮003−n2⋮03⋯⋯⋱⋯⋯⋯⋱⋯00⋮00303⋮−nn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢AB⋮IJα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 un∇vTi=∇v(xi)T∈R3×10 03 3×1 vector de columna de ceros, es y son las escalas homogéneas desconocidas.A′ 4N×(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
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
fuente
Sé de un ejemplo donde las normales se han incluido en el procedimiento de ajuste. Sin embargo, no es un ajuste cuádrico directo. Se ajusta un parche parametrizado localmente a los puntos y normales. El uso de normales da más ecuaciones en el problema de ajuste, lo que permite utilizar polinomios de orden superior.
fuente
Ver también este documento
y su extensión
fuente