• Aucun résultat trouvé

3.5.1 Principe et mise en oeuvre

Lorsque la i-ème image clef Ii est sélectionnée et la caméra Ci ajoutée à

la reconstruction, une étape d’optimisation par ajustement de faisceaux est effectuée. On utilise l’algorithme de Levenberg-Marquardt pour mini- miser la fonction de coût fi(Ci, Pi) où Ci et Pi sont respectivement les pa-

ramètres extrinsèques des caméras et les coordonnées 3D des points choisis pour cette étape i. L’idée importante de l’approche présentée est de réduire l’ensemble des paramètres optimisés aux plus récemment calculés. Pour cela,

0 200 400 600 800 1000 1200 20 40 60 80 100 120 140 160 180 200 NB couples 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 20 40 60 80 100 120 140 160 180 200 ellipsoide 0 50 100 150 200 250 300 20 40 60 80 100 120 140 160 180 200 NB inliers images

Fig. 3.4 – Évolution des critères de sélection des images clef : nombre de couples de points appariés, ellipsoïde d’incertitude sur la pose calculée et nombre d’inliers sur une séquence de 200 images.

on optimise les paramètres extrinsèques des n dernières caméras et les points qui s’y projettent sur une sous-séquence de N images (avec N > n). Cela signifie qu’on affine les coordonnées des points 3D et les poses des n caméras en minimisant une fonction de coût qui tient compte des reprojections 2D sur N images (voir Figure 3.5).

Ainsi, on a Ci = {Ci−n+1. . . Ci}et Pi contient tous les points 3D se projetant

dans les caméras de Ci. La fonction de coût fi est la somme des erreurs de

reprojections des points de Pi dans les images Ii−N +1 à Ii :

fi(Ci, Pi) = X Ck∈{Ci−N+1 ... Ci} X Pj∈Pi  kj 2 (3.1)

k j 2 = pkj − π(CkP¯j) 2

est la distance euclidienne au carré entre CkP¯ j,

projection estimée du point Pj par la caméra Ck et le point détecté pkj cor-

respondant.

Comme on vient de le voir, les paramètres n (nombre de caméra optimisées à chaque étape) et N (nombre d’images prises en compte dans la fonction de reprojection) sont les deux principaux paramètres impliquées dans le proces- sus d’optimisation. Le choix de leur valeur peut influencer la précision des résultats et le temps de calcul. Les expériences ont permis de déterminer les valeurs de n et N (typiquement, on prend n = 3 et N = 10) qui fournissent des résultats précis.

Dans notre implémentation, chaque optimisation par ajustement de fais- ceaux local comporte en fait deux étapes d’optimisation par la méthode de Levenberg-Marquardt(Algorithme 1 de la section 1.5), séparées par une mise à jour des points 3D et 2D satisfaisant la géométrie (le j-ème point 3D et la i-ème pose clef sont consistants si l’erreur i

j est inférieure à un seuil

 = 2 pixels). Une série est arrêtée si l’erreur ne descend pas suffisamment

entre deux itérations (||k|| ≥ α||k−1||), avec α = 0.9999) ou si le nombre

maximum d’itérations est atteint (5 dans notre cas). En pratique, le nombre d’itérations nécessaire pour chaque ajustement de faisceaux local à l’étape

i est assez faible. Cela est dû au fait que, mise à part la dernière caméra

ajoutée, toutes les poses de caméras ont déjà été optimisées aux étapes i − 1,

i −2, ...

On peut noter qu’au début de la reconstruction, on ne raffine pas seule- ment les paramètres de la fin de la séquence mais la structure 3D toute entière. Ainsi, pour i ≤ Nf, on prend N = n = i. Nf est le nombre maxi-

mum de caméras de la séquence pour lequel l’optimisation à l’étape i soit globale. Passée cette limite, l’ajustement de faisceau est local (dans nos ex- périences, on choisit Nf = 20). De cette manière, les données initiales sont

optimales, ce qui est important étant donné la nature récursive de l’algo- rithme. De plus, cela ne pose pas de problème de temps de calcul puisque le nombre de paramètres est encore relativement restreint.

3.5.2 Complexité de calcul pour l’ajustement de fais-

ceaux local et global

La complexité de calcul d’une itération d’ajustement de faisceaux a été donnée en 1.5.6. Rappelons qu’elle s’écrit

Θ(Nr+ p.Nc2+ N

3

Ci Ci−1 Ci−2 Ci−3 n N Ci Pi

Fig.3.5 – Ajustement de faisceaux local appliqué lorsque la i-ème image clef (de pose Ci) est sélectionnée. Seuls les points Pi et poses Ci entourées sont

optimisées. La fonction de coût minimisée tient compte des projections des points 3D dans les N dernières images clef. Ici, n = 2 et N = 4.

avec p nombre moyen de points se projetant dans une image, Nc nombre

de poses de caméras optimisées, et Nr nombre de reprojections 2D prises en

compte dans la minimisation.

Pour une séquence vidéo de Nseq images clef, la complexité d’une itération

d’ajustement de faisceaux appliqué aux n dernières caméras et prenant en compte les reprojections 2D dans N images est

Θ(p.N + p.n2 + n3) (3.2)

alors que la complexité d’une itération d’ajustement de faisceaux global sur la séquence complète est

Θp.Nseq2 + Nseq3



(3.3) puisque le nombre Nr de reprojections 2D prises en compte, qui est de l’ordre

du nombre total (p.Nseq) de reprojections 2D de la séquence, est négligeable

devant p.N2

seq.

Il est clairement avantageux de diminuer la valeur des paramètres (n et N) si l’on souhaite réduire la complexité de calcul de l’optimisation. Par exemple, le gain en complexité obtenu par rapport à l’ajustement de faisceaux global

pour une séquence de 20 images clef et 150 reprojections 2D par image est donné dans le Tableau 3.1. Le gain est de 10 pour n = 5, N = 20 et de 25 pour

n= 3, N = 10. La diminution en complexité de calcul est également illustrée

par la Figure 3.6 où l’on voit la réduction de la dimension des matrices Jacobienne J et Hessienne approchée J>J impliquée dans la résolution du

système linéaire 1.51 pour une itération d’ajustement de faisceaux.

Type p n N gain

global 150 20 20 1

local 1 150 5 20 10

local 2 150 3 10 25

Tab.3.1 – Gain en complexité de calcul obtenu avec l’ajustement de faisceaux local par rapport à l’ajustement de faisceaux global pour une itération.

Cette étude porte sur une itération de l’algorithme de Levenberg- Marquardt. En pratique, pour la méthode incrémentale, les paramètres

n and N sont fixés et le nombre d’itérations est limité pour chaque ajuste- ment de faisceaux local (on remarque que le nombre d’itérations nécessaire est assez faible). La complexité finale de notre méthode de reconstruction pour une séquence complète est linéaire avec Nseq alors qu’une seule itéra-

tion d’ajustement de faisceau global croît avec N3

seq. La méthode incrémentale

est ainsi très intéressante en terme de complexité de calcul par rapport à une méthode classique avec ajustement de faisceaux global. Elle est d’autant plus efficace que la séquence est longue avec un nombre d’images élevé.