Report Template
Report Template
Pokedex
(Reconnaissance des espèces de
Pokémon à l’aide des réseaux de
neurones convolutifs (CNN))
Réalisé par :
Encadré par :
M. Otmani Ilyass
Mme. El Ouazzani Rajae
I
Résumé
Le Pokedex est une encyclopédie numérique utilisée par les dresseurs de l’univers Po-
kémon pour cataloguer et identifier diverses espèces de Pokémon. Dans ce projet, nous
visons à développer un système inspiré de Pokedex utilisant des réseaux de neurones
convolutifs (CNN) pour reconnaître et classer différentes espèces de Pokémon à partir
d’images. L’objectif principal de ce projet est de créer un modèle CNN robuste capable
d’identifier avec précision les espèces de Pokémon à partir d’images. Le modèle sera formé
sur un ensemble de données contenant des images de diverses espèces de Pokémon et sera
évalué en fonction de sa capacité à classer correctement les images.
II
Table des matières
1 Introduction Generale 1
1.1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Cahier de Charge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.1 Apercu du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.2 Contraintes du projet . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3.3 Rôles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Outils Utilisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4.1 Google Collab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4.2 Jupyter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4.3 Kaggle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
III
Table des matières
3.3.2 TensorFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3.3 Keras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Bibliotheque 31
A Liens 32
IV
Table des figures
1.1 Pokedex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Google Collab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Jupyter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Kaggle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
V
Liste des tableaux
VI
Liste des sigles et acronymes
ML Machine Learning
CV Computer Vision
VII
Chapitre 1
Introduction Generale
1
Chapitre 1. Introduction Generale
1.1 Contexte
Dans le vaste univers des jeux Pokémon, le Pokedex occupe une place emblématique.
Il s’agit d’un outil incontournable pour les dresseurs, leur permettant de recueillir des
informations sur les différentes espèces de Pokémon qu’ils rencontrent. Traditionnellement,
le Pokedex consiste en un appareil électronique doté d’une base de données intégrée.
Notre projet vise à recréer cette fonctionnalité en utilisant des technologies modernes de
reconnaissance d’images et de traitement de données
1.2 Objectif
L’objectif principal de ce projet est de développer un système de reconnaissance de
Pokémon inspiré du Pokedex, en utilisant des réseaux de neurones convolutionnels (CNN).
Ce système devra être capable d’identifier automatiquement les différentes espèces de Po-
kémon à partir d’images fournies en entrée. Cette reconnaissance automatique permettra
aux utilisateurs de gagner du temps lors de l’identification des Pokémon et offrira une
expérience immersive similaire à celle du Pokedex dans l’univers Pokémon.
2
Chapitre 1. Introduction Generale
Le projet est structuré en plusieurs étapes cruciales pour atteindre l’objectif de dé-
veloppement du système de reconnaissance de Pokémon. Ces étapes sont conçues pour
assurer une mise en œuvre méthodique et efficace du projet, en commençant par l’ins-
tallation et la configuration des outils nécessaires et en progressant vers la conception
et l’entraînement du modèle de reconnaissance. La première étape du projet implique
l’installation et la configuration des outils nécessaires à la manipulation des données et
à l’entraînement des réseaux de neurones convolutionnels. La deuxième étape consiste
à collecter un ensemble de données diversifié comprenant des images représentant diffé-
rentes espèces de Pokémon. Dans cette étape centrale du projet, un modèle de réseau de
neurones convolutionnels (CNN) est conçu et entraîné à reconnaître les différentes espèces
de Pokémon à partir des images fournies. La dernière étape du projet implique des tests
approfondis pour évaluer les performances du système de reconnaissance de Pokémon.
1.3.3 Rôles
3
Chapitre 1. Introduction Generale
1.4.2 Jupyter
Jupyter Notebook, une plateforme interactive, permet d’écrire et d’exécuter du code
Python directement dans votre navigateur, sans nécessiter de configuration préalable. Cet
environnement offre un accès convivial et gratuit, que vous soyez étudiant, data scientist,
4
Chapitre 1. Introduction Generale
1.4.3 Kaggle
Kaggle, une plateforme leader en science des données et en apprentissage automa-
tique, offre un espace collaboratif où vous pouvez écrire et exécuter du code de manière
transparente. Avec Kaggle, aucune configuration complexe n’est nécessaire. Kaggle nous
a permet de trouver notre dataset utilisée. Il est particulièrement adapté aux tâches telles
que l’apprentissage automatique, l’analyse de données et à des fins éducatives.
5
Chapitre 2
6
Chapitre 2. Analyse exploratoire des données (AED)
2.1 Dataset
Le jeu de données comprend de multiples images de chaque Pokémon de la première
génération. Avec plusieurs représentations disponibles pour chaque créature, le jeu de
données offre un inventaire visuel complet de ces personnages emblématiques avec touts
caracteristque qui existe. Du célèbre Pikachu au flamboyant Salamèche, chaque Pokémon
est capturé dans différentes poses, expressions et environnements, fournissant une res-
source riche pour l’analyse et l’exploration. Ces données diverses mettent en valeur les
caractéristiques distinctives de chaque Pokémon et offrent des insights sur leurs traits et
personnalités individuelles.
Certainly ! Below is an extended version of the table with all the columns you provided :
7
Chapitre 2. Analyse exploratoire des données (AED)
8
Chapitre 2. Analyse exploratoire des données (AED)
9
Chapitre 2. Analyse exploratoire des données (AED)
Cette Figure represente des exemples d’Images qui existe dans notre data set, une
variete d’image prise d’animation, jeux, jeux de cartes, etc....
10
Chapitre 2. Analyse exploratoire des données (AED)
Cette Figure represente la quantite de chaque Pokemon qui existe dans notre data-
set, comme en voyant il existe un equilibre sauf des exeptions, donc cela n’influence pas
beacoup notre resultat.
11
Chapitre 2. Analyse exploratoire des données (AED)
2.3.2 Pandas
Dans notre contexte spécifique, nous avons exploité les fonctionnalités de la biblio-
thèque Python Pandas pour mener une analyse, une manipulation et une modélisation
efficaces des données. Pandas a fourni un ensemble d’outils polyvalent et convivial pour
traiter les données structurées, nous permettant d’explorer, nettoyer et transformer les
ensembles de données avec facilité. La structure DataFrame de la bibliothèque a facilité
l’organisation et la manipulation transparentes des données, tandis que ses fonctions et
méthodes ont simplifié les opérations courantes sur les données. Cette manipulation effi-
cace des données au sein du cadre de Pandas a contribué au succès de nos projets de science
des données et d’apprentissage automatique, nous permettant de prendre des décisions
éclairées et d’obtenir des insights significatifs à partir de nos ensembles de données.
2.3.3 Plotly
Dans notre contexte particulier, nous avons tiré parti des fonctionnalités de la biblio-
thèque Plotly en Python pour créer des visualisations graphiques interactives et infor-
matives. Plotly a offert un ensemble d’outils robustes pour la représentation visuelle des
données, permettant la création de graphiques interactifs, de diagrammes et de tableaux
de bord dynamiques. L’intégration aisée avec Python a facilité la génération de graphiques
esthétiques, tout en offrant une interactivité accrue pour explorer et comprendre les ten-
dances dans nos ensembles de données. L’utilisation de Plotly a donc été cruciale pour la
12
Chapitre 2. Analyse exploratoire des données (AED)
2.3.4 Mathplotlib
nous avons utilisé la bibliothèque Matplotlib en Python pour créer des visualisations
graphiques claires et informatives. Matplotlib offre un ensemble complet d’outils pour la
création de graphiques statiques, de diagrammes et d’illustrations visuelles. En exploitant
les fonctionnalités de Matplotlib, nous avons pu générer des représentations visuelles de
nos données, facilitant la compréhension des structures, des tendances et des relations au
sein de nos ensembles de données. L’utilisation de Matplotlib a joué un rôle essentiel dans
la communication visuelle de nos résultats en science des données et en apprentissage
automatique, contribuant ainsi à une interprétation visuelle précise et à une présentation
efficace de nos découvertes.
2.4 Conclusion
En résumé de cette analyse exploratoire des données (AED), nous avons examiné en
détail un jeu de données comprenant des images des Pokemons. L’analyse a été réalisée en
13
Chapitre 2. Analyse exploratoire des données (AED)
utilisant des outils tels que Python, Pandas, Plotly, permettant de visualiser des tendances
et des relations significatives entre les caractéristiques des Images.
14
Chapitre 3
15
Chapitre 3. Sélection des Caractéristiques et Création des Architectures
3.1 Pre-Processing
Dans cette partie, nous mentionnerons toutes les valeurs que nous avons finalement
choisi de conserver et expliquerons pourquoi et comment.
3.2 Architectures
Après le prétraitement de nos données, nous avons sélectionné trois architectures
simples et bien connues pour leur efficacité dans des tâches de classification, comme nous
le détaillerons ultérieurement.
16
Chapitre 3. Sélection des Caractéristiques et Création des Architectures
3.2.2 AlexNet
17
Chapitre 3. Sélection des Caractéristiques et Création des Architectures
3.2.3 MobileNetV2
3.2.4 Metrics
Les métriques choisies, à savoir la validation croisée (validation), la précision simple
(simple accuracies) et le Loss, et les matrices de confusion, sont cruciales pour évaluer la
performance et la fiabilité d’un modèle prédictif.
La validation croisée est une technique essentielle qui permet d’évaluer la robustesse
d’un modèle en le testant sur plusieurs sous-ensembles de données. Cela garantit que
18
Chapitre 3. Sélection des Caractéristiques et Création des Architectures
le modèle généralise bien aux nouvelles données et n’est pas surajusté à un ensemble
particulier.
La précision simple, ou simple accuracies, mesure la capacité globale du modèle à
classer correctement les instances. C’est un indicateur direct de l’efficacité générale du
modèle, exprimé en pourcentage, et il est particulièrement utile pour évaluer la perfor-
mance globale du modèle.
Les matrices de confusion fournissent une vision détaillée des performances du modèle
en révélant le nombre d’instances correctement classées ainsi que les erreurs de classifica-
tion. Elles sont particulièrement utiles pour évaluer la capacité du modèle à distinguer les
différentes classes et à identifier les faux positifs et les faux négatifs.
19
Chapitre 3. Sélection des Caractéristiques et Création des Architectures
3.3.2 TensorFlow
TensorFlow est une bibliothèque open-source d’apprentissage automatique développée
par Google. Nous l’avons utilisée pour créer et entraîner des modèles de réseaux neuro-
naux, notamment pour des tâches telles que la classification, la régression et le traitement
du langage naturel. TensorFlow offre une grande flexibilité et des performances élevées,
ce qui en fait un choix populaire pour de nombreux projets d’apprentissage automatique
et d’intelligence artificielle.
3.3.3 Keras
Keras est une API open-source d’apprentissage profond écrite en Python. Elle offre
une interface simple et cohérente pour la création et l’entraînement de modèles de réseaux
neuronaux. Nous avons utilisé Keras en conjonction avec TensorFlow pour concevoir et
développer des architectures de réseaux neuronaux, facilitant ainsi le processus de déve-
loppement et d’expérimentation avec différents modèles.
20
Chapitre 3. Sélection des Caractéristiques et Création des Architectures
3.4 Conclusion
Dans ce chapitre, nous avons examiné en détail le processus de sélection des caracté-
ristiques, la création des architectures de modèles, ainsi que les outils utilisés tout au long
du projet.
En ce qui concerne la sélection des caractéristiques, nous avons expliqué notre approche
basée sur la suppression des fonctionnalités fortement corrélées et leur impact insuffisant
sur la variable cible. Cette étape a permis d’améliorer la généralisation du modèle prédictif
en atténuant les problèmes potentiels tels que la multicolinéarité et le surajustement.
En ce qui concerne les architectures de modèles, nous avons présenté trois options
différentes : la custom architecture, AlexNet et MobileNetV2. Chacune de ces architectures
a ses propres caractéristiques et avantages, adaptés à différents types de problèmes de
classification d’images.
En conclusion, ce chapitre a couvert des aspects cruciaux de la préparation des don-
nées et de la conception des modèles dans notre projet. La combinaison d’une sélection
de caractéristiques judicieuse, de architectures de modèles bien choisies et d’outils puis-
sants a permis de construire un cadre solide pour la construction d’un modèle prédictif
performant.
21
Chapitre 4
Comparaison et Choix
d’Architecture Final
22
Chapitre 4. Comparaison et Choix d’Architecture Final
4.1 Architecures
On rappel des trois Architecure prise pour entraînés sur l’ensemble de données sont :
Custom CNN
AlexNet
MobileNet v2
Ces Architecures ont été formés dans le but de prédire avec précision le type et nom
du Pokemon. Leur performance sera évaluée à l’aide de mesures d’évaluation appropriées
pour comparer leur efficacité dans la prédiction des résultats des élèves.
4.2.2 AlexNet
Total params : 58,875,381
Params entraînables : 58,875,381
Params non entraînables : 0
23
Chapitre 4. Comparaison et Choix d’Architecture Final
4.2.3 MobileNetV2
Total params : 2,990,293
Params entraînables : 732,309
Params non entraînables : 2,257,984
MobileNetV2 présente un nombre total de paramètres relativement faible par rapport
aux autres architectures, ce qui en fait un choix attrayant pour les environnements à
ressources limitées comme les appareils mobiles. Les paramètres non entraînables, qui
représentent une grande partie des paramètres totaux, sont précalculés et figés pendant
l’entraînement, ce qui contribue à réduire la charge de calcul tout en maintenant des
performances acceptables. Pour le projet Pokédex, cela signifie une mise en œuvre efficace
sur des appareils mobiles avec des contraintes de mémoire et de calcul.
24
Chapitre 4. Comparaison et Choix d’Architecture Final
25
Chapitre 4. Comparaison et Choix d’Architecture Final
Les graphiques ci-dessus illustrent les performances de précision des trois architectures
sur les ensembles d’entraînement et de validation. On observe une augmentation de la
précision avec l’entraînement pour chaque modèle, bien que MobileNet maintienne une
précision globalement supérieure sur l’ensemble de données de validation.
Interprétation :
Les résultats indiquent que MobileNet présente la meilleure précision à la fois sur les
données d’entraînement et de validation, suivie de près par Custom CNN. Cependant, il
est important de noter que même si MobileNet a la meilleure précision, cela peut être
dû à un surajustement (overfitting) sur l’ensemble de données d’entraînement. L’architec-
ture Custom CNN suit de près avec une précision légèrement inférieure, mais elle semble
mieux généraliser aux données de validation, ce qui suggère qu’elle est moins susceptible
de surajuster. AlexNet présente une précision légèrement inférieure aux deux autres archi-
tectures, et elle semble également souffrir de surajustement, avec une différence notable
entre les performances sur les ensembles d’entraînement et de validation.
Classement :
1. MobileNet
2. Custom CNN
3. AlexNet
Il est important de noter que le classement est basé sur la précision observée sur
l’ensemble de validation, mais il est crucial de considérer d’autres facteurs tels que la
complexité du modèle, le temps d’entraînement et les ressources nécessaires. Par exemple,
bien que MobileNet ait la meilleure précision, il peut être plus complexe et nécessiter plus
de ressources de calcul par rapport aux autres architectures, ce qui peut être un facteur
limitant dans certains contextes d’application. De même, Custom CNN offre un bon com-
promis entre précision et efficacité, ce qui en fait un choix attrayant dans de nombreux
cas. Enfin, AlexNet, bien qu’elle soit moins performante dans ce contexte particulier, peut
toujours être utile dans d’autres applications ou avec des optimisations supplémentaires.
26
Conclusion et perspectives
27
Chapitre 4. Comparaison et Choix d’Architecture Final
4.5 Problématique
La problématique de ce projet était de développer un système de reconnaissance de
Pokémon à l’aide de réseaux de neurones convolutionnels (CNN), capable d’identifier
automatiquement les différentes espèces de Pokémon à partir d’images.
4.6 Objectif
L’objectif principal était de créer un modèle de CNN performant capable de reconnaître
avec précision les Pokémon de la première génération à partir d’images, tout en explorant
différentes architectures et techniques pour améliorer les performances du modèle.
4.7 Vision
Notre vision était de développer un outil pratique et ludique qui permettrait aux uti-
lisateurs de scanner des images de Pokémon et d’obtenir instantanément des informations
sur ces créatures, telles que leur nom, leur type et leurs statistiques.
4.8 Dataset
Le dataset utilisé comprenait des images de Pokémon de la première génération, avec
des annotations correspondantes pour chaque espèce. Ces données ont été collectées à
partir de diverses sources en ligne et ont été prétraitées pour être utilisées dans le modèle
de CNN.
28
Chapitre 4. Comparaison et Choix d’Architecture Final
4.11 Perspectives
Pour les perspectives futures, nous envisageons plusieurs axes de développement afin
d’améliorer et d’élargir les fonctionnalités de notre projet de Pokedex basé sur CNN :
— Amélioration de la précision : Nous chercherons à affiner davantage notre
modèle en explorant des techniques avancées de prétraitement d’images, d’optimi-
sation des hyperparamètres et de modification des architectures CNN pour obtenir
une précision encore plus élevée dans la reconnaissance des Pokémon.
— Développement d’une application mobile : Notre objectif est de transformer
notre modèle de reconnaissance de Pokémon en une application mobile conviviale,
permettant aux utilisateurs de scanner facilement des images de Pokémon à l’aide
de leurs smartphones ou tablettes. Cette application fournira des informations
détaillées sur chaque Pokémon identifié, telles que ses statistiques, ses mouvements
et son évolution.
— Intégration de fonctionnalités supplémentaires : Nous prévoyons d’ajouter
des fonctionnalités supplémentaires à notre application, telles que la possibilité de
rechercher des Pokémon par type, région ou génération, ainsi que des outils de suivi
et de gestion des collections de Pokémon pour les joueurs.
— Expansion du dataset : Nous continuerons à enrichir notre dataset en ajoutant
des images de Pokémon supplémentaires provenant de différentes sources et en
incluant des annotations plus détaillées pour améliorer la diversité et la qualité des
données.
— Collaboration avec la communauté : Nous encouragerons la collaboration avec
la communauté des fans de Pokémon en permettant aux utilisateurs de contribuer
29
Chapitre 4. Comparaison et Choix d’Architecture Final
30
Bibliotheque
31
Bibliotheque A
Liens
32