Ingénierie IAIngénierie IA
Ingénierie IA11 min de lecture

Le pilote automatique de Tesla expliqué ! Tesla AI Day en 10 minutes

L’exposé d’Andrej Karpathy sur le pilote automatique de Tesla expliqué clairement en moins de 10 minutes.

Mis à jour le 25 sept. 2021
Le pilote automatique de Tesla expliqué ! Tesla AI Day en 10 minutes
Sommaire

Si vous vous demandez comment une voiture Tesla peut non seulement voir, mais aussi circuler sur les routes avec d’autres véhicules, voici l’article que vous attendiez. Il y a quelques jours avait lieu le premier Tesla AI Day, où Andrej Karpathy, directeur de l’IA chez Tesla, et d’autres intervenants ont présenté le fonctionnement du pilote automatique de Tesla, depuis l’acquisition des images par ses huit caméras jusqu’au processus de navigation sur les routes.

Les voitures de Tesla possèdent huit caméras, comme dans cette illustration. Elles permettent au véhicule de voir son environnement ainsi que loin devant lui. Malheureusement, vous ne pouvez pas simplement prendre toute l’information de ces huit caméras et l’envoyer directement à une IA qui vous dira quoi faire. Ce serait beaucoup trop d’information à traiter en même temps, et nos ordinateurs ne sont pas encore assez puissants. Imaginez seulement devoir le faire vous-même et traiter tout ce qui vous entoure. Honnêtement, j’ai de la difficulté à tourner à gauche lorsqu’il n’y a aucun panneau d’arrêt et qu’il faut regarder plusieurs fois des deux côtés avant de prendre une décision.
Eh bien, c’est la même chose pour les réseaux neuronaux, ou plus précisément pour les appareils informatiques comme les CPU et les GPU.

Exemple visuel tiré de Le pilote automatique de Tesla expliqué ! Tesla AI Day en 10 minutes

Vues des caméras de Tesla. Image tirée de tesla.com

Pour nous attaquer à ce problème, nous devons comprimer les données tout en conservant l’information la plus pertinente, un peu comme notre cerveau le fait avec celle qui provient de nos yeux. Tesla transfère donc les données de ces huit caméras dans un espace plus petit qu’elle appelle « l’espace vectoriel ».

Exemple visuel tiré de Le pilote automatique de Tesla expliqué ! Tesla AI Day en 10 minutes

Des 8 caméras à « l’espace vectoriel ». Image tirée de la vidéo du Tesla AI Day.

Cet espace en 3 dimensions ressemble à ceci et contient toute l’information pertinente sur le monde, comme les panneaux routiers, les voitures, les personnes, les lignes, etc. Ce nouvel espace sert ensuite aux nombreuses tâches que la voiture doit accomplir, comme la détection d’objets, le traitement des feux de circulation, la prédiction des voies, etc.

Mais comment passer de 8 caméras, donc huit entrées en trois dimensions composées d’images Rouge-Vert-Bleu, à une seule sortie en 3 dimensions ? Le processus compte 4 étapes réalisées en parallèle pour les huit caméras, ce qui le rend extrêmement efficace.

Exemple visuel tiré de Le pilote automatique de Tesla expliqué ! Tesla AI Day en 10 minutes

Architecture globale de la vision. Image tirée de la vidéo du Tesla AI Day.

Étape 1 : caméras et module de rectification

D’abord, les images sont envoyées dans un module de rectification qui les calibre en les transformant en une représentation virtuelle. Cette étape améliore considérablement la performance du pilote automatique, puisqu’elle rend les images plus semblables les unes aux autres lorsque rien ne se passe. Le réseau peut ainsi les comparer plus facilement et se concentrer sur les composantes essentielles qui ne font pas partie de l’arrière-plan habituel.

Étape 2 : extraction de l’information

Ces nouvelles versions des images sont ensuite envoyées dans un premier réseau appelé RegNet. RegNet est simplement une version optimisée de l’architecture de réseau neuronal convolutif, ou CNN. Si ce type d’architecture ne vous est pas familier, prenez une pause et regardez rapidement l’explication simple que j’ai faite. Essentiellement, le réseau reçoit les nouvelles images et comprime l’information de façon itérative, comme une pyramide. Le début du réseau est composé de quelques neurones qui représentent certaines variations des images en se concentrant sur des objets précis et en nous indiquant où ils se trouvent dans l’espace. Plus nous avançons en profondeur, plus ces images deviennent petites, mais elles représentent l’ensemble de l’image tout en se concentrant sur des objets précis. À la fin de cette pyramide, vous obtenez donc de nombreux neurones qui fournissent chacun de l’information générale sur l’image complète, par exemple si elle contient une voiture, un panneau routier, etc.

Étape 3 : fusion des caractéristiques importantes

Pour obtenir le meilleur des deux mondes, nous extrayons de l’information à plusieurs niveaux de cette pyramide. Vous pouvez aussi voir ces niveaux comme des représentations de l’image à différentes échelles qui se concentrent sur des caractéristiques précises de l’image originale. Nous obtenons ainsi de l’information locale et générale qui nous indique de quoi les images sont composées et où les éléments se trouvent.

Exemple visuel tiré de Le pilote automatique de Tesla expliqué ! Tesla AI Day en 10 minutes

Extracteur de caractéristiques CNN et fusion de la pyramide de caractéristiques BiFPN pour extraire l’information la plus utile possible des caméras. Image tirée de la vidéo du Tesla AI Day.

Cette information est ensuite envoyée dans un modèle appelé BiFPN, qui force l’information provenant de différentes échelles à communiquer et extrait les connaissances les plus utiles parmi les éléments généraux et précis qu’elle contient. La sortie du réseau BiFPN contient l’information la plus intéressante et utile de toutes les échelles des huit caméras. Elle comprend donc à la fois l’information générale sur le contenu des images et l’information précise, comme l’emplacement et la taille des objets. Par exemple, le réseau utilise le contexte provenant des connaissances générales des caractéristiques profondes extraites au sommet de la pyramide pour comprendre que « puisque ces deux lumières floues se trouvent sur la route entre deux voies, elles sont probablement attachées à un objet précis repéré par l’une des caméras dans les premières couches du réseau ».

Exemple visuel tiré de Le pilote automatique de Tesla expliqué ! Tesla AI Day en 10 minutes

Grâce à ce contexte et en sachant que les lumières font partie d’un seul objet, le modèle peut déduire correctement qu’elles sont attachées à une voiture.

Étape 4 : fusion de l’information des 8 caméras en une seule représentation

Nous avons maintenant l’information la plus utile provenant de différentes échelles pour les huit caméras. Nous devons la comprimer afin de ne pas avoir huit entrées de données distinctes, et c’est ce que fait un bloc Transformer. Si vous ne connaissez pas les Transformers, je vous invite à regarder ma vidéo sur leur utilisation en vision. En bref, ce bloc prend l’information condensée des huit images et la transfère dans l’espace en 3 dimensions que nous voulons obtenir, soit l’espace vectoriel. Il reçoit cette information générale et spatiale, appelée ici la clé, calcule la requête, dont la dimension correspond à notre champ vectoriel, puis tente de déterminer ce qui va où. Par exemple, l’une de ces requêtes peut être vue comme un pixel de l’espace vectoriel obtenu qui cherche une partie précise de la voiture devant nous. La valeur fusionne les deux en conséquence et nous indique ce qui se trouve à chaque endroit de ce nouvel espace vectoriel. Ce Transformer peut être vu comme le pont entre les huit caméras et ce nouvel espace 3D, puisqu’il comprend toutes les relations entre les caméras.

Le problème du temps…

Exemple visuel tiré de Le pilote automatique de Tesla expliqué ! Tesla AI Day en 10 minutes

Incohérences produites lorsqu’une seule image est utilisée à la fois. Image tirée de la vidéo du Tesla AI Day.

Maintenant que vos données sont enfin condensées dans une représentation 3D, nous pouvons commencer le vrai travail. C’est dans cet espace que les chercheurs annotent les données utilisées pour entraîner leur réseau de navigation, puisqu’il est beaucoup moins complexe que les huit caméras et plus facile à annoter. D’accord, nous avons maintenant une façon efficace de représenter nos huit caméras, mais il reste un problème : les entrées d’une seule caméra ne sont pas intelligentes. Si une voiture du côté opposé est cachée par une autre voiture, le pilote automatique doit savoir qu’elle se trouve encore là et qu’elle n’a pas disparu simplement parce qu’une autre voiture est passée devant elle pendant une seconde. Pour régler ce problème, nous devons utiliser l’information temporelle, autrement dit plusieurs images. Les chercheurs ont choisi une « file de caractéristiques » et un « module vidéo ».

Exemple visuel tiré de Le pilote automatique de Tesla expliqué ! Tesla AI Day en 10 minutes

Module de file de caractéristiques. Image tirée de la vidéo du Tesla AI Day.

La file de caractéristiques reçoit quelques images et les conserve dans le cache. Chaque fois que la voiture parcourt un mètre, ou toutes les 27 ms, elle envoie les images mises en cache au modèle. Les chercheurs utilisent à la fois une mesure de temps et de distance afin de couvrir les situations où la voiture roule ou est arrêtée. Les représentations 3D des images que nous venons de traiter sont ensuite fusionnées avec leurs positions correspondantes et les données cinématiques contenant l’accélération et la vitesse de la voiture, ce qui nous informe sur son mouvement à chaque image.

Exemple visuel tiré de Le pilote automatique de Tesla expliqué ! Tesla AI Day en 10 minutes

Le module vidéo. Image tirée de la vidéo du Tesla AI Day.

Toute cette précieuse information est ensuite envoyée au module vidéo. Celui-ci l’utilise pour comprendre la voiture elle-même et son environnement dans l’image actuelle et les quelques images précédentes. Ce processus repose sur un réseau neuronal récurrent qui traite toute l’information de façon itérative au fil des images afin de mieux comprendre le contexte et de construire la carte bien définie que vous voyez. Si vous ne connaissez pas les réseaux neuronaux récurrents, je vous oriente encore une fois vers une vidéo que j’ai faite pour les expliquer. Puisqu’il utilise les images précédentes, le réseau dispose maintenant de beaucoup plus d’information pour comprendre ce qui se passe, ce qui sera nécessaire lors des occlusions temporaires.

Voici l’architecture finale du processus de vision, avec sa sortie à droite. Ci-dessous, vous pouvez voir certaines de ces sorties reconverties en images pour montrer ce que la voiture voit dans notre représentation du monde, ou plutôt dans la représentation qu’en donnent ses huit caméras. Nous avons enfin la sortie du module vidéo, que nous pouvons envoyer en parallèle à toutes les tâches de la voiture, comme la détection d’objets, la prédiction des voies, les feux de circulation, etc.

Résumons…

Exemple visuel tiré de Le pilote automatique de Tesla expliqué ! Tesla AI Day en 10 minutes

Architecture globale de la vision. Image tirée de la vidéo du Tesla AI Day.

Pour résumer cette architecture, nous avons d’abord les huit caméras qui prennent des images. Elles sont ensuite calibrées et envoyées dans un CNN qui comprime et extrait efficacement l’information, puis fusionne le tout avant de l’envoyer dans une architecture Transformer. Celle-ci combine l’information des huit caméras en une seule représentation 3D. Enfin, cette représentation 3D est conservée dans le cache pendant quelques images, puis envoyée dans une architecture RNN. Ce réseau utilise toutes ces images pour mieux comprendre le contexte et produire la version finale de l’espace 3D destinée aux différentes tâches. Chacune peut alors être entraînée individuellement et fonctionner en parallèle afin de maximiser la performance et l’efficacité.

Comme vous pouvez le voir, le principal défi d’une telle tâche est un défi d’ingénierie. Il faut permettre à une voiture de comprendre le monde qui nous entoure aussi efficacement que possible à l’aide de caméras et de capteurs de vitesse, afin que tout puisse fonctionner en temps réel avec une précision presque parfaite pour de nombreuses tâches humaines complexes.

Bien sûr, il ne s’agissait que d’une explication simple de la façon dont le pilote automatique de Tesla voit notre monde. Je vous recommande fortement de regarder l’incroyable vidéo de la chaîne YouTube de Tesla liée dans les références ci-dessous. Vous y trouverez davantage de détails techniques sur les modèles utilisés, les défis rencontrés, le processus d’annotation des données et d’entraînement avec leur outil de simulation, leur matériel et leurs logiciels personnalisés, ainsi que la navigation. Elle vaut vraiment votre temps !

Merci de m’avoir lu.


Venez discuter avec nous dans notre communauté Discord : Learn AI Together et partagez vos projets, articles scientifiques et meilleurs cours, trouvez des coéquipiers pour Kaggle, et bien plus encore !

Si vous aimez mon travail et souhaitez rester à jour sur l’IA, vous devriez vraiment me suivre sur mes autres réseaux sociaux (LinkedIn, Twitter) et vous abonner à mon infolettre hebdomadaire sur l’IA !

Pour me soutenir :

  • La meilleure façon de me soutenir est de devenir membre de ce site Web ou de vous abonner à ma chaîne YouTube si vous préférez le format vidéo.
  • Soutenez financièrement mon travail sur Patreon

Références :

Discussion

Commentaires

Chargement

Aucun compte requis. Votre nom et votre commentaire seront publics, alors n'incluez pas de renseignements privés. Consultez la page de confidentialité pour les détails.

Continuez à apprendre

Vous voulez le côté pratique de l'IA, sans le brouillard marketing ?

Je partage ce qui est utile sur YouTube, Substack et dans mes guides d'ingénierie IA.

FAQ

Quelles entrées visuelles le pilote automatique de Tesla utilise-t-il ?

Le système présenté traite les vidéos de huit caméras placées autour du véhicule.

Pourquoi les images des caméras sont-elles d’abord rectifiées ?

La rectification corrige les effets de l’objectif et du point de vue afin que les caractéristiques suivantes correspondent à la géométrie connue des caméras.

Comment les vues des huit caméras sont-elles combinées ?

Une étape de fusion fondée sur un Transformer compresse les caractéristiques dans une représentation commune autour du véhicule.

Pourquoi le pilote automatique doit-il traiter le temps en plus des images individuelles ?

L’historique du mouvement aide à déduire la vitesse, les occlusions, la persistance des objets et la structure de la route qu’une seule image ne peut révéler.

L’explication du Tesla AI Day établit-elle la sécurité d’une autonomie complète ?

Non. Elle explique l’architecture. La sécurité dépend aussi des données, de la validation, de la redondance, de la surveillance et de la performance lors d’événements routiers rares.

Qu’est-ce que l’espace vectoriel du pilote automatique de Tesla ?

Il s’agit d’une représentation 3D comprimée qui combine les vues des caméras en une géométrie routière, des objets, des voies et d’autres informations nécessaires à la conduite.