La fusion de capteurs

Jeremy Cohen
France School of AI
10 min readMay 22, 2018

La fusion de capteurs est une étape cruciale pour les véhicules autonomes. A quoi servent les capteurs présents dans les véhicules autonomes ? Comment les utiliser ?

Cet article fait suite à l’article l’IA…Et le véhicule fut autonome ! sur la vision par ordinateur. Cet article évoquait un schéma décrivant le fonctionnement d’un véhicule autonome :

Fonctionnement d’un véhicule autonome

Nous évoquions ici quatre grandes étapes dans le fonctionnement d’un véhicule autonome. Après nous être intéressé à la vision par ordinateur (Computer Vision), passons à la fusion de capteurs (Sensor Fusion).

La fusion de capteurs est utilisée dans les véhicules autonomes dans l’étape de Perception, servant à comprendre le monde qui entoure notre voiture en combinant les capteurs présents.

Les Capteurs

Le véhicule autonome utilise un très grand nombre de capteurs afin de comprendre son environnement, se localiser et se déplacer.

Différents capteurs sur une voiture autonome

La Caméra

La caméra retranscrit la vision du conducteur. Elle est très souvent utilisée pour comprendre l’environnement avec l’intelligence artificielle en classifiant les routes, les piétons, les panneaux … comme discuté dans le précédent article

Détection de véhicules avec une caméra

Le Radar (Radio Detection and Ranging)

Le radar émet des ondes radio pour détecter les objets dans un rayon de plusieurs mètres. Les radars sont présents dans nos voitures depuis des années pour détecter les véhicules situés dans les angles morts ou éviter les collisions. Ils ont de meilleurs résultats sur les objets en mouvement que sur les objets statiques.

Contrairement aux autres capteurs qui calculent la différence de position entre deux données, le radar utilise l’effet Doppler en mesurant le changement dans la fréquence d’onde suivant si le véhicule avance vers nous ou s’éloigne. Cette mesure est appelée vélocité radiale.

Le radar peut estimer directement une vitesse.
Il a une faible résolution, il permet de connaître la position et la vitesse d’un objet détecté. En revanche, il ne peut déterminer de quel objet il s’agit.

Le Lidar (Light Detection and Ranging)

Le lidar utilise des capteurs infrarouges pour déterminer la distance avec un objet. Un système rotatif permet d’envoyer des ondes et de mesurer le temps mis pour que cette onde lui revienne. Cela permet de générer un nuage de points de l’environnement autour du capteur. Un lidar peut générer environ 2 millions de points par seconde. Ce nuage de points donnant des formes 3D différentes, il est possible de faire de la classification d’objets grâce à un Lidar.

Nuage de points de l’environnement

Il permet à une grande distance (100 à 300 m) d’estimer la position des objets autour de lui. Sa taille est en revanche encombrante puisqu’il dépasse largement du toit des véhicules. Non mentionné, son prix peut aller jusqu’à 100 000$.

Estimation de position avec un Lidar

Les capteurs Ultrasons

Les capteurs ultrasons permettent d’estimer la position des véhicules statiques pour, par exemple, se garer. Ils sont bien moins chers mais ont une portée de quelques mètres.

Les capteurs Odométriques

Ils permettent d’estimer la vitesse de notre véhicule en étudiant le déplacement de ses roues.

Comparatif

Comparatif capteurs

Chacun de ces capteurs a des avantages et des inconvénients. La fusion de capteurs a pour objectif d’utiliser les avantages de chacun pour précisément comprendre son environnement. La caméra est un très bon outil pour détecter les routes, lire les panneaux ou reconnaitre un véhicule. Le Lidar est plus efficace dans l’estimation des positions des objets tandis que le Radar est meilleur dans l’estimation de la vitesse.

Meilleure utilisation du Radar et Lidar

Dans le cycle de fonctionnement d’un véhicule autonome, il y a la Perception. Cette étape est cruciale pour permettre au véhicule de détecter les obstacles, les routes, les piétons… Un véhicule est plein de capteurs, il est donc très important de comprendre comment ces capteurs sont utilisés pour comprendre comment une voiture peut conduire sans chauffeur.

Les filtres de Kalman

L’algorithme utilisé pour fusionner les données s’appelle un filtre de Kalman.

Le filtre de Kalman est un des algorithmes les plus populaires dans la fusion de données. Inventé en 1960 par Rudolph Kalman, il est aujourd’hui utilisé dans nos téléphones ou les satellites pour la navigation et le tracking. L’utilisation la plus célèbre du filtre a été lors de la mission Apollo 11 pour envoyer et ramener l’équipage sur la lune.

Quand utiliser un filtre de Kalman?

Un filtre de Kalman peut s’utiliser dans la fusion de données pour estimer l’état d’un système dynamique (évoluant avec le temps) dans le présent (filtrage), le passé (lissage) ou le futur (prédiction). Les capteurs embarqués dans les véhicules autonomes émettent des mesures parfois incomplètes, et bruitées. L’imprécision des capteurs (bruit) est un problème très important et traitable par les filtres de Kalman.

Un filtre de Kalman est utilisé pour estimer l’état d’un système, noté x. Ce vecteur est composé d’une position p et d’une vélocité v.

Etat x d’un système

A chaque estimation, nous associons une mesure d’incertitude P.

En réalisant une fusion de capteurs, nous prenons en compte des données différentes pour un même objet. Un radar peut estimer qu’un piéton se situe à 10 mètres tandis que le Lidar l’estime à 12 mètres. L’utilisation de filtres de Kalman permet d’avoir une idée précise pour décider à combien de mètres se situe réellement le piéton en éliminant le bruit des deux capteurs.

Un filtre de Kalman peut générer des estimations sur l’état des objets autour de lui. Pour réaliser une estimation, il n’a besoin que des observations actuelles et de la précédente prédiction. L’historique des mesures n’est pas nécessaire. Cet outil est donc léger et s’améliore avec le temps.

Représentations

Etat et incertitude sont représentés par des gaussiennes.

Gaussienne

Une gaussienne est une fonction continue sous laquelle l’aire vaut 1. Ceci permet de représenter des probabilités. Nous sommes sur une probabilité à distribution normale. L’uni-modalité des filtres de Kalman signifie que nous avons un seul pic à chaque fois pour estimer l’état du système.

Résultat de recherche d'images pour "unimodal vs multimodal distribution"
Distribution unimodale vs multimodale (source)

Nous avons une moyenne μ représentant un état et une variance σ² représentant une incertitude. Plus la variance est large, plus notre incertitude est grande.

Différentes gaussiennes

Les gaussiennes permettent d’estimer des probabilités autour de l’état et de l’incertitude d’un sytème. Un filtre de Kalman est une fonction continue et uni-modale.

Filtrage Bayésien

De manière générale, un filtre de Kalman est une implémentation d’un filtre bayésien, c’est à dire une suite d’alternance entre prédiction et mise à jour ou correction.

Prédiction : Nous utilisons l’état estimé pour prédire l’état et l’incertitude actuels.
Mise à jour : Nous utilisons les observations de nos capteurs pour corriger l’état prédit et obtenir une estimation plus précise.

Pour réaliser une estimation, un filtre de Kalman n’a besoin que des observations actuelles et de la précédente prédiction. L’historique des mesures n’est pas nécessaire.

Mathématiques

Les mathématiques derrière les filtres de Kalman sont faits d’additions et de multiplications de matrices. Nous avons deux étapes : Prédiction et Mise à jour.

Prédiction
Notre prédiction consiste à estimer un état x’ et une incertitude P’ à l’instant t à partir des états précédents x et P à l’instant t-1.

Formules de prédiction
  • F : Matrice de transition de t-1 à t
  • ν : Bruit ajouté
  • Q : Matrice de covariance incluant du bruit

Mise à jour
La phase de mise à jour consiste à utiliser une mesure z provenant d’un capteur pour corriger notre prédiction et ainsi prédire x et P.

Formules de mise à jour
  • y : Différence entre mesure réelle et prédiction, soit l’erreur.
  • S : Erreur estimée du système
  • H : Matrice de transition entre le repère du capteur et le notre.
  • R : Matrice de covariance liée aux bruits des capteurs (donné par le constructeur du capteur).
  • K : Gain de Kalman. Coefficient entre 0 et 1 traduisant à quel point il est nécessaire de corriger notre prédiction.

La phase de mise à jour permet d’estimer un x et un P plus proche de la réalité que ce que fournissent les mesures.

Un filtre de Kalman permet de faire des prédictions en temps réel, sans données au préalable. Nous utilisons un modèle mathématique basé sur de la multiplication de matrices pour à chaque fois définir un état x (position, vitesse) et une incertitude P.

Représentation Prior/Posterior

Ce schéma présente ce qu’il se passe dans un filtre de Kalman.

Estimation par filtre de Kalman (source)
  • Predicted State estimate représente notre première estimation, notre phase de prédiction. On parle de prior.
  • Measurement correspond à la mesure provenant d’un de nos capteurs. Nous avons une meilleure incertitude mais le bruit des capteurs en fait une mesure toujours difficile à estimer. On parle de likelihood.
  • Optimal State Estimate est notre phase de mise à jour. L’incertitude est cette fois la plus faible, nous avons accumulé de l’information et permit de générer une valeur plus sure qu’avec notre capteur seul. Cette valeur est notre meilleure estimation possible. On parle de posterior.

Ce qu’implémente un filtre de Kalman est en réalité un théorème de Bayes.

Règle de Bayes

Dans un filtre de Kalman, nous faisons en boucle des prédictions à partir de mesures. Nos prédictions sont toujours plus précises puisque nous gardons une mesure de l’incertitude et calculons régulièrement l’erreur entre notre prédiction et la réalité. Nous sommes capable à partir de multiplications de matrices et de formules de probabilités d’estimer vitesses et positions des véhicules autour de nous.

Filtres “Extended/Unscented” et non-Linéarité

Un problème essentiel se pose. Nos formules de mathématiques sont toutes implémentées avec des fonctions linéaires de type y = ax+b.

Un filtre de Kalman fonctionne toujours avec des fonctions linéaires. En revanche, lorsque nous utilisons un Radar, les données ne sont pas linéaires.

Fonctionnement d’un Radar

Le Radar voit le monde avec trois mesures :

  • ρ (rho) : La distance à l’objet que l’on traque.
  • φ (phi) : L’angle entre l’axe x et notre objet.
  • ρ ̇(rhodot) : Le changement de ρ, se traduisant par une vitesse radiale.

Ces trois valeurs font de notre mesure une donnée non-linéaire due à l’inclusion de l’angle φ.

Notre objectif ici est de convertir les données ρ, φ, ρ ̇en données cartésiennes (px, py, vx, vy).

Si nous entrons des données non-linéaires dans un filtre de Kalman, notre résultat n’est plus sous forme gaussienne uni-modale et nous ne pouvons plus estimer position et vélocité.

Gaussienne vs Introduction de non-linéarité

Nous utilisons donc des approximations, c’est pourquoi nous travaillons sur deux méthodes :
- Les filtres de Kalman étendus utilisent des jacobiennes et des séries de Taylor pour linéariser le modèle.
- les filtres de Kalman unscented utilisent une approximation plus précise pour linéariser le modèle.

Pour traiter l’inclusion de non linéarité par le Radar, des techniques existent et permettent à nos filtres d’estimer position et vélocité des objets que nous souhaitons tracker.

Résultats

Les vidéos suivantes présentent les résultats pour un filtre de Kalman étendu et un filtre de kalman unscented. On peut notamment y voir notre capteur (origine noire), les données du Radar (rouge), les données du Lidar (bleu) ainsi que notre prédiction (vert). A chaque donnée reçue, nous réalisons des prédictions.

Extended Kalman Filter
Unscented Kalman Filter

Les valeurs RMSE sont des mesures de Root Mean Squared Error, soit de l’erreur entre notre prédiction et la réalité. Elles sont plus faibles pour le filtre unscented que extended puisque cette technique est plus efficace.

Conclusion

La fusion de capteurs est un des sujets les plus importants dans le lorsqu’on parle de véhicules autonomes. Les algorithmes de fusion permettent à un véhicule de comprendre précisément combien y a t’il d’obstacles, d’estimer où ils sont et à quelles vitesses ils se déplacent.

Selon les capteurs utilisés, différentes implémentations des filtres de Kalman sont utilisées.

Flux général de filtrage entre Radar et Lidar

Les filtres de Kalman sont utilisés dans les smartphones, satellites, et systèmes de navigation pour estimer l’état d’un système. Très populaires et utilisés, les algorithmes de fusion de données permettent aujourd’hui de rendre les véhicules autonomes.

Résultat de recherche d'images pour "LIDAR self driving car"

Jeremy Cohen.

→ Connect on LinkedIn

Discover this article in English

La suite sur la localisation, la navigation, le contrôle et l’intégration finale.

Références

Projets GitHub de Sensor Fusion

--

--

Jeremy Cohen
France School of AI

AI & Self-Driving Car Engineer —I teach people how to join the Autonomous Tech world! https://www.thinkautonomous.ai