Adrien Vannson
Adrien Vannson

I am studying Computer Science at EPFL and at ENS de Lyon. This page describes some of my projects. Most of them are available on Github.

Projects

Real time image denoising on GPU

During a three-month research internship at Karlsruhe Institute of Technology (KIT), I worked on a method to reconstruct images rendered with the path-tracing algorithm on a GPU. I was under the supervision of Johannes Hanika.

The path-tracing algorithm is a Monte Carlo algorithm that can generate images of 3D scenes. In real-time conditions, it is usually not possible to perform enough iterations for the algorithm to converge: the output image is very noisy. It is possible to apply machine learning techniques to reconstruct an estimation of the original image from the noisy image, but these machine learning methods are computationally expensive: it is not yet possible to use them at real-time rates.

During my internship, I first generated several images of 3D scenes using a path-tracer that I created. Two versions of each image are generated: a noisy image with a low number of samples per pixel that could have been obtained at real-time rates, and the final image that is obtained after the convergence of the algorithm. I trained a convolutional neural network with the U-Net architecture to denoise noisy images, and worked on a low-level method to infer the prediction of the network as fast as possible on a Nvidia GPU using its tensor cores efficiently.

3D-Renderer

Moteur de rendu 3D écrit en C++ utilisant le ray-tracing.

Simulations de propagation d'ondes en utilisant l'équation de d'Alembert.

CG Ranking

Outil en ligne permettant d'afficher l'évolution du score des participants aux concours organisés par Codingame.
Les classements sont relevés régulièrement et enregistrés dans une base de données.

Reconnaissance de balles

Programme réalisé dans le cadre de mon projet de Sciences de l'Ingénieur en Terminale : il permet de détecter la position de balles de tennis sur une image. La qualité des résultats obtenus est assez dépendante de la luminosité du terrain, mais elle est généralement très bonne.

Explorateur de fractales

Permet de visualiser l'ensemble de Mandelbrot et des ensembles de Julia.

Algo-lib

Ce projet regroupe des implémentations en C++ d'algorithmes et de structures de données classiques. Elles permettent de gagner du temps lors de compétitions en évitant de les recoder complètement.

Les descriptions et preuves de certains de ces algorithmes sont regroupées dans un document que j'ai écrit.

Fake hands generation AI generated hands

Using a diffusion algorithm, this program generates images of hands. This AI model is a convolutional neural network (CNN) with the U-Net architecture. It is trained on 11K Hands, a dataset of images of hands [1].

The slider above can be used to show images generated during the training of the network. The network is trained during 500 epochs, and six new images are generated every ten epochs. We can see that as the training progresses, the images are increasingly realistic, even if the number and the position of the fingers may be wrong.

Since the network is fully convolutional, it has only access to local information when it generates the image. This can explain why it struggles to build more realistic images.

[1] Mahmoud Afifi, "11K Hands: Gender recognition and biometric identification using a large dataset of hand images." Multimedia Tools and Applications, 2019.

Transfert de session TLS

Stage de L3 de six semaines réalisé à l'Irit (Enseeiht) dans l'équipe Sépia, avec l'encadrement de Daniel Hagimont et l'aide de Brice Ekane.

DiSC est un projet de recherche développé à l'Irit et permettant d'optimiser les communications entre différentes machines d'un datacenter. L'objectif de mon stage était de concevoir une méthode permettant de déplacer une session TLS d'une machine à une autre afin d'intégrer le support du protocole de TLS à DiSC.

download Rapport de stage
Xavier Gury

Site web créé pour mon professeur d'Arts Plastiques au collège afin qu'il puisse partager ses productions.

Suivi de consommation électrique

Permet de relever puis d'afficher de manière claire et précise l'historique de consommation électrique d'une habitation. La consommation instantanée, fournie par le compteur électrique, est mesurée régulièrement par une carte Arduino et enregistrée dans un fichier. Les données peuvent ensuite être affichées graphiquement.

Décorrecteur orthographique

Outil permettant d'ajouter de nombreuses fautes d'orthographe à un texte initialement correct.