Portefolio

Maksim Déry

Github

Kaggle original

Kaggle Augmenté


Ce projet consiste à réaliser de l’augmentation de données (data augmentation) sur un jeu d’images de chats et de chiens afin d’améliorer la performance et la robustesse d’un modèle de classification d’images.

L’objectif principal est d’augmenter artificiellement la taille et la diversité du dataset sans devoir collecter de nouvelles images. Cette approche permet de réduire le surapprentissage (overfitting) et d’améliorer la capacité de généralisation du modèle.


Le projet permet :

  • de générer automatiquement de nouvelles images à partir des images existantes,
  • d’appliquer différentes transformations telles que rotations, inversions, zooms et variations de luminosité,
  • d’équilibrer les classes afin d’éviter les biais dans l’entraînement,
  • de préparer les données pour l’entraînement d’un réseau de neurones convolutionnel (CNN),
  • d’analyser l’impact de l’augmentation de données sur les performances du modèle.

Ce projet met l’accent sur la préparation des données, une étape essentielle en apprentissage automatique, ainsi que sur les bonnes pratiques pour entraîner des modèles de vision par ordinateur fiables.


Compromis de performance pour les systèmes matériels plus anciens

Le projet est conçu pour être matériel-agnostique grâce à un mécanisme de détection dynamique du périphérique de calcul. Au démarrage, l’application vérifie la disponibilité d’un GPU compatible CUDA ainsi que la capacité de calcul supportée par l’environnement PyTorch/TensorFlow.

Si un GPU compatible est détecté, le modèle est automatiquement exécuté sur l’accélérateur matériel afin d’optimiser les performances d’entraînement et d’inférence. Dans le cas contraire (GPU absent, incompatible ou mal configuré), le pipeline bascule de manière transparente vers l’exécution CPU.

Cette stratégie de fallback automatique CPU garantit :

  • la portabilité du projet sur tout système disposant de Python,
  • la robustesse face aux configurations matérielles hétérogènes,
  • l’absence d’échec d’exécution lié à CUDA,
  • une dégradation contrôlée des performances plutôt qu’une interruption.

Bien que l’exécution CPU entraîne des temps de calcul plus élevés, elle assure la continuité fonctionnelle du programme sur des environnements dépourvus d’accélération GPU.



Technologies utilisées

  • Langage : Python
  • Bibliothèques : NumPy, OpenCV / PIL, Matplotlib
  • Machine Learning : PyTorch / TensorFlow (selon expérimentation)
  • Techniques : Data augmentation, normalisation, préparation de datasets

Original(En haut) Vs Augmentée (En bas)