Dans un précédent article j’expliquais comment l’apprentissage machine permet de prédire les mouvements des fluides. Les simulations sont assez réalistes aux niveaux des mouvements (du moins assez pour que l’œil humain les trouve cohérentes), mais les graphismes laissent à désirer. Nous allons dans cet article voir comment nous pouvons utiliser l’apprentissage machine pour les améliorer.
Les simulations :
Les simulations génèrent des objets et leur appliquent des comportements. Dans cet article, nous allons nous intéresser aux objets eux-mêmes, et surtout, à leurs « apparences ». Dans le cadre de la simulation de la mécanique des fluides, la simulation génère plusieurs millions de particules. Or, pour un effet réaliste, il faudrait non seulement mieux modéliser les turbulences mais aussi générer beaucoup plus de particules, ce qui augmenterait considérablement le temps de calcul.
Le transfert de style :
Le transfert de style est une méthode visant à s’imprégner d’un style ou d’une texture, et de l’appliquer à une cible. Concrètement :
Voici un style : | Voici une photo : | Voici le résultat du transfert : | ||
Le modèle résout deux problématiques à la fois. La première, c’est la reconnaissance ou fidélité de l’image cible (ici, le chat), pour que celle-ci ne soit pas déformée lors du transfert. La deuxième, c’est l’apprentissage du style (notamment les couleurs et les formes utilisés).
Ensuite, le modèle va générer une image et faire une analyse croisée pour trouver le meilleur compromis entre la fidélité à la photo d’origine et le style appliqué.
Le transfert de style au service des simulations :
Lors des simulations en mécanique des fluides, nous avons vu que les turbulences étaient très difficiles à calculer (très gourmand en temps et puissance de calcul). Néanmoins, pour l’œil humain, les turbulences ne sont que des fluctuations minimes du phénomène. Nous pouvons donc « tricher » pour rendre plus crédible aux yeux humains les simulations en appliquant à l’aide d’un réseau neuronal convolutif (souvent appelé CNN) un « style turbulent » à notre cible.
La méthode :
On commence par générer une simulation en basse définition de la durée souhaitée. On génère ensuite une simulation en haute définition mais de très courte durée cette fois ci, uniquement pour avoir un « exemple » de turbulence. Finalement on créer le modèle de type réseau neuronal convolutif et on lui donne en entrée la simulation basse définition ainsi que l’exemple servant de « style ». En sorti, nous obtenons une simulation avec « l’aspect » d’une haute définition mais un coup en calcul d’une basse définition.
Les résultats :
On lance une simulation | On choisit un style « turbulent » | On l’applique à la simulation | ||
On voit clairement que l’application du style turbulent a augmenté l’impression de réalisme de la simulation. Tout cela sans une grande puissance de calcul nécessaire.
Nous pouvons donc maintenant générer des simulations d’aspect haute définition plus rapidement ou de plus longue durée (utile pour les films d’animations par exemple).
Source | Rendu final |
Les limites :
La principale limite à cette méthode est qu’elle nécessite un échantillon d’une simulation « haute définition » comme base qui servira de style pour le transfert. Il faut donc une double simulation en plus de l’utilisation du modèle servant au transfert. De plus le rendu final dépendra aussi de la qualité et des paramètres du modèle de transfert.
Une autre limitation non négligeable est le fait que cette simulation est purement destinée à un projet visuel. Si l’œil humain se laisse facilement duper par les turbulences, mathématiquement parlant, le résultat est très loin de la réalité, les données de la simulation ne sont donc pas exploitables pour des calculs scientifiques tel que des calculs de trajectoire.
Ressources:
[Syuhei Sato, Yoshinori Dobashi, Theodore Kim, and Tomoyuki Nishita. 2018. Example-based Turbulence Style Transfer]