
Décryptage de la 2ème partie de la Tesla Autonomy Investor Day. Cycle de formation du pilote automatique, infrastructure de collecte de données, étiquetage automatique des données, imitation des conducteurs humains, détection de distance vidéo, supervision des capteurs et bien plus encore.La première partie est le développement du Full Self-Driving Computer (FSDC) .Hôte: FSDC peut travailler avec des réseaux de neurones très complexes pour le traitement d'images. Il est temps de parler de la façon dont nous obtenons des images et de la façon dont nous les analysons. Nous avons un directeur senior de l'IA chez Tesla, Andrei Karpaty, qui vous expliquera tout cela.
Andrei: Je m'entraîne dans les réseaux de neurones depuis une dizaine d'années, et maintenant depuis 5-6 ans pour un usage industriel. Y compris des institutions bien connues telles que Stanford, Open AI et Google. Cet ensemble de réseaux de neurones n'est pas seulement destiné au traitement d'images, mais également au langage naturel. J'ai conçu des architectures qui combinent ces deux modalités pour ma thèse de doctorat.
À Stanford, j'ai donné un cours sur les réseaux neuronaux déconvolutionnaires. J'étais l'enseignant principal et j'ai développé tout le programme pour lui. Au début, j'avais environ 150 étudiants, au cours des deux ou trois prochaines années, le nombre d'étudiants est passé à 700. C'est un cours très populaire, l'un des cours les plus importants et les plus réussis de Stanford en ce moment.
Ilon: Andrey est vraiment l'un des meilleurs spécialistes de la vision industrielle au monde. Peut-être le meilleur.
Andrew: Merci. Bonjour à tous. Pete vous a parlé d'une puce que nous avons développée spécifiquement pour les réseaux de neurones dans une voiture. Mon équipe est responsable de la formation de ces réseaux de neurones. Cela comprend la collecte de données, la formation et, en partie, le déploiement.
Que font les réseaux de neurones dans une voiture? Il y a huit caméras dans la voiture qui tournent des vidéos. Les réseaux de neurones regardent ces vidéos, les traitent et font des prédictions sur ce qu'ils voient. Nous nous intéressons aux marquages routiers, aux participants à la circulation, aux autres objets et à leurs distances, à la chaussée, aux feux de circulation, aux panneaux de signalisation, etc.

Ma présentation peut être divisée en trois parties. Tout d'abord, je vais vous présenter brièvement les réseaux de neurones et comment ils fonctionnent et comment ils sont formés. Cela doit être fait pour que dans la deuxième partie, il soit clair pourquoi il est si important que nous ayons une énorme flotte de voitures Tesla (flotte). Pourquoi est-ce un facteur clé dans la formation de réseaux de neurones qui fonctionnent efficacement sur la route? Dans la troisième partie, je parlerai de la vision industrielle, du lidar et de la façon d'estimer la distance en utilisant uniquement la vidéo.
Comment fonctionnent les réseaux de neurones?
(Il n'y a pas grand chose de nouveau ici, vous pouvez sauter et passer à la rubrique suivante)La tâche principale que les réseaux résolvent dans la voiture est la reconnaissance des formes. Pour nous, les humains, c'est une tâche très simple. Vous regardez les images et voyez un violoncelle, un bateau, un iguane ou des ciseaux. Très facile et simple pour vous, mais pas pour l'ordinateur. La raison en est que ces images informatiques ne sont qu'un tableau de pixels, où chaque pixel est la valeur de luminosité à ce point. Au lieu de simplement voir l'image, l'ordinateur reçoit un million de numéros dans un tableau.
Ilon: Matrix, si tu veux. Vraiment matrice.
Andrew: Oui. Nous devons passer de cette grille de pixels et de valeurs de luminosité à des concepts de niveau supérieur tels que l'iguane, etc. Comme vous pouvez l'imaginer, cette image d'un iguane a un motif de luminosité spécifique. Mais les iguanes peuvent être représentés de différentes manières, dans différentes poses, dans différentes conditions d'éclairage, sur un fond différent. Vous pouvez trouver de nombreuses images différentes de l'iguane et nous devons le reconnaître dans toutes les conditions.
La raison pour laquelle vous et moi pouvons facilement gérer cela est que nous avons à l'intérieur un énorme réseau de neurones qui traite les images. La lumière pénètre dans la rétine et est envoyée à l'arrière de votre cerveau vers le cortex visuel. Le cortex cérébral est composé de nombreux neurones qui sont connectés les uns aux autres et effectuent une reconnaissance de modèle.
Au cours des cinq dernières années, les approches modernes du traitement d'image à l'aide d'ordinateurs ont également commencé à utiliser des réseaux de neurones, mais dans ce cas, des réseaux de neurones artificiels. Les réseaux de neurones artificiels sont une approximation mathématique grossière du cortex visuel. Il y a aussi des neurones ici, ils sont connectés les uns aux autres. Un réseau de neurones typique comprend des dizaines ou des centaines de millions de neurones, et chaque neurone a des milliers de liens.
Nous pouvons prendre un réseau neuronal et lui montrer des images, comme notre iguane, et le réseau fera une prédiction qu'il voit. Premièrement, les réseaux de neurones sont complètement initialisés par accident, tous les poids des connexions entre les neurones sont des nombres aléatoires. Par conséquent, les prévisions du réseau seront également aléatoires. Il peut s'avérer que le net pense qu'il s'agit probablement d'un bateau. Pendant l'entraînement, nous savons et notons que l'iguane est sur l'image. Nous disons simplement que nous aimerions que la probabilité d'un iguane pour cette image augmente, et la probabilité que tout le reste diminue. Ensuite, un processus mathématique appelé la méthode de propagation arrière est utilisé. Descente de gradient stochastique, qui nous permet de propager le signal le long des liens et de mettre à jour leurs poids. Nous mettrons à jour un peu le poids de chacun de ces composés, et dès que la mise à jour sera terminée, la probabilité d'un iguane pour cette image augmentera légèrement et la probabilité d'autres réponses diminuera.
Bien sûr, nous le faisons avec plus d'une image unique. Nous avons un grand ensemble de données balisées. Ce sont généralement des millions d'images, des milliers de balises. Le processus d'apprentissage se répète encore et encore. Vous montrez à l'ordinateur une image, il vous donne son avis, puis vous dites la bonne réponse, et le réseau est légèrement configuré. Vous répétez cela des millions de fois, affichant parfois la même image des centaines de fois. La formation prend généralement plusieurs heures ou plusieurs jours.
Maintenant quelque chose de contre-intuitif sur le travail des réseaux de neurones. Ils ont vraiment besoin de beaucoup d'exemples. Cela ne tient pas seulement dans votre tête, mais ils partent vraiment de zéro, ils ne savent rien. Voici un exemple - un chien mignon, et vous ne connaissez probablement pas sa race. Ceci est un épagneul japonais. Nous regardons cette photo et nous voyons un épagneul japonais. On peut dire: "D'accord, je comprends, maintenant je sais à quoi ressemble l'épagneul japonais." Si je vous montre d'autres images d'autres chiens, vous pouvez trouver d'autres épagneuls japonais parmi eux. Vous n'avez besoin que d'un exemple, mais pas les ordinateurs. Ils ont besoin de beaucoup de données sur les épagneuls japonais, des milliers d'exemples, dans différentes poses, différentes conditions d'éclairage, sur différents arrière-plans, etc. Vous devez montrer à l'ordinateur à quoi ressemble l'épagneul japonais à différents points de vue. Et il a vraiment besoin de toutes ces données, sinon l'ordinateur ne pourra pas apprendre le modèle souhaité.
Disposition de l'image pour le pilote automatique
Alors, comment tout cela est-il lié à la conduite autonome. Nous ne sommes pas très préoccupés par les races de chiens. Peut-être qu'ils s'en soucieront à l'avenir. Mais maintenant, nous nous intéressons aux marquages routiers, aux objets sur la route, où ils se trouvent, où nous pouvons aller, etc. Maintenant, nous n'avons pas seulement des étiquettes comme iguane, mais nous avons des images de la route, et nous nous intéressons, par exemple, aux marquages routiers. Une personne regarde l'image et la marque avec la souris.

Nous avons la possibilité de contacter les voitures Tesla et de demander encore plus de photos. Si vous demandez des photos aléatoires, vous obtiendrez des images où, en règle générale, la voiture longe l'autoroute. Ce sera un ensemble de données aléatoires et nous le marquerons.
Si vous ne marquez que des ensembles aléatoires, votre réseau apprendra une situation de trafic simple et courante et ne fonctionnera bien que dans celle-ci. Lorsque vous lui montrez un exemple légèrement différent, disons une image d'une route tournant dans un quartier résidentiel. Votre réseau peut donner le mauvais résultat. Elle dira "eh bien, j'ai vu plusieurs fois, la route va tout droit".

Bien sûr, c'est complètement faux. Mais nous ne pouvons pas blâmer le réseau neuronal. Elle ne sait pas si l'arbre à gauche, la voiture à droite ou les bâtiments en arrière-plan comptent. Le réseau n'en sait rien. Nous savons tous que la ligne de marquage est importante et qu'elle tourne un peu sur le côté. Le réseau devrait en tenir compte, mais il n'y a pas de mécanisme par lequel nous pouvons simplement dire au réseau neuronal que ces traits des marquages routiers comptent vraiment. Le seul outil entre nos mains est l'étiquetage des données.

Nous prenons des images sur lesquelles le réseau se trompe et les marquons correctement. Dans ce cas, nous marquons le balisage tournant. Ensuite, vous devez transférer de nombreuses images similaires vers le réseau neuronal. Et au fil du temps, elle accumulera des connaissances et apprendra à comprendre ce schéma, à comprendre que cette partie de l'image ne joue pas de rôle, mais ce balisage est très important. Le réseau apprendra à trouver correctement la voie.
Non seulement la taille de l'ensemble de données de formation est importante. Nous avons besoin de plus que des millions d'images. Beaucoup de travail doit être fait pour couvrir l'espace des situations qu'une voiture peut rencontrer sur la route. Vous devez enseigner à un ordinateur à travailler la nuit et sous la pluie. La route peut réfléchir la lumière comme un miroir, l'éclairage peut varier dans de larges limites, les images seront très différentes.

Nous devons enseigner à l'ordinateur comment gérer les ombres, les fourches et les gros objets qui occupent la majeure partie de l'image. Comment travailler avec des tunnels ou dans une zone de réparation routière. Et dans tous ces cas, il n'y a pas de mécanisme direct pour dire au réseau quoi faire. Nous n'avons qu'un énorme ensemble de données. Nous pouvons prendre des images, annoter et former le réseau jusqu'à ce qu'il commence à comprendre leur structure.
Des ensembles de données volumineux et diversifiés aident les réseaux à très bien fonctionner. Ce n'est pas notre découverte. Expériences et recherches Google, Facebook, Baidu, Deepmind from Alphabet. Tous montrent des résultats similaires - les réseaux de neurones aiment vraiment les données, comme la quantité et la variété. Ajoutez plus de données et la précision des réseaux de neurones augmente.
Vous devrez développer un pilote automatique pour simuler le comportement des voitures dans une simulation
Un certain nombre d'experts soulignent que nous pourrions utiliser la simulation pour obtenir les données nécessaires à la bonne échelle. Chez Tesla, nous avons posé cette question à plusieurs reprises. Nous avons notre propre simulateur. Nous utilisons largement la simulation pour développer et évaluer des logiciels. Nous l'avons utilisé pour la formation avec succès. Mais au final, en ce qui concerne la formation des données pour les réseaux de neurones, rien ne peut remplacer les données réelles. Les simulations ont des problèmes avec la modélisation de l'apparence, de la physique et du comportement des participants.

Le monde réel nous jette un tas de situations inattendues. Conditions difficiles avec neige, arbres, vent. Divers artefacts visuels difficiles à modéliser. Aires de réparation routière, buissons, sacs en plastique suspendus au vent. Il peut y avoir beaucoup de gens, d'adultes, d'enfants et d'animaux confondus. Modéliser le comportement et l'interaction de tout cela est une tâche absolument insoluble.

Il ne s'agit pas du mouvement d'un piéton. Il s'agit de la façon dont les piétons réagissent les uns aux autres, et comment les voitures réagissent entre elles, comment elles réagissent à vous. Tout cela est très difficile à simuler. Vous devez d'abord développer un pilote automatique, uniquement pour simuler le comportement des voitures dans une simulation.
C'est vraiment dur. Il peut s'agir de chiens, d'animaux exotiques, et parfois ce n'est même pas quelque chose que vous ne pouvez pas prétendre être, c'est quelque chose qui ne vous vient tout simplement pas à l'esprit. Je ne savais pas qu'un camion peut transporter un camion qui transporte un camion qui en transporte un autre. Mais dans le monde réel, cela et bien d'autres choses se produisent qui sont difficiles à trouver. La variété que je vois dans les données provenant des voitures est tout simplement folle par rapport à ce que nous avons dans le simulateur. Bien que nous ayons un bon simulateur.
Ilon: La simulation, c'est comme si vous vous inventiez vos propres devoirs. Si vous savez que vous allez faire semblant, d'accord, bien sûr, vous vous en occuperez. Mais comme Andrei l'a dit, vous ne savez pas ce que vous ne savez pas. Le monde est très étrange, il a des millions de cas spéciaux. Si quelqu'un crée une simulation de conduite qui reproduit fidèlement la réalité, ce sera en soi une réalisation monumentale pour l'humanité. Mais personne ne peut le faire. Il n'y a tout simplement aucun moyen.
La flotte est une source de données clé pour la formation
Andrei: Pour que les réseaux de neurones fonctionnent bien, vous avez besoin d'un ensemble de données vaste, diversifié et réel. Et si vous en avez un, vous pouvez former votre réseau neuronal et cela fonctionnera très bien. Alors pourquoi Tesla est-il si spécial à cet égard? La réponse, bien sûr, est la flotte (flotte, flotte Tesla). Nous pouvons collecter des données de tous les véhicules Tesla et les utiliser pour la formation.
Regardons un exemple spécifique d'amélioration du fonctionnement d'un détecteur d'objets. Cela vous donnera une idée de la façon dont nous formons les réseaux de neurones, comment nous les utilisons et comment ils s'améliorent avec le temps.
La détection d'objets est l'une de nos tâches les plus importantes. Nous devons mettre en évidence les dimensions des voitures et autres objets afin de les suivre et de comprendre comment ils peuvent se déplacer. Nous pouvons demander aux gens de marquer les images. Les gens diront: "voici les voitures, voici les vélos" et ainsi de suite. Et nous pouvons former le réseau neuronal sur ces données. Mais dans certains cas, le réseau fera des prévisions incorrectes.

Par exemple, si nous tombons sur une voiture à laquelle un vélo est attaché à l'arrière, notre réseau de neurones détectera 2 objets - une voiture et un vélo. C'est ainsi qu'elle a travaillé à mon arrivée. Et à sa manière, c'est vrai, car ces deux objets sont vraiment présents ici. Mais le planificateur du pilote automatique ne se soucie pas du fait que ce vélo est un objet séparé qui se déplace avec la voiture. La vérité est que ce vélo est solidement fixé à la voiture. En termes d'objets sur la route, c'est un objet - une voiture.

Maintenant, nous aimerions marquer de nombreux objets similaires comme «une seule voiture». Notre équipe utilise l'approche suivante. On prend cette image ou plusieurs images dans lesquelles un tel modèle est présent. Et nous avons un mécanisme d'apprentissage automatique avec lequel nous pouvons demander à la flotte de nous fournir des exemples qui se ressemblent. Et la flotte envoie des images en réponse.

Voici un exemple de six images reçues. Ils contiennent tous des vélos attachés à des voitures. Nous les marquerons correctement et notre détecteur fonctionnera mieux. Le réseau commencera à comprendre quand le vélo est attaché à la voiture et que c'est un objet. Vous pouvez former le réseau à cela, à condition d'avoir suffisamment d'exemples. Et c’est ainsi que nous résolvons ces problèmes.
Je parle beaucoup d'obtenir des données des voitures Tesla. Et je veux dire tout de suite que nous avons développé ce système dès le début, en tenant compte de la confidentialité. Toutes les données que nous utilisons pour la formation sont anonymisées.
La flotte nous envoie non seulement des vélos sur les voitures. Nous recherchons constamment de nombreux modèles différents. Par exemple, nous recherchons des bateaux - la flotte envoie des images de bateaux sur les routes. Nous voulons des images des zones de réparation routière, et la flotte nous envoie de nombreuses images de ce type à travers le monde. Ou par exemple, des ordures sur la route, c'est aussi très important. La flotte nous envoie des images de pneus, de cônes, de sacs en plastique et autres sur la route.

Nous pouvons obtenir suffisamment d'images, les marquer correctement et le réseau neuronal apprendra à travailler avec elles dans le monde réel. Nous avons besoin du réseau neuronal pour comprendre ce qui se passe et pour répondre correctement.
L'incertitude du réseau neuronal déclenche la collecte de données
La procédure, que nous répétons encore et encore pour entraîner le réseau neuronal, est la suivante. Nous avons commencé avec un ensemble aléatoire d'images reçues de la flotte. Nous balisons les images, formons le réseau de neurones et le chargeons dans les voitures. Nous avons des mécanismes par lesquels nous détectons des inexactitudes dans le fonctionnement du pilote automatique. Si nous constatons que le réseau neuronal n'est pas sûr ou qu'il y a une intervention du conducteur ou d'autres événements, les données sur lesquelles cela s'est produit sont automatiquement envoyées.

Par exemple, les marquages de tunnel sont mal reconnus. On remarque qu'il y a un problème dans les tunnels. Les images correspondantes tombent dans nos tests unitaires afin que le problème ne puisse pas être répété plus tard. Maintenant, pour résoudre le problème, nous avons besoin de nombreux exemples de formation. Nous demandons à la flotte de nous envoyer plus d'images des tunnels, de les marquer correctement, de les ajouter à l'ensemble d'entraînement et de recycler le réseau, puis de les charger dans des voitures. Ce cycle se répète encore et encore. Nous appelons ce processus itératif le moteur de données (moteur de données? Moteur de données?). Nous allumons le réseau en mode caché, détectons les inexactitudes, demandons plus de données, les incluons dans l'ensemble de formation. Nous le faisons pour toutes sortes de prédictions de nos réseaux de neurones.
Balisage automatique des données
J'ai beaucoup parlé de balisage manuel des images. Il s'agit d'un processus coûteux, à la fois en temps et en argent. Cela peut être trop cher. Je veux parler de la façon dont vous pouvez utiliser la flotte ici. Le marquage manuel est un goulot d'étranglement. Nous voulons simplement transférer les données et les marquer automatiquement. Et il existe plusieurs mécanismes pour cela.
À titre d'exemple, l'un de nos projets récents est la reconstruction de la détection.
Vous conduisez sur l'autoroute, quelqu'un roule à gauche ou à droite et il est en train de reconstruire dans votre voie.
Voici une vidéo où le pilote automatique détecte une reconstruction. Bien sûr, nous aimerions le découvrir dès que possible. L'approche pour résoudre ce problème est que nous n'écrivons pas de code comme: l'indicateur de direction gauche est allumé, l'indicateur de direction droit est allumé, que la voiture se déplace horizontalement au fil du temps. Au lieu de cela, nous utilisons l'auto-apprentissage basé sur la flotte.Comment ça marche? Nous demandons à la flotte de nous envoyer des données chaque fois qu'une reconstruction de notre voie est enregistrée. Ensuite, nous remontons le temps et notons automatiquement que cette voiture se reconstruira devant vous en 1,3 seconde. Ces données peuvent être utilisées pour former le réseau neuronal. Ainsi, le réseau neuronal lui-même extraira les signes nécessaires. Par exemple, une voiture est en train de récurer puis de reconstruire, ou elle a un clignotant allumé. Le réseau de neurones apprend tout cela à partir d'exemples étiquetés automatiquement.Vérification de l'ombre
Nous demandons à la flotte de nous envoyer automatiquement les données. Nous pouvons collecter un demi-million d'images environ, et les reconstructions seront marquées sur tous. Nous formons le réseau et le chargeons dans la flotte. Mais jusqu'à ce que nous l'activions complètement, mais l'exécutons en mode ombre. Dans ce mode, le réseau fait constamment des prédictions: "hé, je pense que cette voiture va être reconstruite." Et nous recherchons des prévisions erronées.
Voici un exemple de clip que nous avons obtenu du mode ombre. Ici, la situation n'est pas un peu évidente, et le réseau pensait que la voiture de droite était sur le point de se reconstruire. Et vous remarquerez peut-être qu'il flirte légèrement avec la ligne de marquage. Le réseau a réagi à cela et a suggéré que la voiture serait bientôt dans notre voie. Mais cela ne s'est pas produit.Le réseau fonctionne en mode fantôme et fait des prévisions. Parmi eux se trouvent les faux positifs et les faux négatifs. Parfois, le réseau réagit par erreur, et parfois, il ignore les événements. Toutes ces erreurs déclenchent la collecte de données. Les données sont étiquetées et intégrées à la formation sans effort supplémentaire. Et nous ne mettons pas en danger les gens dans ce processus. Nous recyclons le réseau et utilisons à nouveau le mode fantôme. Nous pouvons répéter cela plusieurs fois, en évaluant les fausses alarmes en conditions de circulation réelles. Une fois que les indicateurs nous conviennent, il suffit de cliquer sur l'interrupteur et de laisser le réseau contrôler la voiture.Nous avons lancé l'une des premières versions du détecteur de reconstruction, il y a environ trois mois. Si vous remarquez que la machine est devenue beaucoup plus efficace pour détecter la reconstruction, il s'agit d'un entraînement avec la flotte en action. Et pas une seule personne n'a été blessée dans ce processus. C’est juste beaucoup d’entraînement de réseaux de neurones basés sur des données réelles, en utilisant le mode ombre et en analysant les résultats.Ilon: En fait, tous les conducteurs forment constamment le réseau. Peu importe que le pilote automatique soit activé ou désactivé. Le réseau apprend. Chaque mile parcouru par une machine avec un équipement HW2.0 ou supérieur éduque le réseau.Pendant que vous conduisez, vous marquez en fait les données
Andrei: Un autre projet intéressant que nous utilisons dans le programme de formation de la flotte prévoit le chemin. Lorsque vous conduisez, vous marquez réellement les données. Vous nous dites comment conduire dans différentes situations de conduite. Voici l'un des conducteurs tourné à gauche à l'intersection. Nous avons une vidéo complète de toutes les caméras et nous savons le chemin que le conducteur a choisi. Nous savons également quelle était la vitesse et l'angle de rotation du volant. Nous rassemblons tout cela et comprenons le chemin qu'une personne a choisi dans cette situation de circulation. Et nous pouvons l'utiliser comme enseignement avec un enseignant. Nous obtenons juste la quantité nécessaire de données de la flotte, entraînons le réseau sur ces trajectoires, et après cela, le réseau neuronal peut prédire le chemin.C'est ce qu'on appelle l'apprentissage par imitation. Nous prenons les trajectoires des gens du monde réel et essayons de les imiter. Et encore une fois, nous pouvons adopter notre approche itérative.Voici un exemple de prévision d'un chemin dans des conditions routières difficiles. Dans la vidéo, nous superposons les prévisions du réseau. Le vert marque le chemin que le réseau se déplacerait.
Ilon: La folie est que le réseau prédit un chemin qu'il ne peut même pas voir. Avec une précision incroyablement élevée. Elle ne voit pas ce qui se trouve autour du virage, mais pense que la probabilité de cette trajectoire est extrêmement élevée. Et cela s'avère juste. Aujourd'hui, vous le verrez dans les voitures, nous inclurons la vision augmentée pour que vous puissiez voir les marquages et les projections de la trajectoire superposée sur la vidéo.Andrei: En fait, sous le capot, le plus se passe, etIlon: En fait, c'est un peu effrayant (Andrey rit).Andrew: Bien sûr, je manque beaucoup de détails. Vous ne voudrez peut-être pas utiliser tous les pilotes d'affilée pour marquer, vous voulez imiter le meilleur. Et nous utilisons un certain nombre de façons pour préparer ces données. Fait intéressant, cette prévision est en fait en trois dimensions. Il s'agit d'un chemin dans l'espace tridimensionnel que nous affichons en 2D. Mais le réseau dispose d'informations sur la pente, ce qui est très important pour la conduite.Prédire le fonctionnement actuel des voitures. Soit dit en passant, lorsque vous avez franchi la jonction sur l'autoroute, il y a environ cinq mois, votre voiture n'a pas pu y faire face. Maintenant c'est possible. C'est la prédiction de la manière, en action, dans vos voitures. Nous l'avons allumé il y a quelque temps. Et aujourd'hui, vous pouvez voir comment cela fonctionne aux intersections. Une partie importante de la formation pour surmonter les intersections est obtenue en marquant automatiquement les données.J'ai réussi à parler des éléments clés de la formation au réseau neuronal. Vous avez besoin d'un ensemble important et diversifié de données réelles. À Tesla, nous l'obtenons en utilisant la flotte. Nous utilisons le moteur de données, le mode shadow et le partitionnement automatique des données à l'aide de la flotte. Et nous pouvons adapter cette approche.Perception de la profondeur par vidéo
Dans la prochaine partie de mon discours, je parlerai de la perception de la profondeur par la vision. Vous savez probablement que les voitures utilisent au moins deux types de capteurs. L'une est les caméras vidéo de luminosité et l'autre est le lidar, que de nombreuses entreprises utilisent. Lidar donne des mesures ponctuelles de la distance autour de vous.Je voudrais noter que vous êtes tous venus ici en utilisant uniquement votre réseau neuronal et votre vision. Vous n'avez pas tiré avec des lasers de vos yeux et vous vous êtes quand même retrouvé ici.Il est clair que le réseau neuronal humain extrait la distance et perçoit le monde en trois dimensions exclusivement par la vision. Elle utilise plusieurs astuces. Je vais parler brièvement de certains d'entre eux. Par exemple, nous avons deux yeux, vous avez donc deux images du monde devant vous. Votre cerveau combine ces informations pour obtenir une estimation des distances, cela se fait en triangulant les points sur deux images. Chez de nombreux animaux, les yeux sont situés sur les côtés et leur champ de vision est légèrement croisé. Ces animaux utilisent la structure (mouvement). Ils bougent la tête pour obtenir de nombreuses images du monde à partir de différents points et peuvent également appliquer la triangulation.
Même avec un œil fermé et complètement immobile, vous conservez une certaine perception de la distance. Si vous fermez un œil, il ne vous semblera pas que je sois devenu deux mètres plus près ou cent mètres plus loin. En effet, il existe de nombreuses techniques monoculaires puissantes que votre cerveau applique également. Par exemple, une illusion d'optique courante, avec deux bandes identiques sur le fond du rail. Votre cerveau évalue la scène et s'attend à ce que l'un d'entre eux soit plus grand que l'autre en raison de la disparition des lignes de chemin de fer au loin. Votre cerveau fait cela en grande partie automatiquement, et les réseaux de neurones artificiels peuvent aussi le faire.Je vais donner trois exemples de la façon dont vous pouvez obtenir la perception de la profondeur dans la vidéo. Une approche classique et deux basées sur des réseaux de neurones.
Nous pouvons prendre un clip vidéo en quelques secondes et recréer l'environnement en 3D en utilisant des méthodes de triangulation et de vision stéréo. Nous appliquons des méthodes similaires dans la voiture. L'essentiel est que le signal ait vraiment les informations nécessaires, la seule question est de les extraire.Marquer la distance à l'aide du radar
Comme je l'ai dit, les réseaux de neurones sont un outil de reconnaissance visuelle très puissant. Si vous voulez qu'ils reconnaissent la distance, vous devez marquer les distances, puis le réseau apprendra à le faire. Rien ne restreint les réseaux dans leur capacité à prédire la distance autre que d'avoir des données balisées.Nous utilisons un radar dirigé vers l'avant. Ce radar mesure et marque la distance aux objets que le réseau neuronal voit. Au lieu de dire aux gens "cette voiture est à environ 25 mètres", vous pouvez mieux baliser les données à l'aide de capteurs. Le radar fonctionne très bien à cette distance. Vous balisez les données et formez le réseau neuronal. Si vous avez suffisamment de données, un réseau de neurones sera très bon pour prédire la distance.
Dans cette image, les cercles montrent les objets reçus par le radar et les cuboïdes sont les objets reçus par le réseau neuronal. Et si le réseau fonctionne bien, alors dans la vue de dessus, les positions des cuboïdes devraient coïncider avec la position des cercles, que nous observons. Les réseaux de neurones fonctionnent très bien avec la prédiction de distance. Ils peuvent apprendre les tailles de différents véhicules et, en fonction de leur taille sur l'image, déterminer assez précisément la distance.Auto-supervision
Le dernier mécanisme, dont je parlerai très brièvement, est un peu plus technique. Il n'y a que quelques articles, principalement au cours des deux dernières années, sur cette approche. Cela s'appelle l'autosurveillance.
Que se passe-t-il ici. Vous téléchargez des vidéos brutes sans étiquette sur le réseau de neurones. Et le réseau peut encore apprendre à reconnaître la distance. Sans entrer dans les détails, l'idée est qu'un réseau de neurones prédit la distance dans chaque image de cette vidéo. Nous n'avons pas de balises pour la vérification, mais il y a une cohérence objectif-temps. Quelle que soit la distance prévue par le réseau, elle doit être cohérente tout au long de la vidéo. Et la seule façon d'être cohérent est de prévoir correctement la distance. Le réseau prédit automatiquement la profondeur de tous les pixels. Nous avons réussi à le reproduire, et cela fonctionne plutôt bien.—
Pour résumer.
Les gens utilisent la vision, pas de laser. Je tiens à souligner qu'une reconnaissance visuelle puissante est absolument essentielle pour la conduite autonome. Nous avons besoin de réseaux de neurones qui comprennent vraiment l'environnement.
Les données du lidar sont beaucoup moins saturées d'informations. Cette silhouette est-elle sur la route, est-ce un sac en plastique ou un pneu? Lidar vous donnera simplement quelques points, tandis que la vision peut vous dire ce que c'est. Ce type à vélo regarde-t-il en arrière, essaie-t-il de changer de voie ou va-t-il tout droit? Dans la zone de réparation des routes, que signifient ces panneaux et comment dois-je me comporter ici? Oui, toute l'infrastructure routière est conçue pour la consommation visuelle. Tous les panneaux, les feux de circulation, tout est visible, c'est là que se trouvent toutes les informations. Et nous devons l'utiliser.Cette fille est passionnée par le téléphone, va-t-elle marcher sur la chaussée? Les réponses à ces questions ne peuvent être trouvées qu'avec l'aide de la vision et elles sont nécessaires pour le pilote automatique de niveau 4-5. Et c'est ce que nous développons chez Tesla. Nous le faisons grâce à une formation à grande échelle sur les réseaux de neurones, à notre moteur de données et à une assistance de flotte.À cet égard, le lidar est une tentative de couper le chemin. Il contourne la tâche fondamentale de la vision industrielle, dont la solution est nécessaire pour la conduite autonome. Cela donne une fausse impression de progrès. Le Lidar n'est bon que pour des démonstrations rapides.Les progrès sont proportionnels à la fréquence des collisions avec des situations complexes dans le monde réel.

Si je voulais mettre tout ce qui a été dit sur une diapositive, ça ressemblerait à ça. Nous avons besoin de systèmes de niveau 4-5 capables de gérer toutes les situations possibles dans 99,9999% des cas. La poursuite des neuf derniers sera difficile et très difficile. Cela nécessitera un système de vision industrielle très puissant.
Voici des images que vous pouvez rencontrer sur le chemin des décimales chères. Au début, vous n'avez que des voitures qui avancent, puis ces voitures commencent à avoir l'air un peu inhabituelles, des vélos apparaissent dessus, des voitures sur des voitures. Ensuite, vous rencontrez des événements vraiment rares, tels que des voitures inversées ou même des voitures lors d'un saut. Nous rencontrons beaucoup de tout dans les données provenant de la flotte.
Et nous voyons ces événements rares beaucoup plus souvent que nos concurrents. Cela détermine la vitesse à laquelle nous pouvons obtenir des données et résoudre les problèmes grâce à la formation des réseaux de neurones. La vitesse de progression est proportionnelle à la fréquence à laquelle vous êtes confronté à des situations difficiles dans le monde réel. Et nous les rencontrons plus souvent que quiconque. Par conséquent, notre pilote automatique est meilleur que les autres. Je vous remercie
Q & A
Question: Combien de données collectez-vous en moyenne sur chaque voiture?
Andrew: Il ne s'agit pas seulement de la quantité de données, c'est de la diversité. À un moment donné, vous avez déjà suffisamment d'images de conduite le long de l'autoroute, le réseau les comprend, ce n'est plus nécessaire. Par conséquent, nous nous concentrons stratégiquement sur l'obtention des bonnes données. Et notre infrastructure, avec une analyse assez compliquée, nous permet d'obtenir les données dont nous avons besoin en ce moment. Il ne s'agit pas d'énormes quantités de données, il s'agit de données très bien sélectionnées.
Question: Je me demande comment vous allez résoudre le problème du changement de voie. Chaque fois que j'essaye de me reconstruire en un ruisseau dense, ils me coupent. Le comportement humain devient irrationnel sur les routes de Los Angeles. Le pilote automatique veut conduire en toute sécurité, et vous devez presque le faire en toute sécurité.
Andrew: J'ai parlé du moteur de données comme de la formation de réseaux de neurones. Mais nous faisons de même au niveau logiciel. Tous les paramètres qui affectent le choix, par exemple, quand reconstruire, comment agressif. Nous les modifions également en mode ombre, observons leur efficacité et ajustons l'heuristique. En fait, la conception de telles heuristiques pour le cas général est une tâche difficile. Je pense que nous devrons utiliser la formation de la flotte pour prendre de telles décisions. Quand les gens changent-ils de voie? Dans quels scénarios? Quand ont-ils l'impression que changer de voie est dangereux? Examinons simplement une grande quantité de données et apprenons au classificateur d'apprentissage automatique à distinguer quand la reconstruction est sûre. Ces classificateurs pourront écrire un code bien meilleur que les gens, car ils s'appuient sur une énorme quantité de données sur le comportement des pilotes.
Ilon: Probablement, nous aurons le mode «trafic à Los Angeles». Quelque part après le mode Mad Max. Ouais, Mad Max aurait du mal à Los Angeles.
Andrei devra faire des compromis. Vous ne voulez pas créer de situations dangereuses, mais souhaitez rentrer chez vous. Et les danses que les gens exécutent en même temps, c'est très difficile à programmer. Je pense que le bon est l'apprentissage automatique. Où nous examinons simplement les nombreuses façons dont les gens font cela et essayons de les imiter.
Ilon: Maintenant, nous sommes un peu conservateurs et, à mesure que notre confiance grandira, il deviendra possible de choisir un régime plus agressif. Les utilisateurs pourront le choisir. Dans les modes agressifs, lorsque vous essayez de changer de voie dans un embouteillage, il y a une légère chance de froisser l'aile. Aucun risque d'accident grave. Vous aurez le choix si vous acceptez une chance non nulle d'écraser l'aile. Malheureusement, c'est le seul moyen d'obtenir du trafic sur l'autoroute.
Question: Pourrait-il se produire sur l'un de ces neuf après la virgule décimale que le lidar sera utile? La deuxième question est, si les lidars ne valent vraiment rien, qu'arrivera-t-il à ceux qui fonderont leurs décisions sur eux?
Ilon: Ils vont tous se débarrasser des lidars, c'est ma prévision, vous pouvez l'écrire. Je dois dire que je ne déteste pas le lidar autant que cela puisse paraître. SpaceX Dragon utilise le lidar pour se déplacer vers l'ISS et le dock. SpaceX a développé son propre lidar à partir de zéro pour cela. J'ai personnellement dirigé ce projet car le lidar est logique dans ce scénario. Mais dans les voitures, c'est vraiment stupide. C'est cher et pas nécessaire. Et, comme Andrei l'a dit, dès que vous manipulez la vidéo, le lidar deviendra inutile. Vous disposerez d'un équipement coûteux et inutile pour la voiture.
Nous avons un radar avant. Il est peu coûteux et utile, surtout dans des conditions de mauvaise visibilité. Brouillard, poussière ou neige, le radar peut voir à travers eux. Si vous prévoyez d'utiliser la génération active de photons, n'utilisez pas la longueur d'onde de la lumière visible. Parce que, ayant une optique passive, vous avez déjà pris soin de tout dans le spectre visible. Maintenant, il vaut mieux utiliser une longueur d'onde avec de bonnes propriétés de pénétration, comme le radar. Le lidar est simplement la génération active de photons dans le spectre visible. Vous voulez générer activement des photons, faites-le en dehors du spectre visible. En utilisant 3,8 mm contre 400 à 700 nm, vous pourrez voir dans de mauvaises conditions météorologiques. Par conséquent, nous avons un radar. Ainsi que douze capteurs à ultrasons pour l'environnement immédiat. Le radar est le plus utile dans le sens du mouvement, car c'est directement que vous vous déplacez très vite.
Nous avons soulevé la question des capteurs à plusieurs reprises. Y en a-t-il assez? Avons-nous tout ce dont nous avons besoin? Besoin d'ajouter autre chose? Hmmm. Assez.
Question: Il semble que les voitures effectuent une sorte de calcul pour déterminer les informations à vous envoyer. Cela se fait-il en temps réel ou sur la base d'informations stockées?
Andrey: Les calculs sont effectués en temps réel dans les voitures elles-mêmes. Nous transmettons les conditions qui nous intéressent, et les voitures font tous les calculs nécessaires. S'ils ne le faisaient pas, nous devions transférer toutes les données d'affilée et les traiter dans notre back-end. Nous ne voulons pas faire ça.
Ilon: Nous avons quatre cent vingt-cinq mille voitures avec HW2.0 +. Cela signifie qu'ils ont huit caméras, un radar, des capteurs à ultrasons et au moins un ordinateur nVidia. Il suffit de calculer quelles informations sont importantes et lesquelles ne le sont pas. Ils compressent les informations importantes et les envoient au réseau pour la formation. Il s'agit d'un énorme degré de compression de données du monde réel.
Question: Vous avez ce réseau de centaines de milliers d'ordinateurs, qui ressemble à un puissant centre de données distribué. Voyez-vous son application à des fins autres que le pilote automatique?
Ilon: Je suppose que cela pourrait être utilisé pour autre chose. Alors que nous nous concentrons sur le pilote automatique. Dès que nous l'apportons au bon niveau, nous pouvons penser à d'autres applications. D'ici là, ce seront des millions ou des dizaines de millions de voitures avec HW3.0 ou FSDC.
Question: Calcul du trafic?
Ilon: Oui, peut-être. cela pourrait être quelque chose comme AWS (Amazon Web Services).
Question: Je suis un pilote Model 3 dans le Minnesota, où il y a beaucoup de neige. La caméra et le radar ne peuvent pas voir les marquages routiers à travers la neige. Comment allez-vous résoudre ce problème? Allez-vous utiliser un GPS de haute précision?
Andrew: Déjà aujourd'hui, le pilote automatique se comporte plutôt bien sur une route enneigée. Même lorsque les marques sont cachées, effilochées ou recouvertes d'eau sous de fortes pluies, le pilote automatique se comporte toujours relativement bien. Nous n'avons pas encore traité spécifiquement la route enneigée avec notre moteur de données. Mais je suis sûr que ce problème peut être résolu. Parce que dans de nombreuses images d'une route enneigée, si vous demandez à une personne où les marquages doivent être, il vous le montrera. Les gens conviennent où tracer les lignes de marquage. Et tandis que les gens peuvent s'entendre et baliser vos données, le réseau neuronal pourra l'apprendre et fonctionnera bien. La seule question est de savoir s'il y a suffisamment d'informations dans le signal d'origine. Assez pour un annotateur personne? Si la réponse est oui, le réseau de neurones fera l'affaire.
Ilon: Il existe plusieurs sources importantes d'informations dans le signal source. Donc, le balisage, ce n'est que l'un d'entre eux. La source la plus importante est l'allée. Où vous pouvez aller et où vous ne pouvez pas. Plus important que le balisage. La reconnaissance routière fonctionne très bien. Je pense que, surtout après l'hiver à venir, cela fonctionnera incroyablement. Nous nous demanderons comment cela peut si bien fonctionner. C'est tout simplement fou.
Andrew: Il ne s'agit même pas de la capacité des gens à marquer. Tant que vous, une personne, pouvez surmonter cette section de la route. La flotte apprendra de vous. Nous savons comment vous avez conduit ici. Et vous avez évidemment utilisé la vision pour cela. Vous n'avez pas vu le balisage, mais vous avez utilisé la géométrie de toute la scène. Vous voyez comment la route se courbe, comment les autres voitures se trouvent autour de vous. Le réseau neuronal mettra automatiquement en évidence tous ces modèles, il vous suffit d'obtenir suffisamment de données sur la façon dont les gens surmontent de telles situations.
Ilon: Il est très important de ne pas adhérer étroitement au GPS. L'erreur GPS peut être très importante. Et la situation réelle du trafic peut être imprévisible. Il peut s'agir d'une réparation de route ou d'un détour. Si la voiture dépend trop du GPS, c'est une mauvaise situation. Vous demandez des ennuis. Le GPS est bon à utiliser uniquement comme indice.
Question: Certains de vos concurrents parlent de la façon dont ils utilisent les cartes haute définition pour améliorer la perception et la planification des parcours. Utilisez-vous quelque chose de similaire dans votre système, voyez-vous un avantage à cela? Y a-t-il des domaines où vous aimeriez avoir plus de données, non pas de la flotte, mais quelque chose comme des cartes?
Ilon: Je pense que les cartes haute résolution sont une très mauvaise idée. Le système devient extrêmement instable. Impossible de s'adapter aux changements si vous êtes attaché au GPS et aux cartes haute résolution et ne donnez pas la priorité à la vision. La vision est la chose qui devrait tout faire. Vous voyez, le balisage est juste une directive, pas la chose la plus importante. Nous avons essayé d'utiliser des cartes de balisage et nous avons rapidement réalisé que c'était une grosse erreur. Nous les avons complètement abandonnés.
Question: Comprendre où se trouvent les objets et comment les voitures se déplacent est très utile. Mais qu'en est-il de l'aspect négociation? Pendant le stationnement, aux ronds-points et dans d'autres situations où vous interagissez avec d'autres voitures que les gens conduisent. C'est plus un art qu'une science.
Ilon: Cela fonctionne plutôt bien. Si vous regardez des situations avec des réarrangements, etc., le pilote automatique fait normalement face.
Andrew: Maintenant, nous utilisons beaucoup d'apprentissage automatique pour créer une idée du monde réel. En plus de cela, nous avons un planificateur et un contrôleur et de nombreuses heuristiques sur la façon de conduire, de prendre en compte les autres voitures, etc. Et tout comme dans la reconnaissance des formes, il existe de nombreux cas non standard ici, c'est comme un jeu de faucons et de pigeons, auquel vous jouez avec d'autres personnes. Nous sommes convaincus qu'en fin de compte, nous utiliserons la formation en flotte pour résoudre ce problème. L'heuristique de l'écriture manuscrite repose rapidement sur un plateau.
Question: Avez-vous un mode de peloton? Le système est-il capable de cela?
Andrei: Je suis absolument sûr que nous pourrions créer un tel régime. Mais encore une fois, si vous formez simplement le réseau à imiter les gens. Les gens s'attachent et conduisent devant la voiture et le réseau se souvient de ce comportement. Il y a une sorte de magie en elle, tout se passe tout seul. Différents problèmes se résument à un, il suffit de collecter l'ensemble de données et de l'utiliser pour former le réseau neuronal.
Ilon: Trois étapes vers la conduite autonome. La première consiste à implémenter simplement cette fonctionnalité. La seconde consiste à l'amener à un point tel qu'une personne dans une voiture n'a pas du tout besoin de faire attention à la route. Et le troisième est de montrer le niveau de fiabilité qui convainc les régulateurs. Ce sont trois niveaux. Nous prévoyons d'atteindre le premier niveau cette année. Et nous nous attendons, quelque part au deuxième trimestre de l'année prochaine, à atteindre un niveau de confiance lorsqu'une personne n'aura plus besoin de garder les mains sur le volant et de regarder la route. Après cela, nous prévoyons une approbation réglementaire dans au moins certaines juridictions d'ici la fin de l'année prochaine. Ce sont mes attentes.
Pour les camions, il est probable que le régime des convois sera approuvé par les régulateurs plus tôt que toute autre chose. Peut-être que pour les longs trajets, vous pouvez utiliser un conducteur dans la voiture principale et 4 semi-remorques derrière lui en mode convoi.
Question: Je suis très impressionné par l'amélioration du pilote automatique. La semaine dernière, je roulais dans la voie de droite de l'autoroute et il y avait une entrée. Mon Model 3 a pu détecter deux voitures entrant sur l'autoroute et a ralenti de sorte qu'une voiture soit silencieusement construite devant moi et l'autre derrière moi. Alors j'ai pensé, bon sang, c'est dingue, je ne savais pas que mon Model 3 en était capable.
Mais cette même semaine, j'ai roulé à nouveau dans la voie de droite, et il y a eu un rétrécissement, ma voie de droite a fusionné avec la gauche. Et mon Model 3 n'a pas pu réagir correctement, j'ai dû intervenir. Pouvez-vous dire comment Tesla peut résoudre ce problème?
Andrew: J'ai parlé de l'infrastructure de collecte de données. Si vous êtes intervenu, nous avons probablement obtenu ce clip. Il est entré dans les statistiques, par exemple, avec quelle probabilité nous coulons correctement dans le flux. Nous regardons ces chiffres, regardons les clips, et nous voyons ce qui ne va pas. Et nous essayons de corriger le comportement afin d'obtenir une amélioration par rapport aux benchmarks.
Ilon: Eh bien, nous avons une autre présentation sur les logiciels. Nous avons eu une présentation sur l'équipement avec Pete, puis sur les réseaux de neurones avec Andrey, et maintenant le logiciel avec Stuart suit.
...