2023-08-23 14:58:04 +00:00
---
theme: academic
class: text-white
coverAuthor: Laurent Fainsin
2023-08-31 12:31:22 +00:00
coverBackgroundUrl: >-
https://git.fainsin.bzh/ENSEEIHT/projet-fin-etude-rapport/media/branch/master/assets/aube.jpg
2023-08-23 14:58:04 +00:00
coverBackgroundSource: Safran Media Library
coverBackgroundSourceUrl: https://medialibrary.safran-group.com/Photos/media/179440
coverDate: '2023-09-07'
themeConfig:
paginationX: r
paginationY: t
paginationPagesDisabled:
- 1
title: Projet de fin d'étude
---
< h2 class = "opacity-50" style = "font-size: 2rem;" > Projet de Fin d'Étude< / h2 >
< h1 style = "font-size: 2.4rem; line-height: normal;" > Modèles génératifs pour la représentation latente d'aubes 3D sous forme de maillages non structurés< / h1 >
2023-08-31 12:31:22 +00:00
<!--
2023-09-05 08:53:38 +00:00
Hello, \
aujourd'hui prez pfe, \
dont sujet porte sur... \
mon but aujourd'hui, expliquer ces 3 lignes
2023-08-31 12:31:22 +00:00
-->
2023-08-23 14:58:04 +00:00
---
## Sommaire
< div class = "h-100 flex items-center text-2xl" >
- Présentation de Safran
- Présentation du dataset
2023-08-25 14:00:20 +00:00
- Modèles génératifs
2023-08-23 14:58:04 +00:00
- Génération par diffusion
- Résultats
2023-08-25 14:00:20 +00:00
- Vérifications
2023-08-23 14:58:04 +00:00
- Conclusion
< / div >
2023-08-25 14:00:20 +00:00
<!--
2023-09-05 08:53:38 +00:00
Petit sommaire pour cadrer prez
2023-08-28 14:11:59 +00:00
2023-08-31 12:31:22 +00:00
- Présentation brève de Safran et contexte Stage
2023-08-28 14:11:59 +00:00
- Présentation de mes données
- Présentation de modèles pour traiter le problème
- Résultats de ces modèles
- Vérification de ces modèles
- Conclu
2023-08-25 14:00:20 +00:00
-->
2023-08-23 14:58:04 +00:00
---
2023-08-25 14:00:20 +00:00
## Présentation (rapide) de Safran
2023-09-05 08:53:38 +00:00
< div class = "flex items-center h-full" >
< figure >
< img src = "/assets/SAF2012_0009786-1.jpg" class = "h-81" >
< figcaption class = "text-center" > CFM56-7B< / figcaption >
< / figure >
< figure >
< img src = "/assets/SAF2013_0105143-1.jpg" class = "h-81" >
< figcaption class = "text-center" > M88< / figcaption >
< / figure >
2023-08-25 14:00:20 +00:00
< / div >
< a href = "https://medialibrary.safran-group.com/" class = "absolute bottom-0 font-extralight mb-1 mr-2 right-0 text-xs" > Safran Media Library< / a >
<!--
2023-09-05 08:53:38 +00:00
Rapidement, Safran grand groupe industriel technologique français. \
principalement aéronautique, mais pas que, \
plein d'autre filiales, mais la thématique c'est les trucs qui volent. \
safran génère des revenus majoritairement grâce vente de moteur propulsion avion civiles
- à gauche: cfm56 moteur civile le plus vendu au monde, depuis 1978
- à droite: m88, moteur militaire, équipe les rafales (Dassault)
- aussi des moteur helico...
-->
---
## Détails d'un moteur d'avion
2023-08-25 14:00:20 +00:00
2023-09-05 08:53:38 +00:00
< div class = "flex items-center h-full" >
2024-10-11 18:44:03 +00:00
< img src = "/assets/turbine_decoupe.webp" class = "ml-20 h-full" >
2023-09-05 08:53:38 +00:00
< / div >
2023-08-25 14:00:20 +00:00
2024-10-11 18:44:03 +00:00
< a href = "https://www.thingiverse.com/thing:1327093" class = "absolute bottom-0 font-extralight mb-1 mr-2 right-0 text-xs" > Thingiverse catiav5ftw< / a >
2023-08-25 14:00:20 +00:00
2023-09-05 08:53:38 +00:00
<!--
Lors de mon stage, \
équipe de Safran Tech, \
département recherche de Safran, \
explore nouveaux procédés, nouvelles générations moteurs
Dans mon cas, \
travaille amélioration processus génération, \
aubes des turbines des compresseurs
2023-08-25 14:00:20 +00:00
-->
---
## Dataset Rotor37_1200
2023-09-05 08:53:38 +00:00
< style scoped >
p {
margin-bottom: 0 !important;
}
< / style >
< div class = "flex items-center w-full h-110" >
2023-08-25 14:00:20 +00:00
2023-09-05 08:53:38 +00:00
< div class = "w-65" >
2023-08-28 14:11:59 +00:00
2023-09-05 08:53:38 +00:00
1200 échantillons
- 1000 train (87%)
- 200 validation (13%)
Maillages
- 29773 nœuds
- 59328 triangles
- 89100 arêtes
Champs physiques
- Température
- Pression
- Énergie
- Densité
< / div >
< div class = "w-65" >
40 paramètres de déformations
Input CFD
- Vitesse de rotation
- Vitesse du vent
Output CFD
- Input Massflow
- Output Massflow
- Compression Rate
- Isentropic efficiency
- Polytropic efficiency
< / div >
< div class = "flex items-center flex-col bg-black h-full w-60 ml-auto" >
< img src = "/assets/rotor37_surface.gif" class = "m-auto h-full" >
< img src = "/assets/rotor37_points.gif" class = "m-auto h-full" >
< / div >
2023-08-28 14:11:59 +00:00
< / div >
2023-08-25 14:00:20 +00:00
<!--
2023-08-28 14:11:59 +00:00
Rotor37_1200, le dataset sur lequel j'ai principalement travaillé.
2023-09-05 08:53:38 +00:00
Donc travaille sur graphe/maillage, \
mais connectivité "locales" (voisins proches dans l'espace) \
donc utiliser seulement le nuage de points
2023-08-28 14:11:59 +00:00
2023-09-05 08:53:38 +00:00
Ça nous arrange, \
car connectivité des maillages trop complexe (quadratique), \
et techniques reconstruire surface from points
2023-08-28 14:11:59 +00:00
2023-09-05 08:53:38 +00:00
On aurait aussi pu travailler direct CAO (primitives), \
mais bcp plus complexe car reprez pas unique via CAO, \
et zero littérature.
2023-08-25 14:00:20 +00:00
-->
2023-08-23 14:58:04 +00:00
---
2023-09-05 08:53:38 +00:00
## Problème direct
2023-08-23 14:58:04 +00:00
< img src = "https://git.fainsin.bzh/ENSEEIHT/projet-fin-etude-rapport/media/branch/master/assets/online_adaptative_sampling_DOE.png" class = "m-auto h-100 mt-10" / >
2023-08-25 14:00:20 +00:00
<!--
2023-09-05 08:53:38 +00:00
On veut c'est générer trucs ressemblent rotor37. \
pour ça on peut appliquer le problème direct, \
si on veut trouver aube qui respecte un certaine critère de perf, \
"l'exploration d'un espace paramètre"
2023-08-25 14:00:20 +00:00
2023-09-05 08:53:38 +00:00
On prend CAO, \
on échantillone, passer sous simu, \
relèver les perfs, on optimise pour resampler, \
repeat ad vitam eternam.
2023-08-25 14:00:20 +00:00
À la fin, on a normalement au moins une aube qui nous convient.
2023-09-05 08:53:38 +00:00
Inconvénient, \
c'est long, à cause de la simu, \
nous on voudrait avoir le processus inverse \
(perf -> aube) pas (aube -> perf)
2023-08-25 14:00:20 +00:00
-->
2023-08-23 14:58:04 +00:00
---
2023-09-05 08:53:38 +00:00
## Problème inverse, Modèles génératifs
2023-08-23 14:58:04 +00:00
2023-09-05 09:43:17 +00:00
< img src = "/assets/generative-overview.png" class = "m-auto h-110" / >
2023-08-23 14:58:04 +00:00
< a href = "https://lilianweng.github.io/posts/2021-07-11-diffusion-models/" class = "absolute bottom-0 font-extralight mb-1 mr-2 right-0 text-xs" > Lilian Weng, 2021< / a >
2023-08-25 14:00:20 +00:00
<!--
2023-09-05 08:53:38 +00:00
Approximer le problème inverse, \
solution, utiliser des réseaux de neurones, modèles génératifs.
2023-08-25 14:00:20 +00:00
2023-09-05 08:53:38 +00:00
Y'a globalement 4 grosses familles de modèles génératifs (gan, vae, nf, dm).
2023-08-23 14:58:04 +00:00
2023-09-05 08:53:38 +00:00
L'objectif de ces modèles se ressemblent un peu tous, \
les trois premiers, on veut apprendre à génerer distrib x' qui ressemble très fortement à x.
2023-08-31 12:31:22 +00:00
2023-09-05 08:53:38 +00:00
Formelement pendant training on veut apprendre l'identité, \
mais particularité dans leur archi, par exemple \
VAE on passe par un goulot étranglement, espace latent, \
GAN on a une architecture adversarial, etc. \
NF on utilise des transfo continue reversible bijectives \
y'a plusieurs avantages et inconvenients à chaque méthode.
Ce qui nous interesse le plus ici c'est diffusion, récent et potentiel. \
le principe, trouver processus réversible discret stochastique \
entre distrib données et une autre distrib qu'on connait parfaitement math
2023-08-25 14:00:20 +00:00
-->
2023-08-23 14:58:04 +00:00
---
2023-08-25 14:00:20 +00:00
## Denoising Diffusion Probabilistic Model (DDPM)
< div class = "flex flex-col items-center h-100" >
< img src = "/assets/ddpm_algo.png" class = "m-auto w-9/10" >
< img src = "/assets/ddpm_example.png" class = "m-auto w-full" >
< / div >
2023-08-31 12:31:22 +00:00
< p class = "absolute bottom-0 font-extralight !my-0 mr-2 right-0 text-xs" >
2023-08-25 14:00:20 +00:00
< a href = "https://arxiv.org/abs/2006.11239" > arxiv:2006.11239< / a > ,
< a href = "https://cvpr2022-tutorial-diffusion-models.github.io/" > CVPR 2022 Diffusion Tutorial< / a >
< / p >
<!--
2023-09-05 08:53:38 +00:00
Plusieurs méthodes pour faire dla diffusion, \
la + simple d'entre elles c'est DDPM. \
Le principe, apprendre mapping entre données et gaussienne isotropique.
2023-09-06 20:53:29 +00:00
Plus exactement, apprendre mapping inverse car, \
Pour passer données à gaussienne on ajoute juste du bruit, \
Pour process inverse, approximer réseau débruiteur (denoising). \
2023-09-05 08:53:38 +00:00
Pour se faire (algo 1), \
on prend une de nos données (x0), \
on la bruite (xt), \
on la donne notre réseau, on récupère la prédiction (eps_theta), \
on opti le réseau à prédire le bruit que l'on a ajouté (eps).
Convergence atteinte, \
2023-09-06 20:53:29 +00:00
on est capable de débruiter des données, \
(plusieurs étape, itérativement)
2023-09-05 08:53:38 +00:00
Intéressant lorsqu'on part d'un bruit blanc (xT), \
et que l'on demande quand même au réseau de débruiter. \
Le réseau hallucine informations là où y'en a pas, \
et génère finalement nouvelle donnée même distrib de celles qu'il a apprises. (algo 2)
2023-08-25 14:00:20 +00:00
-->
2023-08-23 14:58:04 +00:00
---
2023-09-05 08:53:38 +00:00
## Diffusion forward process
2023-08-23 14:58:04 +00:00
2023-08-25 14:00:20 +00:00
< div class = "flex items-center h-100" >
2023-09-05 08:53:38 +00:00
< figure >
< div class = "flex items-center w-full bg-black" >
< img src = "/assets/aube_rotation.gif" class = "m-auto w-full" >
< img src = "/assets/aube_forward_front.gif" class = "m-auto w-full" >
< img src = "/assets/aube_forward_side.gif" class = "m-auto w-full" >
< / div >
< figcaption class = "text-center" > Corruption progressive d'un échantillon, via un bruit gaussien (cf. algorithm 1)< / figcaption >
< / figure >
2023-08-25 14:00:20 +00:00
< / div >
<!--
2023-09-05 08:53:38 +00:00
On peut l'appliquer à nos aubes,
example du forward process sur une aube 3D, \
(subsample 2048 points et normalisé donc un peu applati), \
2023-09-06 20:53:29 +00:00
à la fin on obtient truc qui ressemble à une gaussienne. \
(mapping discret, ici 100 pas de temps).
2023-09-05 08:53:38 +00:00
Ce genre de données input réseau capable traiter des pointcloud, \
comme par exemple un réseau basés sur des KPConvs, \
ou autre archi style PointNet, \
ou PVCNN qui travaille sur reprez voxel des points, \
(cf rapport).
2023-08-25 14:00:20 +00:00
-->
2023-08-23 14:58:04 +00:00
---
2023-09-05 08:53:38 +00:00
## Diffusion reverse process
2023-08-23 14:58:04 +00:00
2023-08-25 14:00:20 +00:00
< div class = "flex items-center h-100" >
2023-09-05 08:53:38 +00:00
< figure >
< div class = "flex items-center w-full bg-black" >
< img src = "/assets/sample_rotation.gif" class = "m-auto w-full" >
< img src = "/assets/sample_reverse_front.gif" class = "m-auto w-full" >
< img src = "/assets/sample_reverse_side.gif" class = "m-auto w-full" >
< / div >
< figcaption class = "text-center" > Débruitage itératif d'un nuage gaussien (cf. algorithm 2)< / figcaption >
< / figure >
2023-08-25 14:00:20 +00:00
< / div >
<!--
2023-09-05 08:53:38 +00:00
Si on effectue le reverse process, \
nuage de point gaussien ressemble progressivement à une aube.
Le résultat (kp-fcnn) est pas mal, \
mais reste une bonne quantité de bruit, \
(bonne chance reconstruction surface), \
surement améliorable hyperparmètres, \
mais meilleurs méthodes depuis 2020.
2023-08-25 14:00:20 +00:00
-->
2023-08-23 14:58:04 +00:00
---
2023-08-25 14:00:20 +00:00
## Latent Diffusion Model (LDM)
2023-09-05 08:53:38 +00:00
< div class = "flex items-center w-full h-full flex-col justify-evenly" >
< div class = "flex items-center w-full h-72 justify-evenly" >
< figure >
< img src = "https://ar5iv.labs.arxiv.org/html/2112.10752/assets/img/generativevscompressive4.jpg" class = "m-auto h-70" >
< / figure >
< div >
$\displaystyle x_0 \approx \hat{x}_0 = \frac{ x_t - \sqrt{1 - \overline\alpha_t} \epsilon_\theta(x_t) }{ \sqrt{\overline\alpha_t} }$
$\displaystyle \text{RMSE} = \sqrt{ \frac{ \| x_0 - \hat{x}_0 \|^2_2 }{ D } }$
$$\begin{align*}
\text{Rate} & = \frac{1}{2 \sigma^2_q(t)} \frac{ \overline\alpha_{t-1} ( 1 - \alpha_t )^2 }{ (1 - \overline\alpha_t)^2 } \| x_0 - \hat{x}_0 \|^2_2 \\
& = \text{D}_{\text{KL}} \left[ q(x_{t-1} | x_t, x_0) \| p_\theta(x_{t-1} | x_t) \right]
\end{align*}$$
< / div >
< / div >
< figure >
2023-09-05 09:43:17 +00:00
< img src = "/assets/ldm-simplified.png" class = "w-160" >
2023-09-05 08:53:38 +00:00
< figcaption class = "text-center" > Nouvelle pipeline, ajout d'une transformation en amont< / figcaption >
< / figure >
2023-08-25 14:00:20 +00:00
< / div >
< a href = "https://arxiv.org/abs/2112.10752" class = "absolute bottom-0 font-extralight mb-1 mr-2 right-0 text-xs" > arxiv:2112.10752< / a >
<!--
2023-09-06 20:53:29 +00:00
auteur du papier observent que si prend x0, \
et que pour tout t allant de 0 a T, \
calcul RMSE (distortion) + Rate (KLD reverse process et approx), \
et que l'on trace RMSE fonction de Rate, \
on obtient ceci.
2023-08-31 12:31:22 +00:00
2023-09-06 20:53:29 +00:00
Interprétaion, deux zones dans processus diffusion, \
2023-09-05 08:53:38 +00:00
un domaine nécéssite bcp de bits et encode peu de distortion, \
l'autre inverse, peu bits, bcp de distortion, \
donc un peu du gachi de réseau neurone le perceptuel, \
on aimerait travailler uniquement sur la partie semantique. \
2023-08-25 14:00:20 +00:00
2023-09-05 08:53:38 +00:00
On peut le faire si trouve espace alternatif aux données, \
Espace latent sont une possibilité, \
utilisation, par ex, d'autoencoder, qui s'occuper du perceptuel, \
la diffusion préoccupe que du semantic. \
2023-08-25 14:00:20 +00:00
2023-09-06 20:53:29 +00:00
Ça revient à modifier la pipeline de diffusion comme suit: \
avantage, latent space petit, donc modèl, petit, simple, rapide...
2023-09-05 08:53:38 +00:00
-->
---
## Générations par diffusion latente (non conditionnée)
< div class = "grid grid-cols-4 col-auto self-center justify-items-center w-full h-100 bg-black" >
< img src = "/assets/gen_points_1.gif" class = "w-50" >
< img src = "/assets/gen_points_2.gif" class = "w-50" >
< img src = "/assets/gen_points_3.gif" class = "w-50" >
< img src = "/assets/gen_points_4.gif" class = "w-50" >
< img src = "/assets/gen_points_5.gif" class = "w-50" >
< img src = "/assets/gen_points_6.gif" class = "w-50" >
< img src = "/assets/gen_points_7.gif" class = "w-50" >
< img src = "/assets/gen_surface_1.gif" class = "w-50" >
< / div >
<!--
Si on applique nos diffusion latente via une PCA, \
on obtient ceci.
Nuages de point de très bonne qualité, \
on a plus le bruit qu'on avait avec KP-FCNN, \
bonus PCA, même ordre des points, on peut copier connectivité aube nominale, \
pas besoin méthode reconstruction dans ce cas.
2023-08-25 14:00:20 +00:00
-->
2023-08-23 14:58:04 +00:00
---
## Classifier-free Guidance (CFG)
2023-08-25 14:00:20 +00:00
< img src = "https://perceptron.blog/assets/images/diffusion_models/diffusion_gradients_free.gif" class = "m-auto h-55" >
< img src = "https://perceptron.blog/assets/images/diffusion_models/diffusion_free_guided_results.gif" class = "m-auto h-55" >
< a href = "https://perceptron.blog/defusing-diffusion/" class = "absolute bottom-0 font-extralight mb-1 mr-2 right-0 text-xs" > Paweł Pierzchlewicz< / a >
<!--
2023-09-05 08:53:38 +00:00
Jusqu'à présent, avec tout ce que j'ai dit, \
2023-09-06 20:53:29 +00:00
capable de générer des données ressemble données d'entrée. \
2023-09-05 08:53:38 +00:00
(non conditionné)
2023-08-29 15:03:31 +00:00
2023-09-06 20:53:29 +00:00
Cependant on veut générer données ressemblent données d'entrée specifiques. \
On pourrait très bien entrainer un modèle par classe, \
mais c'est long et en plus nous on a pas de classes discète.
2023-08-25 14:00:20 +00:00
2023-09-05 08:53:38 +00:00
Il existe plusieurs méthode pour faire cela, \
l'un d'entre elle etant cfg.
2023-08-25 14:00:20 +00:00
2023-09-05 08:53:38 +00:00
Principe entrainer notre réseau diffusion conjointement, \
prédiction non conditionnée et conditionnée.
2023-08-23 14:58:04 +00:00
2023-09-05 08:53:38 +00:00
On complexifie un peu plus l'apprentissage, \
mais sampling pouvoir choisir quel densité de proba on veut gen.
2023-08-31 12:31:22 +00:00
-->
---
2023-08-28 14:11:59 +00:00
2023-09-05 08:53:38 +00:00
## Générations par diffusion latente (conditionnée)
< div class = "grid grid-cols-4 col-auto self-center justify-items-center w-full h-100 bg-black" >
< img src = "/assets/gen_surface_1.gif" class = "w-50" >
< img src = "/assets/gen_surface_2.gif" class = "w-50" >
< img src = "/assets/gen_surface_3.gif" class = "w-50" >
< img src = "/assets/gen_surface_4.gif" class = "w-50" >
< img src = "/assets/gen_surface_5.gif" class = "w-50" >
< img src = "/assets/gen_surface_6.gif" class = "w-50" >
< img src = "/assets/gen_surface_7.gif" class = "w-50" >
< img src = "/assets/gen_surface_8.gif" class = "w-50" >
2023-08-31 12:31:22 +00:00
< / div >
<!--
2023-09-05 08:53:38 +00:00
Si on fait génération conditionné, ça marche encore.
Problème, \
incapable visuellement différence entre aubes conditionné, \
là par exemple toutes conditonnés même critère physqiue, \
et ça se voit pas trop.
Une solution ça serait simu cfd, mais trop long, \
donc on va utiliser des modèles de regression, plus légers et rapides.
2023-08-28 14:11:59 +00:00
-->
2023-08-23 14:58:04 +00:00
---
2023-08-25 14:00:20 +00:00
## Gaussian Process (GP)
< div class = "flex items-center h-100" style = "overflow: hidden;" >
< div style = "overflow: hidden;" >
< iframe scrolling = "no" style = "height: 50rem; margin-top: -18rem; width: 75rem; margin-left: -10rem;" src = "https://distill.pub/2019/visual-exploration-gaussian-processes/" >
< / iframe >
< / div >
< / div >
< a href = "https://distill.pub/2019/visual-exploration-gaussian-processes/" class = "absolute bottom-0 font-extralight mb-1 mr-2 right-0 text-xs" > Distill< / a >
2023-08-28 14:11:59 +00:00
<!--
2023-08-31 12:31:22 +00:00
On pourrait entrainer un réseau de neurones pour faire regression entre nuage de points et critère de perf. Mais y'a plus simples.
2023-08-28 14:11:59 +00:00
2023-09-05 08:53:38 +00:00
Les GP c'est des méthodes à noyau, probabilistiques.
* supervisé, au même sens que SVM, K-NN, ...
* non paramétrique (techniquement hyper-paramétrique, à cause noyau).
2023-08-31 12:31:22 +00:00
* fournir des intervals de confiance
2023-08-28 14:11:59 +00:00
-->
2023-08-25 14:00:20 +00:00
---
2023-09-05 08:53:38 +00:00
## "Entrainement" d'un GP sur Rotor37_1200
2023-08-25 14:00:20 +00:00
< div class = "flex flex-col items-center h-100" >
2023-09-05 08:53:38 +00:00
< img src = "/assets/gp_train_30_pca.png" class = "m-auto w-full" >
2023-08-25 14:00:20 +00:00
< / div >
2023-08-28 14:11:59 +00:00
<!--
2023-08-31 12:31:22 +00:00
Donc on peut utiliser des GPs pour relation modes pca et perfs.
2023-08-28 14:11:59 +00:00
2023-08-31 12:31:22 +00:00
On s'assure juste que leurs prédictions sont correctes par rapport à des données de test, ici coeff détermination ~= 1 donc correct.
2023-08-28 14:11:59 +00:00
-->
2023-08-25 14:00:20 +00:00
---
2023-09-05 08:53:38 +00:00
## Analyse de générations non conditionnées
< div class = "flex flex-col items-center h-100" >
< img src = "/assets/gp_unconditional.png" class = "m-auto w-full" >
< / div >
---
## Analyse de générations progressivement conditionnées
< div class = "flex flex-col items-center h-100" >
< img src = "/assets/gp_guidance.gif" class = "m-auto w-full" >
< / div >
<!--
je fais varier gamma entre 0 et 1.
conditionné sur out_massflow = -1
-->
---
## Analyse de générations conditionnées (massflow)
2023-08-25 14:00:20 +00:00
< div class = "flex flex-col items-center h-100" >
< img src = "/assets/gp_massflow.gif" class = "m-auto w-full" >
< / div >
2023-08-28 14:11:59 +00:00
<!--
2023-09-05 08:53:38 +00:00
on fait varier entre -3 et 3.
2023-08-28 14:11:59 +00:00
2023-09-05 08:53:38 +00:00
gamma = 2.5.
2023-08-28 14:11:59 +00:00
2023-09-05 08:53:38 +00:00
ça suit bien le conditionnement, \
sur les bords ça déconne un peu, pas très grave, \
mais ça doit venir du GP qui ne généralise pas la regression, \
car génération correctes visuellement, \
il faudrait verif avec une CFD là.
correlation avec in_massflow et compression_rate, \
normal car correlé physiquement.
2023-08-28 14:11:59 +00:00
-->
2023-08-25 14:00:20 +00:00
---
2023-09-05 08:53:38 +00:00
## Analyse de générations conditionnées (efficiency)
2023-08-25 14:00:20 +00:00
< div class = "flex flex-col items-center h-100" >
2023-09-05 08:53:38 +00:00
< img src = "/assets/gp_efficiency.gif" class = "m-auto w-full" >
2023-08-25 14:00:20 +00:00
< / div >
2023-08-23 14:58:04 +00:00
2023-08-28 14:11:59 +00:00
<!--
2023-09-05 08:53:38 +00:00
pareil, mais pour l'efficiency
-->
---
## Analyse de générations conditionnées (double)
2023-08-28 14:11:59 +00:00
2023-09-05 08:53:38 +00:00
< div class = "flex flex-col items-center h-100" >
< img src = "/assets/gp_double.gif" class = "m-auto w-full" >
< / div >
2023-08-28 14:11:59 +00:00
2023-09-05 08:53:38 +00:00
<!--
pareil, mais là on conditionne \
efficiency = 1 \
massflow = [-3, 3]
2023-08-28 14:11:59 +00:00
-->
2023-08-23 14:58:04 +00:00
---
## Conclusion
2023-08-25 14:00:20 +00:00
< div class = "h-100 flex flex-col text-2xl justify-center" >
### Travail réalisé
- Génération conditionnée d'aubes par diffusion
2023-09-05 08:53:38 +00:00
- Release d'un code réutilisable en interne
- Rédaction d'une déclaration d'invention
2023-08-25 14:00:20 +00:00
2023-09-05 08:53:38 +00:00
< / div >
2023-08-25 14:00:20 +00:00
2023-09-05 08:53:38 +00:00
---
## Conclusion
< div class = "h-100 flex flex-col text-2xl justify-center" >
### Perspectives
2023-08-25 14:00:20 +00:00
2023-08-31 12:31:22 +00:00
- Vérifier le conditionnement par simulation CFD
2023-08-25 14:00:20 +00:00
- Remplacer la PCA par une méthode paramétrique
- Travailler directement sur les CAOs
2023-08-29 15:03:31 +00:00
- Tester des méthodes par RL
2023-08-25 14:00:20 +00:00
< / div >
2023-08-28 14:11:59 +00:00
2023-08-29 15:03:31 +00:00
---
< div class = "h-full w-full flex justify-center items-center" >
# Annexes
< / div >
2023-08-28 14:11:59 +00:00
---
## GraphVAE
< div class = "flex items-center w-full bg-black" >
< img src = "/assets/graphvae_surface.gif" class = "m-auto w-full" >
< img src = "/assets/graphvae_points.gif" class = "m-auto w-full" >
< / div >
---
## PVD
< div class = "flex items-center w-full bg-black" >
< img src = "/assets/pvd_points.gif" class = "m-auto h-100" >
< / div >
2023-08-29 15:03:31 +00:00
2023-09-05 08:53:38 +00:00
<!--
bon résultats, mais y'a des points au milieu de l'aube, donc c'est chiant pour reconstruction surface. En plus on peut moins facilement appliquer ce qu'on a fait avec les GPs ici.
-->
2023-08-29 15:03:31 +00:00
---
< iframe scrolling = "yes" src = "https://distill.pub/2017/feature-visualization/" class = "h-full w-full" >
< / iframe >
---
2023-08-31 12:31:22 +00:00
< style scoped >
2023-08-29 15:03:31 +00:00
p {
height: 100%;
}
< / style >
< embed
2023-08-29 18:02:06 +00:00
src="/projet-fin-etude/rapport.pdf"
2023-08-29 15:03:31 +00:00
type="application/pdf"
width="100%"
height="100%"
/>
2023-08-31 12:31:22 +00:00
< a href = "/projet-fin-etude/rapport.pdf" class = "absolute bottom-0 font-extralight mb-1 mr-2 right-0 text-xs" > Link to PDF< / a >