Ajustement de surfaces implicites à des ensembles de points orientés

13

J'ai une question concernant l'ajustement quadrique à un ensemble de points et de normales correspondantes (ou de manière équivalente, des tangentes). L'ajustement de surfaces quadriques à des données ponctuelles est bien exploré. Certains travaux sont les suivants:

L'adaptation aux contours projectifs est également couverte par certaines œuvres, comme celle-ci .

De tous ces travaux, je pense que la méthode de Taubin pour l'ajustement quadrique est assez populaire:

Permettez-moi de résumer brièvement. Un Q quadrique peut s'écrire sous la forme algébrique:

f(c,x)=Ax2+By2+Cz2+2Dxy+2Exz+2Fyz+2Gx+2Hy+2Iz+J
c est le vecteur de coefficient etx sont les coordonnées 3D. Tout pointx se trouve sur la quadriqueQ sixTQx=0 , où:
Q=[ADEGDBFHEFCIGHIJ]

Ajustement algébrique En principe, nous aimerions résoudre les paramètres qui minimisent la somme des distances géométriques au carré entre les points et la surface quadratique. Malheureusement, il s'avère qu'il s'agit d'un problème d'optimisation non convexe sans solutions analytiques connues. Au lieu de cela, une approche standard consiste à résoudre un ajustement algébrique, c'est-à-dire à résoudre les paramètres c qui minimisent:

i=1nf(c,xi)2=cTMc
avec
M=i=1nl(xi)l(xi)T
{xi}sont les points du nuage de points et
l=[x2,y2,z2,xy,xz,yz,x,y,z,1]T

Notez qu'une telle minimisation directe donnerait la solution triviale avec c à l'origine. Cette question a été largement étudiée dans la littérature. Une résolution qui s'est avérée bien fonctionner dans la pratique est la méthode de Taubin (citée ci-dessus), introduisant la contrainte:

xf(c,xi)2=1

Cela peut être résolu comme suit: Soit: où les indices désignent les dérivées. La solution est donnée par la décomposition Eigen généralisée, . Le vecteur de paramètre le mieux adapté est égal au vecteur propre correspondant à la plus petite valeur propre.

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

Question principale Dans de nombreuses applications, les normales du nuage de points sont disponibles (ou calculées). Les normales de la quadrique peuvent également être calculées en différenciant et en normalisant la surface implicite:N(x)

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

Cependant, la méthode de Taubin utilise uniquement la géométrie du point, et non l'espace tangent. Et je ne connais pas beaucoup de méthodes, qui conviennent pour ajuster des quadriques telles que les tangentes de la quadrique correspondent également aux tangentes du nuage de points sous-jacent. Je recherche des extensions potentielles de la méthode ci-dessus, ou de toute autre pour couvrir ces dérivés de premier ordre.

Ce que je voudrais réaliser est peut-être adressé en partie dans des espaces de dimension inférieure, avec des types de surface (courbe) plus primitifs. Par exemple, l'ajustement des lignes aux bords de l'image, en tenant compte des informations sur le gradient, est couvert ici . Il est très courant d' ajuster des plans (un simple type quadrique) à des nuages ​​3D ( lien 1 ) ou des sphères ou des cylindres adaptés à des ensembles de points orientés ( lien 2 ). Je me demande donc quelque chose de similaire, mais la primitive ajustée est une quadrique.

Je saluerais également l'analyse de la méthode proposée telle que:

  • Quel est le nombre minimum de points orientés requis?
  • Quels sont les cas dégénérés?
  • Peut-on dire quelque chose sur la robustesse?

Mise à jour : je voudrais présenter une direction à suivre. Formellement, ce que je souhaite atteindre:

fn=0
au point . Peut-être qu'il serait possible de le fusionner avec la méthode de Taubin pour trouver une contrainte supplémentaire et minimiser l'utilisation des multiplicateurs de Lagrange?x

Tolga Birdal
la source
De nombreux éléments de Q ne sont-ils pas mal positionnés dans Q?
Museful
Vous avez raison, et j'ai maintenant corrigé cela.
Tolga Birdal

Réponses:

5

J'ai été surpris de ne pas avoir reçu de réponse satisfaisante à la question ci-dessus et mes investigations m'ont montré qu'il s'agit effectivement d'un domaine inexploré. Par conséquent, j'ai mis un certain effort dans le développement de solutions à ce problème et j'ai publié les manuscrits suivants:

T. Birdal, B. Busam, N. Navab, S. Ilic et P. Sturm. "Une approche minimaliste de la détection agnostique de type des quadriques dans les nuages ​​de points." Actes de la conférence de l'IEEE sur la vision par ordinateur et la reconnaissance des formes. 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 et P. Sturm, «Generic Primitive Detection in Point Clouds Using Novel Minimal Quadric Fits», dans IEEE Transactions on Pattern Analysis and Machine Intelligence. https://arxiv.org/abs/1901.01255

Je toucherai brièvement l'idée principale ici:

Cette approche est similaire à l'ajustement à gradient un ( ). Nous alignons le vecteur de gradient de la quadrique avec la normale du nuage de points . Cependant, contrairement à -fits, nous choisissons d'utiliser une contrainte linéaire pour augmenter le classement plutôt que de régulariser la solution. Ceci est apparemment non trivial car l'alignement vecteur-vecteur apporte une contrainte non linéaire de la forme: 1Q(xi)niR31

Q(xi)Q(xi)ni=0orQ(xi)Q(xi)ni=1.
La non-linéarité est causée par la normalisation car il est difficile de connaître à l'avance l'amplitude et donc l'échelle homogène. Nous résolvons ce problème en introduisant une échelle homogène normale parmi les inconnues et écrivons: où empilant pour tous les points et les normales conduit à un système de la forme : α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 {equation} où , est unviT=v(xi)TR3×10033×1 vecteur colonne de zéros, vaut et sont les échelles homogènes inconnues.A4N×(N+10)α={αi}

Alors que la solution de cette formulation située dans l'espace nul de produit des résultats acceptables, le système est assez libre de ce qu'il pourrait faire (les facteurs d'échelle sont trop libres). Il est préférable de trouver un régularisateur approprié qui n'est pas trop compliqué à mettre en œuvre. En pratique, une fois de plus, comme pour l'ajustement à gradient un, nous pourrions préférer les gradients polynomiaux à norme unitaire, et ainsi, nous pouvons écrire ou de manière équivalente , un facteur d'échelle commun. Cette contrainte douceAαi=1αiα¯va essayer de forcer le zéro du polynôme à respecter la continuité locale des données. Une telle régularisation nous évite également de résoudre le système homogène sensible et nous permet de réécrire le système sous une forme plus compacte :Aq=n

[x12y12z122x1y12x1z12y1z12x12y12z11x22y22z222x2y22x2z22y2z22x22y22z212x1002y12z10200002y102x102z10200002z102x12y100202x2002y22z20200002y202x202z20200002z202x22y20020][ABCDEFGHIJ]=[00nx1ny1nz1nx2ny2nz2]

Dans l'ensemble, la résolution de ce système d'équations guidera simultanément la quadrique à être incidente au nuage de points tout en alignant ses gradients vers les normales. Il est également possible de peser différemment les contributions des points et des normales. Dans certains cas, pour obtenir un ajustement spécifique au type, une refonte mineure de adaptée à la primitive souhaitée suffit. Pour tous ces détails ainsi que quelques analyses théoriques et pseudo-code, je vous renvoie aux publications précitées.A

Tolga Birdal
la source
C'est bien! Comment modifierait-on A pour pondérer différemment les contributions relatives des points et des normales?
Museful
Multipliez simplement les premières lignes qui sont les équations ponctuelles, avec le poids souhaité. Facultativement, pour mettre à l'échelle les lignes correspondant aux normales, il faudrait également mettre à l'échelle le côté droit de l'équation: . n
Tolga Birdal
Merci. Le symbole de transposition ne devrait-il pas être supprimé de q et n dans la dernière équation?
Museful
Merci encore. Les a supprimés.
Tolga Birdal
1

Je connais un exemple où les normales ont été incluses dans la procédure d'ajustement. Ce n'est cependant pas un raccord quadrique direct. Un patch paramétré localement est ajusté aux points et aux normales. L'utilisation de normales donne plus d'équations dans le problème d'ajustement, ce qui permet d'utiliser des polynômes d'ordre supérieur.

  1. Un nouvel algorithme d'ordre cubique pour approximer les vecteurs de direction principaux
Abhilash Reddy M
la source