@@ -38,7 +38,7 @@ Dans les classes `GenXXX` le cœur du problème est la fonction
``` def generator(self, ske): ```
qui renvoie l'image de la personne cible avec comme posture le squelette `ske` recu en paramètre.
Cette génération se fait à partir du dataset comportant un ensemble de paire (image, squelette).


...
...
@@ -51,7 +51,7 @@ Lancez d'abord le script `VideoSkeleton` qui va produire les images à partir d'
### Plus proche squelette
La solution basique est de chercher dans le dataset qu'elle est l'image dont le squelette associé est le plus proche de celui recherché. Ce point se code dans la fonction `GenNearest::generate`. Cette solution n'est pas efficace : consommation, mémoire, recherche qui peut être longue.


...
...
@@ -59,18 +59,18 @@ La solution basique est de chercher dans le dataset qu'elle est l'image dont le
L'idée ici est d'entraîner un réseau basique qui produit une image à partir du squelette. Le squelette est représenté par un tableau de nombres. Dans le code `Skeleton`, vous pouvez choisir d'extraire le squelette de taille réduite : 13 articulations en 2D. Le réseau peut donc prendre 26 nombres en entrée et produire une image.


### Réseau produisant une image du squelette
Le papier propose de travailler avec une image intermédiaire où le squelette est représenté avec des bâtons. Cette image est simple à obtenir. Dans la classe `Skeleton`, la fonction `draw_reduced` prédit une telle image. Changer le réseau précédent pour qu'il prenne en entrée l'image à la place du squelette.
Pour améliorer la qualité du générateur, le papier ajoute un réseau `discrimineur` qui détecte si l'image est une fausse image ou une vraie image. Ce principe est similaire au GAN, même si dans un GAN l'image d'entrée est du bruit.