Detect. chiffre

Reconnaissance de Chiffres Dessinés à la Main

Création de l'interface graphique avec tkinter

La première étape consistait à créer une interface graphique où l'utilisateur peut dessiner un chiffre. Pour cela, j’ai utilisé tkinter, une bibliothèque graphique intégrée à Python. L'application permet à l'utilisateur de dessiner en utilisant la souris. J’ai également ajouté des boutons pour effacer la grille et prédire le chiffre dessiné.

Prétraitement de l'image

Une fois le chiffre dessiné, il faut convertir cette image en un format approprié pour le modèle de CNN. Cela implique de redimensionner l'image à 28x28 pixels, de la convertir en niveaux de gris et de normaliser les valeurs des pixels. Il ne fallait pas non plus oublier d’inverser les couleurs de l'image pour correspondre aux données d'entraînement du modèle (chiffres blancs sur fond noir).

Entraînement du modèle de CNN

Pour la reconnaissance des chiffres, j’ai utilisé un réseau de neurones convolutif (voir Guide CNN). Le modèle a été entraîné sur le jeu de données MNIST, qui contient des milliers d'exemples de chiffres manuscrits. Le modèle comprend plusieurs couches de convolution et de pooling, suivies de couches entièrement connectées pour la classification. J’ai entraîné ce modèle en utilisant TensorFlow, puis je l’ai sauvegardé dans un fichier pour une utilisation ultérieure.

Intégration du modèle dans l'application

L'étape suivante a été de charger le modèle entraîné dans notre application tkinter. Lorsque l'utilisateur appuie sur le bouton "Prédire", l'image dessinée est prétraitée et passée au modèle, qui prédit alors le chiffre dessiné. La prédiction est ensuite affichée à l'utilisateur.

Conclusion

Ce projet a été une excellente opportunité pour découvrir le fonctionnement des Réseaux de Neurones Convolutifs (CNN), et pour renforcer mes compétences en développement d'interfaces graphiques. En créant cette application, j’ai appris à prétraiter des images, à entraîner un modèle de CNN et à intégrer ce modèle dans une application interactive. Ce type de projet peut être étendu pour reconnaître des lettres, des formes ou même des dessins plus complexes, offrant de nombreuses possibilités pour des projets futurs.

Voir Github

Technologies utilisées : TensorFlow, Tkinter, Python, CNN

Projet réalisé en juin 2024

Image de rawpixel.com sur Freepik