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.
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 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 :
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.
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
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.
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.
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…
Selon la difficulté technique de certaines parties du site :
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.
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.