Aller au contenu principal

Résultats Expérimentaux

Métriques Globales

Comparaison des trois modèles

ModèleDatasetClassesmAP50 (Box)mAP50-95 (Box)mAP50 (Mask)mAP50-95 (Mask)PrécisionRecallTaille
YOLOv8s-segFoodSeg103120.5860.4960.5870.4750.5780.54223 MB
YOLOv8m-segFoodSeg103120.6200.5410.6170.5110.6050.57853 MB
YOLOv8m FusionFoodSeg103 + UEC-FoodPix320.6750.5930.6720.5650.6820.632157 MB

Gains du modèle Fusion vs YOLOv8m FoodSeg103

MétriqueYOLOv8m (12 cls)Fusion (32 cls)Gain
mAP50 (Mask)0.6170.672+8.9%
mAP50-95 (Mask)0.5110.565+10.6%
mAP50 (Box)0.6200.675+8.9%
mAP50-95 (Box)0.5410.593+9.6%
Précision0.6050.682+12.7%
Recall0.5780.632+9.3%

Observations :

  • Le modèle Fusion surpasse l'ancien modèle sur toutes les métriques, malgré 2.7x plus de classes
  • Le gain est significatif (+8-13%) grâce au dataset 3.5x plus grand et plus diversifié
  • La précision est la métrique avec le plus grand gain (+12.7%), indiquant moins de faux positifs
  • Le modèle Fusion a un poids plus élevé (157 MB vs 53 MB) en raison des 32 classes

Comparaison Visuelle des Trois Modèles

YOLOv8s (12 classes)YOLOv8m (12 classes)YOLOv8m Fusion (32 classes)
YOLOv8s predYOLOv8m predFusion pred

Comparaison directe des prédictions : le modèle Fusion détecte plus de classes avec une meilleure précision.

Performance par Classe (YOLOv8m Fusion, 32 classes)

Top Performing Classes

ClassemAP50mAP50-95
rice0.8760.819
hamburger0.9030.852
noodles0.8910.833
pizza0.8850.833

Analyse : Les classes avec des formes distinctes et des textures homogènes (hamburger, pizza) obtiennent les meilleurs résultats. Le riz bénéficie d'une forte représentation dans les deux datasets (cuisine asiatique).

Matrice de Confusion (Fusion, 32 classes)

Matrice de confusion Fusion

Matrice de confusion du modèle Fusion sur le test set (32 classes)

Matrice de confusion normalisée Fusion

Matrice de confusion normalisée du modèle Fusion

Courbes de Performance (Fusion)

Courbe Précision-Recall (Mask) :

PR Curve Fusion

Courbe Précision-Recall pour la segmentation par classe (32 classes)

Courbe F1-Score (Mask) :

F1 Curve Fusion

Courbe F1-Score du modèle Fusion en fonction du seuil de confiance

Exemples Visuels de Prédictions (Fusion)

Ground TruthPrédictions Fusion
Fusion Val Labels 0Fusion Val Pred 0
Fusion Val Labels 1Fusion Val Pred 1

Comparaison ground truth vs prédictions du modèle Fusion sur les batches de validation


Performance par Classe (YOLOv8m-seg, ancien modèle 12 classes)

Top 3 Classes (mAP50-95 Mask)

ClassemAP50mAP50-95PrécisionRecallImages
french_bean0.9510.8830.9280.894704
onion0.8450.7540.8120.798881
rice0.8230.7510.7890.801464

Analyse : Classes avec formes géométriques simples (french_bean = cylindres, onion = sphères/rondelles) sont mieux segmentées.

Bottom 3 Classes (mAP50-95 Mask)

ClassemAP50mAP50-95PrécisionRecallImages
pork0.4120.1680.5230.389474
chicken_duck0.5340.2890.6120.507848
sauce0.5890.3090.6480.556818

Hypothèses explicatives :

  1. Texture complexe : La viande (pork, chicken_duck) a une texture hétérogène (fibres, graisses, cuisson variable)
  2. Formes irrégulières : Sauce liquide sans contours définis
  3. Confusions inter-classes : Poulet vs porc (similarité visuelle haute)

Distribution des Erreurs (ancien modèle, 12 classes)

Matrice de confusion (YOLOv8m FoodSeg103, test set) :

Matrice de confusion

Figure 1 : Matrice de confusion du modèle YOLOv8m-seg sur le test set

Matrice de confusion normalisée

Figure 2 : Matrice de confusion normalisée (pourcentages)

Top confusions identifiées :

Vraie classe vs Prédiction (top confusions)

chicken_duck ─► pork (34 erreurs) # Textures similaires
steak ─► pork (28 erreurs) # Viandes rouges confondues
sauce ─► background (21 erreurs) # Zones liquides non détectées
mixed_vegetables ─► french_bean (18 erreurs) # Légumes verts agrégés

Cause principale : Manque de features discriminantes pour textures fines (résolution 640×640 insuffisante pour détails micro-texturaux).

Courbes d'Apprentissage (ancien modèle, 12 classes)

Évolution des métriques sur 200 époques :

Courbes d'apprentissage

Figure 3 : Évolution des métriques d'entraînement et de validation (losses, mAP, précision, recall) sur 200 époques

Observations clés :

  • Convergence rapide (0-50 époques) : Transfer learning efficace depuis COCO
  • Plateau (150-200 époques) : Modèle atteint capacité maximale pour ce dataset
  • Pas d'overfitting visible : Gap train/val <3% (régularisation augmentations efficace)
  • Best epoch: 187 (mAP50=0.6250)
  • Early stopping: Non déclenché (patience=50, dégradation max=13 époques)

Courbes de Performance (ancien modèle, Segmentation)

Courbe Précision-Recall (Mask) :

PR Curve Mask

Figure 4 : Courbe Précision-Recall pour la segmentation par classe

Courbe F1-Score (Mask) :

F1 Curve Mask

Figure 5 : Courbe F1-Score en fonction du seuil de confiance

Courbes Précision et Recall individuelles :

P Curve Mask

Figure 6 : Courbe de précision par classe

R Curve Mask

Figure 7 : Courbe de recall par classe

Exemples Visuels de Prédictions (ancien modèle, 12 classes)

Comparaison Labels vs Prédictions (Batch de validation) :

Validation Batch 0 - Labels

Figure 8 : Ground truth (annotations réelles) - Batch de validation 0

Validation Batch 0 - Prédictions

Figure 9 : Prédictions du modèle - Batch de validation 0

Observations visuelles :

  • Les masques de segmentation prédits sont généralement bien alignés avec les ground truth
  • Certaines classes comme french_bean et onion montrent une excellente qualité de segmentation
  • Les classes avec textures complexes (pork, chicken_duck) présentent des contours moins précis
  • Le modèle gère bien les scènes multi-objets avec plusieurs aliments par image