• Aucun résultat trouvé

4.5 Une m´ethode optimale pour la triangulation

4.5.2 Algorithme

4.5.2.1 D´eveloppements

Si les deux points image mesur´es co¨ıncident avec les ´epipˆoles, le point 3D se trouve sur la droite reliant les deux centres de projection. Dans ce cas, il est impossible de d´eterminer sa position seule-ment `a partir des deux vues disponibles. Le cas o`u un seul des points image co¨ıncide avec un ´epipˆole, n’est pas r´ealisable. Par cons´equent, nous supposons pour la suite qu’aucun des deux points image ne co¨ıncide avec un ´epipˆole. Les d´eveloppements suivants sont illustr´es par la figure 4.2.

q1 e1 2 q e2 0 t 1

( )

1 q (t) q (t)2 Correspondance de droites épipolaires l (t)1 l (t)2 _ _

Plan image 1 Plan image 2

FIG. 4.2: Principe de notre m´ethode de triangulation.

Nous pouvons simplifier le probl`eme en appliquant des transformations rigides aux images qui envoient les points image q

1 (respectivement q

2) sur l’origine, (0;0;1) T

en coordonn´ees homo-g`enes. En outre, les ´epipˆoles peuvent ˆetre envoy´es sur les axes desude chaque image, sur des points

(1;0;f 1 ) T (respectivement(1;0;f 2 ) T ). Une valeur f i

=0signifie que l’´epipˆole se trouve `a l’infini. Les d´etails de la d´etermination de ces transformations rigides sont donn´es plus bas dans la section 4.5.2.2. Dans la suite, nous supposons que, en coordonn´ees homog`enes :

q q (0;0;1) T

4.5. UNE M ´ETHODE OPTIMALE POUR LA TRIANGULATION 51

et que les ´epipˆoles se trouvent sur les axes desu:

e 1 (1;0;f 1 ) T e 2 (1;0;f 2 ) T :

L’application de ces transformations rigides n’a pas d’effet sur la valeur de la fonction de coˆut (4.2), puisque celle-ci est bas´ee sur des distances, qui sont conserv´ees par les transformations rigides. Pourtant, la matrice fondamentale doit ˆetre adapt´ee pour tenir compte des transformations dans les images. La nouvelle matrice fondamentaleFdoit satisfaire les ´equations :

F 0 @ 1 0 f 1 1 A =F T 0 @ 1 0 f 2 1 A =0 :

Fa donc une forme particuli`ere (un moyen de calculerF`a partir de la matrice fondamentale originale est d´ecrit dans la section 4.5.2.2) :

F= 0 @ f 1 f 2 d ,f 2 c ,f 2 d ,f 1 b a b ,f 1 d c d 1 A : (4.4)

Consid´erons une droite ´epipolaire dans la premi`ere image qui coupe l’axe desvau point(0;t;1) T

. Notons cette droitel

1

(t). Le vecteur repr´esentantl 1

(t)est donn´e par le produit vectoriel suivant :

l 1 (t) 0 @ 0 t 1 1 A ^ 0 @ 1 0 f 1 1 A = 0 @ tf 1 1 ,t 1 A : Le carr´e de la distance del 1 (t)au pointq

1(l’origine) s’´evalue donc comme :

d(q 1 ;l 1 (t)) 2 = t 2 1+(tf 1 ) 2 :

La droite ´epipolaire correspondante dans la deuxi`eme image est donn´ee par :

l 2 (t)F 0 @ 0 t 1 1 A = 0 @ ,f 2 (ct+d) at+b ct+d 1 A :

Le carr´e de la distance carr´ee del 2 (t)au pointq 2est ´egale `a : d(q 2 ;l 2 (t)) 2 = (ct+d) 2 (at+b) 2 +f 2 2 (ct+d) 2 :

La somme totale des carr´es des distances (c-`a-d la fonction de coˆut (4.3)) est donc donn´ee par :

s 1 (t)= t 2 1+(tf 1 ) 2 + (ct+d) 2 (at+b) 2 +f 2 2 (ct+d) 2 : (4.5)

Le but est de trouver la valeur de t qui minimise cette fonction. Nous trouvons le minimum en appliquant des techniques de calcul ´el´ementaires. D’abord, calculons la d´eriv´ee premi`ere de la fonctions

1 (t):

s 0 1 (t)= 2t (1+(tf 1 ) 2 ) 2 , 2(ad,bc)(at+b)(ct+d) ((at+b) 2 +f 2 2 (ct+d) 2 ) 2 : (4.6)

Pour d´eterminer les minima de s 1

(t), nous nous int´eressons aux racines de s 0 1 (t). Collecter les deux termes des 0 1

(t)sur leur d´enominateur commun et annuler le num´erateur m`ene `a la condition :

r 1 (t) = t((at+b) 2 +f 2 2 (ct+d) 2 ) 2 ,(ad,bc)(1+(tf 1 ) 2 ) 2 (at+b)(ct+d) (4.7) = t 6 (acf 4 1 (bc,ad))+ t 5 (f 4 1 (b 2 c 2 ,a 2 d 2 )+c 2 f 4 2 (c 2 +2a 2 )+a 4 )+ t 4 (bdf 4 1 (bc,ad)+2acf 2 1 (bc,ad)+4c 3 df 4 2 +4acf 2 2 (ad+bc)+4a 3 b)+ t 3 (2f 2 1 (b 2 c 2 ,a 2 d 2 )+6c 2 d 2 f 4 2 +2f 2 2 (a 2 d 2 +b 2 c 2 +4abcd)+6a 2 b 2 )+ t 2 (2bdf 2 1 (bc,ad)+4cd 3 f 4 2 +4bdf 2 2 (ad+bc)+4ab 3 +ac(bc,ad))+ t 1 (d 4 f 4 2 +2b 2 d 2 f 2 2 +b 4 +b 2 c 2 ,a 2 d 2 )+ t 0 (bd(bc,ad)) = 0 :

Les minima et maxima des 1

(t)se trouvent aux racines de ce polynˆome. Le polynˆome est de degr´e 6 et peut donc avoir jusqu’`a 6 racines r´eelles, qui correspondent `a 3 minima et 3 maxima des

1 (t). Le minimum global peut ˆetre trouv´e tout simplement en ´evaluants

1

(t)aux racines r´eelles der 1

(t). On devrait aussi tester la valeur asymptotique des

1

(t)pour t ! 1, pour voir si la distance minimale apparaˆıt quand t = 1. Ceci correspond `a une droite ´epipolaire verticale dans la premi`ere image. Normalement, cette situation n’a pas d’int´erˆet : le point corrig´ebq

0

1serait la projection orthogonale de l’origine sur la droite verticale passant pare

1, qui n’est rien d’autre que l’´epipˆole e

1 mˆeme (voir la figure 4.2). Pourtant, il pourrait ˆetre possible que la valeurs

1

(1)soit plus petite que celles aux racines de r

1, puisque celles-ci sont d´etermin´ees par une m´ethode num´erique, qui donnera des racines peu pr´ecises `a proximit´e de l’infini. Ce cas indiquerait alors une certaine instabilit´e de la reconstruction du point consid´er´e.

La valeur asymptotique des

1est donn´ee par :

s 1 (1)= 1 f 2 1 + c 2 a 2 +f 2 2 c 2 : 4.5.2.2 D´etails

D´etermination des transformations rigides des images. Nous calculons la transformation rigide pour une seule image. Celle de l’autre image est d´etermin´ee de mani`ere analogue.

Nous effectuons d’abord une translationTqui ram`ene le pointq`a l’origine. Soitq=(u;v;w) T . Alors : T= 0 @ 1 0 , u w 0 1 , v w 1 A :

4.5. UNE M ´ETHODE OPTIMALE POUR LA TRIANGULATION 53

Nous pla¸cons l’´epipˆole (apr`es l’avoir d´eplac´e par T) sur l’axe des u par une rotation R autour de l’origine. Soite=(u e ;v e ;w e ) T

l’´epipˆole. Alors, il faut que :

RTe= 0 @ cos ,sin 0 sin cos 0 0 0 1 1 A 0 @ 1 0 , u w 0 1 , v w 0 0 1 1 A 0 @ u e v e w e 1 A  0 @ 1 0 f 1 A ;

pourf 2R. Le fait que la deuxi`eme coordonn´ee doive s’annuler nous donne une ´equation qui permet de d´eterminer l’angle de rotation:

sin(u e w,w e u)+cos(v e w,w e v)=0 :

La transformation rigide compl`ete est alors donn´ee parX=RT.

Transformation de la matrice fondamentale. La matrice fondamentale doit ˆetre adapt´ee pour ˆetre valide pour les images transform´ees. Soient X

1 = R 1 T 1 etX 2 = R 2 T

2 les transformations rigides des deux images et F

0 la matrice fondamentale avant l’application des transformations. La matrice fondamentaleFpour les images transform´ees est calcul´ee ainsi :

F = X 2 ,T F 0 X 1 ,1 = R 2 T 2 ,T F 0 T 1 ,1 R T 1 :

La matriceFaura la forme particuli`ere donn´ee dans l’´equation (4.4).

D´etermination des pointsbq 0 1etqb

0

2. Apr`es avoir trouv´e le minimum global des 1

(t), nous pouvons ais´ement calculer les pointsqb

0 1 etqb 0 2 par : b q 0 1 = 0 @ t 2 f 1 t 1+t 2 f 2 1 1 A b q 0 2 = 0 @ f 2 (ct+d) 2 ,(at+b)(ct+d) f 2 2 (ct+d) 2 +(at+b) 2 1 A : 4.5.2.3 Algorithme complet

Pr´ealablement `a l’application de l’algorithme de triangulation proprement dit, nous devons calcu-ler la matrice fondamentaleF

0. Dans la formulation du probl`eme de triangulation, nous avons suppos´e que les matrices de projection des deux vues sont donn´ees en entr´ee. De ces matrices, on peut cal-culer la matrice fondamentale. En pratique, le proc´ed´e est souvent invers´e : la matrice fondamentale est calcul´ee `a partir de correspondances de points image et des matrices de projection sont ensuite d´eriv´ees de celle-ci (voir [121] pour des formules).

Pour chaque correspondance de points image nous effectuons les op´erations suivantes. Algorithme : Triangulation

1. D´eterminer les transformations rigidesX 1etX

2, corriger la matrice fondamentale et l’exprimer sous la forme de l’´equation (4.4).

2. Construire les polynˆomess 1

(t)etr 1

(t). 3. D´eterminer les racines de r

1

(t) par une m´ethode num´erique quelconque (voir par exemple [159]).

4. ´Evaluer s 1

(t)aux racines r´eelles et `a l’abscisse t = 1et choisir letqui donne la valeur minimale.

5. D´eterminer les pointsbq 0 1etbq

0 2. 6. D´efaire les transformations rigidesX

1 etX

2 en appliquant leurs inverses `ab q 0 1 etb q 0 2. 7. Trianguler les points obtenus par une m´ethode quelconque (des exemples sont donn´es

dans la section 4.7).

4.5.3 Sur les minima locaux