Les deux révisions précédentes
Révision précédente
Prochaine révision
|
Révision précédente
|
projet:sujets [2025/01/13 14:09] remy |
projet:sujets [2025/09/03 22:27] (Version actuelle) remy |
====== Sujets, 2024/2025 Printemps ====== | ====== Sujets, 2025/2026 Automne ====== |
| |
Slides de présentation des sujets: | Slides de présentation des sujets: |
* [[https://cazabetremy.fr/Teaching/lifprojet/slides2025pr/ProjetsLifPro2025.pdf|Samir Aknine]] | * [[|Samir Aknine]] |
* [[https://cazabetremy.fr/Teaching/lifprojet/slides2025pr/Sujets%20LIFPROJET%20Automne%202024%20(1).pdf|Célestin Coquidé]] | * [[|Alexandre Meyer]] |
* [[https://cazabetremy.fr/Teaching/lifprojet/slides2025pr/2025p_LIFPROJET_AM.pdf|Alexandre Meyer]] | * [[|Rémy Cazabet]] |
* [[https://cazabetremy.fr/Teaching/lifprojet/slides2025pr/projet_SP.pdf|Sabine Peres]] | * [[|Louis Bagot]] |
| * [[|Bruno Yun]] |
| |
===== AM1. Deep learning et image : classification et génération d'images ===== | ===== AM1. Deep learning et image : classification et génération d'images ===== |
| |
| |
===== AM2. Jeu vidéo sous Unity en réseau associé à un test de Turing ===== | ===== AM2. Jeu vidéo sous Unity/UnrealEngine/Godot en réseau associé à un test de Turing ===== |
| |
^ Domaines | Animation/Interaction/Jeu vidéo | | ^ Domaines | Animation/Interaction/Jeu vidéo | |
^ Techniques et langages | C# / Unity | | ^ Techniques et langages | C# / Unity/Unreal/Godot | |
^ Responsable du sujet | Alexandre Meyer | | ^ Responsable du sujet | Alexandre Meyer | |
^ Difficulté | Raisonnable / Intermédiaire | | ^ Difficulté | Raisonnable / Intermédiaire | |
| |
L'objectif de ce sujet est de développer un jeu vidéo sous Unity se jouant en réseau. A la fin de la partie, le(s) joueur(s) humain(s) indique s'ils avoir jouer avec un autre humain ou avec une machine. Le jeu peut être simple. Ce n'est pas forcément un jeu de plateau. Cela peut-être un Mario plateau ou un Bomberman ou une mini-course de voiture ou un FPS :-) L'humain pilote Mario en 2D avec des plateforme, un autre humain ou une IA pilote les monstres. Le réseau est important car chaque joueur doit être dans une salle différente. Il faudra juste pouvoir proposer un algorithme pour faire jouer l'ordinateur. | L'objectif de ce sujet est de développer un jeu vidéo sous un moteur de jeu (Unity/Godot/Unreal) se jouant en réseau. A la fin de la partie, le(s) joueur(s) humain(s) indique s'ils avoir jouer avec un autre humain ou avec une machine. Le jeu peut être simple. Ce n'est pas forcément un jeu de plateau. Cela peut-être un Mario plateau ou un Bomberman ou une mini-course de voiture ou un FPS :-) L'humain pilote Mario en 2D avec des plateforme, un autre humain ou une IA pilote les monstres. Le réseau est important car chaque joueur doit être dans une salle différente. Il faudra juste pouvoir proposer un algorithme pour faire jouer l'ordinateur. |
| |
Vous allez découvrir Unity, la programmation d'un jeu vidéo, les échanges réseaux, l'"IA", etc. Il existe de nombreux codes pour faire du réseau en Unity. | Vous allez découvrir un moteur, la programmation d'un jeu vidéo, les échanges réseaux, l'"IA", etc. Il existe de nombreux codes pour faire du réseau en Unity et sûrement sur les autres moteurs aussi. |
| |
| |
Sujet mélangeant simulation, rendu 3D, optimisation, framework de calcul, etc. | Sujet mélangeant simulation, rendu 3D, optimisation, framework de calcul, etc. |
| |
Il existe plusieurs frameworks de calcul proposant une manière de paralléliser et d'optimiser efficacement. Typiquement les framework de Deep learning ou Taishi propose un cadre efficace de calcul où un algorithme est représenté par un arbre de calcul où chaque noeud est différentiable. De plus ces framework permettent facilement de paralléliser du code pour profiter d'un GPU par exemple. De plus, ces frameworks facilitent l'optimisation grâce au fait que chaque noeud comporte du code inversible. Ne prenez pas peur, tout ceci est transparent quand vous écrivez le code. Par exemple, avec Taishi, le code se réalise en python avec quelques balises pour aider au paralélisme. | Il existe plusieurs frameworks de calcul proposant une manière de paralléliser et d'optimiser efficacement. Typiquement les framework de Deep learning ou autre (Taishi, Genesis) propose un cadre efficace de calcul où un algorithme est représenté par un arbre de calcul où chaque noeud est différentiable. De plus, ces frameworks permettent facilement de paralléliser du code pour profiter d'un GPU par exemple. Ces frameworks sont rapide et facilitent l'optimisation grâce au fait que chaque noeud comporte du code inversible. |
| |
Ce sujet propose de réaliser deux parties. Une partie réalisant le calcul d'une image à partir soit d'un fluide, soit d'un nuage de points représentant un objet. Et une partie autour du problème inverse qui va chercher à guider la simulation de fluide vers une cible (une forme particulière ou une vidéo), où guider le nuage de points vers l'apparence d'un objet. | Ne prenez pas peur, tout ceci est transparent quand vous écrivez le code. Par exemple, avec Taishi, le code se réalise en python avec quelques balises pour aider au parallélisme. |
| |
Une manière de représenter la fumée est dans un tableau 3D (grille régulière) stockant des mesures physiques (densité de fumée, vitesse, etc.) dans chaque case (voxel). Les étapes de simulation sont assez simple, du pseudo code sera donné. La prise en main de Taishi permettra d'accélérer les calculs, sans compléxifier le code. | Ce sujet propose de réaliser deux parties. Une partie réalisant le calcul d'une simulation de fluide (eau ou fumée) parallélisée . Et une partie autour du problème inverse qui va chercher à guider la simulation de fluide vers une cible (une forme particulière), où guider le nuage de points vers l'apparence d'un objet. Une manière de représenter la fumée est dans un tableau 3D (grille régulière) stockant des mesures physiques (densité de fumée, vitesse, etc.) dans chaque case (voxel). Les étapes de simulation sont assez simple, du pseudo code sera donné. La prise en main de Taishi permettra d'accélérer les calculs, sans complexifier le code. |
| |
Pour la partie inverse, le modèle sera initialisé au hasard : on remplira aléatoirement l'espace de fumée ou on placera les points aléatoirement. Une fonction d'erreur (du code) est à définir. Par exemple, l'affichage de la simulation produit une image. L'erreur sera calculée avec la différence entre cette image et une image cible. L'image cible peut être une image d'une vidéo de fumée ou une image formant un motif particulier ou l'image d'un objet. L'optimisation cherchera à modifier les forces appliquées à chaque voxel pour que la fumée tende vers la cible. | Pour la partie inverse, le modèle sera initialisé au hasard : on remplira aléatoirement l'espace de fumée ou on placera les points aléatoirement. Une fonction d'erreur (du code) est à définir. Par exemple, l'affichage de la simulation produit une image. L'erreur sera calculée avec la différence entre cette image et une image cible. L'image cible peut être une image d'une vidéo de fumée ou une image formant un motif particulier ou l'image d'un objet. L'optimisation cherchera à modifier les forces appliquées à chaque voxel pour que la fumée tende vers la cible. |
| |
On commencera par des choses de très simples et le problème sera complexifié au fur et à mesure. | On commencera par des choses très simples et le problème sera complexifié au fur et à mesure. |
| |
https://www.taichi-lang.org/ | https://www.taichi-lang.org/ |
| https://github.com/Genesis-Embodied-AI/Genesis |
https://fr.wikipedia.org/wiki/D%C3%A9rivation_automatique#:~:text=En%20math%C3%A9matique%20et%20en%20calcul,fonction%20par%20un%20programme%20informatique. | https://fr.wikipedia.org/wiki/D%C3%A9rivation_automatique#:~:text=En%20math%C3%A9matique%20et%20en%20calcul,fonction%20par%20un%20programme%20informatique. |
https://github.com/OutofAi/2D-Gaussian-Splatting | |
| |
| |
===== AM4. Animation physique et optimisation de la morphologie de créatures animées ===== | ===== AM4. Animation physique et optimisation de la morphologie de créatures animées ===== |
^ Domaine | Algorithme évolutionniste, simulation physqiue, méta heuristiques, optimisation, moteur physique | | ^ Domaine | Algorithme évolutionniste, simulation physique, méta heuristiques, optimisation, moteur physique | |
^ Langage | C++ ou python avec BulletPhysics; Ou C# avec Unity; etc. | | ^ Langage | C++ ou python avec BulletPhysics; Genesis etc. | |
^ Responsable du sujet | Fabien Rico et Alexandre Meyer | | ^ Responsable du sujet | Fabien Rico et Alexandre Meyer | |
^ Information à voir || | ^ Information à voir || |
| [[https://www.youtube.com/watch?v=m4E9sj9vH1I]] || | | [[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 ... | 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, ... |
| |
Une idée classique de ce choix de projet est d'appliquer ces algorithmes évolutionnistes à un problème de génération de forme de créatures en cherchant à ce que ces créatures réalisent une tâche le mieux possible : par exemple la locomotion. Vous prendrez en main un moteur physique. L'algorithme évolutioniste proposera une série de créatures avec des morphologies différentes encodées par une séquence de "gènes" (un code). La simulation physique donnera une distance de déplacement que l'algo cherchera à maximiser. | Une idée classique de ce choix de projet est d'appliquer ces algorithmes évolutionnistes à un problème de génération de forme de créatures en cherchant à ce que ces créatures réalisent une tâche le mieux possible : par exemple la locomotion. Vous prendrez en main un moteur physique. L'algorithme évolutionniste proposera une série de créatures avec des morphologies différentes encodées par une séquence de "gènes" (un code). La simulation physique donnera une distance de déplacement que l'algo cherchera à maximiser. |
| |
L'implémentation peut se faire en C++ ou en python avec le moteur BulletPhysics; mais également en C# avec Unity. | L'implémentation peut se faire en C++ ou en python avec le moteur BulletPhysics ou avec le nouveau moteur Genesis (https://github.com/Genesis-Embodied-AI/Genesis) |
| |
| |
===== AM5. Modélisation, Rendu, Animation de nuages ou de la surface de l'eau ===== | ===== AM5. Modélisation, Rendu, Animation de nuages ou de la surface de l'eau ===== |
^ Domaine | Synthèse d'images | | ^ Domaine | Synthèse d'images | |
^ Langage | C++ (ou C# avec Unity) | | ^ Langage | C++/OpenGL; ou Python/Genesis ou C#/Unity | |
^ Responsable du sujet | Alexandre Meyer | | ^ Responsable du sujet | Alexandre Meyer | |
^ Information à voir || | ^ Information à voir || |
Les nuages ou l'eau font partis des éléments à modéliser, afficher et animer dans une scène d'extérieure en synthèse d'images. Ce projet se propose d'explorer certains aspects des nuages ou de la surface de l'eau : leur formation, leur mouvement, leur interaction avec la lumière. | Les nuages ou l'eau font partis des éléments à modéliser, afficher et animer dans une scène d'extérieure en synthèse d'images. Ce projet se propose d'explorer certains aspects des nuages ou de la surface de l'eau : leur formation, leur mouvement, leur interaction avec la lumière. |
| |
La réalisation pourra se faire en C++ avec gkit (ou autre code en C++), mais pourra également se réaliser en C# sous Unity. | La réalisation pourra se faire en C++ avec gkit (ou autre code en C++), ou en python avec Genesis ou en C# sous Unity. |
| |
| |
| |
| =====RC1. Evaluation d'une méthode de clustering de graphe utilisant le deep learning ===== |
| |
| ^ Domaines | Machine Learning, python... | |
| ^ Librairies (proposées) | cdlib, pytorch | |
| ^ Langages (proposé) | Python | |
| ^ Responsable du sujet | Rémy Cazabet | |
| ^ Informations à voir | http://cazabetremy.fr/Teaching/LIFPROJET.html | |
| |
| Dans un article récemment publié (https://proceedings.neurips.cc/paper_files/paper/2024/file/1f59562caae05e6aae0ffd1145bea5da-Paper-Conference.pdf), une nouvelle méthode de détection de communautés (clustering de graphe) utilisant du deep learning a été proposé. Dans le cadre d'un projet de recherche, nous comparons de multiples méthodes de détection de communautés sur des graphes standard. Votre objectif sera de tester cette nouvelle méthode sur ces cas standards, et d'évaluer les résultats. Normalement, le code de la méthode est fourni par les auteurs. Un objectif additionnel possible du projet est d'intégrer cette méthode a la librairie CDLIB (https://github.com/GiulioRossetti/cdlib), dont je suis l'un des auteurs, qui est la librairie de référence pour la détection de communautés. |
| |
| |
| |
| =====RC2. Analyse de grandes données Bitcoin ===== |
| ^ Domaines | Big Data, Data Exploration | | |
| ^ Librairies | pandas, polars, pySpark | | |
| ^ Langages (proposé) | python | | |
| ^ Responsable du sujet | Rémy Cazabet | | |
| |
| Dans un projet récent, nous avons produit un grand jeu de données concernant Bitcoin (https://www.nature.com/articles/s41597-025-04595-8#:~:text=The%20dataset%20covers%20all%20Bitcoin,regarding%20daily%2Dbased%20conversion%20rate.). Il est constitué de tous les échanges effectués depuis le début de Bitcoin jusqu'en 2021. Ce jeu de données pose des challenges en terme d'analyse en raison de sa taille. L'objectif sera tout d'abord de décrire ce jeu de données, puis d'essayer de répondre a une question d'intérêt, telle que par exemple l'identification d'acteurs impliqués dans des transactions illégales, la détection de patterns surprenants, le suivi de coins depuis leur minage jusqu'à leur état à la fin du jeu de données pour évaluer la vitesse a laquelle l'argent circule, la description de la popularité et de la chute des grandes plateformes d'Exchange, etc. |
| |
| =====RC3. Site orienté donné de visualisation des décès en France ===== |
| |
| ^ Domaines | Web, Data Exploration | | |
| ^ Librairies | Dash (https://dash.plotly.com/tutorial), python, html/CSS | | |
| ^ Langages (proposé) | python, javascript, html... | | |
| ^ Responsable du sujet | Rémy Cazabet | | |
| Depuis peu, l'état français fournir un jeu de données très intéressant, car il est détaillé au niveau de l'individu et de la commune: le registre des décès. Pour chaque personne décédé depuis 1970, on dispose ainsi de ses informations: nom, prénom, sexe, date et lieu de naissance (ville, pays), lieu de décès. Je propose de faire un outil pour explorer ce données, permettant par exemple de retracer la mobilité des personnes (est-ce que les personnes décédées en 2022 vivaient plus loin de leur lieu de naissance que les personnes décédées en 2012, 1992... ?), mais cela permet également de tracer des courbes indirectes de popularité des prénoms à la naissance dans certaines villes, etc. Je propose pour faire cet outil de découvrir le framework Dash (https://dash.plotly.com/tutorial), permettant de créer des webapp orienté analyses de données. Si le côté peu réjouissant des données sources sont un problème, on peut envisager des alternatives (mais il n'y a pas l'équivalent pour les naissances ou les mariages, a ma connaissance. Mais il y a beaucoup de données libres fournies par des villes ou l'état français). |
| |
| =====RC4. Webapp pour comparer les tarifs de location de voiture ===== |
| |
| ^ Domaines | Web, dataviz... | |
| ^ Librairies (proposées) | Dash ou autre. | |
| ^ Langages (proposé) | Python, javascript, html/css, etc. | |
| ^ Responsable du sujet | Rémy Cazabet | |
| ^ Informations à voir | | |
| | || |
| Aujourd'hui, de nombreuses entreprises proposent de la location de voiture, en particulier de nouveaux acteurs tels que citiz, leo&Go, Drivalia qui ont introduit des facturations à la minute et au km, sur des voitures en libre service. L'objectif est de concevoir un site web, un outil en ligne, permettant de saisir des informations de trajets (distance, temps), et d'être capable de comparer les tarifs de ces diverses solutions. Des graphiques pourront par exemple montrer quand est-ce qu'une solution devient plus intéressante qu'une autre, en fonction du temps de location ou de la distance. |
| |
| |
| =====RC5. Large language models pour un assistant virtuel hybride ===== |
| |
| ^ Domaines | IA, ... | |
| ^ Librairies (proposées) | LM Studio, autres | |
| ^ Langages (proposé) | Python | |
| ^ Responsable du sujet | Rémy Cazabet | |
| ^ Informations à voir | | |
| | || |
| Les LLM (Large Languages Models) sont maintenant assez facile à utiliser sur une machine personnelle, notamment en utilisant LM studio. Vous pouvez donc avoir un "chatGPT" personnalisé, qui tourne en local sur votre machine. Votre objectif sera de créer un assistant virtuel composé d'un système hybride, dont l'objectif sera de gérer votre boite mail/vos messages SMS/Whatsapp, etc. Le système est hybride dans le sense où il est composé d'une partie en code classique: interface avec une application, formattage, envoi de requête, etc., et que la parte LLM sert uniquement de "cerveau" à ce système hybride. Le LLM doit par exemple servir non pas uniquement à générer du texte, mais à prendre des décisions, telles que classer le message en spam ou non, répondre ou non, détecter s'il y a un demande de rendez-vous, voire ajouter le rendez-vous dans un agenda automatiquement. Ce genre d'interaction avec ce "cerveau central" LLM pourra se faire via des questions à choix multiple imposé (étant donné le mail de contenu [...], dois-je le classer en spam, répond par OUI/NON). Le projet est ouvert à une autre application utilisant ce même principe de système hybride (e.g., RPG en mode texte sur une carte et des règles de jeux imposées par un code classique, "personnalité artificielle" effectuant des recherches sur le web via des requêtes et stoquant les résultats dans une base de données et/ou alimentant un site web, etc. Note: ce projet est exploratoire et les résultats ne sont pas garantis :) |
| |
| =====RC6. Simulation de réseaux sociaux avec des agents LLM ===== |
| |
| ^ Domaines | IA, LLM | |
| ^ Librairies (proposées) | LM Studio, Ysocial | |
| ^ Langages (proposé) | Python | |
| ^ Responsable du sujet | Rémy Cazabet | |
| ^ Informations à voir | | |
| | || |
| Dans le cadre d'un projet de recherche, nous avons développé une librairie python appelée Ysocial (https://ysocialtwin.github.io). Cette plateforme est pensé pour simuler des réseaux sociaux peuplés de LLMs. Cela est conçu pour permettre de tester in-silico des hypotheses, par exemple sur la diffusion d'information, ou sur l'impact des systèmes de recommendations dans les réseaux sociaux. Cette librairie est encore a un stade experimental. Votre objectif sera d'utiliser la librairie pour simuler un petit réseau de discussion autour d'une thématique (par exemple, sport, musique, politique...), et d'évaluer le réalisme des résultats produits. Est-ce que les discussions ont l'air d'avoir du sens ? Est-ce que le comportement des LLMs a l'air d'être réaliste ? Est-ce qu'il y a beaucoup d'hallucinations ? etc. |
| |
| |
Des exemples de développements se trouvent a cette adresse : https://perso.liris.cnrs.fr/samir.aknine/L3/ | Des exemples de développements se trouvent a cette adresse : https://perso.liris.cnrs.fr/samir.aknine/L3/ |
| |
===== CC1. Analyse de l'Alimentation et de son Impact sur la Santé (L'aile ou la cuisse?) ===== | ===== BY1. Générateur de livres d’histoires pour enfants personnalisables ===== |
^ Domaine | Machine Learning, python, application web| | ^ Domaine | Intelligence Artificielle| |
^Langage (proposé) | Python | | ^Langage (proposé) | Python | |
^ Responsable du sujet | Célestin Coquidé | | ^ Responsable du sujet | Bruno YUN | |
Ce projet explore la relation entre alimentation et santé dans notre société, illustrée par la célèbre citation de Jean Anthelme Brillat-Savarin : "Dis-moi ce que tu manges, je te dirai ce que tu es." La nutrition joue un rôle central dans notre bien-être, et ce projet propose d'étudier cette corrélation en utilisant deux bases de données : Open Food Facts (https://fr.openfoodfacts.org/) et FooDB (https://foodb.ca/). Open Food Facts fournit des informations nutritionnelles détaillées (apports journaliers, nutriscore, etc.) sur des produits alimentaires industriels vendus dans le monde entier. FooDB, quant à elle, contient des données sur un large éventail d'ingrédients et d'aliments bruts, incluant leur composition en macro et micro-nutriments. Ce projet peut donner lieu à une application web avec laquelle un utilisateur peut interagir pour améliorer les qualités nutritives d'une recette par exemple. | Ce stage a pour objectif de développer une plateforme permettant la génération de livres d’histoires personnalisés pour enfants. |
Objectifs : | L’utilisateur pourra définir différents éléments narratifs tels que : le schéma de l’histoire, le genre, les personnages, la morale ou encore le style. La génération du texte reposera sur un grand modèle de langage (LLM), tandis que les illustrations seront produites par des modèles génératifs d’images (par ex. SDXL 1.5 ou Flux). Un travail spécifique portera sur la cohérence visuelle et narrative des personnages et des décors à travers l’ensemble des pages. En option, des modules complémentaires pourront être intégrés : (1) Synthèse vocale avec des modèles tels que XTTS-v2 ou higgs-audio-v2, afin de proposer une lecture automatique de l’histoire. (2) Génération musicale avec des modèles comme MusicGen, permettant d’accompagner le récit par des mélodies adaptées à l’ambiance. |
* Visualisation des données nutritionnelles par catégories d'aliments. | L'outil crée s'inspirera de: https://gemini.google/overview/storybook/ |
* Analyse statistique de la distribution des produits selon leur source nutritive. | |
* Prédiction du nutriscore pour des recettes maison. | |
* Comparaison entre différents patrimoines culinaires (cuisine européenne, méditerranéenne, végétarienne, etc.). | |
* Évaluation de la qualité nutritionnelle de diverses recettes et proposition de recettes alternatives plus saines. | |
| |
===== CC2. Prédiction des Prix des Cartes à Collectionner Magic: The Gathering ===== | |
^ Domaine | Machine Learning, python, application web| | |
^Langage (proposé) | Python, html, javascript | | |
^ Responsable du sujet | Célestin Coquidé | | |
Ce projet se concentre sur le développement d'un outil de prédiction des prix pour les cartes à collectionner issues des Trading Card Games (TCG). À partir d'une base de données complète contenant les prix des cartes, l'objectif est d'analyser les tendances de marché pour anticiper la valeur future des cartes. La base de données MTGJSON (https://mtgjson.com/) fournit des informations détaillées sur les prix journaliers des cartes du jeu Magic: The Gathering, un des TCG les plus anciens et populaires. Ces données incluent les prix de vente actuels sur diverses plateformes (par exemple : CardMarket, CardKingdom…). | |
| |
Objectifs : | |
* Analyse des tendances de prix : Identifier les tendances à court et long terme dans les fluctuations des prix des cartes. | |
* Prédiction de prix : Développer des modèles pour prédire les variations de prix des cartes en fonction de divers facteurs. | |
* Corrélation avec les sorties d'extensions : Étudier l'impact des nouvelles extensions ou éditions sur les prix des cartes existantes. | |
* Évaluation de la rareté : Analyser comment la rareté d'une carte (édition limitée, carte promotionnelle, etc.) influence son prix au fil du temps. | |
* Analyse de la demande : Explorer la relation entre la popularité des cartes (tournois, méta-jeux) et leur prix. | |
| |
===== CC3. Exploration du jeu de données ORBITAAL pour l'analyse des transactions Bitcoin ===== | |
^ Domaine | Big data, visualisation de données| | |
^Langage (proposé) | Python(networkx, pyspark, seaborn) | | |
^ Responsable du sujet | Célestin Coquidé | | |
Ce projet s'inscrit dans une thématique d'analyse de données massives (big data) dans le cadre des transactions Bitcoin. ORBITAAL (https://zenodo.org/records/12581515) est un jeu de données complet qui décrit toutes les transactions Bitcoin réalisées entre janvier 2009 et janvier 2021, exprimées à la fois en Bitcoin et en dollar. Dans le cadre de ce projet, deux représentations de graphes peuvent être explorées : des snapshots construits sur différentes résolutions temporelles et un Stream graph décrivant les transactions avec la résolution temporelle la plus fine. | |
Objectifs : | |
* Caractérisation des acteurs importants (riches, centraux…) et leur évolution dans le temps | |
* Visualisation de transactions et suivi de Bitcoin provenant d'activités illégales | |
* Détections de communautés d'utilisateurs Bitcoin | |
* Simulation de crises économiques et impacts sur les acteurs Bitcoin | |
| |
| |
===== SP1. Visualisation interactive de données médicales ===== | |
^ Domaine | Python, application web| | |
^Langage (proposé) | Python, Dash, html, javascript | | |
^ Responsable du sujet | Sabine Peres | | |
Ce projet se concentre sur le développement d'une plateforme interactive permettant d'explorer, visualiser et analyser des données biologiques dans les celullues de différents patients. Ce projet peut servir à comprendre les processus bioénergétiques ou identifier des anomalies métaboliques associées à certaines situations physiologiques et/ou physio-pathologiques. | |
| |
Fonctionnalités principales | |
| |
* Importation et gestion des données :Chargement de données physiologiques et métaboliques issues de fichiers CSV ou de bases de données publiques. Visualisation des réponses adaptatives et des flux métaboliques sous forme de tableaux ou de graphiques. | |
| |
* Graphiques interactifs : visualisation des flux entre différents patients, évolution des concentrations métaboliques ou des flux sur une période donnée, visualisation des réponses adaptatives lors de variations des conditions physiologiques (exemple de l’exercice). | |
| |
* Simulation et comparaison : Comparaison des réponses adaptatives et des flux normaux et perturbés pour chaque patient. | |
| |
* Analyse avancée : Détection des anomalies métaboliques liées à des maladies, analyse prospective des interventions physiques et cliniques susceptibles d’être proposées dans la prise en charge de ces sujets. | |
| |
Interface utilisateur: | |
| |
* Interface web conviviale avec une navigation intuitive.Options d'exportation des graphiques et des rapports d'analyse. | |
| |
* Développement backend : Utiliser Python avec Flask pour gérer les données. Manipuler les données avec pandas. | |
| |
* Visualisation frontend : Créer des graphiques interactifs avec Plotly ou Dash pour des diagrammes dynamiques. | |
| |
| |
===== SP2. Construction d’un automate cellulaire pour simuler les interactions entre cellules biologiques ===== | |
^ Domaine | Python, système multi-agents| | |
^Langage et biblithèque (proposés) | Python, Dash, NumPy, Pygame | | |
^ Responsable du sujet | Sabine Peres | | |
Ce projet se concentre sur le développement d'un un simulateur basé sur un automate cellulaire ou un système multi-agents permettant de modéliser les interactions entre cellules biologiques (exemple : prolifération cellulaire, communication, et réponse aux signaux environnementaux). Ce projet peut être appliqué à des domaines tels que la biologie des tissus, la modélisation des tumeurs, ou la réponse immunitaire. | |
| |
L’idée est de construire un environnement où les cellules sont représentées par des agents ou des cellules sur une grille. Chaque cellule suit un ensemble de règles ou de comportements pour évoluer en fonction de : | |
| |
* Ses propres caractéristiques internes (état, énergie, type, etc.). | |
* Les interactions avec ses voisines. | |
* Les signaux ou stimuli provenant de l’environnement. | |
| |
Par exemple : | |
| |
* Une cellule saine peut se diviser si elle a suffisamment de ressources. | |
* Une cellule tumorale peut proliférer rapidement et émettre des signaux pour perturber l’environnement. | |
* Une cellule immunitaire peut détecter et attaquer des cellules anormales. | |
| |
| |
| |
===== SP3. Visualisation interactive de voies métaboliques calculées par des méthodes d'optimisation ===== | |
^ Domaine | Python, visualisation | | |
^Langage et biblithèque (proposés) | Python, Cytoscape, Dash, Plotly | | |
^ Responsable du sujet | Sabine Peres | | |
Ce projet se concentre sur le développement d'une interface de visualisation interactive permettant d’explorer les voies métaboliques (i.e chemins dans un hypergraphe) calculés par des méthodes d'optimisation (programmation linéaire). L’outil doit permettre aux utilisateurs de comprendre la structure et la dynamique des réseaux métaboliques, ainsi que d’analyser les flux optimaux pour différents scénarios biologiques (par exemple, croissance cellulaire, production de biomolécules, réponse au stress). | |
| |
* Visualisation de la carte métabolique | |
* Représenter les métabolites et les réactions sous forme de graphe (nœuds et arêtes). | |
* Utiliser des codes de couleur et des épaisseurs de lignes pour indiquer l’intensité des flux dans chaque réaction. | |
| |
| |
* Interactivité | |
* Permettre de zoomer et de se déplacer dans la carte métabolique. | |
* Cliquer sur une réaction ou un métabolite pour afficher des informations détaillées | |
* Activer/désactiver certaines voies ou métabolites pour analyser leur impact. | |
| |
* Analyse de scénarios multiples | |
* Comparer les flux entre différents scénarios (par exemple, condition normale vs condition de stress). | |
* Générer des graphiques pour visualiser les différences entre scénarios. | |
| |
* Exportation des visualisations | |
* Exporter les cartes métaboliques en formats PNG, SVG ou PDF pour inclusion dans des rapports scientifiques. | |
* Exporter les données enrichies (flux annotés) au format CSV ou XML. | |
| |
| |
| |
===== MB1. Etude des controverses : Controverse entre Simon et Mandelbrot (1959-1961) ===== | |
^ Domaine | Python, fouille textuelle | | |
^ Langage et bibliothèque (proposés) | Python, llm/chatGPT | | |
^ Responsable du sujet | Marc BERTIN | | |
| |
**Description :** | |
Ce projet explore les approches innovantes de fouille textuelle appliquées à des corpus scientifiques, en vue de mieux comprendre et d’exploiter les données académiques pour l’analyse des controverses. | |
Nous interrogerons les articles scientifiques produits par Benoît Mandelbrot lors de sa controverse avec Simon. e corpus a déjà été élaboré, analysé et présenté. | |
| |
** | |
Moyen :** | |
| |
A disposition un serveur avec carte GPU TITAN avec serveur NAS pour le stockage des données. | |
| |
GROBID utilise des modèles d’apprentissage profond s'appuyant sur la bibliothèque DeLFT, un cadre d’apprentissage profond non spécifique à une tâche, conçu pour l'étiquetage de séquences et la classification de textes, via JEP. | |
| |
**Objectif :** | |
| |
* découvrir les approches pour la fouille textuelle autour des corpus scientifiques. | |
* Extraire les notions et les concepts de la controverse (déjà identifié), | |
* Encodage TEI du corpus avec GroBID (voir le github : [[https://github.com/kermitt2/grobid]] ) | |
* Annoter le corpus de la controverse, | |
* Navigation dans la controverse scientifique. | |
* Si possible proposer une visualisation de la controverse. | |
* Rendre l'approche possible à d'autres controverses | |
| |
Plus d'information sur Mandelbrot : [[https://epistemofinance.hypotheses.org/14552]] | |
| |
| |
===== MB2. Constitution d'un docker pour fouiller les articles scientifiques extrait à partir de OAI-PMH ===== | |
^ Domaine | Python, OAI-PMH, Docker | | |
^ Langage et bibliothèque (proposés) | Python, OAI-PMH | | |
^ Responsable du sujet | Marc BERTIN | | |
| |
**Description :** | |
| |
OAI-PMH est le sigle de l’Open Archives Initiative - Protocol for Metadata Harvesting, ce qui signifie « ////protocole pour | |
la collecte de métadonnées de l’Initiative pour les Archives ouvertes//// | |
». | |
Ce projet vise à exploiter le protocole OAI-PMH (Open Archives Initiative Protocol for Metadata Harvesting) | |
pour constituer un corpus d'articles scientifiques issus de réservoirs de données ouverts. | |
Le corpus sera analysé afin d’identifier et d’extraire les controverses scientifiques qu’il contient. | |
| |
**Moyen :** | |
| |
A disposition un serveur avec carte GPU TITAN avec serveur NAS pour le stockage des données. | |
| |
Vous pourrez utiliser (liste non exhaustive) : | |
| |
* Sickle, oai-harvest ou PyOAI pour le moissonage | |
* Hugging Face / llm | |
| |
| |
**Objectif :** | |
| |
* Proposer un outil de fouille textuel d'article scientifique en langage naturel. | |
* Implémenter un outil d'harvesting reposant sur le protocole OAI-PMH. | |
* Collecter les données pleins textes via une interface de recherche d'information. | |
* Interroger en langage naturel les textes harvaster. | |
* La solution sera proposée sous Docker. | |
| |
| |
| |
| |
===== MB3. Système embarqué de détection automatique de touche pour la pratique du Kyudo - tir à l'arc japonais ===== | |
| |
^ Domaine | Python, Détection d’événement | | |
^ Langage et bibliothèque (proposés) | Python, openCV, ESP32/CAM| | |
^ Responsable du sujet | Marc BERTIN | | |
| |
**Description :** | |
| |
Ce projet propose de développer un système de détection automatique des flèches dans la mato (cible de kyudo) à l’aide d’un module ESP32-CAM. | |
La carte ESP32-Cam intègre un processeur ESP32 et une caméra OV2640 (2M pixels). Elle consiste à transmettre en WIFI et en direct un flux vidéo, des images. | |
Grâce à sa caméra embarquée, l’ESP32-CAM capturera les images de la cible et utilisera un algorithme de traitement d'image léger pour identifier l'emplacement des impacts. | |
Ce dispositif portable et économique permettrait d'automatiser l'évaluation des tirs, réduisant les biais humains et facilitant l’entraînement. | |
| |
| |
**Moyen :** | |
| |
* Serveur avec carte TITAN | |
* ESP32-CAM qui est une carte de développement dotée de capacités Wi-Fi et Bluetooth, comprenant un module ESP32S, une caméra OV2642, un emplacement pour carte micro SD, neuf broches GPIO, un flash LED intégré, une mémoire flash intégrée, 520 Ko de RAM interne et 4 Mo de PSRAM. Le module peut être programmé à l'aide de différents environnements, notamment l'IDE Arduino, l'IDF Espressif, MicroPython, JavaScript, Lua et PlatformIO dans VS Code. | |
* Librairie openCV et pyTorch [[https://opencv.org/]], liste non exhaustive | |
| |
**Objectif :** | ===== BY2. Displaying and interacting with arguments in an augmented environment ===== |
| ^ Domain | HCI/Animation/Jeux vidéo | |
| ^ Langage | Unity/ Occulus Integration/ Meta XR UPM | |
| ^ Responsable du sujet | Bruno YUN| |
| There are many platforms online to display arguments (e.g., https://www.kialo.com/) but there are currently no options to display argumentation graphs in augmented reality environments. In this project, we want to introduce you to the basics of making a Quest 3 XR game using Unity. The application should possess the following capabilities: (1) allowing the user to browse an argumentation graph in a virtual environment, (2) displaying specific arguments to a user in an augmented reality environment, (3) allowing the user to interact with the graph by modifying arguments, and (4) loading existing argumentation graphs from Kialo. |
| |
* Expérimenter la faisabilité d'une solution de détection de la "touche", c'est-à-dire identification de la flèche dans la mato (cible) pour le déploiement de compétition national. | The project will focus on making an intuitive interface to enhance the user experience. The project will be released as an application for the Meta Quest 3 headset (provided for the duration of the project). |
| |
**Lien annexe** | ===== BY3. Visualising acceptability degree space in argumentation ===== |
Le Kyudo en France: [[https://www.kyudo.fr/la-voie-de-l-arc]] | |
| |
| ^ Domaines | Web/Argumentation/Visualisation | | |
| ^ Librairies | Plotly | | |
| ^ Langages (proposé) | python, javascript, html... | | |
| ^ Responsable du sujet | Bruno YUN | | |
| |
| In formal argumentation, arguments and their interactions are represented using a directed graphs. On this graph, many semantics can be used to score arguments from the most acceptable (less attacked) to the least (more attacked). Some graphs, called weighted argumentation graphs, are augmented with weights which represent in confidence in the source (author) of the argument. Given an weighted argumentation graph, we can obtain scores on each argument and the acceptability degree space is the set of all scores which can be achieved. The goal of this project is to visualise the acceptability degree space in an online application using multiple carefully selected 3D plots (https://plotly.com/python/3d-charts/). For more details, see https://arxiv.org/pdf/2203.01201.pdf (Figure 2). |
| |
| |