# Rapport
[ToC]
###### tags: `Internship`
# Glossaire
**Scène** : Ensemble de trajectoires de différents agents observés simultanément sur une certaine durée.
## Stellantis
https://www.stellantis.com/fr/responsabilite/publications-rse
Stellantis N.V.[1] is a multinational automotive corporation, created by the merger of Peugeot Société Anonyme (PSA) and Fiat Chrysler Automobiles (FCA) in January 2021, based in Amsterdam, Netherlands. The group exploits 14 car brands from previously PSA and FCA, and 3 brands of mobility services. At the time of this intership in 2021, it was the sixth largest automaker worldwide, with 1 477 000 vehicles sold in the first trimerster 2021.It is active in more than 130 countries around the world with 300 000 employees and industrial facilities in 30 countries[2].
The Chief Executive Officer is Carlos Tavares[3]. Shareholders determine the nomination of all the directors, such as executives, at the time of the election. Stellantis decision-making process follows a “Code of conduct”[4] approuved by the Board of Directors of Stellantis. It applies to all Stellantis members and stakeholders, including suppliers, dealers and distributors. This code is based on four pillars:
The protection of Stellantis workforce: diversity, fairness, health, safety and commitment to UN declatation of human rights.
The promotion of vehicle safety, quality, data privacy and environmental protection.
The support of Stellantis communities.
The protection of Stellantis’ asset and information.
The overall vision of Stellantis for the future mobility is based upon the 2030 United Nations Sustainable Development Goals. In particular, Stellantis shapes its activities in order to make progess toward carbon neutrality for all its products, but also its manufacturing facilities. As Stellantis is a new group, its CSR strategy is being defined and will be published in spring 2022. It will be similar to PSA an FCA’s previous strategies, as Stellantis teams started to share their best ideas and pratices. In this introduction, I will give a few elements of the CSR strategy of PSA, remembering that Stellantis’ strategy similar or stronger considering the recent events and the IPPC’s report 2021[5]. PSA formulated its targets to be consistent with the reductions required to keep global warming to 2°C, and SBTi has approved these targets[6]. Its main objectives are:
Electrify all of the models by 2025, and sell more than 50 % of electrified vehicles in 2035[7].
37% reduction per vehicle kilometer of greenhouse gas emission, relative to year 2018.
Reach carbon neutrality for all plants by 2050.
20% reduction in greenhouse emissions from industrial activitives by 2034, relative to year 2018.
In order to achieve this ambitious objectives, PSA dedicated 32% of its research and development project budget to « clean tech », such as developing more efficient batteries for electric vehicles. For example, Stellantis engineers are working on the optimization of the charging of the batteries charging. These advances could increase batteries’ shelf life while reducing the power required for their charging.
Considering gender equality, PSA considers that the gender balance of its businesses is a pillar for sustainability and its employees’ quality of life. PSA signed up the Women’s Empowerment Principles (WEP) initiated from the UN, which encourages the promotion of women in the workplace and gender equality. Each management of PSA job families has appointed a female ambassador who promotes gender equality and creates action plans in order to meet job families objectives of gender balance. Even if the number of women is relatively small against the number of man of each job family, it continuously grows as shown in figure … . In 2020, 20.7 % of group managers were women, and the total percentage in the company was 18.3%.
Figure 1 : Number of women in senior management through time (Groupe PSA CSR Report 2020 )
Figure 2 : Illustration of AI team's positionning in the concpetion process. CDVA is the global entity, made of the AI team, DRIA, DAPF and DSEE.
During this internship, I was part of the « Components design and Validation for Autonomous Driving » entity (CDVA) from the Reasearch and Development Division (RD2), in a new Artificial Intelligence (AI) team. [TH1] This entity role is to design and validate electronic components for driver assistance systems and autonomous vehicles. The AI team provides support in new AI technologies, such as machine learning, for advanced research (DRIA), functional design (DAPF) and organic design (DSEE). Figure … illustrates the position of CDVA AI team in the conception process.
The current objectives of this team is to explore AI for driving/car related applications, such as battery maintenance, lights management or driver monitoring.
[1] N.V. = Naamloze vennootschap is a type of public company as defined in the Dutch law, which could be identified as « Société Anonyme » in the french law.
[2] https://www.stellantis.com/fr/groupe/a-propos-de-nous
[3] https://www.stellantis.com/fr/groupe/gouvernance/leadership
[4] https://www.stellantis.com/en/group/governance/code-of-conduct
[5] https://www.ipcc.ch/assessment-report/ar6/
[6] https://sciencebasedtargets.org/
[7] This target has been set before the bill of the European Union to forbid the sale of new thermic vehicles by 2035.
[TH1]Ok, but can you say a bit more about RD2/DSEE/MCAD/CDVA ? What is this branch of Stellantis doing? 4 lines max
# I - Introduction
En tant qu'être humain, nous avons développé la capacité d'inférer plus ou moin les intentions, et donc les positions futures, des autres lorsque nous nous déplaçons de sorte à éviter les collisions et à respecter une certaine distanciation selon la densité du lieu dans lequel nous nous trouvons.
De même tout véhicules autonomes qui doit intéragir avec des êtres humains (piétons, cyclistes, ...) doit pouvoir anticiper leurs positions futures, de façon implicte ou explicite, pour prendre des décisions informées et sûres.
# II - Révue sur les transformers
L'architecture originale du transformer a été introduite pour la première fois dans le domaine du traitement du langage naturel (TAL) [1] et peut être considérée comme le résultat de succéssives modifications apportées aux réseaux de neurones récurrents (RNN) afin de palier à leurs limites. Dans la première partie de cette section, nous allons faire un résumer succint des étapes qui ont mené au transformers puis dans une deuxième partie nous allons décrire comment le transformer est utilisé dans certains domaines ... **!!!!**
## 1 - Du LSTM au transformer
**Encodeur-decodeur a base de RNN**
Les réseaux transformers ont été introduits en 2017 dans le domaine de la traduction automatique neuronale. Quelques années auparavant (avant 2014), le modèle neuronal utilisé cette tâche était un Encodeur-décodeur basé sur les réseaux récurrent[5, 6, 7, 2] et en particulier sur les LSTM et GRU. Dans cette architecture, l'encodeur calcule une réprésentation vectorielle de taille fixe de la sequence en entrée qui est ensuite utilisée par le decodeur pour génèree autoregressivement la traduction. (voir la figure ci-dessous). L'une des limites de cette approche est la dimension fixe de la réprésentation calculé par l'encodeur qui est indépendante de la taille de la séquence d'entrée ce qui explique en partie la baisse rapide des performances à mesure que la longueur de l'entrée augmente[7, 2].
<!--  -->
**Mécanisme d'attention**
Pour atténuer le problème mentioné précedemment, Bahdanau et al.[4] proposèrent d'équiper le décodeur d'une variante du mécanisme d'attention de Graves[5]. A chaque étape de décodage, le décodeur prend en plus en entrée une combinaison convexe des états cachés de l'encodeur. le poids d'un état caché de l'encodeur dans cette combinaison est obtenue en calculant *sa similarité* avec l'état caché actuel du decodeur. Plus formellement :
<!-- , x_k\in \mathbb{R}^{K_x}$ la séquence en entrée de l'encodeur et $h_k$ l'état caché de la dernière couche de l'encodeur associé à $x_k$.
Soit $(y_1, ..., y_i)$ le début de séquence déjà décodé et $c_i$ le dernier état caché de la dernière couche de RNN du décodeur. Alors à la prochaine étape de décodage, le décodeur prend en entrée $[y_i | c_{i+1}]$ avec
$$c_{i+1} = \sum_{k=1}^{T_x} \alpha_{ik} h_k $$
$$\alpha_{ik} = \cfrac{e^{s_{ik}}}{\sum_{j=1}^{T_x} e^{s_{ij}}}$$
$$s_{ik} = AttentionScore(c_i, h_k)$$
Intuitivement, le réel $s_{ik}$ détermine l' importance à donner au k-ième état caché $h_k$ de l'encodeur lors de l'étape $i+1$ de décodage. Dans [4], la fonction AttentionScore est un réseau *feed-forward* a une couche cachée entrainé conjointement avec le reste du réseau :
$$AttentionScore(c, h) = v^T tanh(W [c; h])$$
[D'autres fonctions de score utilisées dans la littérature sont récapitiluer dans le tableau suivant... ]?
L'utilisatation des mécanismes d'attention a été étendu aux tâches de type many-to-one comme la classification de séquence en effectuant l'attention sur la séquence elle même [8] : on parle alors de d'*intra attention* ou de *self attention*.
**Transformer : Attention is all you need**
Les réseaux transformers [10] se débarrassent du calcul récursif dû aux rnn en se basant entièrement sur les mécanismes d'attention. l'architecture de base d'un transformer est un empilement d'un même bloque constitué de mécanisme d'attention et de réseaux feed-forward avec des connexions résiduelles à chaque couches.
## 2 - Utilisation du transformers
...
# II - Prédiction de trajectoire piétonne
Dans cette section nous allons présenter le problème de la prédiction de trajectoire piétonne et ses caractéristiques puis nous présenterons brièvement les méthodes couremment utilisées pour tenir compte de ces caractéristiques.
## 1 - Formulation du problème
### Définition du problème
À un temps t, Étant donné les $H-1$ positions passées de chacun des N(t) piétons qu'on note $X = X_{1, ..., N(t)}^{t-H+1, ..., t}$ où $X_i^{t-j}$ est la position du piéton $i$ au temps $t-j$, notre but est de modéliser la distribution de la trajectoire future de tous les piétons $Y = X_{1, ..., N(t)}^{t+1, ..., t+T}$.
### Caractéristique du problème
Il s'agit d'un problème difficiles car les trajectoires d'agent intelligent présentent plusieurs particularités dont il faut tenir comptent :
**Intération sociales complexes**
les trajectoires des piétons ne sont pas mutuellement indépendantes. En effet chaque piétons se déplaçent en prenant en compte les autres piétons afin d'éviter des collisions et maintenir une certaine distance.
**Multimodalité**
Pour un même début de trajectoire observé, plusieurs trajectoires futures peuvent être pertinentes.(ex : Tourner ou non a un carrefour; contourner un autre piétons par la gauche ou la droite...).
**Dépendance à l'environement**
Les piétons se déplacent en tenant compte des éléments fixes du lieu où ils se trouvent.
**Variabilité**
Le nombre de piétons dans une scène est variable et les piétons ne sont pas tous observés en même temps (présence de valeurs manquantes).
## 2 - État de l'art
### Modélisation de l'aspect socio-temporel
Il existe plusieurs méthodes qui modélisent la séquentialité et l'interaction des trajectoires piétonnes. L'une des approche les plus populaires a été proposé par Alahi et al dans [11]. Elle consiste à associer un RNN à chaque trajectoire de la scène. Ces RNN ont des poids partagés ce qui permet d'avoir un nombre variable de piétons par scène. Pour modéliser l'interaction, chaque étape du RNN d'un piéton donné utilise en plus en entrée une agrégation de l'état precédent des autres piétons. Une des méthodes les plus simple d'aggregation consiste à sommer les états des piétons les plus proches.
Certains auteurs ont exploré l'utilisation de réseaux convolutifs, beaucoup plus rapides que les méthodes basées sur les RNN grâce à la parallélisation, mais leurs performances sont moins bonnes.
Récemment les réseaux transformers été étudié dans la modélisation de l'aspect socio-temporel. Nous les décrirons plus en détails dans la section III.
### Modélisation de la multimodalité
**Approches probabiliste**
Un moyen moyen simple d'obtenir plusieurs trajectoires prédites pour un même début de trajecoire est de concatener un bruit gaussien dans la dernière couche du réseau [12] ou de directement contraindre le réseaux à sortir être des paramètres d'une dristribution de probabilité. L'état de l'art actuel consite à utiliser des modèle génératif profond et plus particulièrement des auto encodeurs variationnels conditionel [13, 15]. Durant la phase d'inférence dans cette approache, la trajectoire observée est passé à un premier réseau, l'encodeur, dont la sortie est utilisé pour calculer une distribution sur un espace latent. Intuitivement cet espace latent peut être interprêté comme *l'espace des intentions* du piéton. cette distribution est ensuite échantillonée et le résulat et utilisé commen entrée d'un second réseaux, le decodeur, qui effectuent la prédiction.
**Approches basées sur les propositions**
Les approches basées sur les propositions (proposal-based approach) définissent dans un premier temps un ensemble de trajectoire ou de morceaux de trajectoires candidats puis éffectuent une classification et/ou une regression sur set ensemble. Par exemple, Multipath[16] obtient un ensemble de candidat en effecuant un clustering des trajectoires du jeu d'entrainement puis entraine un réseaux à prédire le cluster auquel appartient la trajectoire future et son décalage par rapport au centre du cluster. Ce type d'approche est surtout utiliser pour la prédiction du mouvement de véhicules qui présentes plus de régularités (contraintes physiques) que les trajectoires piétonnes.
# III - Transformer pour la prédiction de trajectoires multi-piétonnes
Les modèles que nous allons décrire sont tous des encodeurs-décodeurs basés sur des Transformers. Leurs différences se situent au niveau du mécanisme d'attention ou de la représentation de la scène. Dans cette section nous allons présenter différentes approches de modélisation de l'aspect socio-temporel et décrire deux méthodes de décodages des trajectoires.
## 2 - Modélisation socio-temporelle
### a - Agent Aware Attention : l'état de l'art
Agent aware attention est une approche de calcul des poids d'attention permettant de modéliser conjointement les dimensions temporelle et sociale : chaque pas de temps de chaque agent a accès à chaque pas de temps de tous les autres agents. Afin d'éviter la perte de l'identité des agents, Agent aware attention utilise deux jeux de paramètres, un pour le calcul des poids d'attentions lorsque l'agent accède à sa propre trajectoire et l'autre pour le calcul des poids d'attentions lorsque l'agent accède aux trajectoires des autres agents.
### b - Transformer axial
L'attention axial consiste à appliquer une attention sur la dimension temporelle et en parallèle une attention sur la dimension sociale puis à faire la somme de leur sortie. Cette approche a été utiliser en vision par ordinateur pour réduire la complexité en temps et en mémoire du mécanisme d'attention[17]. Elle a été également proposée pour la prédiction de la trajectoire des piétons[12]. Cependant, à notre connaissance, l'architecture globale basée sur cette approache que nous proposons n'a pas été étudiée.
### c - Baselines
Nous proposons deux baselines. La première est l'architecture originale du transformer appliquée indépendemment aux trajectoires. Il n'y a donc pas de modélisation sociale. La seconde baseline que nous proposons se base également sur l'architecture originale du transformer à la difference que nous concatenons à la trajectoire de chaque piéton de la scène, la trajectoire relative des *k* piétons qui lui sont les plus proches.
## 3 - Méthode de décodage
Pour éffectuer une prédiction, l'encodeur prends en entré la trajectoire passée de tous les agents de la scène et sa sortie est utilisée comme mémoire dans l'une des couches d'attention de chacun des bloques Tranformers du décodeur. Pour obtenir la prédiction des positions futures, nous utilisons deux approches:
- **Décodage autoregressif** : La position au dernier pas de temps $t$ de tous les agents est utilisée en entrée du décodeur qui calcul la prédiction des positions au pas de temps $t+1$. Cette prédiction est ensuite utilisée par le decodeur pour prédire les positions au pas de temps $t+2$ et ainsi de suite jusqu'à obtenir la prediction jusqu'au pas de temps $t+T$.
- **Décodage parallèle** : Nous proposons ici de remplacer l'entrée du premier bloc Transformer du décodeur par des vecteurs fixes et optimisés avec le réseau. Toutes les trajectoires sont décodées en une seule passe au lieu de $T$ passes, rendant ainsi l'architecture hautement parallélisable à la fois en apprentissage et en inférence. L'avantage d'un décodeur basé sur des Transformaters par rapport à un simple réseau *feed-forward* est la gestion facile des valeurs manquantes qui reçoivent un poids d'attention nulle à chaque couche d'attention. Cet décodage est inspiré du modèle de détection d'objet DETR[18] et à notre connaissance n'a pas été proposé pour la prédiction de trajectoire piétonne.

# IV Cadre expérimental
## 1 - Jeux de données
#### ETH et UCY
ETH[8] et UCY[9] sont deux jeux de données open source composés de trajectoires réelles de 1536 piétons. Ces trajectoires ont été extraites a une fréquence de 2.5Hz (4 coordonnées par secondes) à partir de videos de quatre emplacements différents (deux pour chaque dataset) et sont divisées en cinq ensembles : ETH-Hotel, ETH-Uni, UCY-zara1, UCY-zara2, UCY-students.
Pour ce dataset, les modèles observent les trajectoires pendant 3.2s (8 frames) et prédisent les 4.8s(12 frames) suivantes. L'évaluation est faite en utilisant l'approche Leave-One-Out consistant à entrainer le modèle sur 4 ensemble et le tester sur le dernier.
#### **Trajnet++**
trajnet ++ est un jeu de données dont le but est d'évaluer la capacité à modéliser l'interaction sociale entre piétons . Il est composé d'un total de 200 000 trajectoires piétonnes réelles et a été obtenu en échantillonnant les jeux de données ETH, UCY, WildTrack, LCAS et CFF de sorte à ce que les scènes présentant une interaction sociale soient majoritaires (179597/200000 soit ~90%). à chaque scène est associé un piéton (piéton primaire) choisi arbitrairement selon lequel la scène est classé comme présentant de l'intéraction ou non.
Pour ce dataset, les modèles observent les trajectoires pendant 3.6s (9 frames) et prédisent les 4.8s(12 frames) suivantes. L'évaluation...
## 2 - Métriques
**Average Displacement Error (ADE)**
**Final Displacement Error (FDE)**
**Topk ADE**
**Top FDE**
## 3 - Détails des expériences
# V - Résultats
# Références
[1] Attention is all you need (Vaswani et al., 2017
[2] Sequence to sequence learning with neural networks (Sutskever et al., 2014)
[3] S. Hochreiter and J. Schmidhuber. Long short-term memory. Neural Computation, 1997
[4] Neural machine translation by jointly learning to align and translate (Bahdanau et al., 2014)
[5] Sutskever, I., Vinyals, O., and Le, Q. (2014). Sequence to sequence learning with neural networks.
In Advances in Neural Information Processing Systems (NIPS 2014).
[6] Cho, K., van Merrienboer, B., Gulcehre, C., Bougares, F., Schwenk, H., and Bengio, Y. (2014a). Learning phrase representations using RNN encoder-decoder for statistical machine translation.
[7] Cho, K., van Merri¨enboer, B., Bahdanau, D., and Bengio, Y. (2014b). On the properties of neural machine translation: Encoder–Decoder approaches.
[8] Lin et al A structured self-attentive sentence Kelvin Xu et. Al. (2015)
Successfull application of attention
[9] Show, Attend and Tell: Neural Image Caption Generation with Visual Attention Kelvin Xu et. Al. (2015)
[10]Song, S., Lan, C., Xing, J., Zeng, W., & Liu, J. (2017, February). An end-to-end spatio-temporal attention model for human action recognition from skeleton data
[11] Social lstm: Human trajectory prediction in crowded spaces.
[12] Yu et Al(2020). Spatio-temporal graph transformer networks for pedestrian trajectory prediction.
[13] Salzmann, T.(2020). Trajectron++: Dynamically-feasible trajectory forecasting with heterogeneous data.
[14] Ivanovic, B.,(2019). The trajectron: Probabilistic multi-agent trajectory modeling with dynamic spatiotemporal graphs.
[15] Sohn, K., Lee, H., & Yan, X. (2015). Learning structured output representation using deep conditional generative models.
[16] Chai, Y., Sapp, B., Bansal, M., & Anguelov, D. (2019). Multipath: Multiple probabilistic anchor trajectory hypotheses for behavior prediction.
[17] Wang, H., Zhu, Y., Green, B., Adam, H., Yuille, A., & Chen, L. C. (2020, August). Axial-deeplab: Stand-alone axial-attention for panoptic segmentation.
[18] Zhu, X., Su, W., Lu, L., Li, B., Wang, X., & Dai, J. (2020). Deformable detr: Deformable transformers for end-to-end object detection.
Anticiper plusieurs trajectoires futures plausibles de piétons est l'une des capcités que tous vehicules autonomes doit posséder pour se déplacer sans danger.
la capacité d'anticiper la trajectoire de système intelligents est l'une des capacité intuitive que les hommes possède et que tous vehicules autonomes qui doit intéragir avec des humains doit avo
en tant qu'être humain, nous avons la capacité intuitive de nous déplacer dans des environnements plein d'obtacles d'autre humains,