projet:2018:aut:sujets

Sujets de projets 2018 automne

Domaines data mining, visualisation, web
Librairies (proposées) scikit-learn, bootstrap
Langages (proposé) Python, javascript, html/css…
Responsable du sujet Rémy Cazabet
Informations à voir -

Les compteurs électriques intelligents (Linky) permettent de suivre notre consommation électrique demi-heure par demi-heure. Vous développerez des outils de data mining et de visualisation web pour permettre à chacun de comprendre (et idéalement de réduire…) sa consommation électrique. Un projet précédent a accompli les premières étapes (script de récupération des données…), mais n'a pas mis en place d'outils de data mining ni de visualisation avancé. Ce sera donc votre objectif.

Domaines data mining, visualisation, scientometrie
Librairies (proposées) scikit-learn, bootstrap
Langages (proposé) Python, javascript, html/css…
Responsable du sujet Rémy Cazabet
Informations à voir Portail de l'université de Lyon

Les informations des publications scientifiques des chercheurs de Lyon sont accessibles en ligne via un site web qui offre une API. Vous développerez une application (web ou non) utilisant des outils de fouille de données (Clustering, analyse de réseaux, traitement automatique du language …) pour permettre d'exploiter ces données. Par example, l'application permettra de détecter automatiquement les sujets “à la mode” (Deep learning…), de visualiser des graphes thématiques, des collaborations entre laboratoires, etc.

Domaines Graphes, visualisation
Librairies (proposées) d3, networkx, bootstrap
Langages (proposé) Python, javascript, html/css…
Responsable du sujet Rémy Cazabet
Informations à voir Projet du semestre precedent

L'analyse de réseaux dynamiques est un de mes sujets (data mining) de recherche principaux. Il n'existe pas à l'heure actuelle de bons outils pour visualiser des données formant de tels réseaux. Vous développerez une interface web pour répondre à ce problème. Au cours des semestres précédents, des premières versions ont été faites, mais elles se sont plus concentré sur l'aspect site web que sur l'aspect visualisation du réseau. Vous vous concentrerez sur la réalisation d'une visualisation permettant de “naviguer dans le temps”, c'est à dire de prendre en compte de manière fluide la possibilité de visualiser l'évolution du réseau en marche avant, marche arrière, accéléré … Le projet est particulièrement intéressant pour ceux qui souhaitent découvrir/se perfectionner en javascript, en particulier création d'application web, d'animations interactives, etc. (voir bibliotheque D3 que vous utiliserz probablement.

Domaines Machine Learning (“Intelligence Artificielle”)
Librairies (proposées) sciki-learn, autres
Langages (proposé) Python, autre
Responsable du sujet Rémy Cazabet
Informations à voir Challenges Kaggle en cours

Kaggle est le site web le plus connu de challenges en machine learning. En 2 mots: des entreprises proposent des challenges auxquels n'importe qui peut tenter de proposer une solution. La meilleure solution gagne. Mais là où Kaggle est particulièrement intéressant, c'est qu'il propose des tutoriels pour résoudre certains problèmes classiques, en utilisant différentes méthodes. Votre objectif: 1) Suivre un/des tutoriels pour résoudre un problème tout fait, 2)Choisir un challenge en cours et appliquer ce que vous avez appris 3)Être riche et célèbre.

Domaines Visualisation, exploitation de données
Librairies (proposées) mapbox, leaflet, d3
Langages (proposé) javascript, html/css, language back-end (python?…)
Responsable du sujet Rémy Cazabet
Informations à voir Projet semestre précédent

Le but de ce projet est de créer une carte interactive des restaurants/bars (et/ou autres lieux) de Lyon, avec pour objectif de faire un vrai site utile. Attention ! Ce projet est réservé à une équipe motivée, car il est INDISPENSABLE de faire mieux que le travail précédent, qui est déjà le résultat de 2 projets successifs. Il est donc quasiment obligatoire de réutiliser une partie du travail déjà effectué (tous les codes sont disponibles). Plusieurs éléments sont à travailler: amélioration de l'interface. Ajout de données de sources différentes (actuellement: Google maps et un peu Yelp), solution pour supprimer les temps de chargement, ajout de quelques fonctionnalitées de “fouille de données” (exploitation des commentaires, notes, textes descriptifs, …).

Domaines IA
Librairies (proposées)
Langages (proposé) Java…
Responsable du sujet Samir AKNINE
Présentation du sujet Sujet complet

L’objectif de ce projet est d’implémenter une méthode de résolution d’un Puzzle de taille n*n. Nous implémenterons, dans un premier temps, un algorithme simple pour une résolution naïve et on l’affinera ensuite.

Domaines IA
Librairies (proposées)
Langages (proposé) Java…
Responsable du sujet Samir AKNINE
Présentation du sujet Sujet complet

L’objectif de ce projet est d’implémenter une méthode de résolution qui permet à des véhicules connecter de se recharger auprès de bornes intelligentes et de contrôler dynamiquement les interactions entre les véhicules autonomes et les bornes.

Domaines IA
Librairies (proposées)
Langages (proposé) Java…
Responsable du sujet Samir AKNINE
Présentation du sujet Sujet complet

On s’intéresse à la modélisation d’un système de négociation automatique intelligent. On se propose de prendre comme exemple l’organisation de voyage. Pour ce faire, on considère un ensemble d’entités composant ce système qu’on appellera des fournisseurs et des négociants. Les fournisseurs sont chargés de récupérer les informations sur les services, les préférences et les contraintes des fournisseurs de services. Par exemple, une compagnie aérienne ou un utilisateur peut soumettre un ensemble de billets d’avions ou de trains à un fournisseur pour les mettre en vente. Les négociants représentent quant-à-eux aussi bien des organismes que des personnes qui recherchent des services ou des biens à acquérir. Pour cela, ils doivent, de la même façon, recueillir les informations nécessaires pour mener leurs négociations auprès des fournisseurs de ces services.

Domaines Images et machine learning (IA)/Deep learning
Techniques Détection de caractères, classification, lecture.
Langages C++ ou Python (surement plus simple pour le deep learning)
Responsable du sujet
Alexandre Meyer
Informations à voir
Credit card OCR with OpenCV and Python ; Keras, surcouche des plateformes de deep learning classique (Tensorflow, CNTK, Theano; synthèse de sons

Les outils de vision et de synthèse de son deviennent assez rependus et simple d'utilisations pour être capable de coder des applications qui semblaient encore impressionnantes il y a quelques années. Le travail portera sur 3 points et peut donc se réaliser à 3 développeurs bien synchronisés.

  • La détection de texte/notes de musique peut se faire avec OpenCV ou DLib (C++ ou python)
  • La classification pour reconnaitre une lettre spécifique peut se faire avec un algorithme de deep learning en utilisant les framework classiques comme Keras/TensorFLow (plutôt python).
  • La lecture sonore du texte doit pouvoir se réaliser avec différentes librairies comme pyTTS. Une recherche autour de ce point sera nécessaire.
Domaines Image
Techniques Toutes les facettes d'un jeu vidéo
Langages C#/Unity
Responsable du sujet
Alexandre Meyer
Informations à voir Tuto unity

Unity est un framework devenu hyper classique pour le développement de jeux vidéo. Ce sujet se propose de vous faire développer un jeu vidéo complet en allant si possible jusqu'à la publication sur l'Android store. Après une prise en main d'Unity, nous vous proposons de par exemple de redévelopper soit un jeu similaire à tuxracer mais en multi joueur sur le même écran coupé en deux sous partie, soit tout autre jeu que vous proposerez (en restant raisonnable sur la faisabilité). TuxRacer est un jeu OpenSource développé en C++ dont les ressources sont disponibles (terrain, modèle 3D, musique, etc.).

Domaines IA et un peu Image
Techniques Apprentissage par renforcement
Langages C#/Unity
Responsable du sujet
Alexandre Meyer
Informations à voir Unity et Apprentissage Machine

Unity est un framework devenu hyper classique pour le développement de jeux vidéo. Ce sujet se propose de vous faire explorer les outils mise à disposition des développeurs Unity pour qu'une “IA” apprenne à jouer à un jeu. C'est un sujet assez exploratoire et demandant une bonne capacité à aller se documenter seul sur les différents algorithmes qu'il sera possible de mettre en place. Vous viserez un mini jeu déjà développé et dans un 1er temps vous mettrez en place une IA très basique, voir même jouant au hasard en ne gardant que les meilleurs actions.

Domaines Web et visualisation
Techniques
Langages
Responsable du sujet
Alexandre Meyer, Remy Caazbet
Informations à voir VisuGPX

L'objectif de ce projet est de concevoir un site web proposant le chargement, la visualisation et l'édition de trace GPS au format GPX. Souvent les traces GPS sont erronés (perte de signal, GPS peu précis, etc.). Nous attacherons une part importante aux outils d'éditions de la trace. De nombreux sites proposent l'éditions de traces GPS mais leur mode d'édition est souvent limité et ne respecte pas certaines données comme les temps ou les altitudes. Nous voudrions avoir

  • une visualisation de la trace sur le carte avec choix du fond de carte;
  • une visualisation du dénivelé de la trace avec la possibilité de sélectionner les points également sur cette zone ;
  • un mode de sélection des points efficaces, visuellement propre afin ensuite de n'appliquer les traitements que sur les points sélectionnés;
  • rééchantillonnage des points sélectionnés (plus ou moins de points);
  • annulation possible d'une opération;
  • insertion/Suppression de points ou groupe de points;
  • déplacement de groupes de points;
  • chargement, sauvegarde;
  • des outils qui garantissent un respect des temps et des altitude de passage à chaque point.
  • import/export de traces provenant de Strava (API Strava)

Une deuxième partie du sujet pourra porter sur la visualisation de grande quantité de traces GPS, comme par exemple la visualisation mondiale des traces des sportifs.

Domaines Synthèse d'images
Techniques et langages OpenGL / C++ ou webGL ou C#/Unity
Responsable du sujet
Alexandre Meyer
Informations à voir

Les deux grandes familles de techniques pour déformer un maillage sont le mélange de formes (blendshape) ou le skinning. A priori, dans ce sujet nous nous orienterons vers la technique de blendshape. La technique de blendshape consiste à mélanger des maillages 3D de visages afin d'obtenir des expressions différentes. Par exemple, à partir de 4 maillages représentants différents expression (joie, colère, peur, surprise) le blendshape créera un nouveau maillage en faisant la moyenne pondérée des 4 visages de références. Cette technique poura être mise en oeuvre en C++ en partant du code que vous avez utilisé en L2 “Introduction à l'informatique graphique” ou en utilisant le framework de jeu vidéo Unity (au choix par groupe).

Le pilotage de l'animation du visage se fera en capturant les mouvements de points caractéristiques d'un visage filmé avec une webcam en utilisant DLib (python ou C++).

Domaine Classification, Machine Learning
Langage (proposé) C++, java
Responsable du sujet
Fabien Rico
Informations à voir
Ensembles de cours datamining (cf *Arbre de décision* et *Random Forest*)

Le but de votre projet est d'implémenter un algorithme classique de construction d'une forêt.

Pour cela il faut :

  1. implémenter la construction d'un arbre de décision à partir d'un jeu de données d'exemples;
  2. implémenter un système permettant de générer un grand nombre d'arbres de décision;
  3. 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.

Domaine administration système
Technologie Docker
Responsable du sujet Fabien Rico
Information à voir
https://owncloud.org/
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

  • owncloud qui permettra le partage de documents;
  • rocketchat qui permettra les discussions en lignes.
  • 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 …

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
Domaine web
Langage php
Responsable du sujet Fabien Rico
Information à voir
http://laravel.com/
http://symfony.com/

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
Domaine Image
Bibliothèque opencv
Responsable du sujet
Fabien Rico
Alexandre Meyer
Informations à voir

A partir de photographie aériennes prises par un drone, vous devez reconstituer l'image planes de la totalité de la zone survolée. Pour cela, il faut trouver des points d’intérêts dans les images voisines et appliquer une déformation pour les faire coïncider.

Améliorations

Les améliorations de ce travail porterons sur l'interface de ce logiciel qui permettra de manière plus ou moins automatique de corriger ou détecter les erreurs ou de manipuler les paramètres de l'algorithme.

  • projet/2018/aut/sujets.txt
  • Dernière modification : 2018/09/13 08:42
  • de alexandre.meyer