• Aucun résultat trouvé

4.2 Positionnement

4.2.1 Reconnaissance et pose relative

Cette section présente la reconnaissance des caractéristiques ainsi que le calcul de pose relative du capteur. Le système proposé est hybride, il utilise simultanément les points entre deux images consécutives et ceux appartenant au modèle. Pour ce faire, un point du modèle correspondant à un point de l’image courante, mais absent de l’image précédente sera projeté dans l’image précédente. Ce sera un point virtuel qui fera partie de l’estimation robuste de la pose. Cette approche permet d’exploiter conjointement les nouveaux et anciens points pour estimer la relation géométrique entre les images. En procédant ainsi, nous souhaitons accélérer la reconnaissance de régions de la scène qui ont déjà été visitées.

Reconnaissance

La recherche de correspondants suit la méthode de reconnaissance présentée à la section 3.3. La première étape consiste à établir les correspondances globales entre les images. Une caractéristique distincte globalement sera identifiable seulement à l’aide de son descripteur. Ainsi, les caractéristiques de la caméra k observées dans l’image m, Ik

m

sont appariées aux caractéristiques de l’image suivante Ik

n, et ce, pour les deux caméras

du capteur avec la fonction AppariementGlobal : Qkmn = AppariementGlobal(I k m, I k n, αd, ǫd) (4.14) où Qk

mn contient la liste des caractéristiques des images m et n respectant les conditions

bale, le ratio αdsur la distance entre le descripteur du candidat le plus proche et celle du

second plus proche est fixé à αd= 0.7. De plus, le seuil absolu sur la distance maximale

entre les descripteurs est fixé à ǫd = 0.3. L’indice d indique que le seuil s’applique sur

la distance entre les descripteurs. Les valeurs ont été fixées empiriquement. Cette liste de correspondances servira à estimer de façon robuste la relation géométrique entre les images, ici la matrice essentielle. L’estimation robuste sera décrite à la section suivante et permet d’obtenir simultanément la matrice essentielle de chaque caméra. Une fois la relation géométrique estimée, les caractéristiques ne respectant pas la contrainte épipo- laire sont retirées de la liste de correspondances et remises dans le bassin de candidats. Le seuil sur la distance entre une caractéristique et la droite épipolaire correspondante est fixé à ǫl = 1 pixel. L’indice l indique un seuil sur la distance à la droite épipolaire,

en pixels.

La procédure de reconnaissance est ensuite reprise, mais cette fois en renforçant la contrainte épipolaire. Reprendre l’étape de reconnaissance permet d’augmenter consi- dérablement le nombre de correspondances [111]. Nous obtiendrons alors des correspon- dances locales. Pour établir une correspondance locale, une caractéristique devra être à une distance maximale de ǫl = 1 pixel de la droite épipolaire correspondante. De

plus, la distance absolue entre les descripteurs pour les caractéristiques respectant cette contrainte devra être inférieure à ǫd = 0.4. Si plus d’une caractéristique respectent ces

conditions, le ratio entre la distance inter-descripteur du plus proche et du second plus proche candidat devra être inférieur à αd= 0.8. Ces valeurs sont moins sévères que pour

les correspondances globales ; elles reflètent le fait que le risque d’erreur est grandement diminué à cette étape. Cette dernière étape de recherche locale est répétée trois fois. À chaque itération, les correspondances globales sont revalidées et celles ne respectant pas la contrainte épipolaire sont remises dans le bassin de candidats.

En procédant par itération, nous raffinons l’estimation de la matrice essentielle en évitant d’éliminer les meilleurs candidats. De plus, de nouveaux candidats sont iden- tifiés, ce qui augmente significativement le nombre de caractéristiques revues entre les images et améliore la stabilité du positionnement sur plusieurs images. À la fin de la procédure, nous possédons deux listes de caractéristiques, soit les caractéristiques dis- tinctes globalement, et celles distinctes localement. Les deux étapes de reconnaissance sont illustrées dans l’algorithme 3 dans le cas mono-caméra. Adapter cet algorithme pour un capteur stéréo est trivial et consiste à répéter indépendamment les étapes pour chaque caméra. Seule l’estimation des matrices fondamentales requiert les correspon- dances des deux caméras.

Géométrie épipolaire

Le calcul de la pose relative repose sur la géométrie épipolaire [58,16]. La notation utilisée pour dériver la matrice essentielle de la première caméra du capteur est d’abord développée. Nous pourrons ensuite développer l’expression de la matrice essentielle pour

Input : Caractéristiques extraites {Im, In}

Output : Correspondances Qmn

// RECONNAISSANCE GLOBALE ; αd ← 0.7, ǫd← 0.3, ǫl ← 1;

foreach ai ∈ Im do

// COMPARAISON DES DESCRIPTEURS; // (plus proche correspondant);

bj ← min0(CMP(ai, In));

// (second plus proche correspondant); bk← min1(CMP(ai, In));

if CMP(ai, bj) < ǫd et CMP(ai, bj) < αd· CMP(ai, bk) then

Qmn ← {ai, bj, global};

end end

Emn ← EstimationRobusteMatriceF ondamentale(Qmn);

// (elimine fausses correspondances); Qmn ← V alidation(Emn, Qmn);

// RECONNAISSANCE LOCALE; αd ← 0.8, ǫd← 0.4;

while iteration < 3 do

foreach ai ∈ Im | ai ∈ Q/ mn do

// RECHERCHE CORRESPONDANTS SUR LA DROITE EPIPOLAIRE;

// (plus proche correspondant); bj ← min0(Dist(ai, In, Emn));

// (second plus proche correspondant); bk ← min1(Dist(ai, In, Emn));

// (validation de la distance epipolaire);

if Dist(ai, bj, Emn) < ǫl et Dist(ai, bj, Emn) < αd· CMP(ai, bk, Emn) then

// (validation de la distance inter-descripteur, meme seuil relatif); if CMP(ai, bj) < ǫd et CMP(ai, bj) < αd· CMP(ai, bk) then

Qmn← {ai, bj, local};

end end end

Emn ← EstimationRobusteMatriceF ondamentale(Qmn);

// (elimine fausses correspondances); Qmn ← V alidation(Emn, Qmn);

end

Figure 4.29 – Description de la pose d’un capteur stéréo. la seconde caméra.

Suivant le schéma de la Fig.4.29, la pose de la caméra 0 au temps m, P0

m, est la

matrice identité et est donnée par Pm0 =

h

I | 0 i. (4.15)

La transformation entre la caméra 0 et 1 est connue par le calibrage et permet de connaitre la position de la caméra 1 P1 dans ce référentiel,

Pm1 =h R01 | t01

i

. (4.16)

Au temps n, un déplacement du capteur selon une rotation R0 et une translation t0 fait

en sorte que la pose de la caméra 0 devient Pn0 =

h

R0 | λt0

i

. (4.17)

Suivant cette notation, la pose de la caméra 1 devient alors Pn1 = Pm1Pn0 =

h

R01R0 | λR01t0+ t01

i

. (4.18)

À partir des définitions de P0

m et Pn0, on peut établir la matrice essentielle entre les

images de la caméra 0 :

E0 = [λt

0]x R0. (4.19)

La notation []x indique que le vecteur est converti en une matrice 3x3 anti-symétrique5 qui représente le produit vectoriel. Dans cette équation, le facteur lambda est arbitraire. La relation bien connue établit par la matrice essentielle entre les points dans le plan normalisé (x = K−1p où x = [x

1 x2 x3]T en coordonnées homogènes) est la suivante

6 :

x′TEx = 0. (4.20)

5. Du terme anglais "skew symmetric"

Le point x′T est le correspondant de x. Comme le produit est nul, la matrice E est

connue à un facteur d’échelle près, ce qui explique la présence du facteur λ dans son expression. La matrice essentielle possède 9 paramètres et donc 8 degrés de liberté. Chaque correspondance définit une contrainte sur les paramètres, ce qui permet d’es- timer linéairement les paramètres à partir de 8 correspondances [118]. Toutefois, la matrice essentielle est particulière, elle est de rang 2, donc une de ses valeurs singulières est nulle. De plus, les valeurs singulières restantes sont égales [99]. Ces contraintes sont résumées par l’expression suivante [99] :

EET

E − 12trace(EET)E = 0. (4.21)

Cette contrainte permet d’estimer la matrice essentielle à partir de seulement cinq correspondances [15,107,106]. Brièvement, chaque correspondance définit une contrainte par l’Eq. 4.20. Le développement du produit de l’équation permet d’obtenir la forme suivante : x′TEx = exTE = 0,e (4.22) où e x =h x1x′1 x2x1′ x3x′1 x1x′2 x2x′2 x3x′2 x1x′3 x2x′3 x3x′3 iT (4.23) e E =h E11 E12 E13 E21 E22 E23 E31 E32 E33 iT (4.24) où Eij est le terme à la ligne i et colonne j de la matrice essentielle. À partir de cinq

correspondances, nous pouvons former une matrice 5x9 où chaque ligne représente la contrainte donnée par une correspondance. Le noyau7

de cette matrice 5x9 est formé de quatre vecteurs de neuf termes qui sont obtenus par une décomposition SVD8

[99]. Chacun de ces vecteurs permet de construire une matrice 3x3. La matrice essentielle recherchée est une combinaison linéaire de ces quatre matrices :

E =

4

X

i=1

aiEi. (4.25)

Les coefficients ai sont déterminés en résolvant l’Eq.4.21 où la matrice E est remplacée

par la somme de l’Eq. 4.25. Le développement permettant de résoudre cette équation repose sur l’algèbre géométrique et les bases de Groebner ; il sort du cadre de cette thèse et ne sera pas présenté ici. Le lecteur est référé à la publication de Nister [15] pour plus de détails. Il existe jusqu’à 10 solutions à ce problème. Chaque solution réelle devient une matrice essentielle candidate décrivant la relation épipolaire entre les images. En effet, chaque solution vérifie les contraintes données par les cinq correspondances.

7. Du terme anglais "null space" 8. "Singular Value Decomposition"

Avant d’identifier la matrice essentielle parmi les 10 candidats, chaque matrice est décomposée en une rotation et une translation qui correspondent à la forme donnée par l’Eq.4.19. Le calcul de la décomposition est donné dans [16]. La décomposition d’une matrice essentielle résulte en quatre configurations [R | λt] possibles dont une seule est valide. La décomposition correspondant à la réalité est identifiée en imposant la contrainte de "chiralité" de Hartley [16]. Cette contrainte stipule que les points utilisés pour l’estimation de la matrice essentielle doivent être devant la caméra pour les deux vues.

La contrainte de "chiralité" imposée sur cinq points ne permet pas d’identifier quelle est la matrice fondamentale réelle parmi celles identifiées par la méthode de Nister. Pour y arriver, plus de correspondances sont nécessaires. Ce sera possible pendant l’estimation robuste qui sera décrite après la prochaine section.

Il est important de remarquer que la décomposition ne permet pas de retrouver l’échelle de la translation t, i.e. le facteur λ énoncé plus tôt. Pour lever cette ambiguïté, nous exploitons la seconde caméra du capteur stéréo. La section suivante développe la géométrie épipolaire stéréo qui permet de déterminer le facteur d’échelle de la transla- tion.

Géométrie épipolaire stéréo

La connaissance de la transformation relative de la caméra 0 permet de définir celle de la caméra 1. En effet, on peut exprimer la pose de la caméra 1 en combinant la pose de la caméra 0 et la pose relative entre les deux caméras. Cette dernière est connue puisque les caméras sont calibrées. Ainsi, la transformation relative entre les deux poses de la caméra 1 est donnée par l’expression suivante :

Pn1(Pm1)−1 =

h

R01R0RT01 | λR01t0+ t01− R01R0RT01t01

i

. (4.26)

La pose relative permet de construire la matrice essentielle de la caméra 1, E1, en

appliquant l’Eq.4.19 : E1 =λR 01t0+ t01− R01R0RT01t01  xR01R0R T 01 = λ [R01t0]x R01R0RT01 | {z } a +t01− R01R0RT01t01  x R01R0RT01 | {z } b = λa + b. (4.27)

On remarque que dans cette expression, le facteur d’échelle λ de la translation t0

est toujours inconnu. Toutefois, il peut être déterminé à l’aide d’une correspondance de la caméra 1 (entre P1 m et Pn1) : 0 = x1Tn E1x1m = x1Tn (λa + b) x1m = λx1Tn ax1m+ x1Tn bx1m. (4.28)

L’exposant T indique le vecteur transposé. Cette méthode, présentée par Hartley dans [113], est très intéressante, car elle fonctionne même en l’absence de chevauchement entre les caméras. Par contre elle échouera s’il n’y a pas de rotation dans le déplacement du capteur : R0 est alors la matrice identité et le terme b disparaît, ce qui rend le facteur

d’échelle λ indéterminé.

Pour palier cette limitation, nous proposons plutôt d’exploiter le chevauchement entre les caméras, i.e. estimer la matrice essentielle entre la caméra 0 au temps n (P0

n),

et la caméra 1 au temps m (P1

m). La transformation Pm1(Pn0)−1 permet de définir la

matrice essentielle E10

mn. Son expression est la suivante :

E10 mn = [λR01t0+ t01]xR01R0 = λ [R01t0]x R01R0 | {z } a + [t01]x R01R0 | {z } b = λa + b (4.29)

Le facteur λ peut être déterminé à l’aide d’une correspondance entre la caméra 0 et la caméra 1. Dans ce cas, l’échelle de translation est correctement estimée lorsque la caméra 0 ne subit pas de rotation.

Cette méthode exploite les correspondances entre P0

n et Pm1 ; l’étape de reconnais-

sance devra identifier les correspondances entre ces deux vues. En résumé, le calcul de la pose relative requiert au minimum trois ensembles de correspondances, soit les correspondances entre les vues m et n de la caméra 0 (Q0

mn) et les correspondances

entre la vue n de la caméra 0 et la vue m de la caméra 1 (Q10

mn). En l’absence de cor-

respondances Q10

mn, le système exploite la première méthode présentée en calculant E1

selon l’Eq. 4.27. Les correspondances Q1

mn sont donc aussi nécessaires. De plus, elles

bénéficieront à l’estimation de la pose du capteur.

La prochaine section présente l’estimation robuste de la pose relative du capteur. Nous verrons, entre autres, comment choisir la matrice essentielle parmi l’ensemble des matrices identifiées par la méthode de Nister.

Estimation robuste

En suivant l’approche présentée à la section précédente, nous sommes en mesure d’estimer la pose relative d’un capteur stéréo à partir de 6 correspondances, soit 5 correspondances provenant de la caméra 0 pour estimer la rotation et la direction de translation de la caméra 0 et une correspondance provenant de la caméra 1 afin d’obtenir l’échelle de la translation. Cet ensemble est le nombre minimal de points permettant d’estimer la pose du capteur stéréo. L’objectif d’utiliser le moins de points possibles est de réduire le risque d’inclure une mauvaise correspondance pendant l’estimation de la matrice essentielle.

Afin d’obtenir une robustesse aux correspondances erronées, l’estimation est incluse dans une approche d’estimation de type RANSAC [12]. Une excellente revue de RAN-

SAC est ses différentes saveurs est présentée dans dans l’article de Raguram et al.[110]. Nous avons implémenté une version simple qui comprend deux étapes qui sont répétées un certain nombre de fois. Premièrement, un sous-ensemble de 5+1 correspondances est sélectionné au hasard parmi l’ensemble des correspondances établies lors de l’étape de reconnaissance. Ces correspondances permettent d’obtenir les matrices essentielles entre les vues et puis d’extraire les poses relatives de chaque caméra. La pose relative associée à chaque matrice essentielle est ensuite utilisée pour compter le nombre de cor- respondances respectant les contraintes épipolaire et de "chiralité". Un seuil en pixels sur la distance entre une caractéristique et la droite épipolaire correspondante permet de valider une correspondance. Le seuil est fixé à l’étape de reconnaissance (voir section 4.2.1). La "chiralité" ne nécessite pas de seuil, seulement que le point soit devant les caméras. Dans l’implantation actuelle, ces deux étapes sont répétées 2000 fois.

À la fin de l’estimation robuste, un ensemble de correspondances valides ainsi que la pose relative du capteur sont établies. Il est important de noter que la pose relative du capteur est évaluée en exploitant les deux caméras conjointement. L’étape suivante consiste à optimiser localement la pose relative.

Optimisation locale

La pose relative obtenue à l’étape précédente a été estimée à partir de 5+1 corres- pondances. Elle est donc très sensible au bruit présent dans ces correspondances. Il est important d’optimiser la pose à partir de l’ensemble des correspondances respectant la contrainte épipolaire.

L’optimisation cherche la rotation et la translation du capteur qui minimisent l’er- reur de projection des points 3D associés aux correspondances entre les quatre images des deux caméras, soit {Q0

mn, Q1mn, Q10mn}. Évidemment, si deux correspondances pro-

venant de listes différentes représentent un même point, elles sont représentées par un même point physique.

L’algorithme de minimisation non-linéaire est semblable à celui utilisé en calibrage multi-caméra et ne sera pas répété ici (voir section4.1.2). Les paramètres optimisés sont la rotation et la translation de la caméra 0. Les points 3D associés aux correspondances sont calculés à chaque itération de l’algorithme Levenberg-Marquardt. Cette approche, présentée initialement par Zhang [119], permet de réduire l’espace des paramètres opti- misés, car les points 3D ne font pas partie des paramètres optimisés. De plus, en évitant de représenter les points 3D directement, il est possible de gérer les points appartenant au plan infini de façon transparente. En effet, un point infini est représenté en coor- données projective en fixant sa quatrième coordonnée à zéro. Comme une coordonnées projective est connue à un facteur d’échelle près, la minimisation non-linéaire itéra- tive ne peut optimiser les quatre coordonnées projective d’un point sans inclure une contrainte supplémentaire sur la norme, ce qui alourdit le processus.

Input : Caractéristiques extraites { I0

m, In0, Im1, In1 }

Output : Pose relative : P0

n, Correspondances { Q0mn, Q1mn, Q10mn } ǫl ← 1; // RECONNAISSANCE GLOBALE ; αd ← 0.7, ǫd← 0.3; Q0 mn ← AppariementGlobal(Im0, In0, αd, ǫd) ; Q1 mn ← AppariementGlobal(Im1, In1, αd, ǫd) ; Q10 mn ← AppariementGlobal(Im1, In0, αd, ǫd) ; ;

// ESTIMATION ROBUSTE (RANSAC) ; while iteration < 3 do

P0

n ← EstimationRobusteStereo(Q0mn, Q10mn, ǫl) ;

// (P0

n implique que nous connaissons E0, E1, E10) ;

Q0 mn ← Validation(E0, Q0mn, ǫl) ; Q1 mn ← Validation(E1, Q1mn, ǫl) ; Q10 mn ← Validation(E10, Q10mn, ǫl) ; P0 n ← Optimisation(Pn0, Q0mn, Q1mn, Q10mn ) ; ; // RECONNAISSANCE LOCALE ;

// (recherche de correspondances supplémentaires) ; αd ← 0.8, ǫd← 0.4; Q0 mn ← AppariementLocal(Im0, In0, αd, ǫd, E0, ǫl) ; Q1 mn ← AppariementLocal(Im1, In1, αd, ǫd, E1, ǫl) ; Q10 mn ← AppariementLocal(Im1, In0, αd, ǫd, E10, ǫl) ; end P0 n ← Optimisation(Pn0, Q0mn, Q1mn, Q10mn ) ;

du capteur au sens où elle respecte les contraintes données par les correspondances valides. L’ensemble des étapes du calcul robuste de la pose relative est résumé par l’algorithme4. Afin de simplifier l’algorithme, le cas où il n’y a pas de correspondance Q10

mn valide n’est pas explicité. Toutefois, si le cas se présente en cours de traitement,

l’algorithme estime la pose relative en absence de chevauchement entre les images des caméras donnée par l’Eq. 4.27. Dans le cas où aucune correspondance n’est trouvée, le système doit se relocaliser par rapport à un modèle de la scène. L’algorithme de relocalisation est présenté à la section 4.2.4. Comme ce dernier nécessite un modèle des points de la scène, le système de cartographie est présenté dans la section suivante.