
La voiture autonome, une usine logicielle d’une grande complexité
⏱ 5 minOn dit parfois que la voiture autonome sera un ordinateur avec des roues. On peut ajouter que ce sera surtout un labyrinthe logiciel d’une rare complexité. À elle seule, la perception de l’environnement repose sur une batterie d’algorithmes divers et variés, plus ou moins spécialisés, coopérants, voire en concurrence…
Pour doter un véhicule de capacités de perception autorisant une forte autonomie, il faut tout d’abord une batterie de capteurs divers et complémentaires, produisant chacun un flux de données particulier (lire l’article 1 de ce dossier « Des capteurs multiples, divers et complémentaires« ). Le plus dur vient après : pour détecter, classifier, reconnaître, interpréter ce que véhiculent ces données, il faut construire une vaste usine logicielle, d’une grande complexité. « Chaque équipe a sa conception de l’architecture logicielle idéale capable de fournir toutes les informations nécessaires à la prise de décision », constate Fawzi Nashashibi, le responsable de l’équipe-projet RITS (Robotics and Intelligent Transportation Systems) à l’Inria (Institut national de recherche en informatique et en automatique).
Les choix architecturaux sont nombreux. « Ainsi, par souci d’efficacité, poursuit-il, on peut préférer concevoir surtout des algorithmes spécialisés, et donc plus efficaces, dans la détection et l’interprétation de certaines cibles, comme la signalisation horizontale ou verticale, les véhicules ou les piétons. Mais il y a quelques avantages aussi à faire une analyse globale de la scène, qui distingue le ciel, la route, les constructions, les obstacles fixes et mobiles… Les deux approches sont intéressantes et peuvent se compléter. » Jouer sur les deux tableaux peut être une manière d’introduire de la redondance dans le système.
Fusionner et interpréter les données
Un aspect important est la fusion de données. « Les informations provenant d’une caméra et d’un lidar scrutant la même scène fournissent des données de natures très différentes, explique Guillaume Bresson, directeur du domaine Véhicules autonomes et connectés à l’institut Vedecom. La caméra livre une image 2D, et le lidar un nuage de points en 3D, mais avec une résolution souvent inférieure. On sait bien reconnaître des objets dans les images 2D, et donc distinguer une voiture d’un cycliste, mais pas estimer leur distance, tandis que dans un nuage de points issu d’un lidar, on cherche généralement des ensembles de points géométriquement cohérents pour détecter des objets, sans forcément identifier leur nature. La fusion des données issues de ces deux sources permet d’exploiter leur complémentarité. Elle peut aboutir pour chaque objet analysé à une confirmation, si les données le concernant se renforcent mutuellement, ou à une infirmation dans le cas contraire. »
À l’issue de ce processus, on obtient une description plus précise des objets détectés. « Il ne s’agit pas seulement de préciser la taille, la position, la direction du déplacement, la vitesse, la nature de l’obstacle, ajoute Guillaume Bresson. La fusion consiste aussi à accompagner chacune de ces informations d’une mesure de la confiance qu’on peut leur apporter, qui peut soit être probabiliste, soit exprimée sous la forme d’un score reposant sur plusieurs critères. »
« La confrontation entre données issues de plusieurs sources peut aussi relever d’une approche coopérative, signale Dominique Gruyer, directeur de recherche à l’Ifsttar (université Gustave-Eiffel), au sein du laboratoire PICS-L (Perception, Interactions, Comportements & Simulation des usagers de la route et de la rue). Ainsi, l’analyse des données lidar ou radar peut déboucher sur la sélection de zones d’intérêt, sur la base de leurs dimensions, de leur distance ou de leur vecteur vitesse. Les régions correspondantes dans les images 2D issues des caméras peuvent alors faire l’objet d’une analyse plus poussée, à l’aide d’algorithmes de vision artificielle sophistiqués, afin de confirmer la présence d’un objet et déterminer sa nature. » Une approche qui a entre autres pour effet de répartir au mieux la puissance de calcul disponible. « Par exemple, poursuit Dominique Gruyer, un premier algorithme peut servir à masquer dans le paysage tout ce qui n’est pas la route ou inversement, afin de délimiter la zone de l’environnement sur laquelle un algorithme spécialisé va ensuite travailler pour détecter la signalisation horizontale ou les obstacles. »
Obtenir un modèle dynamique de la scène
« À l’issue des traitements de fusion et d’interprétation des données provenant des capteurs, l’objectif est d’obtenir un modèle dynamique de la situation, dans lequel chaque élément mobile est identifié et caractérisé par sa position, son orientation et surtout sa vitesse et sa direction, estime Christian Laugier, directeur de recherche à l’Inria, au sein de l’équipe-projet Chroma (Cooperative and Human-aware Robot Navigation in Dynamic Environments). À partir de là, on peut construire par simulation un modèle prédictif montrant où se situeront vraisemblablement tous ces mobiles dans 3 secondes, par exemple. C’est ainsi que fonctionne notre cerveau : il prédit en permanence ce qui peut arriver à très court terme. Lorsque ce modèle prédictif indique une situation dangereuse, comme un risque de collision, il déclenche des comportements réflexes, comme des coups de frein ou de volant. » Le logiciel de perception doit donc à la fois nourrir les algorithmes de décision à long terme et de planification, mais aussi ceux qui déclenchent des comportements réflexes.
« Un autre aspect qui ajoute à la complexité de l’architecture du logiciel de perception, signale Guillaume Bresson, c’est qu’il faut prévoir des situations dans lesquelles on ne peut plus compter sur toutes les sources d’informations disponibles. En fonction de l’éclairage (nuit, crépuscule, éblouissement…), des conditions météorologiques (brouillard, pluie, neige…), des aléas de la route (projection de boue sur une caméra…) ou des incidents de parcours, certains capteurs peuvent fournir des informations de mauvaise qualité, voire plus du tout d’informations en cas de panne. » Bien sûr, le pilotage automatique peut alors baisser les bras et demander au conducteur de reprendre le contrôle, ce qui suppose tout de même de bien gérer cette transition. « Plutôt que de déclarer forfait à la moindre anomalie, poursuit le chercheur, il est préférable que le logiciel soit capable de continuer à travailler dans ces conditions dégradées, dans certaines limites, au moins jusqu’à ce que le véhicule soit repris en main par le conducteur ou amené en sécurité jusqu’à l’arrêt complet. »
Ne pas tout miser sur le deep learning
L’optimisme de ces dernières années à propos de la voiture autonome résulte en grande partie des succès de l’apprentissage profond (deep learning) et de ses réseaux de neurones. Surpassant dans bien des domaines les autres techniques de reconnaissance des formes, il est sans surprise très employé dans la perception des véhicules autonomes.
« L’apprentissage profond est capable de performances parfois étonnantes, convient Christian Laugier, mais il peut aussi faire des gaffes tout aussi surprenantes, comme confondre une voiture avec un poteau télégraphique. » On a même montré qu’il était possible de les « attaquer » en modifiant à peine un objet qu’ils savent reconnaître en général. Ainsi deux ou trois petits autocollants sur un panneau de sens interdit peuvent affoler un système de lecture de la signalisation verticale au point qu’il l’interprète comme une limitation de vitesse. « De plus, les réseaux de neurones actuels sont des boîtes noires, on ne sait jamais vraiment ce qui s’y passe, ce qui rend difficile la correction de ces problèmes. Il faut donc les compléter par d’autres techniques de vision artificielle plus classiques. Personnellement, je ne me laisserais pas conduire par une voiture dont le logiciel aurait été développé à 100 % par apprentissage profond. »
« On ne peut pas tout miser sur l’apprentissage profond, confirme Guillaume Bresson. Certes, des travaux commencent à proposer des solutions pour corriger ces défauts, mais pour l’instant aucune solution miracle n’est disponible. » Wait and see… « Il ne faut certainement pas négliger les nombreuses approches de vision artificielle antérieures à l’apprentissage profond, conclue Fawzi Nashashibi. Il en existe de très efficaces pour reconnaître certaines choses, comme la signalisation horizontale, par exemple. L’idéal est de faire appel à la fois à l’apprentissage profond et aux techniques plus classiques. Sachant que de toute façon, nous n’obtiendrons jamais une perception parfaite, fiable à 100%. »
Pierre Vandeginste
Illustration à la une : Waymo minivan, l’une des voitures de la filiale de Google © Waymo