Quaternions et rotation au moindres carres
A.3 Superposer deux triplets de points en repere - -barycentrique
@ 0 (yi;xi)t (yi;xi) (~yi+ ~xi) 1 C A AtiAi= 0 B @ kyi;xik 2 (yi;xi)t(~yi+ ~xi) (~yi+ ~xi)(xi;yi) (yi;xi)(yi;xi)t;(~yi+ ~xi)2 1 C A
En developpant les termes et en simpliant gr^ace a la formule de Gibbs1 on obtient AtiAi = 0 B @ kyi;xik 2 2(yi^xi)t 2(yi^xi) kyi+xik 2I;2(xiyti+yixti) 1 C A
Ce qui permet d'ecrire la matriceB avec les notations = P(kxik 2+kyik 2) =P< xijyi > =Pxi^yi ; =P(xiyti+yixti) B = 0 B @ ;2 ;2t ;2 ( + 2)I ;2; 1 C A (A:1)
Rappelons que le probleme est de minimiser C = qtBq sous la contrainte jqj = 1. La solution est donnee par le vecteur propre unitaire associe a la plus petite valeur propre deB. Si cette resolution s'eectue fort bien numeriquement, il n'y a pas actuellement de solution explicite de fa con formelle.
A.3 Superposer deux triplets de points en repere
-barycentrique
On considere trois points xi en repere barycentrique, donc appartenant a un certain planM deni par son vecteur normal m = (x1^x2)=kx1^x2
k, et leurs correspondants yi, egalement en repere barycentrique, appartenant au plan S deni par s = (y1^y2)=ky1^y2
k. 1~a~b = bat;< ajb > I
Supposons que les plans MetS soient confondus (les xi et lesyi sont coplanaires), avec une orientation identique : m = s. Nous allons trouver explicitement la rotation minimisant l'erreur de superposition. L'analogie avec le cas 2D permet de proposer deux quaternions rotation que l'on veriera ^etre vecteurs propres deB. Des considerations de symetrie permet-tront ensuite de determiner les autres valeurs propres de B qui s'avereront ^etre superieures a la premiere. Ceci permettra de conclure notre demonstration.
A.3.1 2
3 points en deux dimensions
Le critere a minimiser pour la recherche de la rotation vectorielle est : C =X
i
kyi;Rxik
2 avec R = cos ;sin sin cos
!
Pour obtenir les angles optimaux, on deriveC par rapport a @C @ = 0 , sin(X i < xijyi >)+ cos(X i jyixij ) = 0 d'ou les solutions
8 < : cosq(P< xijyi >)2 + (P jyixij)2 = P< xijyi > sinq(P< xijyi >)2+ (P jyixij)2 =P jyixij
Supposons maintenant que les 6 points soient dans l'espace, mais coplanaires. La rotation proposee en 2D est de direction normale au plan. En appelant k le vecteur normal au plan dans le sens direct, on propose donc comme rotation (a la norme pres) les quaternions
q1 =
1 + cos
sin:k et q2 =
1;cos sin:k ce qui s'ecrit avec nos notations
q12 = q 2+kk 2
A.3.2 Deux vecteurs propres de
BVerions tout d'abord q1 : (B ;I)q1 = 0 , 8 < : (;2;)(q2+kk 2+) = 2kk 2 (;2q2 +kk 2 ;) = 2;
Or =Pxi^yi est colineaire a m = s donc orthogonal aux xi et aux yi, ce qui montre que ; = 0. On obtient donc
(B ;1I)q1= 0 , 1 =;2q2+kk 2 54
En ce qui concerne q2, la demarche est identique et on a
(B ;2I)q2 = 0 , 2 = + 2q2+kk 2
Donc q1 et q2 sont des vecteurs propres de B associes aux valeurs propres 1 et 2. Nous allons maintenant exprimer ces valeurs propres de fa con dierente.
2+kk 2 = (P i <xijyi >)2 +< P ixi^ yij P ixi^ yi> =Pij <xijyi ><xjjyj >+Pij <xijxj ><yijyj >; P ij <xijyj ><xjjyi> =P ij <xi^ xjjyi^ yj >+P ij <xijxj ><yijyj >
Notonsr le second terme . On remarquera qu'il ne depend que des positions relatives des xi
entre eux et des yi entre eux. Il ne change donc pas lors d'une rotation : c'est une constante du probleme, tout comme . Le premier terme se simplie beaucoup en introduisant les valeurs dex3 et y3 en repere barycentrique :x3 =;x1
;x2 ety3 =;y1 ;y2. On obtient 2+kk 2 =r + 6 < x1^x2 jy1^y2 > =r + 6kx1^x2 k:ky1^y2 k< mjs >
L'hypothesem = s n'etant pas intervenue dans la derivation de cette expression, celle-ci est donc toujours valable.
2 +kk
2=r + 6kx1^x2
k:ky1^y2
k< mjs > avec r = X
ij < xijxj >< yijyj > (A:2) Introduisant cette expression dans nos valeurs propres, on trouve une formule qui ne depend plus de la position initiale des xi par rapport aux yi.
12 = 2qr + 6kx1^x2
k:ky1^y2 k
A.3.3 Les deux autres valeurs propres
Notons maintenant 1 et 2 les deux valeurs propres non nulles de ; en supposant qu'elles existent, et n1n2 les vecteurs propres unitaires associes. Ces derniers sont dans M = S d'apres la formulation m^eme de ;. On verie aisement que q34 =
0 n34
est alors vecteur propre de B associe a la valeur propre 34 = + 2; 34.
Orq3 etq4 correspondent a des rotations de autour d'un axe situe dans le plan M=S" ce sont donc des symetries par rapport a des droites pour ce plan. En particulier, elles amenent m sur ;s. On peut donc retrouver les valeurs propres 3 et 4 en considerant les rotations d'axem (ou s) dans le cas m =;s. Le raisonnement utilise pour trouver 1 et2 dans leur premiere forme ne tenant compte que de == m == s, on trouve
34 =2q2+kk 2
ce qui s'ecrit en tenant maintenant compte de < mjs >=;1 dans l'expression A.2 34 = 2qr;6kx1^x2
k:ky1^y2 k 55
A.3.4 Conclusion
Quelque soit la position initiale des xi par rapport aux yi, on peut toujours decomposer la rotation rechercheeA, minimisant l'erreur de superposition aux moindres carres, en une rotation A1 qui amene le vecteur m sur s, puis une rotation A2 qui se situe dans le cadre de ce que nous venons de faire. Les valeurs propres etant ecrites sous forme invariante par rotation des xi, elles sont valables dans tous les cas.
Theoreme 1
Les valeurs propres de la matrice B sont1 =;2qr + 6kx1^x2 k:ky1^y2 k 2 = + 2qr + 6kx1^x2 k:ky1^y2 k 3 =;2qr;6kx1^x2 k:ky1^y2 k 4 = + 2qr;6kx1^x2 k:ky1^y2 k
avec les notations
=P3
i=1(kxik+kyik) r = P33
i=1j=1 < xijxj >< yijyj >
L'ordre de ces racine est 1
3 4
2. La valeur du critere au minimum est donc 1,
et le quaternion recherche est le vecteur propre unitaire associe a cette valeur propre.
Les rotations amenant m sur s s'ecrivent comme combinaison lineaire (a la norme pres) des deux rotations de base
p1 =
1+< mjs >
m^s p2 = 0
m + s
Il y a toutefois une singularite en m =;s, que nous avons exploitee precedemment, et pour laquelle ceci n'est pas valable. Il sut dans ce cas d'une rotation de par rapport a n'importe quel vecteur du plan.
En dehors de cette singularite, la rotation d'angle le plus faible est donnee par p1. NotonsR1 la rotation equivalente, etx0
i =R1xi. La rotation R2 amenant au minimum est alors donnee par q1 = q 02+k0 k 2 +0 0 avec 0 =P3 i=1 < x0 ijyi > 0=P3 i=1x0 i^yi
Corollaire 1
On peut toujours decomposer la rotation recherchee R en R = R2R1 ou R1est une rotation amenant m sur s, et R2 est une rotation d'axe s.