Skip to content

MatisAgr/IA-ChessPicture

Repository files navigation

Reconnaissance de Pions d'Échecs avec IA

Ce projet utilise des images pour entraîner des modèles d'intelligence artificielle capables de reconnaître différents pions d'échecs (roi, reine, cavalier, etc.). Le projet exploite deux types de modèles : un Perceptron Multicouche (MLP) et un Arbre de Décision.
Le but est que notre IA puisse reconnaitre les icones numérique des pions d'échec à l'aide des connaissances sur des images de pions du monde réel.

Exemple :

Image Réelle (Train) Icone numérique (Test) Réponse attendue
00000002 96 Tour

Possibilité de choisir pour le sklearn, la verison de traitement des images en couleur ou en nuance de gris.

Version PyTorch

Une version de ce projet est également disponible en utilisant PyTorch pour une meilleure précision, efficacité et des paramètres optimisés pour les modèles CNN. De plus à l'aide de la librairie transforms, j'ai pu faire des manpulations sur les images tel que :

  • Rotation aléatoire
  • Transformation affine
  • Normalise les couleurs de l'image (RVB)
  • Convertit l'image en tenseur (tableau multidimensionnel PyTorch)

Structure du Projet

  • ChessDataset/Train/ : Répertoire contenant les images d'entraînement organisées par classe (par exemple : Roi, Reine, etc.).
  • ChessDataset/Test/ : Répertoire contenant les images de test organisées par classe.

*(Le nom des dossiers sert pour donner des noms aux classes)

À savoir que les images de Train sont des images dans le monde réel de vraies pieces en plus des dessins,
sachant que les images de Test sont des icones plus courrament utilisé dans le monde numérique.

Prérequis

Avant d'exécuter le projet, assurez-vous d'installer les bibliothèques nécessaires avec la commande suivante :

pip install scikit-learn matplotlib pillow

Étapes du Projet

  1. Choisir le projet sklearn_grey / sklearn_color / torch
  2. Chargement des données : Les images sont chargées et prétraitées (redimensionnement à 150x150, conversion RGB ou L, normalisation).
  3. Entraînement :
    • Modèle MLP : Un perceptron multicouche est entraîné pour classifier les pions.
    • Modèle Arbre de Décision : Une alternative plus simple pour la classification.
  4. Évaluation :
    • Précision et rapport de classification sur l'ensemble de validation.
    • Précision et rapport sur l'ensemble de test.
  5. Visualisation : Affichage des prédictions pour un échantillon d'images.

Exécution du Code

  1. Charger et prétraiter les données : Le code charge les images depuis les répertoires et les redimensionne pour le traitement.

  1. Entraîner le modèle : Le modèle MLPClassifier est utilisé avec :
    • 512, 256, 128 neurones par couche cachée.
    • Taux d'apprentissage : 0.0001
    • Optimisation : SGD

Vous pouvez également entraîner un Arbre de Décision comme alternative.

  1. Évaluer le modèle : Les précisions sont affichées pour les ensembles de validation et de test.

  1. Afficher les résultats :

Des images de l'ensemble de test sont affichées avec leurs prédictions.

Exemple d'Affichage des Prédictions

Le programme affiche un sous-ensemble d'images de test, avec les étiquettes réelles et prédites :

  • Exemple : grey color

Visualisation de l'Arbre de Décision

L'arbre de décision est visualisé pour analyser les règles de classification apprises :

output

Améliorations Futures

  • Ajout d'augmentation de données pour rendre le modèle plus robuste.
  • Optimisation des hyperparamètres.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published