• Aucun résultat trouvé

2.3 SLAM pour l’EKF dans un contexte de robotique mobile

2.3.3 Spécificité de la vision

Le calcul des dérivées suivant l’orientation du véhicule donne une forme similaire : ∂u ∂Ψk|k−1 = KuR T cv ∂RTvm ∂Ψk|k−1(aik−1− tvm) ∂v ∂Ψk|k−1 = KvR T cv ∂RTvm ∂Ψk|k−1(aik−1− tvm) (2.34)

Il est possible de développer davantage le terme à dériver : ∂RT vm ∂Ψk|k−1 = ∂R vm ∂Ψk|k−1 T = Rz(Θk|k−1)Ry(Φk|k−1) ∂Rx(Ψk|k−1) ∂Ψk|k−1 T (2.35)

La dérivée de la matrice de rotation étant simple, elle ne sera pas détaillée ici. Les équations (2.34) et (2.35) peuvent être directement adaptées aux angles Φk|k−1

et Θk|k−1 sans aucun problème. Une fois le gain de Kalman calculé à partir de Hk,

la mise à jour de l’état et de la covariance suit les mêmes équations que pour la forme linéaire du Kalman (voir équations (2.5) et (2.6)).

Les modèles d’évolution et d’observation ont maintenant été présentés. Ils ont à chaque fois été introduit en fonction des données capteurs attendues. Néanmoins, certaines spécificités liées à l’utilisation d’une caméra ont été volontairement omises. Elles feront l’objet de la prochaine sous-section.

2.3.3 Spécificité de la vision

L’initialisation des amers est la première étape de la constitution d’une carte. Il faut pour cela être capable de détecter des points dans l’image qui soient perti- nents. En effet, ces points vont être suivis dans de nombreuses images. Pour cela, il faut s’assurer qu’ils soient suffisamment distincts pour pouvoir les reconnaître sans faire d’erreur. De plus, il faut que cette étape soit rapide afin de ne pas pénaliser l’algorithme de SLAM.

Les points distinctifs d’une image correspondent à des endroits marquant un fort changement par rapport au voisinage. Il s’agit souvent de coins d’objets de l’envi- ronnement (coins d’immeubles, de lignes blanches ou de fenêtres par exemple en contexte urbain). Les extracteurs de coins sont de loin les plus connus et les plus employés. Les plus célèbres sont le détecteur d’Harris [Harris & Stephens 1988] et sa variante Shi-Tomasi [Shi & Tomasi 1994]. Ils sont rapides et fortement paralléli- sables. De plus, l’utilisation du gradient de l’image pour le calcul des points carac- téristiques rend leur sélection robuste aux changements d’illumination dans l’image. Il a d’ailleurs été montré dans [Schmid et al. 2000] que le détecteur d’Harris est l’un des plus performants de sa catégorie.

Malheureusement, sous cette forme, ces détecteurs ne sont pas robustes au chan- gement de point de vue ou d’échelle. En revanche, les détecteurs de type Difference of Gaussians (DoG) [Lowe 2004] ou Laplacian of Gaussian (LoG) [Lindeberg 1998] le sont. Ils souffrent néanmoins d’autres défauts comme une sensibilité aux change- ments de luminosité.

Bien qu’il existe une version de Harris capable de gérer différentes échelles [Mikolajczyk & Schmid 2004], cela induit un surcoût calculatoire qui n’est pas né- gligeable. Il est important de garder à l’esprit que les résultats d’un détecteur sont fortement liés au contexte (conditions climatiques par exemple) ainsi qu’à l’environ- nement [Mikolajczyk et al. 2005]. Il est donc difficile de choisir le meilleur détecteur, il s’agira le plus souvent d’un compromis entre le coût de calcul et la robustesse de celui-ci.

Parmi les approches robustes, nous pouvons citer celles qui intègrent à la fois la détection et l’extraction (algorithme d’association) de caractéristiques. Les plus célèbres sont le SIFT [Lowe 1999] et le SURF [Bay et al. 2008]. Ceux-ci sont néan- moins coûteux et sont donc difficiles à intégrer dans des approches temps réel. Ce- pendant, les résultats obtenus sont impressionnants comme cela a été montré pour le SIFT dans [Mikolajczyk & Schmid 2005].

Il est bon de rappeler que l’utilisation d’un détecteur dans notre application sert uniquement à initialiser les points. Ceux-ci sont ensuite suivis grâce à leur prédiction (comme vu en sous-section 2.3.2) ainsi qu’un opérateur de corrélation qui sera présenté plus loin dans cette sous-section. Nous nous sommes donc orientés vers un détecteur de Harris (ou de Shi-Tomasi parfois mais avec des résultats similaires) car il donne des points suffisamment robustes pour le suivi.

Un travail a tout de même été fait sur le détecteur afin de l’adapter à notre contexte. En effet, en se contentant de ne garder que les n meilleurs points fournis par le détecteur de Harris, il est plus que probable qu’ils soient quasiment tous groupés autour du même objet. Or, pour que l’estimation de la pose du véhicule via l’algorithme de SLAM soit correcte, il est important d’avoir des points proches et des points éloignés. Les amers proches aident à estimer la translation alors que ceux situés loin fixent davantage l’orientation du robot [Paz et al. 2008]. Une bonne répartition des amers s’impose donc. Pour ce faire, et également afin de paralléliser le traitement, l’image a été découpée en 4 zones. Dans chacune d’entre elles, les meilleurs points de Harris sont gardés (supérieurs à un seuil). De plus, lorsqu’un

point est sélectionné, il empêche tous ceux situés dans son voisinage proche d’être conservés. Cela permet de garder une certaine diversité dans la position des points. Enfin, lors de l’initialisation de nouveaux amers, une priorité sera donnée aux parties de l’image où le nombre de points suivis est le plus faible.

Affiner la position des amers nécessite de pouvoir les observer. Pour ce faire, la projection de l’amer dans l’image (étape décrite dans la sous-section 2.3.2) donne une première idée d’où chercher. Généralement, un descripteur est extrait autour du point 2D lors de son initialisation. Il s’agit d’une zone de pixels centrée sur le point. Ensuite, lors du suivi, une fenêtre rectangulaire autour de la projection de l’amer est définie afin de donner un espace de recherche. La correspondance entre le descripteur extrait à l’initialisation et la fenêtre de recherche se fait par corrélation normalisée ou Zero mean Normalized Cross-Correlation (ZNCC) [Lewis 1995]. Cette mesure de similarité va tester le descripteur sur chaque pixel de la fenêtre. Le meilleur score obtenu sur la zone de recherche est ensuite comparé à un seuil correspondant au minimum de ressemblance souhaité pour valider une association. Si la valeur obtenue est bien supérieure au seuil, alors le point est sélectionné comme observation et utilisé pour la mise à jour. Sinon, l’amer est conservé tant qu’il n’a pas été inobservable pendant plusieurs images consécutives (une occultation par un autre objet est possible) et son suivi recommence sur l’image suivante.

La combinaison d’un détecteur de Harris avec un opérateur de ZNCC est as- sez courante. Elle a été employée avec succès dans les travaux de Davison et al. [Davison 2003][Davison et al. 2007] mais également dans ceux de Clemente et al. [Clemente et al. 2007].

Cette section a présenté les différentes étapes intervenant dans la réalisation d’un algorithme de SLAM par un filtre de Kalman étendu. L’ensemble des modèles a été développé dans le cadre d’une application par vision. Néanmoins, l’approche telle que décrite jusqu’ici n’est pas viable. De nombreuses erreurs de linéarisation affectent le processus de localisation et le font rapidement diverger. Le chapitre suivant abordera cette problématique en l’illustrant par des exemples. Ensuite, une étude de la littérature ainsi que des solutions seront proposées.

Gestion de la non linéarité dans le

SLAM monoculaire

Sommaire

3.1 Erreurs de linéarisation . . . 44 3.1.1 Constatation du problème . . . 44 3.1.1.1 Initialisation d’un amer à distance inconnue . . . 45 3.1.1.2 Suivi des points via une fenêtre de recherche . . . . 48 3.1.1.3 Mise à jour de la position d’un amer . . . 51 3.1.2 Étude de la littérature . . . 52 3.2 Solution proposée . . . 55 3.2.1 Suivi des amers . . . 56 3.2.2 Mise à jour via le filtre de Kalman . . . 65 3.3 Expérimentations réelles et simulées . . . 70 3.3.1 Trajectoires à faible cadence caméra . . . 70 3.3.2 Utilisation d’une carte préalablement construite . . . 75 3.3.3 Comparaison avec une approche existante . . . 78 3.4 Discussion . . . 83

La solution de localisation proposée dans le chapitre précédent est en l’état diffi- cilement utilisable. Bien que conçue pour des systèmes non linéaires, celle-ci nécessite des aménagements afin de pouvoir fournir des résultats de localisation convaincants lorsqu’une seule caméra est employée. En effet, en l’absence d’une information pré- cise quant à la profondeur des points cartographiés, l’algorithme peut rapidement diverger. Il est toujours possible d’utiliser les solutions mentionnées précédemment (UKF, filtre particulaire) mais l’EKF offre des avantages intéressants (intégration facile des capteurs, quantité de données utilisées, ...). Nous avons ainsi choisi d’ana- lyser le filtre de Kalman étendu dans le contexte de la localisation monoculaire.

La section 3.1 fera le point sur les erreurs de linéarisation pouvant affecter notre solution. Celles-ci seront, dans un premier temps, illustrées via des exemples dans la sous-section 3.1.1, puis une étude de la littérature avec les solutions généralement employées sera fournie (sous-section 3.1.2). La section 3.2 détaillera la solution déve- loppée pour pallier les problèmes relevés et des analyses seront données pour chaque point amélioré. La section 3.3 présentera les simulations et expérimentations réali- sées pour démontrer l’efficacité de notre solution. Une discussion générale en section 3.4 conclura sur l’approche développée.

3.1

Erreurs de linéarisation

Les erreurs de linéarisation pouvant affecter le processus d’estimation inter- viennent à différents niveaux. L’utilisation des méthodes habituelles peuvent les favoriser dans le contexte monoculaire de notre application. Cette section a pour vocation, dans un premier temps, de montrer les différents moments où la linéa- risation peut échouer et les conséquences sur le système (sous-section 3.1.1). La sous-section 3.1.2 fournira une étude de la littérature sur des palliatifs spécifique- ment conçus pour le SLAM monoculaire. Comme pour les sections précédentes, les avantages et inconvénients de chaque correctif seront analysés.