PFA2
PFA2
Systèmes - RABAT
Réalisé par :
Encadré par :
RAKI Wiame
M. OUHEJJOU Omar
YOUB Omar
Introduction générale 4
2 Analyse et spécification 10
2.1 Etude de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.1 Analyse de base de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.2 Critère d’évaluation : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Recueil de besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3 Cadrage fonctionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4 Cadrage technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3 Conception de la solution 15
3.1 Architecture :VGG16 et LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.1.1 VGG16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.1.2 LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2 Architecture : Xception et LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2.1 Xception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3 Embeddings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4 Mise en oeuvre 22
4.1 Prétraitement des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1.1 Prétraitement des légendes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1.2 Prétraitement d’images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1.2.1 Modèle VGG16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.1.2.2 Modèle Xception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2 Embeddings :GloVe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.3 Architecture de modèles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.3.1 VGG16 + LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3.2 Xception + LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.4 Entraînement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Page 1
5 Résultats et Discussion 30
5.1 Qualité d’ajustement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.2 Temps d’entraînement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.3 Qualité de prédiction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.4 Comparaison des performances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Page 3
Générateur de légendes pour images
Introduction générale
La légende d’image [2, 3, 4], qui génère automatiquement des descriptions en langage na-
turel pour les images, a une large gamme d’applications, telles que la recherche d’images, l’aide
aux personnes malvoyantes et l’interaction intelligente entre l’homme et l’ordinateur. Depuis
des décennies, il s’agit d’une tâche interdisciplinaire difficile impliquant à la fois la vision par
ordinateur et le traitement du langage naturel.
Notre travail est motivé par l’un des cadres les plus populaires suivant le pipeline encodeur-
décodeur proposé par Vinyals et al. [5], qui combine les Réseaux Neuronaux Convolutifs (CNN)
pour obtenir un vecteur de caractéristiques visuelles et les réseaux LSTM [6] pour décoder le
vecteur en phrases en langage naturel.
Notre objectif ultime est de fournir un modèle qui non seulement reconnaît les éléments
visuels d’une image mais les interprète également de manière contextuelle pour produire des
légendes informatives et pertinentes.
Page 4
Générateur de légendes pour images
Chapitre 1
Page 5
Générateur de légendes pour images
1.2 Problématique
Avec l’augmentation exponentielle des contenus visuels disponibles sur internet et dans
diverses bases de données, la capacité de les annoter automatiquement avec des descriptions
précises devient essentielle pour améliorer l’accessibilité, la recherche et la gestion de l’informa-
tion. Les générateurs de légendes pour images utilisent des modèles d’IA tels que les réseaux de
neurones convolutionnels (CNN) pour l’analyse d’image et les réseaux de neurones récurrents
(RNN) ou les transformers pour la génération de texte. Ces technologies permettent au système
de comprendre le contenu d’une image et de formuler des légendes qui reflètent non seulement
les objets présents mais aussi leur contexte et leurs interactions.
Page 6
Générateur de légendes pour images
1.3 Objectifs
Ce projet vise à développer un système capable de générer automatiquement des des-
criptions textuelles pour des images, fusionnant des avancées en vision par ordinateur et en
traitement du langage naturel (NLP) :
1. Amélioration de la Précision des Modèles d’IA : L’objectif principal est d’amélio-
rer la précision des modèles d’intelligence artificielle, notamment les réseaux de neurones
convolutionnels (CNN) pour l’analyse visuelle et les réseaux de neurones récurrents (RNN)
ou les transformers pour la génération de texte. Cela implique de développer des archi-
tectures plus avancées capables de comprendre non seulement les objets dans les images,
mais aussi leur contexte et leurs interactions.
2. Accessibilité et Utilisation : Un autre objectif important est de rendre les technologies
d’annotation d’images plus accessibles aux utilisateurs non techniques. Cela peut être
réalisé en développant des interfaces conviviales et des outils intuitifs permettant aux
utilisateurs de facilement rechercher, gérer et exploiter les annotations générées.
3. Comparaison des Modèles : Enfin, une analyse comparative des modèles utilisés pour
la génération de légendes sera effectuée. Cette analyse visera à identifier les forces et les
faiblesses de chaque modèle, en se basant sur des critères tels que la précision, la rapidité,
et la facilité d’implémentation, afin de recommander le modèle le plus adapté selon les
besoins spécifiques du projet.
Page 7
Générateur de légendes pour images
1.5 Conclusion
En somme, ce chapitre définit le cadre du projet de générateur de légendes pour images,
mettant en évidence son importance dans le paysage technologique et son potentiel de trans-
formation de l’interaction avec les données visuelles. La problématique et les objectifs sont
clairement exposés, préparant le terrain pour les développements à venir.
Page 9
Générateur de légendes pour images
Chapitre 2
Analyse et spécification
Page 10
Générateur de légendes pour images
Page 11
Générateur de légendes pour images
Étant donné nos ressources limitées et dans le but de minimiser le temps d’entraînement,
nous utiliserons la base de données Flickr8k. Cependant, cela pourrait affecter la qualité des
résultats.
Page 12
Générateur de légendes pour images
Page 13
Générateur de légendes pour images
2.5 Conclusion
En conclusion, ce chapitre a permis une analyse approfondie des besoins et des spécifica-
tions pour notre générateur de légendes. Nous avons examiné les bases de données, les critères
d’évaluation et recueilli les besoins du système. Cette analyse fournit un cadre clair pour la
conception et l’implémentation du générateur de légendes. Nous sommes prêts à passer à la
prochaine étape du développement.
Page 14
Générateur de légendes pour images
Chapitre 3
Conception de la solution
Page 15
Générateur de légendes pour images
3.1.1 VGG16
Un réseau neuronal convolutif, ou ConvNet, est un type de réseau neuronal artificiel
comprenant une couche d’entrée, une couche de sortie et plusieurs couches cachées. VGG16, un
modèle CNN, est reconnu comme l’un des meilleurs en vision par ordinateur. Il est capable de
classer 1000 images dans 1000 catégories différentes avec une précision de 92,7 %. Les créateurs
de VGG16 ont amélioré les performances en augmentant la profondeur à 16-19 couches de poids,
utilisant de petits filtres de convolution (3×3), aboutissant à environ 138 millions de paramètres
entraînables. VGG16 est également populaire pour la classification d’images et facile à utiliser
avec l’apprentissage par transfert.[14]
Page 16
Générateur de légendes pour images
des filtres de petite taille (3x3), ce qui permet de capturer les caractéristiques locales de
l’image. Il y a 13 couches de convolution au total, organisées en groupes. Chaque groupe
de couches de convolution est suivi par une couche de regroupement (max pooling) pour
réduire la taille des données.
3. Couches de regroupement (Max Pooling) : Ces couches réduisent la dimension spa-
tiale de l’image après chaque groupe de convolutions, tout en conservant les informations
les plus importantes.
4. Couches entièrement connectées : Après les couches de convolution et de pooling,
l’architecture inclut trois couches entièrement connectées, dont la dernière est une couche
de sortie avec une fonction d’activation softmax pour la classification.
Le résumé de la structure est comme suit :
— Entrée : Image 224x224x3
— 2 Convolutions 3x3, Max Pooling
— 2 Convolutions 3x3, Max Pooling
— 3 Convolutions 3x3, Max Pooling
— 3 Convolutions 3x3, Max Pooling
— 3 Convolutions 3x3, Max Pooling
— 2 Couches entièrement connectées
— 1 Couche de sortie (softmax)
On a VGG16 pour l’extraction de caractéristiques, d’où l’élimination de la dernière couche
de sortie parce qu’elle est spécifique à la tâche de classification pour laquelle le modèle a été
entraîné. Pour l’extraction de caractéristiques, nous sommes intéressés par les caractéristiques
générales de l’image qui sont capturées par les couches de convolution précédentes, et non par
les scores de classification finaux.
En supprimant la couche de sortie et en utilisant les caractéristiques extraites des couches
précédentes, on obtient une représentation plus générale et plus utile des images, qui peut être
utilisée comme entrée LSTM.
3.1.2 LSTM
Les LSTM (Long Short-Term Memory) sont un type de réseau de neurones récurrents
(RNN) conçu pour traiter et prédire des séquences de données sur de longues périodes. Ils sont
particulièrement utiles pour résoudre le problème du gradient qui disparaît, un défi courant dans
les RNN traditionnels où les gradients deviennent extrêmement petits et rendent l’apprentissage
inefficace.
Page 17
Générateur de légendes pour images
Page 18
Générateur de légendes pour images
3.2.1 Xception
Un réseau neuronal convolutif, ou ConvNet, est un type de réseau neuronal artificiel com-
prenant une couche d’entrée, une couche de sortie et plusieurs couches cachées. Xception, une
architecture CNN, est reconnue pour sa performance en vision par ordinateur. Elle améliore
l’architecture Inception en utilisant des convolutions séparables en profondeur, permettant de
décomposer une convolution classique en une convolution spatiale suivie d’une convolution de
point (1x1). Cette approche réduit le nombre de paramètres et de calculs tout en augmentant
les performances.
Page 19
Générateur de légendes pour images
3.3 Embeddings
Les embeddings de mots jouent un rôle crucial en transformant les mots en vecteurs numé-
riques continus de dimension fixe, permettant au modèle de traiter efficacement les données
textuelles. Les embeddings capturent les relations sémantiques et contextuelles entre les mots,
ce qui est essentiel pour comprendre et générer des légendes cohérentes et contextuellement
appropriées. Dans ce contexte, le choix de GloVe (Global Vectors for Word Representation) est
particulièrement pertinent. GloVe est un modèle d’embedding de mots qui est pré-entraîné sur
de grands corpus de texte, comme Wikipedia ou Common Crawl, et est capable de capturer
des relations sémantiques subtiles en se basant sur les co-occurrences de mots dans un contexte
global.
Le fonctionnement de GloVe repose sur l’idée que les relations entre les mots peuvent être re-
présentées par des différences de vecteurs dans un espace de haute dimension. Par exemple, la
différence entre les vecteurs de "roi" et "homme" est similaire à celle entre "reine" et "femme".
En utilisant GloVe, nous bénéficions de vecteurs d’embeddings pré-entraînés qui encapsulent
Page 20
Générateur de légendes pour images
une riche représentation sémantique, ce qui permet au modèle de générer des légendes plus pré-
cises et nuancées. De plus, l’utilisation de GloVe permet de démarrer l’entraînement du modèle
avec des embeddings déjà optimisés, accélérant ainsi la convergence et améliorant potentielle-
ment la performance du modèle sur des tâches de compréhension et de génération de langage
naturel.
3.4 Conclusion
En conclusion, ce chapitre a présenté les architectures utilisées pour le générateur de
légendes pour images, en se concentrant sur deux approches : VGG16 et Xception, toutes
deux combinées avec des modèles LSTM. Ces architectures montrent comment les réseaux de
neurones convolutionnels peuvent être utilisés pour extraire des caractéristiques visuelles, tandis
que les réseaux LSTM sont employés pour générer des descriptions textuelles à partir de ces
caractéristiques. Cette combinaison permet de créer des modèles efficaces pour la génération
automatique de légendes d’images.
Page 21
Générateur de légendes pour images
Chapitre 4
Mise en oeuvre
Page 22
Générateur de légendes pour images
def text_clean(text_original):
translation_table = str.maketrans('', '', string.punctuation)
text = text_original.translate(translation_table)
text = remove_single_character(text)
text = remove_numeric(text)
return(text)
Après text cleaning on a ajouter ’startseq’ au debut de chaque caption et ’endseq’ à sa fin.
— weights=’imagenet’ : spécifie que les poids pré-entraînés sur la base de données Ima-
geNet sont utilisés pour initialiser le modèle. ImageNet est une vaste base de données
d’images étiquetées qui a permis d’entraîner de nombreux modèles performants de vision
par ordinateur.
— include_top=True : indique que le modèle complet, y compris la couche de classification
finale, est chargé.
Cependant, pour utiliser VGG16 comme extracteur de caractéristiques pour la génération
de légendes, nous ne voulons pas conserver la couche de classification finale, qui est spécifique à
la tâche de classification. C’est pourquoi la deuxième ligne de code crée un nouveau modèle en
utilisant les couches d’entrée du modèle VGG16 original, mais en éliminant la dernière couche
de classification, en définissant la sortie sur modelvgg.layers[-2].output.
Pour vérifier si l’extraction des caractéristiques est cohérente, nous avons tracé la PCA de
la sortie de VGG16 :
Page 23
Générateur de légendes pour images
Sur la base de ce graphique, nous constatons que l’extraction des caractéristiques est co-
hérente puisque le premier cluster concerne les chiens, le deuxième la neige et le dernier les
sports.
Page 24
Générateur de légendes pour images
Page 25
Générateur de légendes pour images
Sur la base de ce graphique, nous constatons que l’extraction des caractéristiques par Xcep-
tion et moins performante que celle de VGG16.
La matrice d’embedding ainsi créée sera intégrée dans un modèle de réseau de neurones en
tant que couche d’embedding initialisée avec les vecteurs pré-entraînés de GloVe. Cela permet
au modèle de bénéficier des connaissances préalables sur les relations entre les mots, ce qui
améliore la performance des modèles basés sur LSTM.
Page 26
Générateur de légendes pour images
— Dense output : Ajoute une couche dense avec une activation softmax pour générer les
probabilités de chaque mot du vocabulaire, définissant ainsi la sortie du modèle.
On compile les deux modèles, en utilisant comme fonction de perte l’entropie croisée catégorielle,
l’optimiseur Adam, et les métriques à surveiller lors de l’entraînement est la précision.
Page 27
Générateur de légendes pour images
4.4 Entraînement
On lance l’entraînement des deux modèles de réseau de neurones qui prend en compte à
la fois des données d’images et de texte. Pendant cinq epoches, les modèles sont entraînés
sur un ensemble d’entraînement, où chaque lot contient 64 exemples. Pendant l’entraînement,
une validation est effectuée à la fin de chaque époque sur un ensemble de validation distinct
pour évaluer les performances des modèles sur des données qu’il n’a pas vues auparavant. Le
niveau de détails des informations affichées pendant l’entraînement est réglé sur un niveau
modéré (verbose=2), affichant une barre de progression par époque. Cette approche permet
de développer un modèle capable de comprendre et de traiter simultanément des informations
provenant de différentes sources, telles que des images et du texte.
Page 28
Générateur de légendes pour images
4.5 Conclusion
En conclusion, ce chapitre a exploré les dynamiques complexes et les avancées technologiques qui sous-tendent
les générateurs de légendes pour images, soulignant leur importance croissante dans un monde dominé par le
contenu visuel numérique. Les défis en termes de précision des modèles d’IA, d’accessibilité des technologies
et de compréhension contextuelle des images ont été discutés. En avançant, il devient essentiel de continuer
à améliorer ces technologies pour rendre les données visuelles non seulement plus accessibles mais aussi plus
utiles, offrant ainsi des outils puissants pour la gestion de l’information visuelle dans divers secteurs.
Page 29
Générateur de légendes pour images
Chapitre 5
Résultats et Discussion
Page 30
Générateur de légendes pour images
On remarque que pour les deux modèle, la perte d’entraînement diminue de manière signifi-
cative avec chaque époque, indiquant que le modèle s’améliore sur les données d’entraînement.
La perte de validation diminue également au début, mais semble se stabiliser et même augmen-
ter légèrement vers la fin, ce qui peut indiquer un début de surapprentissage (overfitting) du
modèle.
Page 31
Générateur de légendes pour images
— Xception et LSTM : Mean BLEU de 0.408 indique que les textes générés par ce modèle
sont en moyenne très similaires aux textes de référence, ce qui suggère une bonne perfor-
mance dans la génération de textes cohérents et pertinents par rapport aux attentes.
— VGG16 et LSTM : Mean BLEU de 0.399 montre que ce modèle génère des textes qui
sont également de bonne qualité, mais légèrement moins similaires aux textes de référence
par rapport au modèle Xception-LSTM.
Page 32
Générateur de légendes pour images
Page 33
Générateur de légendes pour images
5.5 Conclusion
En conclusion, bien que les deux modèles soient performants en termes de génération de texte,
le modèle Xception-LSTM non seulement offre une meilleure qualité de génération (comme
indiqué par un Mean BLEU légèrement supérieur), mais il est également beaucoup plus efficient
en termes de temps d’entraînement. Cela en fait une option plus attractive pour les applications
pratiques où le temps et les ressources de calcul sont des facteurs critiques.
Page 34
Générateur de légendes pour images
Page 35
Générateur de légendes pour images
Bibliographie
Page 36
Générateur de légendes pour images
[16] Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, and B Leibe. Computer vision–eccv 2016. In
European conference on computer vision, page 645. Springer, 2016.
[17] Satanjeev Banerjee and Alon Lavie. Meteor : An automatic metric for mt evaluation with improved
correlation with human judgments. In Proceedings of the acl workshop on intrinsic and extrinsic evaluation
measures for machine translation and/or summarization, pages 65–72, 2005.
[18] Haşim Sak, Andrew Senior, and Françoise Beaufays. Long short-term memory based recurrent neural
network architectures for large vocabulary speech recognition, 2014.
Page 37