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:
Ajustement direct contraint par type de surfaces quadriques , James Andrews, Carlo H. Sequin Conception et applications assistées par ordinateur, 10 (a), 2013, bbb-ccc
Ajustement algébrique des surfaces quadriques aux données , I. Al-Subaihi et GA Watson , Université de Dundee
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:
- G. Taubin, «Estimation des courbes planes, des surfaces et des courbes d'espace non planaires définies par des équations implicites, avec des applications à la segmentation des images de bord et de plage », IEEE Trans. PAMI, vol. 13, 1991, pp1115-1138.
Permettez-moi de résumer brièvement. Un quadrique peut s'écrire sous la forme algébrique:
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 qui minimisent:
Notez qu'une telle minimisation directe donnerait la solution triviale avec à 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:
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.
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:
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:
la source
Réponses:
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:
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:∇ 1 ∇ Q ( xje) nje∈ R3 ∇ 1 ∇ Q ( xje)∥ ∇ Q ( xje) ∥- nje=0ou∇ Q ( xje)∥ ∇ Q ( xje) ∥⋅nje=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 :
αje ∇ Q ( xje) = ∇ vTjeq= αjenje v = [ x2y2z22 x y2 x z2 yz2 x2 y2 z1]T N Xje 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 {equation}
où , est un∇vTi=∇v(xi)T∈R3×10 03 3×1 vecteur colonne de zéros, vaut et sont les échelles homogènes inconnues.A′ 4N×(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
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
la source
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.
la source
Voir aussi cet article
et sa première extension
la source