Académique Documents
Professionnel Documents
Culture Documents
Introduction
Les langues des signes sont des formes de communication visuelles et gestuelles
basées sur les gestes de la main, les expressions faciales et les mouvements du corps qui
permettent principalement aux personnes malentendantes de s’exprimer.
Il n’existe pas de langue des signes universelles, et la langue parlée dépend
énormément de la zone géographique et de la culture local. Par exemple, même si le
Royaume-Uni et les Etats-Unis sont deux régions du monde où l’on parle anglais, la langue
des signes britannique (BSL) et la langue des signes Américaine (ASL) sont totalement
différentes. En effet, les lettres de l’alphabet sont réalisées à une main en ASL et à deux mains
en BSL.
L’ASL est parlé par plus d’un demi-million de personne à travers le monde, cependant,
ces personnes rencontrent beaucoup de difficultés à se faire comprendre du grand public.
L’intelligence artificiel représente une véritable opportunité pour renforcer l’inclusion de ces
personnes en société et c’est pourquoi j’ai choisi de travailler sur ce sujet.
Initialement ce projet avait pour but de travailler sur des images et des vidéos de
langue des signes pour proposer des modèles de classifications et de traduction. Cependant,
après une étude de la faisabilité, la complexité des modèles et le prétraitement requis pour
l'utilisation de vidéos dans des modèles de classification, ainsi que les exigences en termes de
puissance de calcul qui me sont difficiles d’accès, m'ont conduit à conclure que ce projet était
d'une ambition excessive pour ma première expérience en apprentissage profond. Par
conséquent, j'ai choisi de me concentrer sur le traitement d'images.
C’est donc dans ce contexte que s’inscrit mon projet pour ce cours visant à développer
un modèle de classification permettant la traduction d’images de la langue ASL.
Ce rapport présentera en premier lieu une description précise du projet ainsi que les
base de données et les métriques qui seront utilisées. Ensuite, il fera une taxonomie des
différentes méthodes dans la classification d’image et en particulier dans le contexte de
l’ASL. Enfin, il conclura par la sélection des modèles qui seront utilisés dans la suite du
projet.
Description du projet
L'objectif principal de ce projet de session est de mettre en place un modèle de
classification basé sur l'apprentissage profond, développé en utilisant PyTorch. Ce modèle sera
conçu pour identifier une lettre de l'alphabet de la Langue des Signes Américaine (ASL) à partir
d'une image de la main qui représente une de ces lettres.
Pour permettre l’utilisation de ce modèle, l’utilisateur pourra prendre une photo de sa main à
l'aide de la webcam de son ordinateur en temps-réel. Cette photo sera ensuite soumise à un
1
OUAMRANE Yanis
Base de données
Deux bases de données ont été retenues dans le cadre de ce projet. Ces bases de données, qui
sont en accès libre et disponibles sur Kaggle, ont été sélectionnées car elles possèdent de
nombreuses données mais aussi pour l’équilibre des proportions de données des différentes
classes. Par conséquent, cela aura pour avantage de dédier la majeure partie du temps au
développement du modèle.
Les bases de données sont les suivantes :
• Sign Language MNIST TECPERSON
Base de données qui contient près de 30 000 images de l’alphabet ASL. La base est
formée sur le même format que le dataset MNIST avec des images de faible résolution
(28x28 pixels). Toutes les images sont étiquetées et forment 24 classes différentes
(absence de la lettre J et Z qui nécessitent le mouvement de la main).
2
OUAMRANE Yanis
Chacune de ces deux bases de données seront augmentées en effectuant une rotation de 180°
des images afin d’entrainer le modèle sans que celui-ci ne soit impacté par l’ambigüité liés à
l’orientation de la Webcam et que le modèle fonctionne aussi bien avec une main gauche
qu’avec une main droite.
Un modèle de classification sera ainsi développé pour chacune de ces deux bases de données.
Métrique d’évaluation
Pour la réalisation de nos modèles nous diviserons nos bases de données en une base
d’entrainement, une base de test et une base de validation.
Tout au long du processus d’entrainement et à chaque époque, le modèle sera évalué à travers
plusieurs métrique :
Nous tracerons dans un premier temps la courbe d’apprentissage du modèle qui donne le tracé
de la fonction de coût mesuré sur l’ensemble de la base de données en fonction du nombre
d’époque. Nous tracerons 3 courbes pour les 3 parties de notre base de données (train, test,
validation). Ces courbes ont pour but de surveiller que le modèle apprend bien et qu’il n’est pas
bloqué sur un plateau fixe.
Afin de mesurer la performance du modèle, la mesure principale qui sera utiliser sera l’«
accuracy ». Pour un problème de classification nous pouvons la définir ainsi :
Nous tracerons la courbe de l’accuracy en fonction du nombre d’époque sur les 3 parties de
notre base de données afin de vérifier que notre modèle progresse d’une part et qu’il est capable
de généraliser d’autre part.
Pour chacune des classes, nous donnerons également les données métriques suivantes :
➢ La précision qui est définie comme « combien de personnes dans cette classe sont
correctement classées » et qui peut se calculer de la manière suivante :
𝑇𝑃
Précision = 𝑇𝑃+𝐹𝑃
➢ Le rappel est défini comme « le nombre d’éléments de cette classe que vous trouvez
sur le nombre total d’éléments de cette classe » et répond à la formule suivante :
𝑇𝑃
Rappel = 𝑇𝑃+𝐹𝑁
3
OUAMRANE Yanis
Pour rendre ces résultats plus visuels, nous donneront la matrice de confusion du modèle. Celle-
ci peut se définir de la manière suivante :
Vrai label
Classe Classe 2 … Classe N Total Précision
1
Classe 1
Classe 2
.
.
.
Classe N
Total
Précision
4
OUAMRANE Yanis
couche d'entrée à la couche de sortie, obéissant ainsi à un schéma de transmission directe (ou
feedforward). Les neurones de la dernière couche fournissent la sortie du système.
Ces réseaux sont intéressants car ils sont très facilement programmables et sont donc un bon
début pour la programmation de réseaux de neurones. Ils permettent également d’obtenir des
résultats intéressants pour des problèmes de classifications d’images avec des images de
faibles résolutions. Dans l’article Lowe, D. (2020, November) un modèle MLP à 5 couches
cachées a été développée pour classifier les images de Sign Language MNIST et a permis
d’obtenir une précision de 94,93 % sur la base d’entrainement après 50 époques. Cependant,
celui-ci n’a obtenu qu’un score de 77,93% de précision sur la base d’entrainement, ce qui
représente une erreur trop importante.
La couche de convolution est le premier élément des CNN. Elle représente la plus grande
charge de calcul. Cette couche consiste à extraire les caractéristiques (features) d’une image
comme les lignes, les formes, les couleurs etc... Pour cela, on fait glisser des filtres (ou
kernels) de petites tailles sur l'image d'entrée et on effectue un produit scalaire. Le résultat de
cette opération donne une nouvelle image appelée carte d'activation (feature map). Ici on ne
prédéfinies pas les features identifiables mais c’est le réseau lui-même qui apprend à les
identifier lors la phase d'entraînement.
5
OUAMRANE Yanis
La couche de pooling est une couche que l’on place entre deux couches de convolution.
L’objectif de la couche de pooling est de réduire la dimension de la carte d’activation, tout en
gardant les caractéristiques importantes de celle-ci. Pour cela, on découpe la feature map en
plusieurs petites parties régulières et on leurs appliquent une opération de pooling (maximum
par exemple).
Les dernières couches du CNN représente un réseau de neurones classique entièrement
connectées, elles permettent de liés les caractéristiques des images aux classes du problème de
classification grâce une dernière couche de Softmax.
Ce type de réseau a été retenue pour ce problème car il est celui qui permet d’obtenir les
meilleurs résultats en classification d’image. Dans le papier de Lowe, D. (2020, November) cité
précédemment, un modèle de CNN a 5 couches cachés a permis d’obtenir 99,94% de précision
sur les données d’entrainement et 99,55 % sur les données de test après seulement 25 époques.
Ce qui est beaucoup plus efficace que le MLP pour la même tâche.
Pour notre projet, nous nous concentrerons exclusivement sur les réseaux de neurones
convolutifs qui représentent l’état de l’art actuel en vision par ordinateur.
Dans la suite, nous examinerons donc de manière plus approfondie les divers modèles
de CNN disponibles, qui sont particulièrement efficaces pour aborder des problèmes de
classification d'images de résolution plus élevée, tels que ceux présents dans la base ASL
Alphabet.
• VGGNet
VGG est une architecture de réseau de neurones convolutifs classique introduite en 2014 par
K. Simonyan et A. Zisserman de l'université d'Oxford. VGG s’est démarqué en obtenant
d'excellents résultats sur ImageNet. Une des caractéristiques marquantes de VGG est sa
facilité d'utilisation, car il nécessite très peu de prétraitement des images d'entrée. VGG se
distingue également par l'utilisation de noyaux de convolution de petite taille, 3x3 alors que
les architectures précédentes utilisaient des noyaux plus grands, tels que 11x11 ou 5x5. Il
existe deux variantes principales de VGG : VGG16 et VGG19, qui se différencient par le
nombre de couches de convolutions qu'elles contiennent. Nous pouvons voir la structure de
VGG16 dans la figure suivante :
6
OUAMRANE Yanis
Dans l’étude menée par Abu-Jamie et Abu-Naser (2022) un modèle VGG16 pré-entraîné sur
ImageNet a été utilisé pour réaliser la classification de la base de données ASL Alphabet.
Dans ce papier, le modèle utilisait un réseau de neurones MLP entièrement connecté composé
de trois couches. Les deux premières couches comprenaient 4096 neurones chacune, tandis
que la dernière en comptait 1000. Pour évaluer les performances du modèle, une méthode de
validation croisée k-fold a été utilisée, et les résultats ont été très intéressant en seulement 20
époques d'entraînement.
• DenseNet
Le réseau DenseNet est un réseau convolutif profond développé par des chercheurs de
l'Université Cornell en 2017 et qui possède une architecture en bloc qualifiée de réseaux de
neurones densément connectés. Ce qui rend cette architecture particulièrement unique, c'est sa
manière de combiner les données. En effet, dans ce réseau, l’entrée d’une couche est la
concaténation de toutes les sorties des couches précédentes, comme illustré dans le schéma
suivant :
7
OUAMRANE Yanis
• ResNet
ResNet, abréviation de « Residual Network », est une puissante architecture de réseaux de
neurones convolutifs (CNN) profond. Elle a été conçue par Kaiming He, Xiangyu Zhang,
Shaoqing Ren et Jian Sun de Microsoft Research en 2015.
Resnet propose une autre architecture pour lutter contre le problème de disparition du
gradient. En effet dans l’architecture résiduel, on ajoute des « raccourcis » qui permettent aux
données de « sauter » certaines couches, accélérant ainsi l'apprentissage. En d'autres termes,
les données d'entrées sont ajoutées à la sortie, empêchant certaines couches de tendre vers une
valeur du gradient très faible comme le montre la figure suivante.
Ce processus permet au modèle de gérer un très grand nombre de couches puisqu’il apprend à
conserver les couches utiles et à transformer les autres en « fonction identité » qui n’agisse
que très peu sur le modèle et n’engendre pas de calcul inutile.
Dans le papier de Wurangian (2022), un modèle de ResNet50 (50 couches) pré entrainé sur
ImageNet a été utilisé pour résoudre le problème de classification similaire avec des images
de moins grande résolution que celle dont nous disposons. L’architecture de ResNet50 débute
par une de convolution initiale avec 64 noyaux de 7x7 et un stride de 2. Ensuite, une opération
de pooling initiale est réalisée avec un pas de 2. Le réseau comporte ensuite différents blocs
de convolution résiduels. Une opération de pooling moyenne sont effectuées à la fin de
l’architecture juste avant la couche entièrement connectée de 1000 neurones et la couche
softmax.
8
OUAMRANE Yanis
Au cours de cette étude, l'utilisation du modèle ResNet a abouti à un taux de précision de près
de 99% sur les données de test après seulement trois époques d'entraînement. De plus, lors de
l'évaluation du modèle avec des images capturées en temps réel depuis une webcam, sans être
issues de la base de données, le modèle a présenté un taux de réponse satisfaisant dans plus de
90% des cas. Ces résultats démontrent que cette architecture de réseau pourrait convenir à
notre projet.
• MobileNet
MobileNet est une architecture de réseau de neurones convolutifs (CNN) qui a été introduite
en 2017 par Andrew G. Howard et son équipe chez Google Research. Elle a été développée
pour nécessiter très peu de puissance de calcul et de mémoire pour être adaptable aux
appareils mobiles tels que les smartphones ou autre système embarqué à ressources limitées.
La particularité de MobileNet repose sur des convolutions spéciales appelées "convolutions
profondes séparables". Plutôt que d'appliquer une seule convolution sur l'ensemble des canaux
de l’image d’entrée (souvent 3 canaux RVB), les convolutions profondes séparables divisent
le processus en deux étapes : d'abord une convolution sur chacun des canaux
individuellement, c’est la Depthwise Convolution. Puis la Pointwise Convolution consiste à
faire une convolution sur les sorties de la Depthwise Convolution. Cette approche réduit
drastiquement la complexité du modèle tout en préservant la détection des caractériques et
donc la performance.
9
OUAMRANE Yanis
10
OUAMRANE Yanis
Références
https://fr.wikipedia.org/wiki/Perceptron_multicouche
Lowe, D. (2020, November 12). Multi-Class Deep Learning Model for Sign Language MNIST using
TensorFlow Take 2. Daines Analytics. https://dainesanalytics.blog/2020/11/20/multi-class-deep-
learning-model-for-sign-language-mnist-using-tensorflow-take-2/
Découvrez les différentes couches d’un CNN. (n.d.). OpenClassrooms.
https://openclassrooms.com/fr/courses/4470531-classez-et-segmentez-des-donnees-
visuelles/5083336-decouvrez-les-differentes-couches-dun-cnn
Mishra, M. (2021, December 15). Convolutional neural networks, explained - towards data science.
Medium. https://towardsdatascience.com/convolutional-neural-networks-explained-9cc5188c4939
Team, D. (2023, October 5). VGG : en quoi consiste ce modèle ? Daniel vous dit tout ! Formation Data
Science | DataScientest.com. https://datascientest.com/quest-ce-que-le-modele-vgg
Abu-Jamie, T. N., & Abu-Naser, S. S. (2022). Classification of Sign-language Using VGG16. Department
of Information Technology, Faculty of Engineering and Information Technology, Al-Azhar University -
Gaza, Palestine.
User. (2023, March 31). Réseaux de neurones DenseNet : tout ce qu’il y a à savoir. Formation Data
Science | DataScientest.com. https://datascientest.com/reseaux-de-neurones-
densenet#:~:text=Les%20r%C3%A9seaux%20DenseNet%20sont%20des,est%20l'optimisation%20des
%20performances.
Daroya, R., Peralta, D., & Naval, P. (2018). Alphabet Sign Language Image Classification Using Deep
Learning, Department of Computer Science, University of the Philippines.
Team, D. S. (2020). Réseaux neuronaux résiduels – Ce que vous devez savoir. DATA SCIENCE.
https://datascience.eu/fr/apprentissage-automatique/un-apercu-de-resnet-et-de-ses-variantes/
Wurangian, M. (2022, January 7). American Sign Language Alphabet Recognition - MLearning.ai -
Medium. Medium. https://medium.com/mlearning-ai/american-sign-language-alphabet-recognition-
ec286915df12
Abu-Jamie, T. N., & Abu-Naser, P. Dr. S. (2022). Classification of Sign-Language Using MobileNet - Deep
Learning. Department of Information Technology, Faculty of Engineering and Information Technology,
Al-Azhar University - Gaza, Palestine
Redaction. (2020, September 10). MobileNet, optimisation de la convolution pour les réseaux de
neurones embarqués. - Quantmetry. Quantmetry. https://www.quantmetry.com/blog/mobilenet-
optimisation-de-la-convolution-pour-les-reseaux-de-neurones-
embarques/#:~:text=L'architecture%20des%20MobileNets%20est,une%20image%20de%20profonde
ur%201024.
11