projet:2019:aut:start

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
projet:2019:aut:start [2019/09/11 20:39] alexandre.meyerprojet:2019:aut:start [2019/09/12 08:16] (Version actuelle) – [AMFR5. Algorithme évolutionniste, simulation physqiue] alexandre.meyer
Ligne 127: Ligne 127:
 Dans un 2e temps, par exemple pour l'édition d'un visage, nous pouvons imaginer construire un auto-encoder pour chaque partie du visage : nez, yeux, bouche. L'utilisateur pourra ainsi éditer chaque partie du visage séparément. Dans un 2e temps, par exemple pour l'édition d'un visage, nous pouvons imaginer construire un auto-encoder pour chaque partie du visage : nez, yeux, bouche. L'utilisateur pourra ainsi éditer chaque partie du visage séparément.
 Il est également envisageable d'explorer les GAN (Generative Adversarial Network) pour produire une nouvelle image ... Il est également envisageable d'explorer les GAN (Generative Adversarial Network) pour produire une nouvelle image ...
 +
 +[[https://towardsdatascience.com/gans-vs-autoencoders-comparison-of-deep-generative-models-985cf15936ea|GANs vs. Autoencoders: Comparison of Deep Generative Models]]
 +[[https://medium.com/@jonathan_hui/gan-some-cool-applications-of-gans-4c9ecca35900|GAN — Some cool applications of GANs.]] 
 +
  
  
Ligne 156: Ligne 160:
  
 [Video de Mister Red] https://www.youtube.com/watch?v=MoDGzRa1LW0 [Video de Mister Red] https://www.youtube.com/watch?v=MoDGzRa1LW0
 +
 +
 +===== AM4. Capture et transfert d'animation d'un visage vers un autres par image warping ou déformation de maillages 3D =====
 +
 +^ Domaines                                                                                | Image Processing |
 +^ Techniques et langages                                                                  | Python ou C++/OpenGL |
 +^ Responsable du sujet                                                                    | Alexandre Meyer   |
 +^ Difficulté                                                                              | Sujet progressif |
 +
 +
 +L'objectif de ce projet est de développé un algorithme capable de transférer le mouvement d'un visage d'une personne filmé vers une autre personne. La capture de l'animation du visage source se fera en détectant les points caractéristiques d'un visage filmé avec une webcam en utilisant DLib (python ou C++). 
 +
 +Un premier prototype se fera en générant une nouvelle position de marqueurs de visage puis en réalisant un warping (déformation) de l'image du visage cible. Une interpolation par RBF (ou autre) semble une solution réalisable. Ce warping pourra s'etendre à la déformation d'un maillage 3D, probablement en utilsant Gkit (le code de LIFGRAPHIQUE en L2).
 +
 +
 +===== FR1. Classification par arbre de décision et forêt aléatoire =====
 +^Domaine | Classification, Machine Learning |
 +^Langage (proposé) | C++, java |
 +^Responsable du sujet                            ||
 +|                     | Fabien Rico                      |
 +^Informations à voir                                  ||   
 +|    [[http://eric.univ-lyon2.fr/%7Ericco/cours/supports_data_mining.html | Ensembles de cours datamining (cf *Arbre de décision* et *Random Forest*)]]  ||
 +   
 +La classification automatique est un domaine où on cherche à apprendre à reconnaitre la classe d'individus à partir d'exemples. Une technique parmi les plus efficaces est basée sur la construction d'un grand nombre d'arbres de décision (ce qu'on appelle forêts aléatoires). En effet, l'expérience montre que si on construit suffisamment de classifieurs différents entre eux mais efficaces, le fait de décider en fonction de la majorité des classifieurs permet d'obtenir résultat très bon.
 +
 +Le but de votre projet est d'implémenter un algorithme classique de construction d'une forêt.
 +
 +Pour cela il faut :
 +  - implémenter la construction d'un arbre de décision à partir d'un jeu de données d'exemples;
 +  - implémenter un système permettant de générer un grand nombre d'arbres de décision;
 +  - mettre en place un système de test permettant de mesurer la qualité de vos algorithmes.
 +
 +Votre logiciel devra être capable à partir d'un fichier d'exemple dans un format simple (CSV) de construire un modèle. Puis à partir d'un modèle et d'un fichier de test dans le même format de trouver les classes des objets.
 +
 +== Améliorations==
 +Les améliorations possibles de votre travail pourront porter sur les différentes optimisations ou adaptations de l'algorithme à des cas spécifiques, sur l'amélioration du temps de calcul et du coût mémoire de votre programme. Vous pourrez aussi ajouter des prétraitements pour résoudre les cas ou les données sont lacunaires ou ajouter une interface graphique au programme.
 +
 +===== FR2. Site de travail colaboratif =====
 +^ Domaine | administration système |
 +^ Technologie | Docker |
 +^ Responsable du sujet | Fabien Rico                                          | 
 +^ Information à voir                                                      ||
 +|     https://nextcloud.com/  ||
 +|     https://rocket.chat/    ||
 +|     https://fr.wordpress.org/ ||
 +
 +Le but de ce travail est de créer un script d'installation d'un site de travail collaboratif. Ce site est basé sur plusieurs composant 
 +  * [[https://nextcloud.com/|nextcloud]] qui permettra le partage de documents, l'édition en ligne ...;
 +  * [[https://rocket.chat/|rocketchat]] qui permettra les discussions en lignes.
 +  * [[https://fr.wordpress.org/|wordpress]] (ou autre chose) qui permettra de créer un site web classique;
 +Ces composants devront de plus s'appuyer sur un système d'authentification unique (ldap?).
 +
 +Pour simplifier l'installation automatique de l'ensemble, vous devrez utiliser des conteneurs //docker//. Le résultat de votre travail doit être une archive et un script dont l'exécution permettra d'installer l'ensemble des composant et de les faire communiquer.
 +
 +==Amélioration==
 +Il y a un grand nombre de composants annexes pouvant être ajouter : webmail, forge, système d'authentification CAS/OpenIDConnect ... Il est aussi possible d'ajouter des modules utiles au composants proposé : conférence vidéo pour rocketchat, édition de documents pour owncloud ... 
 +
 +===== FR3. Site de chat du département =====
 +^ Domaine | administration système |
 +^ Technologie | Docker, Ldap |
 +^ Responsable du sujet | Fabien Rico                                          | 
 +^ Information à voir                                                      ||
 +|     https://rocket.chat/    ||
 +
 +Le but de ce travail est de créer chat pour les étudiants du département. Il doit leur permettre la discussion en ligne mais surtout s'intégrer avec le système d'information de l'université. Par exemple,vous devrez configurer un bot qui écoutera les conversations pour reconnaitre certaines commande. Ce dernier devra permettre d'ajouter à une discussion tous les étudiants inscrit à une UE ou à une année d'étude.
 +
 +Pour simplifier l'installation automatique de l'ensemble, vous devrez utiliser des conteneurs //docker//
 +
 +==Amélioration==
 +Il est possible d'étendre les fonctionnalité de rocketchat. Une autre manière est de développer un robot pour d'autre tâches.
 +===== FR4. Mise en place de cluster de calcul parallèle =====
 +^ Domaine | administration système|
 +^ Techniques | Docker, machines virtuelles |
 +^ Responsable du sujet                                               ||
 +|                     | Fabien Rico                                          | 
 +^ Information à voir                                                      ||
 +|  https://www.docker.com/       ||
 +|  http://spark.apache.org/       ||
 +
 +Pour gérer de grands volumes de données, plusieurs //framework// ont été développés. //Spark// est l'un d'entre eux, il permet de définir des programmes dont les calculs seront facilement et efficacement distribués sur un cluster. Mais ces cluster doivent être créés. Vous devez créer un système capable de mettre en place un cluster spark et de lui soumettre des tâches de calcul.
 +
 +Le système que vous allez développer pourra utiliser un outil comme //docker-machine// pour créer des machines virtuelles dans une plateforme de //cloud computing// (celle du département), puis les conteneurs //dockers// pour lancer les différentes parties du cluster de calcul. Enfin, il soumettront les tâches au cluster pour obtenir leurs résultats.
 +
 +===Amélioration===
 +  * utilisation d'une plateformes de //cloud computing// publique (AWS, Azure, ...)
 +  * utilisation d'autres //frameworks// (hadoop)
 +  * interface web de gestion
 +
 +
 +===== FR5. Mise en place d'un site web =====
 +^ Domaine | web |
 +^ Langage | php ou JS |
 +^ Responsable du sujet | Fabien Rico                                          | 
 +^ Information à voir                                                      ||
 +|     http://laravel.com/    ||
 +|     http://symfony.com/    ||
 +|     https://fr.vuejs.org/    ||
 +
 +
 +Le but de ce sujet est de mettre en place un site web avec une partie visible (front) et une partie d'administration (backend).
 +Le sujet du site est encore indéterminé (et des idées sont les bienvenues). Il devra comporter une part de programmation importante (ne pas uniquement installer un CMS). Il devra comporter un système de gestion des utilisateurs, des droits, de modification du front...
 +
 +
 +==Amélioration==
 +Selon la difficulté technique de certaines parties du site :
 +  * authentification web basée sur openid connect, ou CAS;
 +  * lien avec les réseaux sociaux
 +
 +
 +===== AMFR5. Algorithme évolutionniste, simulation physqiue =====
 +^ Domaine | méta heuristiques, optimisation, moteur physique |
 +^ Langage | C++, python, etc. ? |
 +^ Responsable du sujet | Fabien Rico et Alexandre Meyer                                         
 +^ Information à voir                                                      ||
 +| [[http://jvf.free.fr/550_Articles_LinuxMag/GLMF_076_034_041.pdf]]  ||
 +| [[https://www.youtube.com/watch?v=JBgG_VSP7f8]]    ||
 +| [[https://www.youtube.com/watch?v=m4E9sj9vH1I]]  ||
 +
 +Les algorithmes évolutionnistes ou génétiques sont des méta-heuristique d'optimisation c'est à dire des méthodes globales pour résoudre des problèmes de toutes sorte qu'il faut adapté à un problème particulier. Comme leur nom l'indique, ils sont basés sur le concepts d'évolution. On génère une famille aléatoire d'individu dont on conserve les plus performant, que l'on mélange pour générer une nouvelle famille ...
 +
 +
  
  • projet/2019/aut/start.1568227199.txt.gz
  • Dernière modification : 2019/09/11 20:39
  • de alexandre.meyer