Projects — a map, my map
Missions and training runs. Missions are the projects where I asked a real question. Training is where I learned to spin webs.
Missions
Segma — U-Net from scratch
A U-Net rebuilt from scratch in PyTorch (≈ 7.8M parameters) to segment cats and dogs pixel by pixel on Oxford-IIIT Pet, with an ablation study measuring what skip connections really bring.
mIoU 0.719 · skip connections: +0.096 IoU on boundaries
Read the storyIN PROGRESSRL-Games — Q-Learning, DQN and PPO from scratch
A reinforcement learning lab where every algorithm is hand-coded before being compared to Stable-Baselines3: Q-Learning (FrozenLake, Taxi), DQN (MountainCar), Actor-Critic PPO (LunarLander), and a Flappy Bird rebuilt from scratch as a Gymnasium environment.
Flappy Bird: 80 pipes per game, 20 out of 20 games without a crash
Read the storyFEATUREDDeep Scan — Facial Recognition System
A complete system combining an embedding database with FAISS-optimised search: the face is detected with MTCNN, encoded into a vector by InceptionResNetV1 (FaceNet), then the closest matches to a query are retrieved in milliseconds.
Real-time vector search
Read the storyIN PROGRESSLiveness — Face anti-spoofing
The sequel to Deep Scan: telling a real face from an attack (printed photo, screen). Fine-tuning an ImageNet-pretrained ResNet18 for spoof / non-spoof classification, with a Streamlit interface for testing.
Read the storyFEATUREDBirdCLEF 2026 — Recognising species by ear
Team Kaggle competition: identify the animal species present in field sound recordings by fine-tuning a pretrained ResNet. A demanding evaluation: macro ROC-AUC, which weighs rare species as much as common ones.
Macro ROC-AUC: 0.87 (team)
Read the storyFEATUREDThomasBot — Bible Chatbot
An intelligent chatbot able to answer Bible questions using a RAG architecture (Retrieval-Augmented Generation). Verses are indexed as semantic embeddings and an open-source LLM answers with context.
Sourced answers, 100% open-source
Read the storyTraining
DataTour 2026 — Fraud detection
Team data hackathon: detecting fraudulent transactions in an imbalanced dataset, where fraud is rare and accuracy means nothing.
Read the storyHand-Control-Mouse — Driving the computer by hand
IFRI AI club project, built with a team of juniors: controlling the mouse with hand gestures using MediaPipe. I coded, mentored the team and designed the mapping between gestures and actions.
Read the storyData analysis for a restaurant
Recent project for a Data Analytics course: exploring and analysing a restaurant's data.
Read the storyCyneMatch — Movie Recommendation System
Web movie recommendation app based on IMDB data. Content-based engine with Scikit-learn (cosine similarity), Django interface, and full Docker containerization.
Read the storySpam Detection
Complete message classification pipeline (spam vs ham): NLP preprocessing, feature engineering, and model comparison between Random Forest and Logistic Regression with clear metrics.
Read the storyTemperature Forecasting (LSTM & GRU)
LSTM and GRU models for weather time-series forecasting. Architecture comparison, sequence preprocessing, and performance evaluation.
Read the storyCheck the Pickup
Exploratory data analysis app for a pickup service, built to explore Streamlit: interactive visualizations, descriptive stats, and dynamic filters.
Read the storyCats vs Dogs Classification
CNN to classify cat and dog images. Data augmentation, training, and model optimization on a Kaggle dataset.
Read the storyShoe Classification
Multi-class CNN for shoe image classification. Error analysis and visualization of the features learned by the network.
Read the story