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 |
---|---|---|
Tour |
Possibilité de choisir pour le sklearn, la verison de traitement des images en couleur ou en nuance de gris.
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)
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.
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
- Choisir le projet sklearn_grey / sklearn_color / torch
- Chargement des données : Les images sont chargées et prétraitées (redimensionnement à 150x150, conversion RGB ou L, normalisation).
- 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.
- Évaluation :
- Précision et rapport de classification sur l'ensemble de validation.
- Précision et rapport sur l'ensemble de test.
- Visualisation : Affichage des prédictions pour un échantillon d'images.
- Charger et prétraiter les données : Le code charge les images depuis les répertoires et les redimensionne pour le traitement.
- 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.
- Évaluer le modèle : Les précisions sont affichées pour les ensembles de validation et de test.
- Afficher les résultats :
Des images de l'ensemble de test sont affichées avec leurs prédictions.
Le programme affiche un sous-ensemble d'images de test, avec les étiquettes réelles et prédites :
L'arbre de décision est visualisé pour analyser les règles de classification apprises :
- Ajout d'augmentation de données pour rendre le modèle plus robuste.
- Optimisation des hyperparamètres.