Reconnaissance de Chiffres Manuscrits

Application interactive de prédiction de chiffres manuscrits à partir d’une interface de dessin, entraînée sur MNIST avec un modèle CNN.

Deep Learning, Computer Vision

Projet: Personnel

Septembre, 2025

Durée: 3 mois

Handwritten Digit Recognizer est plus qu'une simple application. Elle utilise un réseau neuronal convolutif (CNN), une technologie de pointe en deep learning, pour fournir des prédictions précises et en temps réel de chiffres manuscrits. Elle prend l'image que vous dessinez, l'analyse, et génère intelligemment une prédiction sans jamais mal interpréter les données.

Technologies et compétences mises en œuvre

Ce projet a été une excellente opportunité d'appliquer et de consolider des compétences clés en ingénierie de l'IA et en développement logiciel :

  • Ingénierie du Deep Learning : J'ai conçu et mis en œuvre l'architecture CNN en utilisant TensorFlow/Keras pour l'entraînement et la gestion du modèle.

  • Vision par ordinateur : J'ai appliqué des techniques d'augmentation de données avec OpenCV pour améliorer la robustesse du modèle, transformant les chiffres manuscrits en un format que le modèle peut comprendre.

  • Déploiement et MLOps : J'ai déployé l'application sur Streamlit Community Cloud, en gérant les dépendances (via requirements.txt) et en assurant une exécution sans accroc.

  • Développement Full-Stack (simplifié) : J'ai développé l'interface utilisateur avec Streamlit, géré la logique de l'application et le traitement d'images en temps réel, démontrant ma capacité à construire une application web complète de bout en bout.

  • Contrôle de version : J'ai utilisé Git et GitHub pour le contrôle de version et la collaboration de projet, garantissant un processus de développement bien documenté et traçable.


Méthodologie et processus de développement

Le cœur du projet est une méthodologie de développement axée sur la reproductibilité et l'efficacité.

  • Développement réactif avec marimo : Le notebook d'entraînement du modèle a été conçu avec marimo. Contrairement aux notebooks traditionnels, marimo utilise un modèle réactif qui exécute automatiquement les cellules de code dans le bon ordre lorsque les variables changent. Cette approche a permis d'éviter les erreurs d'état du code et de garantir que toutes les étapes d'entraînement et d'évaluation étaient parfaitement reproductibles.

  • Conception et entraînement : Le modèle a été entraîné sur le célèbre jeu de données MNIST, composé de 60 000 images de chiffres manuscrits. J'ai utilisé des techniques avancées pour garantir sa robustesse, notamment :

    • L'augmentation de données (data augmentation) : Pour exposer le modèle à des variations réalistes des chiffres (rotations, décalages).

    • Le Dropout : Une méthode de régularisation pour prévenir le sur-apprentissage.

    • L'arrêt précoce (early stopping) : Pour optimiser l'entraînement et trouver le meilleur point de convergence.

  • Évaluation rigoureuse : Une analyse approfondie a été menée pour valider la performance du modèle. Une matrice de confusion a été utilisée pour identifier les erreurs spécifiques, révélant une précision finale sur les données de test de plus de 99 %.

  • Transition et déploiement : Le notebook a ensuite été exporté en un fichier standard (.ipynb) pour une visualisation et un partage faciles sur GitHub, puis le modèle entraîné a été utilisé pour alimenter l'application web.


Démo en direct et code source

Pour interagir avec l'application et en apprendre davantage sur mes compétences, vous pouvez :

  1. Tester l'application en direct : Lien vers l'application en direct sur Streamlit Community Cloud

  2. Consulter le code source : Lien vers le dépôt GitHub du projet

N'hésitez pas à me contacter si vous avez des questions ou si vous souhaitez en savoir plus sur les détails techniques du projet.



Tags

Python, Marimo, CNN, MNIST, Deep Learning, Keras, Streamlit

You might also like

SmartCity - Data Platform for Urban Intelligence

Data Engineering, Open Data

SmartCity - Data Platform for Urban Intelligence

Data Engineering, Open Data

SRAXC : Un Chatbot Expert sur mon Portfolio

Natural Language Processing (NLP), MLOps

SRAXC : Un Chatbot Expert sur mon Portfolio

Natural Language Processing (NLP), MLOps

Multilingual Text Summarizer with Transformers

Natural Language Processing (NLP), MLOps

Multilingual Text Summarizer with Transformers

Natural Language Processing (NLP), MLOps

Métro Stockholm - Monitoring Énergétique

Transport & Énergie, Maintenance Prédictive

Métro Stockholm - Monitoring Énergétique

Transport & Énergie, Maintenance Prédictive

Create a free website with Framer, the website builder loved by startups, designers and agencies.