Projet de Computer Vision pour la segmentation d'instances d'aliments et l'estimation de leurs valeurs nutritionnelles via analyse d'images.
Tester l'application en ligne : https://app-computer-vision.vercel.app/
- Modèle : YOLOv8m-seg fine-tuné sur dataset fusionné
- Performance : mAP50 = 0.672, mAP50-95 = 0.565 (Mask)
- Dataset : FoodSeg103 + UEC-FoodPix (15 994 images, 32 classes alimentaires)
- Entraînement : 150 époques, batch=16
- Performance : mAP50 = 0.617, mAP50-95 = 0.511 (Mask)
- Dataset : FoodSeg103 (4 526 images, 12 classes)
Gain Fusion : +8.9% mAP50, +10.6% mAP50-95, 2.7x plus de classes, 3.5x plus de données.
- Stack ML : PyTorch + YOLOv8 + OpenCV + MLflow
- Stack App : Next.js 16.1 + React 19.2 + ONNX Runtime Web 1.24 + Tailwind CSS 4
| Ancien modèle (12 classes) | Modèle Fusion (32 classes) |
|---|---|
![]() |
![]() |
Comparaison des prédictions entre l'ancien modèle FoodSeg103 et le nouveau modèle Fusion
L'application NutriScan fonctionne entièrement dans le navigateur de l'utilisateur. Il n'y a aucun serveur backend — le modèle ONNX est chargé et exécuté côté client grâce à ONNX Runtime Web (WebAssembly).
Fonctionnalités :
- Caméra temps réel et upload d'image
- Segmentation d'instances alimentaires (32 classes)
- Estimation nutritionnelle automatique (calories, protéines, glucides, lipides, fibres)
- Suppression manuelle des faux positifs
Architecture :
Navigateur (client)
├─ Main Thread (React / Next.js)
│ ├─ Capture caméra / Upload image
│ ├─ Affichage résultats (cards + nutrient bars)
│ └─ Suppression manuelle des faux positifs
└─ Web Worker (inference.worker.ts)
├─ ONNX Runtime WASM (best.onnx)
├─ NMS per-class + cross-class
├─ Masques segmentation (160×160 → 640×640)
└─ Calcul nutritionnel (pixels → cm² → g → kcal)
URL : https://app-computer-vision.vercel.app/
Documentation interactive disponible en ligne : https://documentation-computer-vision.vercel.app/
Pour la documentation locale, consulter : docs/README.md
La documentation complète comprend :
- Vue d'ensemble et proposition de valeur
- Analyse technique approfondie (architecture YOLOv8, pipeline de prétraitement)
- Architecture logicielle (Python + Edge AI)
- Guide d'installation et reproduction
- Résultats expérimentaux détaillés
- Limitations et travaux réalisés/futurs
- Annexes et ressources
# Installation
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
# Préparation du dataset fusionné (32 classes)
jupyter notebook notebooks/02_data_fusion_and_cleaning.ipynb
# Entraînement du modèle Fusion
jupyter notebook notebooks/03_train_yolov8_fusion.ipynb
# Visualiser les métriques MLflow
mlflow uicd app
pnpm install
pnpm devAuteur : Antoine ROSPARS, Yann LEBIB, Jean-Pierre JANOPOULOS
Module : G-AIA-910 - Computer Vision
Date : Janvier - Février 2026

