0% ont trouvé ce document utile (0 vote)
55 vues49 pages

Stage 2 Annee

Transféré par

youbomar9
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
55 vues49 pages

Stage 2 Annee

Transféré par

youbomar9
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Ecole Nationale Supérieure d’Informatique et d’Analyse des

Systèmes - RABAT

Business Intelligence & Analytics

Rapport de Projet de stage de deuxième année


Classement des Images avec Deep learning

Encadré par :

M. SEDDIK Omar
Réalisé par :
Membre de jury :
YOUB Omar
Pr. EL MANAOUR Abdellah
M. ABBAD Zakaria

Année universitaire 2023/2024


Classement des images en utilisant Deep Learning

Remerciement :

Je tiens à exprimer ma profonde gratitude à toutes les personnes qui ont contribué au déve-
loppement de ce projet. Je souhaite tout particulièrement remercier M. Omar SEDDIK, dont
l’encadrement et les conseils ont été essentiels tout au long de la conception de ce projet. Ses
remarques éclairantes et le temps généreusement consacré ont grandement enrichi ma démarche.

Je tiens également à remercier l’équipe de AIKINI DE MARRAKECH pour leur


accueil chaleureux et leur aide précieuse. Leur professionnalisme et leur esprit de collaboration
ont rendu mon stage non seulement instructif mais aussi très agréable.

J’exprime également ma reconnaissance envers mon chef de filière, M. Yasser El-Madani


Elalami, ainsi que mes professeurs et les membres du jury, qui ont tous manifesté leur soutien
et leur volonté d’évaluer mon travail de manière constructive.

Mes remerciements s’étendent également à toute l’équipe pédagogique de l’École Na-


tionale Supérieure d’Informatique et d’Analyse des Systèmes pour leur enseignement
de qualité et leurs conseils avisés qui ont contribué au succès de ce projet. Leur soutien a non
seulement facilité mon parcours académique mais a aussi profondément influencé mon dévelop-
pement professionnel et personnel.

Enfin, je remercie mes camarades et tous ceux qui ont participé de près ou de loin à la
réalisation de ce projet sur les générateurs de légendes pour images, une initiative qui marque
une étape significative dans mes études et ma future carrière dans le domaine de l’intelligence
artificielle et du traitement du langage naturel.

Page 1
Classement des images en utilisant Deep Learning

Résumé :

À l’ère numérique actuelle, les interactions clients et la gestion des questions fréquentes
posent des défis importants pour les entreprises. L’automatisation de ces interactions par la
création de chatbots offre une solution efficace pour améliorer l’expérience utilisateur et réduire
la charge de travail des équipes de support.

Ce projet se concentre sur le développement d’un chatbot capable de répondre aux ques-
tions fréquentes des clients et sur l’intégration de ce chatbot dans une application web utilisant
[Link] et Strapi. Le projet comporte deux volets principaux :

1. Création du Chatbot : Développement d’un chatbot en utilisant Voiceflow et Botpress.


Voiceflow a été utilisé pour concevoir le flux de conversation et les dialogues du chatbot, tandis
que Botpress a été employé pour gérer l’intelligence artificielle et le traitement du langage
naturel (NLP) afin de comprendre et répondre aux questions des clients de manière précise et
cohérente.
2. Intégration dans une Application Web : Développement d’une application web avec
[Link] et Strapi, suivie de l’intégration du chatbot dans cette application pour offrir une in-
terface utilisateur interactive et conviviale.

En explorant les technologies de traitement du langage naturel et les frameworks modernes


de développement web, ce projet vise à améliorer l’efficacité des interactions clients et à enrichir
l’expérience utilisateur. Les compétences acquises au cours de ce stage incluent le développe-
ment web, l’intégration d’API, et l’application des techniques NLP dans des contextes réels.

Les travaux entrepris mettent en lumière l’importance de l’innovation technologique dans


la transformation des services clients. En intégrant des chatbots capables de comprendre et de
répondre aux besoins des clients, nous ouvrons la voie à des interactions plus intuitives et per-
sonnalisées, améliorant ainsi la satisfaction et l’engagement des utilisateurs. De plus, ce projet
envisage des améliorations futures telles que l’ajout de fonctionnalités avancées au chatbot et
l’expansion de l’application pour couvrir un plus large éventail de scénarios d’utilisation.

Page 2
Classement des images en utilisant Deep Learning

Abstract :

In the current digital age, managing customer interactions and addressing frequently as-
ked questions pose significant challenges for businesses. Automating these interactions through
the creation of chatbots provides an effective solution to enhance user experience and reduce
the workload on support teams.

This project focuses on developing a chatbot designed to respond to frequently asked ques-
tions from clients and integrating this chatbot into a web application built with [Link] and
Strapi. The project encompasses two main aspects :

1. Chatbot Development : The creation of a chatbot using Voiceflow and Botpress. Voice-
flow was utilized to design the conversational flow and dialogues of the chatbot, while Botpress
was employed to handle the artificial intelligence and natural language processing (NLP) for
understanding and responding to client inquiries accurately and coherently.
2. Web Application Integration : Development of a web application with [Link] and
Strapi, followed by the integration of the chatbot into this application to provide an interactive
and user-friendly interface.

By exploring advanced natural language processing technologies and modern web develop-
ment frameworks, this project aims to enhance the efficiency of customer interactions and enrich
the user experience. The skills acquired during this internship include web development, API
integration, and the application of NLP techniques in real-world contexts.

The work undertaken highlights the importance of technological innovation in transforming


customer service. By integrating chatbots capable of understanding and addressing client needs,
we pave the way for more intuitive and personalized interactions, thereby improving user satis-
faction and engagement. Additionally, the project envisions future enhancements such as adding
advanced features to the chatbot and expanding the application to cover a broader range of
use cases.

Page 3
Classement des images en utilisant Deep Learning

Table des matières

Table des figures 6

Introduction générale 7

1 Description de l’Entreprise 8
1.1 Présentation de l’Entreprise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Mission et Vision . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Services et Expertise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Prestations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5 Expertise en E-commerce et Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6 Références et Partenariats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2 Contexte général du projet 12


2.1 Présentation du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4 Démarche du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3 Analyse et spécification 16
3.1 Étude des bases de données existantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.1.1 Bases de données d’images populaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
[Link] ImageNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
[Link] CIFAR-10 et CIFAR-100 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
[Link] COCO (Common Objects in Context) . . . . . . . . . . . . . . . . . . . . . . . . 17
[Link] MNIST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
[Link] Stanford Dogs Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.2 Analyse et comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.3 Sélection de la base de données pour le projet . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.4 Projets réalisés dans le contexte de la classification d’images via deep learning . . . . . . . 19
[Link] AlexNet et ImageNet Large Scale Visual Recognition Challenge (ILSVRC) . . . 19
[Link] ResNet et l’amélioration de la profondeur des réseaux de neurones . . . . . . . . 19
[Link] Projet Google Photos et la classification des visages . . . . . . . . . . . . . . . . 19
[Link] Projet médical : classification des images radiologiques . . . . . . . . . . . . . . 20
[Link] Projet de reconnaissance d’espèces animales : iNaturalist . . . . . . . . . . . . . 20
3.1.5 Critères d’évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
[Link].1 Choix des critères pour ce projet . . . . . . . . . . . . . . . . . . . . . . 21
3.2 Recueil de besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3 Cadrage fonctionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Page 4
3.4 Cadrage technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4 Conception de la solution 24
4.1 Architecture des réseaux de neurones convolutionnels (CNN) . . . . . . . . . . . . . . . . . . . . 25
4.1.1 Couches convolutionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.2 Couches de pooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.1.3 Couches d’activation (ReLU) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.1.4 Couches entièrement connectées (Fully Connected Layers) . . . . . . . . . . . . . . . . . . 26
4.1.5 Rétropropagation et optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
[Link] Résumé de l’architecture CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 Architecture de ResNet50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2.1 Blocs résiduels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2.2 Structure de l’architecture ResNet50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2.3 Avantages de ResNet50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2.4 Transfert d’apprentissage avec ResNet50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.3 Architecture de Xception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3.1 Convolutions séparables en profondeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3.2 Structure de l’architecture Xception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.3.3 Avantages de Xception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.3.4 Fonctionnement du transfert d’apprentissage avec Xception . . . . . . . . . . . . . . . . . 30
4.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

5 Mise en oeuvre 31
5.1 Prétraitement des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.1.1 Choix du modèle et redimensionnement des images . . . . . . . . . . . . . . . . . . . . . . 32
5.1.2 Distribution des classes et vérification de l’équilibre des données . . . . . . . . . . . . . . 32
5.1.3 Normalisation des images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.1.4 Égalisation des histogrammes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.1.5 Filtrage des images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.1.6 Augmentation des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.2 Modèle CNN from scratch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.2.1 Préparation des données pour le modèle CNN . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.2.2 Construction du modèle CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.2.3 Entraînement et évaluation du modèle CNN . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.2.4 Résultats et analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.3 Transfert Learning : Modèles CNN pré-entrainés Xception et ResNet50 . . . . . . . . . . . . . . . 39
5.3.1 Importation et personnalisation des modèles . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.3.2 Prétraitement et augmentation des données . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.3.3 Entraînement des modèles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.3.4 Comparaison des performances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.3.5 Analyse des résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.3.6 Optimization des paramètres sur la couche classifier du modèle Xception . . . . . . . . . . 42
5.4 Fine-tuning de Xception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.4.1 Résultats après Fine-tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.4.2 Comparaison des modèles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
[Link] Exemple de prédiction sur les données de test . . . . . . . . . . . . . . . . . . . . 45
5.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Conclusion générale et perspectives 47


Classement des images en utilisant Deep Learning

Table des figures

1.1 AIKINI logo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

2.1 Composants d’un modèle de classification d’images utilisant le deep learning . . . . . . . . . . . . 13


2.2 Diagramme de GANTT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.1 Stanford Dogs Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18


3.2 Illustration modèle CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.1 Architecture CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25


4.2 Architecture RESNET50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3 Architecture Xception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.1 redimensionnement des images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32


5.2 Nombre d’images pour chaque race de chien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.3 Égalisation des histogrammes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.4 Égalisation des histogrammes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.5 Filtrage des images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.6 Data augmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
5.7 Construction de modèle CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.8 Evaluation du modèle CNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.9 Accuracy comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.10 F1_m Xception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.11 F1_m Resnet50 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.12 Resultat apres optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.13 Comparaison des performances des modèles CNN, Xception, ResNet50 et Xception fine-tuned. . 44
5.14 Predicted VS Actual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

Page 6
Classement des images en utilisant Deep Learning

Introduction générale

L’intégration de chatbots dans les applications web est devenue un enjeu majeur dans le
domaine de la technologie numérique, offrant des solutions efficaces pour améliorer l’interaction
utilisateur et automatiser les réponses aux questions fréquentes. Les chatbots permettent non
seulement d’optimiser l’expérience utilisateur en fournissant des réponses rapides et précises,
mais ils facilitent également la gestion des demandes courantes et réduisent la charge de travail
des équipes de support.

Le développement de ce projet s’inscrit dans un contexte de croissance rapide des technolo-


gies web et des outils d’intelligence artificielle. L’objectif principal est de concevoir et d’intégrer
un chatbot capable de répondre de manière automatisée aux questions fréquentes des clients, en
utilisant les technologies modernes telles que [Link] pour le développement frontend et Strapi
pour la gestion du backend.

Le processus de création du chatbot a impliqué l’utilisation de Voiceflow pour la conception


des flux de conversation et de Botpress pour la gestion de l’intelligence artificielle et du trai-
tement du langage naturel. Cette démarche permet de créer un chatbot intelligent et réactif,
capable d’interagir de manière fluide avec les utilisateurs.

En parallèle, le développement d’une application web avec [Link] et Strapi a permis de


fournir une plateforme robuste et évolutive pour intégrer et déployer le chatbot. L’intégration
du chatbot dans cette application a été une étape cruciale pour assurer une interaction harmo-
nieuse entre les utilisateurs et le système.

Ce rapport présente une vue d’ensemble détaillée des étapes de création du chatbot, du
développement de l’application web, et de l’intégration du chatbot dans l’application. Nous
visons à démontrer comment ces technologies combinées peuvent offrir une solution complète
pour améliorer l’interaction client et la gestion des questions fréquentes, tout en mettant en
évidence les défis rencontrés et les solutions apportées au cours de ce projet.

Page 7
Classement des images en utilisant Deep Learning

Chapitre 1

Description de l’Entreprise

Ce chapitre a pour objectif de présenter le contexte et les spécifici-


tés de l’entreprise AIKINI DE MARRAKECH, où s’est déroulé
mon stage. Nous aborderons son historique, sa mission et sa vision,
ainsi que ses principales activités, projets, et expertises. En offrant
une vue d’ensemble approfondie de cette entreprise innovante, nous
mettrons en évidence son rôle central dans le secteur des techno-
logies de l’information et de la communication, en particulier dans
le domaine du Machine Learning. AIKINI propose également des
services et des solutions en Machine Learning pour répondre aux
besoins spécifiques de ses clients. Ce chapitre vise à situer le cadre
professionnel dans lequel j’ai évolué, tout en montrant comment les
projets de l’entreprise, notamment le développement de solutions
technologiques avancées, participent à la transformation numérique
des entreprises et à l’amélioration de l’expérience utilisateur.

Page 8
Classement des images en utilisant Deep Learning

1.1 Présentation de l’Entreprise


AIKINI DE MARRAKECH est une agence spécialisée dans la création, la gestion de
projets digitaux, et le développement de solutions basées sur le Machine Learning. Fondée
avec la vision de fournir des solutions complètes et innovantes dans le domaine du numérique,
AIKINI offre une gamme étendue de services allant du conseil à l’exécution, en passant par
le développement et la maintenance de projets digitaux. L’agence met un accent particulier
sur l’intégration de techniques de Machine Learning pour offrir des solutions personnalisées et
intelligentes à ses clients. AIKINI propose également des services et des solutions en Machine
Learning pour répondre aux besoins spécifiques de ses clients.

Figure 1.1 – AIKINI logo

1.2 Mission et Vision


La mission d’AIKINI DE MARRAKECH est d’accompagner ses clients tout au
long de leurs projets digitaux, en mettant l’accent sur la création de solutions sur mesure
qui répondent à leurs besoins spécifiques. L’entreprise se consacre à améliorer l’expérience
utilisateur, optimiser le parcours client et maximiser la conversion.
AIKINI se distingue par son approche centrée sur l’utilisateur, sa capacité à fournir des
solutions flexibles et performantes, et son engagement à intégrer les dernières tendances et
innovations technologiques. La vision de l’agence est de devenir un leader reconnu dans le
domaine des solutions e-commerce et digitales, tout en intégrant le Machine Learning pour
créer des solutions intelligentes qui anticipent et répondent aux besoins des utilisateurs.

1.3 Services et Expertise


AIKINI DE MARRAKECH propose une large gamme de services adaptés aux besoins
variés de ses clients, incluant des solutions de Machine Learning :
1. Développement Sur-Mesure : Conception et réalisation de projets complexes et évo-
lutifs, avec une attention particulière à la sécurité et à la flexibilité des solutions. AIKINI
utilise le Machine Learning pour créer des algorithmes qui améliorent la personnalisation
et l’efficacité des projets.
2. Gestion de Sites à l’International : Solutions adaptées aux besoins internationaux, in-
cluant la gestion des paiements, des devises, des taxes, et des langues. L’entreprise exploite

Page 9
Classement des images en utilisant Deep Learning

les techniques de Machine Learning pour optimiser les processus et prédire les tendances
du marché.
3. Maintenance et Support : Plans de maintenance préventive, curative et évolutive, avec
un engagement en termes de délai de prise en charge. AIKINI intègre des systèmes intel-
ligents de détection et de correction d’erreurs basés sur le Machine Learning pour assurer
une maintenance proactive et efficace.
4. Solutions de Machine Learning : AIKINI développe des modèles de Machine Learning
sur mesure pour ses clients, répondant à des besoins spécifiques tels que l’analyse prédictive,
la classification, la reconnaissance d’images, et plus encore. Ces solutions sont conçues
pour optimiser les processus métiers et offrir une valeur ajoutée grâce à l’automatisation
intelligente.

1.4 Prestations
L’agence se spécialise dans plusieurs domaines clés :
1. Développement de Thèmes et Modules : Création de thèmes et de modules per-
sonnalisés pour répondre aux exigences spécifiques des projets. AIKINI utilise le Machine
Learning pour adapter ces thèmes aux préférences des utilisateurs.
2. Synchronisation ERP, CRM, PIM : Intégration et gestion des systèmes de gestion
d’entreprise. Le Machine Learning est utilisé pour optimiser la synchronisation des données
et améliorer l’efficacité des opérations.
3. Audits et Reprise de Projets : Analyse approfondie et reprise de projets existants pour
améliorer leur performance et leur fonctionnalité. L’analyse des données est optimisée par
des techniques de Machine Learning pour identifier les points d’amélioration.
4. Migration et Évolution : Mise à niveau des systèmes existants et gestion de l’évolution
des sites vers des architectures plus complexes. Le Machine Learning est intégré pour
prédire les besoins futurs et adapter les systèmes en conséquence.

1.5 Expertise en E-commerce et Machine Learning


AIKINI est un partenaire expert pour des plateformes e-commerce telles que Prestashop
et Shopify. L’agence fournit des solutions complètes en matière de création de sites e-commerce,
incluant :
1. Accompagnement et Conseil : Analyse des besoins, pilotage de projet, et conseils
stratégiques pour une mise en œuvre efficace. AIKINI utilise des algorithmes de Machine
Learning pour offrir des recommandations personnalisées à ses clients.
2. Conception : Création d’interfaces ergonomiques et originales centrées sur l’expérience
utilisateur. Les modèles de Machine Learning sont utilisés pour optimiser le design en
fonction des comportements des utilisateurs.
3. Développement : Déploiement de solutions e-commerce performantes, avec un focus sur
la technologie et la maîtrise des coûts. Le Machine Learning est intégré pour améliorer la
performance et l’expérience utilisateur en temps réel.

Page 10
Classement des images en utilisant Deep Learning

4. Performance : Optimisation des campagnes webmarketing, référencement, et acquisition


de trafic qualifié. L’analyse prédictive basée sur le Machine Learning permet de cibler
efficacement les audiences et d’améliorer les conversions.

1.6 Références et Partenariats


AIKINI DE MARRAKECH a collaboré avec plusieurs clients prestigieux, dont Monsieur
Papier, Just Green, Pocramé, Montparel, Purvitaé, et Secret By. L’agence maintient également
des partenariats solides avec des acteurs clés du marché tels que Sendinblue, Paygreen, Pay-
plug, et des plateformes comme WordPress/WooCommerce, Drupal, Magento, ainsi que des
frameworks tels que Symfony, Laravel, Zend Framework. AIKINI collabore également avec des
experts en Machine Learning pour développer des solutions de pointe adaptées aux besoins de
ses clients.

1.7 Conclusion
En conclusion, AIKINI DE MARRAKECH se positionne comme un acteur majeur dans
le domaine des solutions digitales et e-commerce, offrant une expertise étendue et une approche
personnalisée pour répondre aux défis technologiques de ses clients. L’intégration du Machine
Learning dans ses services renforce la capacité de l’agence à offrir des solutions innovantes et
efficaces. Mon expérience au sein de l’agence m’a permis de bénéficier de cette expertise et de
contribuer à des projets innovants, renforçant ainsi mes compétences en développement web,
en gestion de projets digitaux, et en Machine Learning.

Page 11
Classement des images en utilisant Deep Learning

Chapitre 2

Contexte général du projet

Ce chapitre vise à explorer le contexte général


entourant le développement de la classification
d’images à l’aide du deep learning, en exami-
nant les avancées technologiques qui ont permis
son émergence ainsi que les enjeux pratiques et
théoriques qu’elle soulève.

Page 12
Classement des images en utilisant Deep Learning

2.1 Présentation du projet


Avec l’explosion des données visuelles dans notre société numérique, la capacité des
machines à interpréter et à classifier ces images de manière autonome est devenue un enjeu
crucial. Le deep learning, et plus spécifiquement les réseaux de neurones convolutifs (CNN),
ont révolutionné le domaine de la vision par ordinateur en permettant aux ordinateurs de
surpasser les techniques traditionnelles dans des tâches complexes de reconnaissance d’images.
L’objectif principal de ce projet est de développer un modèle de deep learning capable de classer
automatiquement des images en fonction de différentes catégories prédéfinies, en tenant compte
non seulement des objets présents dans les images mais aussi de leur contexte global.
La classification d’images à l’aide du deep learning a des applications vastes et variées, allant
de la reconnaissance faciale et la détection d’objets dans la sécurité et la surveillance, à l’analyse
médicale pour diagnostiquer des maladies à partir d’images médicales. Cette capacité à extraire
et à comprendre les caractéristiques complexes d’une image en fait une technologie essentielle
pour de nombreuses industries.

2.2 Problématique
Le principal défi dans la classification d’images réside dans la précision et la robustesse
des modèles de deep learning. Avec la diversité des images disponibles, les modèles doivent
non seulement identifier correctement les objets, mais aussi comprendre leurs interactions et le
contexte dans lequel ils apparaissent. De plus, le problème du surapprentissage (overfitting),
où le modèle devient trop adapté aux données d’entraînement et performe mal sur de nouvelles
données, est une préoccupation majeure.

Figure 2.1 – Composants d’un modèle de classification d’images utilisant le deep learning

Cela soulève plusieurs questions essentielles :


Précision des modèles de deep learning : Comment améliorer la précision des modèles pour qu’ils
puissent non seulement reconnaître les objets dans les images, mais aussi comprendre leurs interactions et leur
contexte ?
Généralisation des modèles : Comment concevoir des modèles qui généralisent bien sur de nouvelles
données non vues auparavant, en minimisant le surapprentissage ?
Accessibilité des solutions : Comment rendre ces technologies accessibles à des utilisateurs non techniques,
en développant des interfaces conviviales qui facilitent leur adoption dans divers domaines ?

2.3 Objectifs
Ce projet vise à développer un système performant pour la classification d’images en
utilisant le deep learning, en se concentrant sur les objectifs suivants :

Page 13
Classement des images en utilisant Deep Learning

1. Amélioration de la précision des modèles : Développer des architectures de réseaux de


neurones plus avancées qui peuvent capturer les détails complexes des images et améliorer
la précision des classifications.
2. Robustesse et Généralisation : Concevoir des modèles qui ne se contentent pas de
bien performer sur les données d’entraînement, mais qui généralisent efficacement sur des
ensembles de données nouveaux et variés.
3. Accessibilité et Utilisation : Créer des interfaces utilisateur simples et intuitives per-
mettant à un large public de bénéficier de ces technologies sans nécessiter de compétences
techniques spécialisées.
4. Comparaison des modèles : Effectuer une analyse comparative des différents modèles de
deep learning utilisés pour la classification d’images, afin d’identifier les plus performants
selon des critères de précision, de vitesse, et de facilité d’implémentation.

2.4 Démarche du projet


Avant de démarrer le projet, une planification rigoureuse est nécessaire pour structurer les
différentes phases de développement. Le découpage en phases intermédiaires permet de mieux
estimer la durée totale du projet et les ressources nécessaires, en assurant une gestion efficace
du temps et des moyens mis en œuvre.

Figure 2.2 – Diagramme de GANTT

Page 14
Classement des images en utilisant Deep Learning

2.5 Conclusion
En somme, ce chapitre définit le cadre du projet de classification d’images à l’aide du deep
learning, en mettant en lumière l’importance de cette technologie dans l’analyse visuelle et les
défis qu’elle pose. La problématique et les objectifs sont clairement définis, préparant le terrain
pour les étapes suivantes du développement.

Page 15
Classement des images en utilisant Deep Learning

Chapitre 3

Analyse et spécification

Ce chapitre est dédié à l’analyse et à la spé-


cification nécessaires pour concevoir un système
de classification d’images. Nous explorerons les
bases de données disponibles, les critères d’éva-
luation pertinents, ainsi que les besoins fonc-
tionnels et techniques du système. Cette ana-
lyse approfondie jettera les bases pour la mise
en œuvre efficace du modèle de classification
d’images en utilisant le deep learning.

Page 16
Classement des images en utilisant Deep Learning

3.1 Étude des bases de données existantes


Dans cette section, nous allons étudier et analyser les principales bases de données utilisées pour des tâches
de classification d’images dans le cadre du deep learning. Une base de données bien choisie est essentielle pour
entraîner un modèle performant.

3.1.1 Bases de données d’images populaires


[Link] ImageNet

ImageNet est l’une des plus grandes bases de données utilisées pour la reconnaissance d’images. Elle contient
plus de 14 millions d’images étiquetées couvrant des milliers de catégories.
— Utilité : Elle est souvent utilisée pour entraîner des modèles de classification d’images. Elle est aussi à la
base des architectures célèbres comme AlexNet, VGG, et ResNet.
— Taille : Plus de 14 millions d’images dans plus de 20 000 catégories.
— Avantages : Sa grande taille et sa diversité permettent de construire des modèles robustes.
— Inconvénients : Certaines classes sont déséquilibrées et l’utilisation complète de la base peut être coûteuse
en temps et en ressources.

[Link] CIFAR-10 et CIFAR-100

CIFAR-10 contient 60 000 images de 32x32 pixels dans 10 classes, tandis que CIFAR-100 propose 100 classes.
Ces bases de données sont souvent utilisées pour tester des architectures de réseaux de neurones, notamment
les modèles CNN.
— Utilité : Parfait pour des expérimentations rapides avec des modèles de classification d’images.
— Taille : CIFAR-10 : 60 000 images, 10 classes. CIFAR-100 : 60 000 images, 100 classes.
— Avantages : Facile à manipuler et à utiliser pour des essais rapides.
— Inconvénients : La petite taille des images (32x32) limite les détails que le modèle peut apprendre.

[Link] COCO (Common Objects in Context)

COCO contient plus de 330 000 images annotées et se concentre sur des objets dans des contextes variés,
incluant des annotations de segmentation et des descriptions textuelles.
— Utilité : Très utilisée pour des tâches complexes comme la détection d’objets, la segmentation, et la
génération de légendes automatiques.
— Taille : 330 000 images annotées.
— Avantages : Contient des annotations complexes pour des tâches multiples.
— Inconvénients : La complexité des annotations et des classes peut rendre l’entraînement plus difficile.

[Link] MNIST

MNIST est une base de données de chiffres manuscrits, avec 60 000 images d’entraînement et 10 000 images
de test, souvent utilisée pour tester des modèles simples de classification.
— Utilité : Idéale pour des expérimentations rapides avec des modèles simples.
— Taille : 70 000 images.
— Avantages : Simple à utiliser, parfait pour des projets de découverte du deep learning.
— Inconvénients : Trop simple pour des architectures complexes.

Page 17
Classement des images en utilisant Deep Learning

[Link] Stanford Dogs Dataset

Le Stanford Dogs Dataset contient 20 580 images de 120 races de chiens différentes. Il est basé sur un
sous-ensemble d’ImageNet mais se concentre spécifiquement sur la classification fine des races de chiens.
— Utilité : Utilisé pour des tâches de classification fine des races d’animaux. Parfait pour des projets
nécessitant une reconnaissance précise de sous-catégories.
— Taille : 20 580 images, 120 classes.
— Avantages : Base de données bien annotée, excellente pour des tâches de classification fine.
— Inconvénients : Se concentre uniquement sur les chiens, ce qui limite la généralisation à d’autres types
d’objets.

3.1.2 Analyse et comparaison


Nous pouvons maintenant comparer les différentes bases de données selon plusieurs critères :
— Taille : Certaines bases de données comme ImageNet et COCO sont très volumineuses, tandis que d’autres
comme CIFAR ou MNIST sont plus petites et plus faciles à manipuler.
— Diversité des classes : ImageNet et COCO couvrent une large gamme de catégories d’objets. Le Stanford
Dogs Dataset, quant à lui, se concentre sur une tâche de classification fine avec des classes très spécifiques
(races de chiens).
— Complexité des annotations : MNIST est simple et direct avec des chiffres manuscrits, tandis que
COCO offre des annotations complexes pour la segmentation et la détection d’objets en contexte.

3.1.3 Sélection de la base de données pour le projet


Après analyse, le Stanford Dogs Dataset a été sélectionné pour ce projet de classification d’images. Les
raisons principales de ce choix sont :
— Contexte du projet : Le projet nécessite une tâche de classification fine. Le Stanford Dogs Dataset est
donc particulièrement adapté pour l’entraînement de modèles de reconnaissance fine, en l’occurrence la
classification de races de chiens.
— Nombre de classes et volume de données : Avec 120 classes et plus de 20 000 images, cette base de
données offre un bon compromis entre complexité et capacité à entraîner des modèles performants.
— Qualité des annotations : Les annotations du Stanford Dogs Dataset sont d’excellente qualité, ce qui
permet de maximiser la précision des modèles de classification.

Figure 3.1 – Stanford Dogs Dataset

Page 18
Classement des images en utilisant Deep Learning

3.1.4 Projets réalisés dans le contexte de la classification d’images via deep lear-
ning
La classification d’images via deep learning a connu une adoption croissante ces dernières années, notamment
grâce à l’amélioration des performances des réseaux de neurones convolutifs (CNN) et des technologies de
traitement de données. Plusieurs projets majeurs ont utilisé cette technologie pour résoudre des problématiques
liées à la reconnaissance d’images dans des contextes variés.

[Link] AlexNet et ImageNet Large Scale Visual Recognition Challenge (ILSVRC)

Le projet AlexNet, développé par Alex Krizhevsky en 2012, a été l’un des pionniers dans le domaine de la
classification d’images via deep learning. Il a été utilisé pour participer au concours ImageNet Large Scale Visual
Recognition Challenge (ILSVRC).
— Contexte : AlexNet a été conçu pour participer au concours ILSVRC 2012, qui consistait à classer des
millions d’images issues de la base de données ImageNet.
— Technologie : Le réseau AlexNet est composé de plusieurs couches convolutives, suivies de couches de
pooling et de couches entièrement connectées.
— Résultat : Le modèle a remporté le concours avec une précision de 84,7%, réduisant considérablement
l’erreur de classification par rapport aux modèles précédents.
— Impact : AlexNet a popularisé l’utilisation des CNN et a montré que les réseaux de neurones profonds
pouvaient surpasser les méthodes traditionnelles de classification d’images.

[Link] ResNet et l’amélioration de la profondeur des réseaux de neurones

Le ResNet (Residual Network), introduit en 2015 par Kaiming He et ses collègues, est un autre projet phare
dans le domaine de la classification d’images.
— Contexte : ResNet a été développé pour surmonter le problème de la dégradation des performances
lorsque la profondeur des réseaux de neurones augmentait.
— Technologie : ResNet utilise des blocs résiduels qui permettent d’entraîner des réseaux très profonds,
avec plus de 100 couches, sans perte significative de performance.
— Résultat : ResNet a remporté l’ILSVRC 2015 avec une précision record, atteignant des taux d’erreur
extrêmement bas sur ImageNet.
— Impact : ResNet a permis de pousser les limites de la profondeur des réseaux de neurones, rendant
possible l’entraînement de modèles encore plus complexes et performants.

[Link] Projet Google Photos et la classification des visages

Un projet bien connu du grand public est Google Photos, qui utilise des algorithmes de deep learning pour
organiser et classifier les photos.
— Contexte : Google Photos utilise des réseaux de neurones profonds pour classer automatiquement les
images téléchargées par les utilisateurs. Ces images sont organisées par visages, lieux, et objets détectés
dans les photos.
— Technologie : Le projet utilise des CNN pour la détection de visages et d’objets, combinés à des techniques
de clustering pour regrouper les photos similaires.
— Résultat : Les utilisateurs peuvent facilement rechercher des photos en fonction de personnes spécifiques
ou d’objets sans avoir à les étiqueter manuellement.
— Impact : Ce projet a popularisé l’utilisation des réseaux de neurones pour la gestion des photos dans des
applications grand public, facilitant la recherche d’images par reconnaissance automatique.

Page 19
Classement des images en utilisant Deep Learning

[Link] Projet médical : classification des images radiologiques

Dans le domaine médical, des réseaux de neurones convolutifs ont été utilisés pour classifier des images
radiologiques, telles que les radiographies, les IRM et les tomodensitogrammes (CT scans).
— Contexte : La classification automatique des images médicales est devenue un enjeu majeur pour accélérer
les diagnostics et améliorer les soins aux patients.
— Technologie : Des CNN ont été utilisés pour identifier des anomalies dans les images radiologiques,
comme des tumeurs ou des fractures.
— Résultat : Des modèles de deep learning ont été capables de détecter des pathologies avec une précision
souvent comparable, voire supérieure, à celle des médecins.
— Impact : Ce type de projet montre comment le deep learning peut révolutionner l’analyse médicale et
améliorer l’efficacité des diagnostics.

[Link] Projet de reconnaissance d’espèces animales : iNaturalist

Le projet iNaturalist est une application mobile qui permet aux utilisateurs d’identifier et de classifier des
espèces animales et végétales à partir de photos.
— Contexte : iNaturalist utilise des modèles de deep learning pour reconnaître des milliers d’espèces à partir
des images soumises par les utilisateurs.
— Technologie : L’application repose sur des CNN pré-entraînés sur des bases de données d’images de la
faune et de la flore, permettant une reconnaissance précise des espèces.
— Résultat : Les utilisateurs peuvent obtenir des résultats quasi instantanés sur l’espèce détectée, favorisant
la sensibilisation à la biodiversité.
— Impact : Ce projet montre comment la classification d’images via deep learning peut être utilisée dans
des applications éducatives et environnementales.

3.1.5 Critères d’évaluation


Dans le cadre de la classification d’images via deep learning, il existe plusieurs critères d’évaluation qui
peuvent être utilisés pour juger la performance d’un modèle. Chaque critère offre une perspective différente sur
la performance globale ou sur des aspects spécifiques de la classification. Voici quelques-uns des critères les plus
couramment utilisés :
— Accuracy : Il s’agit de la proportion des prédictions correctes parmi toutes les prédictions effectuées.
C’est une métrique de base qui donne une indication générale de la performance du modèle. Cependant,
elle peut être trompeuse si les classes sont déséquilibrées, car elle privilégie les classes majoritaires.
— Précision (Precision) : Elle mesure la proportion de vraies prédictions positives parmi toutes les pré-
dictions positives effectuées. Cette métrique est utile pour évaluer la performance lorsque les faux positifs
sont coûteux, car elle évalue la qualité des prédictions positives.
— Rappel (Recall) : Le rappel est la proportion de vraies prédictions positives parmi toutes les instances
positives réelles. Cette métrique est importante lorsque les faux négatifs sont coûteux, car elle évalue la
capacité du modèle à détecter toutes les instances positives.
— F1-score : Le F1-score est la moyenne harmonique de la précision et du rappel. Il combine les deux
métriques pour fournir un indicateur unique de la performance du modèle. C’est une mesure équilibrée
entre précision et rappel, surtout utile en cas de déséquilibre des classes.
— F1-macro score : Il s’agit de la version macro du F1-score, qui prend la moyenne du F1-score pour
chaque classe. C’est une mesure pertinente lorsque le jeu de données est déséquilibré, car elle donne le
même poids à chaque classe, indépendamment de la fréquence des classes.

Page 20
Classement des images en utilisant Deep Learning

— AUC-ROC (Area Under the ROC Curve) : Cette métrique représente la capacité du modèle à
distinguer entre les classes. Elle trace une courbe ROC qui compare le taux de vrais positifs au taux de
faux positifs et mesure la surface sous cette courbe. Un score de 1 correspond à une classification parfaite,
tandis qu’un score de 0.5 indique une classification aléatoire.

[Link].1 Choix des critères pour ce projet Dans le cadre de notre projet de classification d’images,
nous avons choisi d’utiliser deux critères d’évaluation principaux : l’**accuracy** et le **F1-macro score**. Ces
deux critères sont complémentaires et offrent une vue d’ensemble équilibrée de la performance du modèle.
— L’**accuracy** a été choisie pour évaluer la proportion de prédictions correctes globales. Bien que cette
métrique soit utile pour évaluer la performance générale du modèle, elle peut être trompeuse dans les cas
où les classes sont déséquilibrées.

TP + TN
Accuracy =
TP + TN + FP + FN

où T P (True Positives) sont les vrais positifs, T N (True Negatives) sont les vrais négatifs, F P (False
Positives) sont les faux positifs, et F N (False Negatives) sont les faux négatifs.
— Le **F1-macro score** a été sélectionné pour compenser les limites de l’accuracy, en prenant en compte à
la fois la précision et le rappel pour chaque classe. Cette métrique est particulièrement pertinente lorsque
certaines classes sont sous-représentées dans les données, car elle accorde un poids égal à toutes les classes,
quel que soit leur effectif.
N
1 X
F 1macro = F 1i
N i=1

où N est le nombre de classes et F 1i est le F1-score pour la classe i.

Précision × Rappel
F1 = 2 ×
Précision + Rappel

TP
Précision =
TP + FP
TP
Rappel =
TP + FN
où T P (True Positives) sont les vrais positifs, F P (False Positives) sont les faux positifs, et F N (False
Negatives) sont les faux négatifs.

3.2 Recueil de besoins


— Classification d’images : Le système doit être capable de classifier automatiquement les images fournies
en fonction des catégories prédéfinies (dans notre cas, les différentes races de chiens du Stanford Dogs
Dataset).
— Précision de la classification : Les classifications réalisées par le système doivent être précises, assurant
une bonne distinction entre les différentes races de chiens, même pour des races visuellement similaires.
— Robustesse face aux images variées : Le système doit être robuste face à la variation des images
d’entrée, que ce soit en termes de résolution, d’éclairage ou d’angles de vue différents.
— Performance : Le système doit être capable de classifier les images en temps réel ou quasi-temps réel
pour permettre une utilisation dans des contextes pratiques nécessitant des réponses rapides.
— Scalabilité : Le système doit pouvoir évoluer pour traiter un grand volume d’images simultanément sans
dégradation des performances.

Page 21
Classement des images en utilisant Deep Learning

— Flexibilité des classes : Le système doit permettre l’ajout ou la modification des catégories de classifi-
cation (par exemple, ajouter de nouvelles races de chiens ou réajuster les catégories existantes) sans avoir
à reconstruire entièrement le modèle.

3.3 Cadrage fonctionnel


— Chargement d’images : Les utilisateurs doivent pouvoir charger des images dans le système pour qu’elles
soient automatiquement classées.
— Analyse et traitement des images : Une fois les images chargées, le système doit utiliser un modèle de
réseau de neurones convolutifs (CNN) pour analyser les images et extraire des caractéristiques visuelles.
— Classification des images : Après l’analyse des images, le système doit être capable de prédire la classe
correcte de chaque image, c’est-à-dire la race de chien correspondant à l’image fournie.
— Retour des résultats : Le système doit afficher les résultats de la classification, y compris la classe
prédite et la probabilité associée pour chaque image.

3.4 Cadrage technique


— Frameworks de vision par ordinateur : Pour le développement des modèles CNN, TensorFlow et
Keras seront utilisés. Ces frameworks permettent de construire, entraîner et optimiser des réseaux de
neurones convolutifs adaptés à la classification d’images. Des modèles pré-entraînés comme ResNet ou
VGG peuvent être employés pour effectuer du transfert d’apprentissage, réduisant ainsi le temps de calcul
nécessaire tout en améliorant les performances.

Figure 3.2 – Illustration modèle CNN

— Optimisation des performances : L’utilisation de GPU et/ou de TPU est envisagée pour accélérer
l’entraînement du modèle. TensorFlow offre des solutions pour paralléliser les calculs et ainsi gérer un
grand volume d’images en simultané tout en réduisant les temps de traitement.
— Gestion des données : Un ensemble de données volumineux tel que le Stanford Dogs Dataset sera utilisé
pour l’entraînement et la validation du modèle. Les images seront prétraitées (normalisation, augmentation
des données, etc.) afin de garantir que le modèle est bien généralisé.
— Transfert d’apprentissage : L’intégration de modèles pré-entraînés sur des bases de données d’images
plus larges comme ImageNet permettra d’améliorer la classification des races de chiens grâce à l’extraction
de caractéristiques visuelles générales, suivie d’une spécialisation sur le Stanford Dogs Dataset.

Page 22
Classement des images en utilisant Deep Learning

3.5 Conclusion
En conclusion, ce chapitre a permis de préciser les besoins et spécifications pour notre système de classification
d’images via deep learning. Nous avons examiné les bases de données pertinentes, les critères d’évaluation, ainsi
que les besoins fonctionnels et techniques du système. Avec ces fondations, nous sommes prêts à passer à la
phase de développement du modèle de classification, en tirant parti des dernières avancées en matière de réseaux
de neurones convolutifs pour obtenir des performances optimales.

Page 23
Classement des images en utilisant Deep Learning

Chapitre 4

Conception de la solution

Dans ce chapitre, nous présentons les architec-


tures utilisées pour notre projet de classifica-
tion d’images. Trois approches distinctes sont
détaillées, chacune reposant sur des réseaux de
neurones convolutionnels (CNN) pour l’extrac-
tion des caractéristiques visuelles.
La première approche utilise un modèle CNN
basique, qui offre une architecture simple
mais efficace pour les tâches de classification
d’images. La deuxième approche exploite l’ar-
chitecture Xception, connue pour sa capacité à
extraire des caractéristiques complexes tout en
optimisant l’efficacité des calculs. Enfin, la troi-
sième approche s’appuie sur l’architecture Re-
sNet50, qui utilise des blocs résiduels permet-
tant d’entraîner des réseaux de grande profon-
deur tout en évitant les problèmes de dégrada-
tion des performances.

Page 24
Classement des images en utilisant Deep Learning

4.1 Architecture des réseaux de neurones convolutionnels (CNN)

Figure 4.1 – Architecture CNN

Les réseaux de neurones convolutionnels (CNN) sont une classe de réseaux de neurones
artificiels largement utilisés pour l’analyse d’images. Leur architecture est conçue spécifiquement
pour traiter des données sous forme de grille, telles que les images, en exploitant leurs propriétés
spatiales. Dans cette section, nous détaillons les principales composantes de l’architecture d’un
CNN, en expliquant leur rôle et leur fonctionnement dans le traitement des images.

4.1.1 Couches convolutionnelles

La couche convolutionnelle est le cœur de l’architecture CNN. Elle applique un filtre de


convolution sur l’image d’entrée pour extraire des caractéristiques locales. Chaque filtre (ou
noyau) est une petite matrice de poids qui glisse sur l’image et détecte des motifs spécifiques,
tels que des bords, des textures, ou d’autres caractéristiques visuelles importantes.
La sortie de cette opération est appelée une carte de caractéristiques (feature map), qui
représente les motifs détectés à travers l’image. Une propriété clé des convolutions est qu’elles
préservent les relations spatiales des pixels, ce qui est crucial pour l’analyse d’images.
La formule pour la convolution entre une image d’entrée I et un filtre K est donnée par :
XX
S(i, j) = (I ∗ K)(i, j) = I(i + m, j + n)K(m, n)
m n

où S(i, j) est la sortie à la position (i, j), et K(m, n) est le filtre appliqué à la région locale
de l’image I.

4.1.2 Couches de pooling

Les couches de pooling (ou sous-échantillonnage) sont utilisées pour réduire la dimensionna-
lité des cartes de caractéristiques, tout en préservant les informations les plus importantes. Le

Page 25
Classement des images en utilisant Deep Learning

pooling permet également de rendre le modèle plus robuste aux variations mineures dans les
images (comme la translation ou la rotation).
L’opération de pooling la plus courante est le max-pooling, qui prend le maximum d’une
région donnée de la carte de caractéristiques. Par exemple, dans un max-pooling 2x2, la sortie
est le maximum des quatre valeurs dans chaque bloc de 2x2 pixels de la carte de caractéristiques.

S(i, j) = max{I(i + m, j + n)} où m, n ∈ {0, 1}

4.1.3 Couches d’activation (ReLU)

Après chaque couche convolutionnelle, une fonction d’activation non-linéaire est appliquée,
généralement la fonction ReLU (Rectified Linear Unit). La fonction ReLU introduit la non-
linéarité nécessaire dans le réseau pour permettre au modèle d’apprendre des relations com-
plexes dans les données.
La fonction ReLU est définie par :

f (x) = max(0, x)
Cela signifie que toutes les valeurs négatives sont remplacées par zéro, tandis que les valeurs
positives restent inchangées. ReLU permet d’accélérer la convergence pendant l’entraînement
tout en évitant les problèmes liés au gradient de la fonction.

4.1.4 Couches entièrement connectées (Fully Connected Layers)

Les couches entièrement connectées apparaissent en général vers la fin de l’architecture CNN.
Dans ces couches, chaque neurone est connecté à tous les neurones de la couche précédente. Ces
couches permettent de combiner les caractéristiques extraites par les couches convolutionnelles
pour prédire la classe de l’image.
La sortie de la dernière couche entièrement connectée passe par une fonction d’activation
softmax pour obtenir les probabilités de chaque classe. La fonction softmax est définie comme
suit :

e zi
σ(z)i = Pn
j=1 e zj
où zi est la sortie du neurone i, et n est le nombre total de classes.

4.1.5 Rétropropagation et optimisation

Pendant l’entraînement, les poids des filtres et des neurones sont mis à jour grâce à un
processus appelé rétropropagation, qui minimise une fonction de perte (par exemple, la perte
logarithmique pour la classification). L’optimisation des poids est généralement effectuée avec
des algorithmes tels que l’optimiseur Adam ou la descente de gradient stochastique (SGD).

Page 26
Classement des images en utilisant Deep Learning

Figure 4.2 – Architecture RESNET50

[Link] Résumé de l’architecture CNN

Un CNN typique se compose donc de plusieurs couches convolutives, suivies de couches de


pooling, d’une ou plusieurs couches entièrement connectées, et d’une couche softmax pour la
classification finale. Voici un exemple d’architecture CNN simple :
— Entrée : Image d’entrée (par exemple, 224x224x3 pour une image couleur).
— Couche convolutionnelle 1 : Convolution avec 32 filtres 3x3, suivie d’une activation
ReLU.
— Max-pooling 1 : Max-pooling 2x2 pour réduire la dimension.
— Couche convolutionnelle 2 : Convolution avec 64 filtres 3x3, suivie d’une activation
ReLU.
— Max-pooling 2 : Max-pooling 2x2.
— Couche entièrement connectée : 128 neurones, activation ReLU.
— Sortie : Couche softmax avec n neurones, où n est le nombre de classes.
Cette architecture permet d’extraire des caractéristiques hiérarchiques des images d’entrée,
et de les utiliser pour des tâches de classification, telles que la reconnaissance de races de chiens
dans notre projet.

4.2 Architecture de ResNet50


ResNet50 (Residual Networks avec 50 couches) est une architecture de réseau de neurones convolutionnels
(CNN) qui a marqué un tournant dans l’entraînement des réseaux profonds en résolvant un problème majeur :
la dégradation des performances à mesure que la profondeur des réseaux augmente. Développée par Kaiming
He et al., ResNet a été introduite pour la première fois en 2015 et a remporté le concours ImageNet Large
Scale Visual Recognition Challenge (ILSVRC) cette même année. La caractéristique principale de ResNet est
l’utilisation de "blocs résiduels" (residual blocks), qui permettent au réseau d’apprendre efficacement même à
grande profondeur.

4.2.1 Blocs résiduels


L’innovation clé de ResNet50 est l’introduction des blocs résiduels. Un bloc résiduel est conçu pour résoudre
le problème de la dégradation des gradients dans les réseaux profonds. Traditionnellement, lorsque la profondeur

Page 27
Classement des images en utilisant Deep Learning

des réseaux augmentait, les performances tendaient à se stabiliser, voire à se dégrader, à cause du phénomène
de "vanishing gradient" (disparition du gradient). Le bloc résiduel introduit une connexion résiduelle, ou "skip
connection", qui contourne une ou plusieurs couches de convolution.
La formule utilisée dans un bloc résiduel est la suivante :

y = F (x, {Wi }) + x

où :
— x est l’entrée du bloc résiduel.
— F (x, {Wi }) représente la fonction apprise par les couches intermédiaires (convolutions, activations, etc.).
— y est la sortie finale du bloc résiduel, obtenue en additionnant l’entrée x à la sortie de F (x, {Wi }).
Cette approche permet au réseau d’apprendre à ajuster uniquement les "résidus", ou les différences par
rapport à l’identité de l’entrée, ce qui facilite l’apprentissage même avec des réseaux profonds.

4.2.2 Structure de l’architecture ResNet50


ResNet50 est constitué de 50 couches, dont la majorité sont des couches convolutionnelles. L’architecture
est organisée en blocs résiduels qui permettent au modèle d’extraire des caractéristiques à différents niveaux de
complexité. Voici un aperçu des principales composantes de l’architecture :
— Couche d’entrée : Une convolution 7x7 suivie d’une opération de max-pooling 3x3, qui réduit la taille
de l’image tout en extrayant les caractéristiques de bas niveau.
— Blocs résiduels : ResNet50 contient 16 blocs résiduels composés de convolutions 1x1, 3x3 et 1x1, avec
des connexions directes qui contournent chaque bloc.
— Normalisation de lot (Batch Normalization) : Chaque couche convolutionnelle est suivie d’une
normalisation de lot, qui permet de stabiliser et d’accélérer l’entraînement.
— Fonctions d’activation ReLU : Les activations ReLU sont appliquées après chaque convolution pour
introduire la non-linéarité nécessaire.
— Couche entièrement connectée : À la fin de l’architecture, une couche entièrement connectée suivie
d’une activation softmax est utilisée pour produire les probabilités de chaque classe.

4.2.3 Avantages de ResNet50


ResNet50 présente plusieurs avantages qui en font un choix privilégié pour les tâches de classification
d’images :
— Résolution du problème de la dégradation des gradients : Grâce aux blocs résiduels, ResNet
permet d’entraîner des réseaux très profonds sans souffrir du problème de vanishing gradients.
— Meilleures performances avec plus de couches : L’architecture permet d’ajouter davantage de
couches tout en maintenant ou en améliorant les performances du modèle.
— Transfert d’apprentissage : ResNet50 est souvent utilisé comme modèle pré-entraîné sur ImageNet,
facilitant ainsi l’application du transfert d’apprentissage sur des jeux de données spécifiques, comme le
Stanford Dogs Dataset.

4.2.4 Transfert d’apprentissage avec ResNet50


Dans le cadre de ce projet, nous avons utilisé un modèle ResNet50 pré-entraîné sur ImageNet. L’objectif est
de tirer parti des caractéristiques générales apprises lors de l’entraînement initial tout en réadaptant le modèle
à la classification des races de chiens dans le Stanford Dogs Dataset. Cette approche réduit considérablement le
temps d’entraînement et permet d’obtenir de meilleures performances avec un jeu de données plus restreint.

Page 28
Classement des images en utilisant Deep Learning

4.3 Architecture de Xception


Xception, qui signifie "Extreme Inception", est une architecture de réseau de neurones convo-
lutionnels (CNN) développée par François Chollet, créateur de Keras. Il s’agit d’une extension
du modèle Inception, qui introduit des convolutions séparables en profondeur (depthwise se-
parable convolutions) pour améliorer l’efficacité et la performance du modèle. L’architecture
Xception est conçue pour capturer les caractéristiques complexes tout en réduisant le nombre
de paramètres nécessaires, ce qui en fait un choix populaire pour les tâches de classification
d’images.

Figure 4.3 – Architecture Xception

4.3.1 Convolutions séparables en profondeur

L’innovation principale de Xception réside dans l’utilisation de convolutions séparables en


profondeur. Contrairement aux convolutions classiques, cette méthode divise l’opération en
deux étapes distinctes :
— Convolution par canal : Chaque canal de l’image d’entrée est traité séparément à l’aide
de filtres 1x1. Cette étape permet de capturer les corrélations entre les différentes carac-
téristiques au sein d’un même canal.
— Convolution spatiale : Après la convolution par canal, une convolution spatiale est
appliquée, généralement avec un noyau 3x3 ou 5x5, pour capturer les relations spatiales
entre les pixels voisins dans l’image.
L’utilisation des convolutions séparables en profondeur permet à Xception de réduire de
manière significative le nombre de paramètres, tout en maintenant une capacité d’extraction
de caractéristiques comparable à celle des architectures plus complexes comme Inception.

4.3.2 Structure de l’architecture Xception

L’architecture Xception se compose de 36 couches convolutionnelles organisées en 14 blocs


modifiés, dont chacun est suivi d’une étape de normalisation de lot (batch normalization) et
d’une fonction d’activation ReLU. Voici les composants principaux de l’architecture :

Page 29
Classement des images en utilisant Deep Learning

— Bloc d’entrée : Le modèle commence par une couche convolutionnelle classique suivie
d’une couche de pooling pour réduire la dimension de l’image d’entrée.
— Blocs de convolutions séparables en profondeur : Ces blocs constituent le cœur
de l’architecture et sont utilisés pour extraire les caractéristiques de l’image en suivant le
principe des convolutions séparables en profondeur. Chaque bloc est suivi de normalisation
de lot et de ReLU pour accélérer la convergence.
— Bloc de sortie : Après les blocs convolutifs, les caractéristiques extraites sont aplaties
et passées dans des couches entièrement connectées, suivies d’une fonction d’activation
softmax pour la classification finale.

4.3.3 Avantages de Xception

— Efficacité des paramètres : Grâce à l’utilisation des convolutions séparables en profon-


deur, Xception réduit considérablement le nombre de paramètres par rapport aux autres
architectures CNN, tout en maintenant une haute capacité de généralisation.
— Performance améliorée : Xception a démontré des performances supérieures à Inception-
v3 sur des tâches de classification d’images, notamment sur la base de données ImageNet.
— Transfert d’apprentissage : L’architecture Xception est souvent utilisée comme base
pour le transfert d’apprentissage dans des domaines nécessitant une classification d’images
avec des classes spécifiques (par exemple, les races de chiens dans le cadre de ce projet).

4.3.4 Fonctionnement du transfert d’apprentissage avec Xception

Dans le cadre de notre projet, l’architecture Xception a été utilisée avec un modèle pré-
entraîné sur la base de données ImageNet, suivi d’une phase de transfert d’apprentissage. Cela
permet de bénéficier des caractéristiques générales déjà apprises par le modèle lors de son
entraînement initial, tout en ajustant les dernières couches pour s’adapter à notre jeu de don-
nées spécifique, ici le Stanford Dogs Dataset. Cette approche permet d’obtenir de meilleures
performances tout en réduisant le temps d’entraînement et la quantité de données requise.

4.4 Conclusion

Dans ce chapitre, nous avons exploré les architectures clés utilisées pour notre projet de
classification d’images, à savoir le modèle CNN basique, Xception et ResNet50. Chacune de
ces architectures apporte des avantages spécifiques, depuis la simplicité et l’efficacité du CNN
basique, jusqu’à la sophistication et la profondeur des modèles Xception et ResNet50, adaptés
aux tâches complexes de classification d’images. L’intégration de ces architectures avec des
modèles pré-entraînés a permis d’améliorer la précision et d’optimiser les performances tout
en réduisant le temps d’entraînement. Ces choix stratégiques posent les bases solides pour la
prochaine phase de développement et d’optimisation du projet.

Page 30
Classement des images en utilisant Deep Learning

Chapitre 5

Mise en oeuvre

Ce chapitre présente les défis et les solu-


tions liés à la classification d’images dans un
contexte où les données visuelles sont de plus en
plus abondantes. Nous explorons les avancées
récentes en intelligence artificielle, en particu-
lier les réseaux de neurones convolutionnels, qui
rendent possible cette analyse automatisée du
contenu visuel. Ce chapitre aborde également
les enjeux pratiques liés à la mise en œuvre de
ces technologies dans le cadre de notre projet,
notamment le traitement des grandes quantités
de données, le choix des architectures appro-
priées, et l’optimisation des modèles pour des
performances élevées.

Page 31
Classement des images en utilisant Deep Learning

5.1 Prétraitement des données


Dans cette section, nous décrivons le processus de prétraitement des images du Stanford Dogs
Dataset pour les rendre compatibles avec les architectures de réseaux de neurones convolution-
nels (CNN) utilisées dans ce projet, notamment Xception et ResNet50. Le prétraitement est
une étape critique pour assurer que les images sont correctement normalisées, redimensionnées
et prêtes pour l’entraînement des modèles.

5.1.1 Choix du modèle et redimensionnement des images

Le modèle sélectionné pour le transfert d’apprentissage a un impact direct sur la taille des
images en entrée. Dans notre cas, nous avons opté pour le modèle Xception, qui nécessite des
images de taille 299 × 299 pixels. Ce redimensionnement permet non seulement de normaliser
les dimensions des images mais aussi d’optimiser le temps de calcul tout en maintenant un bon
niveau de détail visuel.
Nous avons également choisi ResNet50 comme deuxième modèle à tester, qui nécessite des
images de taille 224×224 pixels. Ce modèle offre une architecture plus profonde, tout en restant
relativement léger en termes de taille et de calcul.

Figure 5.1 – redimensionnement des images

5.1.2 Distribution des classes et vérification de l’équilibre des données

Le Stanford Dogs Dataset contient 120 races de chiens, correspondant à 120 classes dans
notre projet. Il est essentiel de vérifier que chaque classe dispose d’un nombre suffisant d’images
pour éviter les biais. Dans notre cas, chaque race est représentée de manière équitable, avec une
moyenne de 171 images par classe. Cette distribution homogène permet de conserver l’intégralité
des classes sans avoir besoin de recourir à des techniques de rééchantillonnage.

Page 32
Classement des images en utilisant Deep Learning

Figure 5.2 – Nombre d’images pour chaque race de chien

5.1.3 Normalisation des images

Chaque image est normalisée pour s’assurer que les valeurs des pixels sont dans une plage de
[0,1]. Cette étape consiste à diviser chaque valeur de pixel par 255, ce qui facilite l’apprentissage
du modèle en accélérant la convergence pendant l’entraînement.

5.1.4 Égalisation des histogrammes

Les images peuvent avoir des expositions ou des contrastes différents. Pour homogénéiser la
luminosité et le contraste des images, nous appliquons une égalisation de l’histogramme sur le
canal de luminance (Y) dans l’espace de couleurs YUV. Cette transformation permet de mieux
répartir les intensités lumineuses dans tout le spectre de l’image, améliorant ainsi la qualité des
caractéristiques extraites par les modèles CNN.

Figure 5.3 – Égalisation des histogrammes

Page 33
Classement des images en utilisant Deep Learning

Figure 5.4 – Égalisation des histogrammes

5.1.5 Filtrage des images

Pour éliminer le bruit présent dans certaines images et améliorer la qualité visuelle, nous
appliquons un filtre non-local means. Ce filtre, contrairement aux filtres de moyenne locale,
permet de conserver les détails importants de l’image tout en lissant le bruit. Cela garantit que
les caractéristiques pertinentes sont mises en avant pour les étapes d’extraction ultérieures.

Figure 5.5 – Filtrage des images

5.1.6 Augmentation des données

Afin de réduire le risque de surentraînement et d’améliorer la capacité de généralisation du


modèle, nous appliquons la technique d’augmentation des données. Cette méthode consiste à
créer des variations artificielles des images existantes, en effectuant des transformations aléa-
toires telles que :
— Rotation des images.
— Décalage horizontal et vertical.
— Zoom.
— Renversement horizontal (mirroring).

Page 34
Classement des images en utilisant Deep Learning

Figure 5.6 – Data augmentation

Ces transformations sont réalisées en temps réel lors de l’entraînement à l’aide de la classe
ImageDataGenerator de Keras, ce qui permet d’augmenter virtuellement la taille du jeu de
données sans créer de nouvelles images physiques.

5.2 Modèle CNN from scratch


Après avoir effectué le prétraitement des images, incluant le redimensionnement, l’égalisation
des histogrammes et le débruitage, nous avons préparé les données sous forme de tableaux
Numpy. Ces données sont maintenant prêtes à être utilisées pour entraîner un modèle de réseau
de neurones convolutionnel (CNN) simple, construit from scratch, pour établir une baseline de
performance avant d’utiliser des modèles plus complexes comme Xception ou ResNet50.

5.2.1 Préparation des données pour le modèle CNN

La première étape consiste à mélanger aléatoirement les données dans les matrices X (images)
et y (étiquettes) afin de s’assurer que les classes soient bien distribuées et éviter un éventuel sur-
apprentissage. Les étiquettes, initialement sous forme de texte représentant les races de chiens,
sont ensuite encodées en valeurs numériques à l’aide d’un LabelEncoder. Cela est nécessaire car
le modèle de CNN ne peut pas traiter des données textuelles directement.

# Mélanger les données


[Link](8)

Page 35
Classement des images en utilisant Deep Learning

img_space = [Link]([Link][0])
[Link](img_space)
X = X[img_space]
y = y[img_space]

# Encoder les étiquettes textuelles en numériques


encoder = LabelEncoder()
[Link](y)
y = [Link](y)

Ensuite, les ensembles d’entraînement et de test sont créés. L’ensemble de validation sera
généré à partir de l’ensemble d’entraînement via la méthode ImageDataGenerator de Keras.

# Séparer les ensembles d'entraînement et de test


x_train, x_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42

5.2.2 Construction du modèle CNN

Pour ce modèle CNN from scratch, nous avons opté pour une architecture relativement
simple, composée de trois couches convolutionnelles suivies de couches de pooling, d’une fonction
d’activation ReLU, et de couches entièrement connectées. L’architecture est la suivante :
— Couches convolutionnelles : Utilisées pour extraire les caractéristiques des images, elles
appliquent des filtres pour détecter différents motifs.
— Couches de pooling : Réduisent la taille des images tout en conservant les caractéris-
tiques importantes, réduisant ainsi le nombre de paramètres.
— Fonction d’activation ReLU : Remplace les valeurs négatives par zéro, introduisant
une non-linéarité dans le modèle.
— Couches entièrement connectées : Utilisées pour combiner les caractéristiques ex-
traites et faire la prédiction finale de la classe de l’image.
— Dropout : Permet de désactiver aléatoirement certains neurones pendant l’entraînement
pour éviter le sur-apprentissage.

Page 36
Classement des images en utilisant Deep Learning

Figure 5.7 – Construction de modèle CNN

Page 37
Classement des images en utilisant Deep Learning

5.2.3 Entraînement et évaluation du modèle CNN

Une fois le modèle créé, il est compilé avec l’optimiseur Adam et la fonction de perte
sparse_categorical_crossentropy, adaptée aux problèmes de classification multi-classes.
Nous utilisons l’accuracy et le score F1 comme métriques pour évaluer les performances du
modèle.

[Link](optimizer="adam", loss="sparse_categorical_crossentropy",
metrics=["accuracy", f1_m])

Le modèle est ensuite entraîné sur 20 époques à l’aide de ImageDataGenerator pour appli-
quer en temps réel la rescaling et la data augmentation sur les images.

history = [Link](
train_datagen.flow(x_train, y_train, batch_size=16,
subset='training'),
validation_data=train_datagen.flow(x_train, y_train, batch_size=16,
subset='validation'),
steps_per_epoch=len(x_train) / 32,
epochs=20,
verbose=2)

5.2.4 Résultats et analyse

Les performances initiales du modèle CNN from scratch ne sont pas optimales. L’accuracy
sur l’ensemble de validation est restée faible, atteignant environ 13%, tandis que le score F1, bien
que stable, n’a pas permis d’améliorer significativement les résultats. Cela souligne l’importance
d’utiliser des modèles plus sophistiqués, tels que Xception et ResNet50, qui sont pré-entraînés
sur des jeux de données volumineux comme ImageNet, pour obtenir de meilleures performances
sur notre tâche de classification d’images.

plot_history_scores(history, "accuracy", "f1_m")

Figure 5.8 – Evaluation du modèle CNN

Page 38
Classement des images en utilisant Deep Learning

5.3 Transfert Learning : Modèles CNN pré-entrainés Xception et Re-


sNet50
Dans cette section, nous explorons et comparons deux architectures majeures de transfert
learning, Xception et ResNet50, utilisées pour la classification d’images dans notre projet.
Les deux modèles sont des réseaux de neurones convolutionnels (CNN) profonds qui exploitent
des méthodes avancées pour résoudre des problèmes complexes de vision par ordinateur. Nous
mettons en avant leurs architectures, les étapes d’adaptation au projet, ainsi qu’une analyse
comparative des performances sur le Stanford Dogs Dataset.

5.3.1 Importation et personnalisation des modèles

Pour les deux architectures, nous avons utilisé des versions pré-entrainées sur le jeu de
données ImageNet, un grand ensemble de données contenant plus d’un million d’images réparties
en 1000 classes différentes. Cette approche de transfert learning nous permet de tirer parti
des connaissances déjà acquises par les modèles, tout en les adaptant à notre tâche spécifique
de classification des races de chiens.
— Xception : Nous avons supprimé les couches entièrement connectées au sommet du modèle
pour les remplacer par un nouveau classificateur personnalisé, composé d’une couche dense
avec une fonction d’activation softmax. Les couches convolutives ont été gelées afin de ne
pas ré-entraîner tout le modèle.
— ResNet50 : De manière similaire, nous avons enlevé les couches supérieures du modèle
ResNet50 et ajouté notre propre classificateur. Les couches de convolution ont également
été gelées, car leur réentraînement pourrait provoquer du surapprentissage (overfitting)
sur notre jeu de données relativement petit.
Cette approche permet d’utiliser les capacités d’extraction de caractéristiques complexes des
modèles tout en adaptant le classificateur final aux 120 races de chiens présentes dans notre
jeu de données.

5.3.2 Prétraitement et augmentation des données

Afin de préparer les données pour les deux modèles, des techniques de prétraitement spéci-
fiques à chaque architecture ont été utilisées :

5.3.3 Entraînement des modèles

Les deux modèles ont été entraînés sur 20 époques avec un ensemble d’entraînement et un
ensemble de validation. Nous avons utilisé l’optimiseur Adam pour sa capacité à ajuster dynami-
quement les taux d’apprentissage, et la fonction de perte sparse_categorical_crossentropy,
adaptée aux problèmes de classification multi-classes.
Xception a montré une rapidité de convergence notable grâce à son architecture optimisée,
tandis que ResNet50 a démontré sa capacité à apprendre efficacement malgré sa profondeur.

Page 39
Classement des images en utilisant Deep Learning

5.3.4 Comparaison des performances

Les performances des trois modèles ont été évaluées à l’aide de la précision (accuracy). Les
résultats montrent des différences notables entre les architectures, avec une supériorité marquée
des modèles Xception et ResNet50 sur le modèle CNN simple. Voici un résumé des performances
obtenues :
— Xception a atteint une accuracy moyenne de 0.79 sur l’ensemble de validation, et sa
convergence est rapide. La structure basée sur des convolutions séparables en profondeur
semble mieux adaptée à la tâche de classification de notre projet.
— ResNet50 a obtenu une accuracy moyenne de 0.66, ce qui montre qu’il est performant,
bien qu’un peu en deçà de Xception. La profondeur et la complexité de son architecture
résiduelle sont probablement responsables de cette légère différence.
— CNN basique a présenté une accuracy moyenne relativement faible de 0.15, en grande
partie à cause de la simplicité de son architecture qui ne permet pas de capturer efficace-
ment des caractéristiques complexes des images.
Le graphique ci-dessous illustre la comparaison des performances en termes d’accuracy au
fil des époques pour les trois modèles testés :

Figure 5.9 – Accuracy comparaison

Les performances des trois modèles ont également été évaluées à l’aide du F1-m (F1 score),
qui prend en compte à la fois la précision et le rappel pour offrir une évaluation plus équilibrée.
Les résultats montrent des différences significatives entre les architectures, avec une meilleure
performance des modèles Xception et ResNet50 par rapport au modèle CNN basique. Voici
un résumé des performances obtenues :

Page 40
Classement des images en utilisant Deep Learning

— Xception a atteint un F1-m moyen de 2.10 sur l’ensemble de validation. Bien que le
F1 score ait initialement chuté dans les premières époques, il a rapidement convergé vers
une valeur stable, indiquant que le modèle équilibre bien la précision et le rappel.
— ResNet50 a obtenu un F1-m moyen de 1.85, ce qui montre qu’il est performant mais
légèrement inférieur à Xception. La profondeur de son architecture résiduelle pourrait
expliquer cette différence, nécessitant peut-être un ajustement supplémentaire des para-
mètres pour optimiser pleinement le modèle.
— Le CNN basique a présenté un F1-m moyen relativement faible de 1.25, ce qui reflète
l’incapacité du modèle à bien généraliser et à capturer les caractéristiques complexes des
images en raison de la simplicité de son architecture.
Le graphique ci-dessous illustre la comparaison des performances en termes de F1-m au fil
des époques pour les trois modèles testés :

Figure 5.10 – F1_m Xception

Figure 5.11 – F1_m Resnet50

Page 41
Classement des images en utilisant Deep Learning

5.3.5 Analyse des résultats

Les résultats indiquent que Xception est mieux adapté à notre jeu de données et à la tâche
de classification des races de chiens, grâce à son architecture plus légère et son efficacité en
termes de calcul. En effet, Xception a atteint un F1-m moyen de 2.10, témoignant de son
bon équilibre entre précision et rappel, et une précision moyenne de 0.79. Ces performances
soulignent la rapidité de convergence du modèle, particulièrement bien adaptée à la complexité
de notre projet. ResNet50, bien que légèrement en retrait, reste un modèle performant avec
un F1-m moyen de 1.85 et une précision moyenne de 0.66. Sa capacité à extraire des carac-
téristiques complexes en fait un modèle adapté pour des réseaux très profonds, même s’il est
légèrement moins performant que Xception dans ce contexte. Le CNN basique, quant à lui, a
montré des résultats significativement inférieurs avec un F1-m moyen de 1.25 et une précision
moyenne de 0.15, en raison de la simplicité de son architecture qui ne permet pas de capturer
efficacement les caractéristiques complexes des images.

En conclusion, l’utilisation du transfert learning avec les modèles pré-entrainés Xception


et ResNet50 a permis d’obtenir des performances significatives sur la tâche de classification
des races de chiens. Bien que les deux architectures soient compétitives, Xception a montré
une légère supériorité dans notre projet, notamment en termes de rapidité de convergence et
de précision. Pour les étapes suivantes, nous envisageons d’optimiser davantage Xception par
un fine-tuning des couches profondes afin de maximiser ses performances.

5.3.6 Optimization des paramètres sur la couche classifier du modèle Xception

Les résultats indiquent que Xception est mieux adapté à notre jeu de données et à la tâche
de classification des races de chiens, grâce à son architecture plus légère et son efficacité en
termes de calcul. En effet, Xception a atteint un F1-m moyen de 2.10, témoignant de son
bon équilibre entre précision et rappel, et une précision moyenne de 0.79. Après optimisation
des hyperparamètres, le modèle a montré des performances stables avec une accuracy attei-
gnant 0.9157 et un F1-m de 1.3209 à l’Epoch 30. Ces résultats indiquent une amélioration
notable de la capacité de généralisation du modèle, en particulier sur les données de validation,
avec une val_accuracy de 0.7988 et un val_f1_m de 1.5040.

ResNet50, bien que légèrement en retrait, reste un modèle performant avec un F1-m
moyen de 1.85 et une précision moyenne de 0.66. Sa capacité à extraire des caractéristiques
complexes en fait un modèle adapté pour des réseaux très profonds, même s’il est légèrement
moins performant que Xception dans ce contexte. Le CNN basique, quant à lui, a montré des
résultats significativement inférieurs avec un F1-m moyen de 1.25 et une précision moyenne de
0.15, en raison de la simplicité de son architecture qui ne permet pas de capturer efficacement
les caractéristiques complexes des images.

Page 42
Classement des images en utilisant Deep Learning

Figure 5.12 – Resultat apres optimisation

En conclusion, l’utilisation du transfert learning avec les modèles pré-entrainés Xception


et ResNet50 a permis d’obtenir des performances significatives sur la tâche de classification
des races de chiens. Bien que les deux architectures soient compétitives, Xception a montré
une légère supériorité dans notre projet, notamment en termes de rapidité de convergence et
de précision. Pour les étapes suivantes, nous envisageons d’optimiser davantage Xception par
un fine-tuning des couches profondes afin de maximiser ses performances.

5.4 Fine-tuning de Xception


Comme nous l’avons vu dans le schéma de l’architecture Xception, ce modèle dispose de
3 blocs : le flux d’entrée, le flux moyen et le flux de sortie. Afin d’améliorer davantage ses
performances, nous avons décidé de réaliser un fine-tuning sur les couches supérieures. En effet,
après avoir optimisé les hyperparamètres du modèle, nous avons réentraîné le dernier bloc (les
dernières couches) du modèle pré-entrainé en libérant certaines couches pour l’apprentissage
tout en gardant les premières couches figées.
Le fine-tuning a été effectué avec les étapes suivantes :
— Chargement du modèle pré-entrainé : Le modèle Xception pré-entrainé a été chargé
avec les meilleures performances obtenues précédemment.
— Réentrainement des dernières couches : Les 115 premières couches du modèle Xcep-
tion ont été figées afin de préserver les caractéristiques déjà apprises. Les couches restantes

Page 43
Classement des images en utilisant Deep Learning

ont été libérées pour l’apprentissage afin d’adapter le modèle à notre jeu de données spé-
cifique.
— Entrainement et évaluation : Le modèle a été réentraîné sur 20 époques avec un early
stopping pour prévenir l’overfitting.

5.4.1 Résultats après Fine-tuning

Après le fine-tuning, le modèle Xception a montré une nette amélioration des performances
par rapport aux autres modèles testés. La Mean accuracy a atteint 0.83 après le fine-tuning,
surpassant les résultats obtenus avec le modèle Xception avant ajustement (0.79), et largement
supérieure aux performances de ResNet50 (0.66) et du modèle CNN de base (0.15).
Voici les résultats après le fine-tuning :
— Fine-tuned Xception : Accuracy de 0.9157, F1-m de 1.3209, et val_accuracy de
0.7988.

5.4.2 Comparaison des modèles

Le graphique ci-dessous montre la comparaison de l’accuracy des différents modèles testés


après fine-tuning :

Figure 5.13 – Comparaison des performances des modèles CNN, Xception, ResNet50 et Xception fine-tuned.

Page 44
Classement des images en utilisant Deep Learning

Figure 5.14 – Predicted VS Actual

Nous observons que le modèle Xception avec fine-tuning a surpassé les autres architec-
tures, tant en termes de rapidité de convergence que de performances globales sur le jeu de
validation.
En conclusion, le modèle Xception optimisé avec fine-tuning est celui qui présente les
meilleures performances pour notre projet de classification des races de chiens.

[Link] Exemple de prédiction sur les données de test

La plupart des prédictions sont correctes, notamment pour le Border Collie et le Rottweiler,
mais il y a quelques erreurs, comme un Labrador Retriever prédit comme un Staffordshire
Bullterrier. Cela indique que bien que le modèle soit performant, il y a encore des cas de
confusion entre certaines races visuellement similaires, ce qui pourrait être amélioré avec plus
d’entraînement.

Page 45
Classement des images en utilisant Deep Learning

5.5 Conclusion
En conclusion, ce chapitre sur la mise en œuvre a permis de démontrer les différentes étapes
essentielles dans le traitement et l’entraînement des modèles de classification des races de chiens.
Du prétraitement des données au fine-tuning des modèles, nous avons utilisé des approches
telles que le transfert learning avec Xception et ResNet50 pour améliorer les performances du
modèle. Le fine-tuning a montré une nette amélioration, notamment avec le modèle Xception,
qui a offert des résultats optimisés en termes de précision et de score F1-m. Cette mise en
œuvre met en lumière l’importance de l’optimisation des hyperparamètres et de l’adaptation
des modèles pré-entraînés pour obtenir des résultats performants dans des tâches complexes
comme la classification d’images.

Page 46
Classement des images en utilisant Deep Learning

Conclusion générale et perspectives :

Ce projet a mis en œuvre l’ensemble des étapes nécessaires à la classification des images
en utilisant des techniques de deep learning, avec un accent particulier sur l’application du
transfert learning. Nous avons débuté par une étude approfondie des bases de données dispo-
nibles, et avons choisi d’utiliser le Stanford Dogs Dataset pour sa diversité et son ampleur.
Ensuite, un prétraitement rigoureux des images a été réalisé, incluant le redimensionne-
ment, la normalisation et l’augmentation des données, afin d’assurer une meilleure efficacité du
modèle.

Nous avons ensuite testé différentes architectures de réseaux de neurones convolutionnels


(CNN), en commençant par un modèle CNN basique, puis en passant aux modèles plus
avancés comme Xception et ResNet50. L’utilisation du transfert learning a permis de
réutiliser les poids pré-entrainés de ces modèles, ce qui a accéléré la convergence et amélioré
les performances globales du modèle. Des métriques telles que la précision (accuracy) et le
F1-m score ont été utilisées pour évaluer les performances des modèles.

Perspectives
Pour améliorer davantage ce travail, plusieurs axes peuvent être explorés :
— Augmentation des données : L’ajout de nouvelles images ou l’utilisation de techniques
avancées d’augmentation pourrait renforcer la robustesse du modèle face aux variations
dans les images.
— Fine-tuning supplémentaire : Affiner davantage le modèle Xception en modifiant plus
de couches ou en explorant d’autres hyperparamètres pourrait mener à une amélioration
des résultats.
— Exploration d’architectures récentes : Tester de nouvelles architectures telles que Ef-
ficientNet ou Vision Transformers pourrait offrir des gains supplémentaires en termes
de performances et d’efficacité de calcul.
— Déploiement en production : La prochaine étape consisterait à déployer ce modèle
dans un environnement de production, avec des mécanismes de suivi des performances et
de mise à jour continue du modèle.
En somme, ce projet a démontré l’importance du transfert learning et du fine-tuning
dans la classification d’images, tout en posant les bases pour de futures améliorations et appli-
cations dans des contextes réels.

Page 47
Classement des images en utilisant Deep Learning

Bibliographie

[1] François Chollet. Xception : Deep learning with depthwise separable convolutions. Procee-
dings of the IEEE conference on computer vision and pattern recognition, pages 1251–1258,
2017.
[2] François Chollet. On the use of depthwise separable convolutions in modern cnn architec-
tures, 2017. Accessed : 2024-07-01.
[3] Keras Documentation. Keras applications - pretrained models, 2023. Accessed : 2024-06-22.
[4] TensorFlow Documentation. Transfer learning and fine-tuning with tensorflow, 2023. Ac-
cessed : 2024-07-15.
[5] Ian Goodfellow, Yoshua Bengio, and Aaron Courville. Deep Learning. MIT Press, 2016.
[6] Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for
image recognition. Proceedings of the IEEE conference on computer vision and pattern
recognition, pages 770–778, 2016.
[7] ImageNet. Imagenet large scale visual recognition challenge, 2023. Accessed : 2024-07-10.
[8] Alex Krizhevsky, Ilya Sutskever, and Geoffrey E Hinton. Imagenet classification with deep
convolutional neural networks. Advances in neural information processing systems, pages
1097–1105, 2012.
[9] Karen Simonyan and Andrew Zisserman. Very deep convolutional networks for large-scale
image recognition. arXiv preprint arXiv :1409.1556, 2014.
[10] Mingxing Tan and Quoc Le. Efficientnet : Rethinking model scaling for convolutional
neural networks. Proceedings of the 36th International Conference on Machine Learning
(ICML), pages 6105–6114, 2019.
[11] Stanford University. Stanford dogs dataset, 2011. Accessed : 2024-06-25.

Page 48

Vous aimerez peut-être aussi