• Aucun résultat trouvé

Il existe de nombreuses m´ethodes permettant, une fois le crit`ere ´ecrit et les pond´ e-rations Aij calcul´ees de calculer la nouvelle transform´ee. Certaines sont directes, plus sp´ecifiques mais plus rapides, d’autres sont it´eratives, plus g´en´erales et plus int´eressantes d’un point de vue th´eorique, comme la descente de gradient ou le filtrage de Kalman.

Notons qu’il existe aussi des m´ethodes qui permettent de r´eduire le nombre d’it´eration et donc d’acc´el´erer la convergence [Besl and McKay, 1992]. Nous ne nous y sommes pas int´eress´e car le gain en temps de calcul est de l’ordre de 2, ce dont nous n’avons pas eu besoin.

3.8.1 M´ethodes directes

Il existe d’autres m´ethodes que la SVD (section 3.2.4) permettant le calcul direct de la transformation : elles sont bas´ees sur les matrices orthogonales [Horn et al., 1988], les quaternions unitaires [Faugeras and Hebert, 1986; Horn, 1987] ou les quaternions duaux [Walker et al., 1991]. Nous ne d´etaillerons pas ces m´ethodes qui s’appliquent uniquement aux points et donnent des r´esultats comparables, en terme de rapidit´e et de pr´ecision, `a la m´ethode bas´ee sur la SVD [Eggert et al., 1997; Schonenenberger, 1998].

3.8.2 M´ethode it´erative : descente de gradient de type Newton

Gradient du crit`ere

Dans cette m´ethode, nous aurons besoin du gradient du crit`ere C(T ) que nous allons ici calculer. Pour all´eger les (nombreuses) ´equations qui suivent, nous utiliserons les notations abr´eg´ees :

sT i = T ? si et AT = A(T ) et donc AT ij = Aij(T )

Nous ferons ici abstraction des changements brusque de la configuration d’apparie-ment, en consid´erant que AT reste constant pour de petite variations autour de la trans-formation. Nous effectuerons le calcul pour le crit`ere ´ecrit de la mani`ere suivante :

C(T ) = 1 2 X ij AT ij.D(sT i,mj) On a donc : dC(T ) dT = 1 2 X ij AT ij.dD(sT i,mj) dT = 1 2 X ij AT ij. dD(sT i,mj) dsT i  . dsT i dT 

Le cas o`u j = out est simple. En effet D(si,mout) est constant et donc de gradient nul. Reste `a calculer le gradient de la distance de Mahalanobis pour de vrais appariements. On notera eij = T ? si− mj le vecteur d’erreur. La distance de Mahalanobis se r´e-´ecrit alors : µ2(T ? si,mj) = et

ij−1eijeij.eij avec

Σeijeij = R.Σsisi.Rt+ Σmjmj

si les bruits sur les points de la sc`ene et du mod`ele ne sont pas corr´el´es (ce qui est en g´en´eral le cas). Le gradient de cette distance par rapport `a un point est :

2(sT i,mout) dsT i = 2.e

t

ij−1eijeij

et finalement, le gradient du crit`ere s’´ecrit :

dC(T ) dT = X i j6=out AT ij.etij−1eijeij.deij dT Principe

On notera le gradient Φ(T ) = (dC(T )dT )t. Il doit ˆetre nul au minimum du crit`ere. L’id´ee de la descente de gradient de type Newton est d’approcher ce point nul en effectuant une succession d’approximations lin´eaires. L’approximation lin´eaire en TI de Φ(T ) est donn´ee

par Φ(T ) = Φ(TI) + H(TI).(T − TI), o`u H = dT. Le point nul de cet approximation lin´eaire est TI+1 = TI− H(TI)−1.Φ(TI).

Le Hessien H(T ) sera approxim´e en n´egligeant la d´eriv´e de AT ij (nulle presque partout pour l’ICP classique) :

H = d( dC(T ) dT )t dT = 1 2 X ij AT ij.HTD(sT i,mj)

on calcule le hessien de la distance en n´egligeant la d´eriv´e seconde par rapport `a T :

HTD(sT i,mj) = dsT i dT t (HsT iD(sT i,mj)) dsT i dT 

dans le cas de la distance de Mahalanobis, le hessien de la distance par rapport `a un point est : HsT iµ2(sT i,mj) = 2.Σ−1e ijeij soit finalement : H 'X ij Aij. deij dT t−1eijeij. deij dT  Discussion

On peut se demander combien d’it´erations de la descente de gradient on va r´ealiser `

a chaque ´etape d’estimation de la transformation. En-effet, nous avons jusqu’ici pr´esent´e cette derni`ere comme une minimisation du crit`ere, mais une simple diminution de celui-ci assure la convergence (certes moins rapide) de l’ICP. On n’est donc pas forc´ement oblig´e de faire tourner la descente de gradient jusqu’`a sa convergence. Faire une seule it´eration a l’immense avantage de se r´esumer `a l’accumulation du gradient et du hessien du crit`ere pour la transformation courante lors du calcul des appariements et ne n´ecessite donc pas leur stockage. Mais lorsque les appariements ne varient plus (typiquement en fin de recalage), les stocker est certainement plus efficace que de les recalculer `a chaque it´eration. Tout compte fait, nous avons privil´egi´e la premi`ere approche, plus simple.

La m´ethode de la descente de gradient pr´esente l’int´erˆet de se g´en´eraliser `a n’importe quel type de primitive. Nous l’utiliserons d`es que les m´ethodes directes ne seront plus applicables9.

9. Nous l’avons aussi test´e sur les points, pour la comparer aux m´ethodes directes. Ceci `a permis de v´erifier que les r´esultats ´etaient identiques lorsqu’on attendait la convergence de la descente de gradient et tr`es proches lorsqu’on la limitait la descente de gradient `a une seule it´eration (le recalage est cependant alors `a peu pr`es deux fois plus long).

3.8.3 M´ethode it´erative : filtrage de Kalman

Le filtrage de Kalman, dans sa version ´etendue, semble aussi ˆetre parfaitement adapt´e `

a notre probl`eme et d’autant plus int´eressant qu’il fournit directement une covariance sur la transformation obtenue, qui permet d’estimer l’incertitude du recalage [Ayache, 1991]. Mais si on r´efl´echit `a l’algorithme et ses fondements statistiques, on se rend compte que la seule diff´erence avec notre descente de gradient et notre m´ethode de pr´ediction de l’incertitude est la prise en compte d’une covariance sur la transformation initiale, bien inutile dans notre cas car elle est tr`es grande devant la covariance finale du recalage, et peut mˆeme g´en´erer des instabilit´es num´eriques.