SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
Projet Image Processing :
Détection de port de masque facial avec MobileNetV2,
EfficientNet-B3 et ResNet152V2
Année universitaire : 2022/2023.
Résume :
La pandémie du Covid19 a causé des dégâts indéniables et des changements
considérables dans note vie quotidienne. Afin de limiter sa propagation, le port de
masque s’avère une mesure de protection dont l’application doit être assurée. Pour ce
faire, on utilisera les CNN afin de créer des modèles de détection de masques faciaux.
Dans ce rapport, on abordera les réseaux de neurones convolutifs, ou CNN. On passera à
trois modèles spécifiques: MobileNetV2, EfficientNet-B3 et ResNet152V2 et on les
appliquera afin de détecter la présence ou l’absence de masque facial.
Table de matière :
Introduction _____________________________________________________________________________________ 7
Contexte : ________________________________________________________________________________________ 8
Problématique : _________________________________________________________________________________ 9
Chapitre 1 : Conception ________________________________________________________________________10
1-2 Réseau Neuronal Convolutif (CNN) : _________________________________________________10
1-2-1 Architecture générale du CNN : __________________________________________________10
1-2-2 Apports majeurs du CNN : ________________________________________________________13
2-1 Modèle : MobileNetV2 _______________________________________________________________15
2-1-1 Définition : _________________________________________________________________________15
2-1-2 Particularités du modèle : ________________________________________________________17
2-2 Modèle : EfficientNet-B3_____________________________________________________________18
2-2-1 Définition : _________________________________________________________________________18
2-2-2 Particularités du modèle : _________________________________________________________19
2-3 Modèle : ResNet152v2 __________________________________________________________________22
2-3-1 Définition : _________________________________________________________________________22
Chapitre 2 : Réalisation ________________________________________________________________________25
2-1 MobileNetV2 : ___________________________________________________________________________25
2-2 ResNet152v2 : ________________________________________________________________________29
2-3 EfficientNet-B3 : _________________________________________________________________________34
Conclusion :_____________________________________________________________________________________40
Bibliographie : __________________________________________________________________________________41
Liste des abréviations :
DL: Deep Learning
GPU: Graphic Processing Unit
CNN: Convolutional Neural Network
RGB: Red,Green and Blue
ReLU: Rectified Linear Unit
FC: Fully Connected
QNN: Quantum Neural Network
BNN: Binary Neural Network
NAS: Neural Architecture Search
ResNet: Residual Network
Liste des figures :
Figure 1 : Architecture générale du CNN ............................................................................................ 10
Figure 2 : Fiche de convolution ............................................................................................................. 11
Figure 3 : Fonction d’activation ReLU .................................................................................................... 11
Figure 4 : Pooling ................................................................................................................................... 12
Figure 5 : Couche de normalisation par lots.......................................................................................... 12
Figure 6 : Couche entièrement connectée ............................................................................................ 13
Figure 7 : Performance des CNN par rapport aux QNN et BNN ............................................................ 14
Figure 8 : Linear Bottleneck Layer ......................................................................................................... 15
Figure 9 : Inverted Residual ................................................................................................................... 16
Figure 10 : Architecture du MobileNetV2 ............................................................................................. 17
Figure 11 : Processus du MobileNetV2 ................................................................................................. 18
Figure 12 : compound scaling ................................................................................................................ 19
Figure 13 : Squeeze &Excitation ............................................................................................................ 20
Figure 14 : Architecture du EfficientNet-B3 .......................................................................................... 20
Figure 15 : Connexion skip .................................................................................................................... 22
Figure 16 : ResNet152v2 ....................................................................................................................... 23
Figure 17 : Import des bibliotheques requises ...................................................................................... 25
Figure 18 : Images de la dataset ............................................................................................................ 25
Figure 19 : Présentation des images ..................................................................................................... 25
Figure 20 : Augmentation de la dataset ................................................................................................ 26
Figure 21 : Apprentissage par transfert ................................................................................................ 26
Figure 22 : Utilisation du modèle .......................................................................................................... 26
Figure 23 : Adaptation du modèle ......................................................................................................... 27
Figure 24 : Implémentation du Loss et Accuracy .................................................................................. 27
Figure 25 : Plot du Loss et Accuracy ...................................................................................................... 28
Figure 26 : Prédiction du MobileNetV2 ................................................................................................. 28
Figure 27 : Import des bibliothèques nécessaires ................................................................................. 29
Figure 28 : Appel de la fonction get_data pour xvalid et yvalid ............................................................ 29
Figure 29 : Appel de la fonction get_data pour xtrain et ytrain ............................................................ 29
Figure 30 : Appel de la fonction get_data pour xtrain et ytrain ............................................................ 29
Figure 31 : Fonction get_data ............................................................................................................... 30
Figure 32 : Implémentation du ResNet152v2 ....................................................................................... 30
Figure 33 : Entrainement du Modèle .................................................................................................... 31
Figure 34 : Information d’entrainement ............................................................................................... 31
Figure 35 : Implémentation Loss et Accuracy ....................................................................................... 31
Figure 36 : Graphe de Loss .................................................................................................................... 31
Figure 37 : Graphe de Accuracy ............................................................................................................. 32
Figure 38 : Gestion des prédictions ...................................................................................................... 32
Figure 39 : Fonction de prédiction ........................................................................................................ 33
Figure 40 : Résultats possible pour la prédiction .................................................................................. 33
Figure 41 : Résultat Mask Detected ...................................................................................................... 34
Figure 42 : Résultat Mask Not Detected............................................................................................... 34
Figure 43 : Bibliothèques nécessaires ................................................................................................... 35
Figure 44 : Répertoires de test, validation et d’entrainement .............................................................. 35
Figure 45 : Image sans masque .............................................................................................................
Figure 46 : Hyperparamètres.................................................................................................................
Figure 47 : Data generator ....................................................................................................................
Figure 48 : Construction du modèle ......................................................................................................
Figure 49 : Représentation des labels ...................................................................................................
Figure 50 : Fonction du modèle .............................................................................................................
Figure 51 : Modèle final.........................................................................................................................
Figure 52 : Surapprentissage du modèle ...............................................................................................
Figure 53 : Plot Loss et Accuracy ...........................................................................................................
Figure 54 : Prédiction du modèle ..........................................................................................................
Figure 55 : Résultats de la prédiction ....................................................................................................
Introduction
Le Deep Learning (DL) est une branche de l'apprentissage automatique (Machine
Learning) qui utilise des réseaux de neurones artificiels profonds pour résoudre des
problèmes complexes. Ces réseaux de neurones sont capables d'apprendre à partir de
données non structurées, telles que des images, des sons ou du texte, en découvrant des
motifs et des relations complexes à travers diverses couches de traitement.
Ces dernières années, le DL a connu un grand progrès dû à plusieurs facteurs.
Principalement grâce à l'augmentation de la quantité de données disponibles qui a
permis de meilleures performances des modèles de DL. De plus, les GPU (Graphic
Processing Units) ont permis d’optimiser les calculs et de les accélérer.
Cette innovation continue a entraîné un avènement de nouvelles architectures de
réseaux de neurones profonds, telles que les réseaux neuronaux convolutifs ou CNN. Ces
derniers ont permis de grandes avancées dans des domaines tels que la reconnaissance
faciale, la reconnaissance de la parole, la détection d'objets dans des images et la
conduite autonome. Ils sont également utilisés dans des applications de traitement du
langage naturel, telles que la traduction automatique.
On va s’intéresser par l’application des CNN dans le domaine de traitement d’images,
plus précisément la détection.
Contexte :
Nom : Face Mask Detection ~12K Images Dataset
Lien : https://www.kaggle.com/datasets/ashishjangra27/face-mask-12k-
images-dataset
Taille : environ 12000 images, divisées en Train, Test et Validation
Classes: 2 classes: with_mask et without_mask
Couleur : RGB
Taille de stockage : 328.92MB
Depuis le début de l'année 2020, le COVID-19, également connu sous le nom du
Coronavirus, est devenu une menace sanitaire mondiale. Ce virus hautement contagieux
a déjà infecté des millions de personnes à travers le monde et a causé la mort de
centaines de milliers d'individus. Malgré les mesures drastiques prises par les
gouvernements, le virus continue de se propager dans de nombreux pays, ce qui rend sa
lutte difficile.
L'une des principales causes de la propagation rapide de ce virus est le contact physique
direct. Il existe de nombreuses mesures préventives pour réduire sa propagation, la
principale étant le port de masques faciaux dans les lieux publics.
La détection des masques faciaux dans les lieux publics est un véritable défi qui doit être
relevé pour réduire le risque de propagation du virus. Pour ce faire, de nombreux
systèmes automatisés de détection de masques faciaux utilisant des algorithmes
d'apprentissage en profondeur (DL) ont été proposés pour contrôler efficacement la
propagation de cette maladie infectieuse.
Dataset :
➢
➢
➢
➢
➢
➢
Problématique :
Bien que l'objectif de notre projet soit clair, il y a plusieurs défis à relever.
Alors, comment peut-on construire un modèle capable de relever ces défis et de garantir
une haute performance ?
Tout d'abord, il est important de prendre en compte la variété de masques faciaux qui
existent. Les masques peuvent varier en taille, forme, couleur, matériau et les personnes
peuvent porter des masques de manière incorrecte, par exemple, avec leur nez
découvert, ce qui nécessite une reconnaissance et une analyse précises des visages.
De plus, les environnements dans lesquels les personnes portent des masques peuvent
également poser des défis. Par exemple, les éclairages, les angles de caméra, les arrière-
plans et les mouvements des personnes peuvent affecter la précision de la détection.
Chapitre 1 : Conception
Figure 1 :
1-2 Réseau Neuronal Convolutif (CNN) :
Voici une description détaillée de chacune de ses couches :
1. Couche d'entrée (Input Layer) : C'est la première couche du réseau qui reçoit les
images en entrée. Chaque pixel de l'image est considéré comme une entrée
séparée et est connecté à la première couche de convolution.
Couche de convolution (Convolutional Layer) : Cette couche extrait les
caractéristiques des images. Elle consiste en plusieurs filtres (kernels) qui
Les CNN (Convolutional Neural Networks) constituent une classe de réseaux de
neurones profonds utilisés principalement dans le traitement d'images et de vidéos. Ils
sont basés sur l'idée de convolutions, qui permet de capturer les caractéristiques locales
d'une image. Ils sont composés de plusieurs types de couches utilisées pour extraire les
caractéristiques des images et pour classer ces caractéristiques dans des catégories
prédéfinies.
1-2-1 Architecture générale du CNN :
Architecture générale du CNN
2.
3. Couche de Pooling (Pooling Layer) : Cette couche est utilisée pour réduire la taille
de l'image en sélectionnant les valeurs les plus significatives de chaque zone. Le
pooling peut être effectué en utilisant différentes méthodes telles que le max-
pooling, le min-pooling ou le average-pooling.
glissent sur l'image en entrée et appliquent une opération de convolution pour
extraire les caractéristiques locales telles que des bords, des contours ou des
textures. Cette couche est souvent suivie d'une fonction d'activation (ReLU)
pour introduire de la non-linéarité dans le réseau et conséquemment le rendre
plus complexe. On obtient en sortie de cette couche un ensemble de features
maps
Figure 2 : Fiche de convolution
Figure 3 : Fonction d’activation ReLU
4.
5. Couche entièrement connectée (Fully Connected Layer): Cette couche est placée
en fin d’architecture de CNN et est entièrement connectée à tous les neurones
de sorties (d’où le terme fully-connected). Après avoir reçu un vecteur en
entrée, la couche FC applique successivement une combinaison linéaire puis une
fonction d’activation dans le but final de classifier l’input image (voir schéma
suivant). Elle renvoie enfin en sortie un vecteur de taille d correspondant au
nombre de classes dans lequel chaque composante représente la probabilité
pour l’input image d’appartenir à une classe.
Couche de normalisation par lots (Batch Normalization Layer) : Cette couche est
utilisée pour normaliser les sorties de la couche précédente afin de garantir que
les données sont centrées et réduites. Cela aide à stabiliser le processus de
formation et à améliorer les performances du réseau.
Figure 4 : Pooling
Figure 5 : Couche de normalisation par lots
6. Couche de sortie (Output Layer) : Cette couche fournit la sortie finale du réseau,
qui est une prédiction de la classe de l'image en entrée. Le nombre de neurones
dans cette couche correspond au nombre de classes de sortie. La fonction
d'activation utilisée dépend du problème de classification. Pour une
classification binaire, on peut utiliser la fonction d'activation sigmoïde, quant à
une classification multiple, on utilise softmax.
Les différents modèles de CNN ont permis de grandes avancées dans le domaine de la
Computer Vision, notamment dans les tâches de la reconnaissance d'images, la
classification d'images, la segmentation d'images, la détection d'objets, etc. Leurs
apports majeurs sont :
✓
Traitement d’images de grande taille : Les CNN ont été conçus pour traiter des
images de grande taille avec une grande précision. Les réseaux convolutifs
peuvent être entraînés sur des images de plusieurs millions de pixels.
✓
Extraction automatique de caractéristiques : Les CNN ont la capacité d'extraire
automatiquement les caractéristiques importantes d'une image sans intervention
humaine. Cela est possible grâce à la combinaison de différentes couches de
convolution et de pooling.
Figure 6 : Couche entièrement connectée
1-2-2 Apports majeurs du CNN :
Réduction de la dimensionnalité : Les CNN peuvent réduire la dimensionnalité de
l'image d'entrée en utilisant des couches de pooling, ce qui permet de réduire le
nombre de paramètres dans le modèle et d'accélérer le processus
d'apprentissage.
Résilience aux transformations : Les CNN sont capables de reconnaître des objets
même s'ils sont présentés sous des angles différents, de tailles différentes ou avec
des variations d'éclairage. Cette résilience est due à la capacité des couches de
convolution à détecter les motifs de manière invariante.
Transfert de connaissances : Les CNN peuvent être pré-entraînés sur de grands
datasets d'images, les connaissances apprises peuvent alors être transférées à
d'autres tâches de Computer Vision, ce qui permet d'accélérer le processus
d'apprentissage et d'améliorer la précision des modèles.
✓
✓
✓
Figure 7 : Performance des CNN par rapport aux QNN et BNN
2-1 Modèle : MobileNetV2
Figure 8 : Linear Bottleneck Layer
2-1-1 Définition :
MobileNetV2 est une architecture de réseau neuronal conçue pour les appareils mobiles
et les systèmes embarqués efficaces. Elle a été introduite en 2018, par Mark Sandler and
Andrew Howard (Google Research), comme successeur de MobileNetV1, avec des
améliorations à la fois en termes de précision et d'efficacité.
Avant de présenter l’architecture du modèle MobileNetV2 il est important de définir
quelques notions indispensables à ce dernier.
➢
Couche de goulot d'étranglement résiduelle et linéaire inversée (Inverted
Residual and Linear Bottleneck Layer): la prémisse de la couche résiduelle
inversée est qu'une des cartes sont capables d'être encodées dans des sous-
espaces de faible dimension et les activations non linéaires entraînent une perte
d'informations malgré leur capacité à augmenter la complexité de représentation.
➢
➢
✓
✓
✓
Conv2D: Une couche qui peut traiter plusieurs convolutions en parallèle ceci en
utilisant plusieurs noyaux, de 4 à 32 généralement.
➢ Une connexion résiduelle (parfois appelée connexion identité ou connexion
saute-couche) branche la sortie d’une couche moins profonde (en amont) pour
l’ajouter à l’entrée d’une couche plus profonde du réseau (en aval) en sautant
par-dessus une ou plusieurs couches.
figure
Convolutions séparables au niveau de la profondeur (Depth-wise Separable
Convolutions):
Les convolutions séparables constituent un élément clé pour de nombreuses
architectures de réseaux neuronaux efficaces, l’idée de base consiste à remplacer
un opérateur convolutif complet par une version factorisée qui divise la
convolution en deux parties distinctes qui réduisent le coût de calcul par rapport
aux convolutions standard , elle prend la logique suivante :
Diviser l'entrée et le filtre en canaux.
Nous convolons chaque entrée avec le filtre correspondant.
Nous empilons les sorties convolues ensemble.
Figure 9 : Inverted Residual
2-1-2 Particularités du modèle :
Architecture du MobileNetV2 :
Il est basé sur une structure résiduelle inversée où les connexions résiduelles sont entre
les couches de bottleneck. La couche d'expansion intermédiaire utilise des convolutions
légères en profondeur pour filtrer les entités en tant que source de non-linéarité. Dans
son ensemble, l'architecture de MobileNetV2 contient la couche initiale entièrement à
convolution avec 32 filtres, suivie de 19 couches de bottleneck résiduelle, le modèle
peut être étendu à la détection d'objets et à la segmentation sémantique.
Figure 10 : Architecture du MobileNetV2
t : représente le taux d'expansion des canaux (expansion factor)
c : représente le nombre de canaux d'entrée
n : la fréquence de répétition du bloc.
s : nous indique si la première répétition d'un bloc a utilisé un stride de 2 pour le
processus de sous-échantillonnage.
EfficientNetB3 est un modèle de CNN qui fait partie de la famille des EfficientNets. Les
EfficientNets (B0–B7) sont des modèles de CNN développés en utilisant la technique
de recherche d'architecture neuronale automatique (NAS), permettant de trouver la
meilleure architecture pour une tâche donnée tout en minimisant le coû t de calcul.
On peut alors dire que EfficientNetB3 est plus efficace en termes de consommation
d'énergie et de mémoire que d’autres modèles de CNN ayant des performances
similaires, ce qui le rend particulièrement adapté aux environnements à ressources
limitées.
Bloc résiduel goulot d'étranglement transformant de k en k’ channels avec un pas s et un
facteur t.
Figure 11 : Processus du MobileNetV2
2-2 Modèle : EfficientNet-B3
2-2-1 Définition :
2-2-2 Particularités du modèle :
Figure 12 : Compound scaling
➢ Compound scaling method: ou mise à l’échelle composite, est l’apport majeur que
fournit EfficientNet. Elle consiste à trouver un équilibre entre :
✓
depth: nombre de couches du modèle 𝑑=𝛼𝜙
✓
width: nombre de canaux ou feature maps 𝜔=𝛽𝜙
✓
resolution: résolution des images d’entrée 𝑟=𝛾𝜙
Avec : facteur de mise à l’échelle et avec les contraintes :
𝛼 . 𝛽 2 . 𝛾 2 ≈ 2 ; 𝛼 ≥ 1 ; 𝛽 ≥ 1 ; 𝛾 ≥ 1
Après un Grid Search, on obtient les valeurs suivantes dans le cas de EfficientNet-B3 :
𝛼 = 1 . 2
𝛽 = 1 . 1
𝛾 = 1 . 1 5
𝜙 = 1 . 2
P.S: ,  et  sont des constantes pour les 8 modèles EfficientNet, mais  varie de 1 (B0)
jusqu’à 2 (B7)
➢
➢
➢
Data Augmentation : vise à améliorer le modèle et à éviter son surajustement, à
travers le rognage, la rotation, le redimensionnement, et bien d’autres
transformations sur les images.
Couche de goulot d'étranglement résiduelle et linéaire inversée (Inverted
Residual and Linear Bottleneck Layer): ou MBConv précédemment définie avec
MobileNetV2.
Convolutions séparables au niveau de la profondeur (Depth-wise Separable
Convolutions) : précédemment définies avec MobileNetV2.
Squeeze-and-Excitation (SE): technique permettant de se concentrer sur les
features les plus importantes, elle utilise le Average Pooling, ReLU, Sigmoid et une
fonction de pondération pour ce faire.
Figure 13 : Squeeze &Excitation
Figure 14 : Architecture du EfficientNet-B3
➢
Architecture du EfficientNet-B3 :
Une fonction d'activation (Activation) : généralement ReLU.
Une couche de normalisation par lots (BatchNormalization)
normaliser la sortie de la couche de convolution finale.
L’architecture de EfficientNet-B3 est comme suit :
➢
Une couche de convolution de base (Stem convolution): pour traiter l'input.
➢
Sept blocs chacun comprenant un ensemble de couches de convolution et de
blocs résiduels inversés, avec un nombre croissant de canaux et une
dimensionnalité décroissante.
➢ Une couche de classification (Classifier) pour produire la sortie finale du
modèle.
En somme, EfficientNet-B3 comprend 40 couches, 33 d’entre elles étant des couches
convolutives, 2 couches de pooling et 5 couches entièrement connectées. Les couches
convolutives sont différentes, on distingue les couches convolutives standard,
séparables au niveau de la profondeur et même quelques blocs résiduels inversés.
Deux couches de réduction (Reduction layers) : pour réduire la résolution
spatiale de la sortie de chaque bloc.
Une couche de convolution finale (top_conv) : pour extraire les
caractéristiques de haut niveau de la sortie de la dernière couche de réduction.
: pour
➢
➢
➢
➢
2-3 Modèle : ResNet152v2
Figure 15 : Connexion skip
2-3-1 Définition :
En termes mathématiques, cela signifierait y = x + F (x) où y est la sortie finale de la
couche.
En termes d’architecture, si une couche finit par endommager les performances du
modèle dans un réseau simple, elle est ignorée en raison de la présence des connexions
de saut qui est au cœur des blocs résiduels.
Le modèle ResNet152v2 est un réseau de neurones convolutifs profond (CNN). Il s'agit
d'une version améliorée du modèle ResNet152, qui a été développé par Microsoft en
2015. Il fait partie de la famille des modèles ResNet (Residual Network), qui ont été
développés pour résoudre le problème de la dégradation de la performance avec
l'augmentation de la profondeur du réseau.
Avant d’aborder l’architecture du modèle ResNet152v2, il convient tout d’abord
d’introduire des notions de bases.
➢
Connexions skip : Les connexions skip dans ResNet152v2 permettent à
l'information de sauter certaines couches résiduelles qui ont des fonctions
d'identité. Ces connexions permettent aux informations provenant de couches
antérieures de contourner les couches de blocs et d'être transmises directement
à des couches ultérieures, ce qui aide à préserver les informations importantes et
à éviter la dégradation de la performance du modèle
➢
➢
➢
Couche d'entrée (Input layer) : Cette couche reçoit l'image en entrée et
détermine sa taille.
Convolution initiale (Initial convolution) : Cette couche de convolution
effectue une convolution sur l'image d'entrée à l'aide d'un noyau de 7x7 et d'un
pas de 2. Le résultat est une carte de caractéristiques de taille réduite.
Blocs d’identités : Les blocs d'identité sont l'un des types de blocs résiduels
utilisés dans ResNet152v2, qui sont des blocs qui ne modifient pas la taille
spatiale de la sortie. Ils sont utilisés pour maintenir la résolution spatiale des
caractéristiques extraites par le réseau, ce qui aide à préserver les détails
importants de l'image.
L'architecture de ResNet152v2 comprend 152 couches de convolution, ce qui en fait un
modèle très profond et complexe. Les couches de convolution sont organisées en blocs
résiduels, qui permettent au modèle de conserver des informations importantes tout en
limitant les problèmes de disparition du gradient.
Architecture du ResNet152v2 :
Figure 16 : Architecture ResNet152v2
➢
Couche de normalisation par lot (Batch normalization layer) : Cette couche
applique la normalisation par lot pour accélérer l'entraînement et améliorer les
performances du réseau.
➢
Fonction d'activation (Activation function) : Cette couche applique une
fonction d'activation pour introduire de la non-linéarité dans les sorties de la
couche précédente.
➢
Pooling initial (Initial pooling) : Cette couche de pooling réduit la taille de la
carte de caractéristiques en prenant le maximum de chaque région de 3x3 sans
chevauchement.
➢
Couches résiduelles (Residual blocks) : Ce sont les blocs de convolution
résiduels qui permettent au réseau de maintenir une performance élevée malgré
sa profondeur. Ils sont composés de plusieurs couches de convolution et de
normalisation par lot, ainsi que de connexions résiduelles.
➢
Couches de classification (Classification layers) : Ces couches se composent
d'une couche de pooling global, qui agrège les caractéristiques des différentes
régions de la carte, et de couches complètement connectées qui effectuent la
classification.
➢
Couche de sortie (Output layer) : Cette couche fournit la sortie du réseau, qui
représente la probabilité de chaque classe d'objet pour une image donnée.
Chaque bloc résiduel dans ResNet152v2 contient plusieurs couches de convolution,
suivies d'une couche de normalisation et d'une fonction d'activation ReLU. Le bloc
résiduel comprend également la connexion de saut. La structure de blocs résiduels
permet à ResNet152v2 d'être beaucoup plus profond tout en évitant les problèmes liés à
la profondeur tels que la réduction du taux de convergence ou l'augmentation de
l'erreur de généralisation.
Chapitre 2 : Réalisation
Figure 18 : Images de la dataset
Figure 19 : Présentation des images
Figure 17 : Import des bibliotheques requises
2-1 MobileNetV2 :
Figure 22 : Utilisation du modèle
Figure 21 : Apprentissage par transfert
Figure 20 : Augmentation de la dataset
Figure 23 : Adaptation du modèle
Figure 24 : Implémentation du Loss et Accuracy
Figure 25 : Plot du Loss et Accuracy
Figure 26 : Prédiction du MobileNetV2
2-2 ResNet152v2 :
Figure 27 : Import des bibliothèques nécessaires
Figure 29 : Appel de la fonction get_data pour xtrain et ytrain
Figure 28 : Appel de la fonction get_data pour xvalid et yvalid
Figure 30 : Appel de la fonction get_data pour xtrain et ytrain
Figure 31 : Fonction get_data
Figure 32 : Implémentation du ResNet152v2
Figure 36 : Graphe de Loss
Figure 33 : Entrainement du Modèle
Figure 34 : Information d’entrainement
Figure 35 : Implémentation Loss et Accuracy
Figure 37 : Graphe de Accuracy
Figure 38 : Gestion des prédictions
Figure 39 : Fonction de prédiction
Figure 40 : Résultats possible pour la prédiction
Figure 41 : Résultat Mask Detected
Figure 42 : Résultat Mask Not Detected
2-3 EfficientNet-B3 :
Figure 46 : Hyperparamètres
Figure 45 : Image sans masque
Figure 43 : Bibliothèques nécessaires
Figure 44 : Répertoires de test, validation et d’entrainement
Figure 47 : Data generator
Figure 50 : Fonction du modèle
Figure 48 : Construction du modèle
Figure 49 : Représentation des labels
Figure 51 : Modèle final
Figure 53 : Plot Loss et Accuracy
Figure 52 : Entrainement du modèle
Figure 54 : Prédiction du modèle
Figure 55 : Résultats de la prédiction
❖
Modèles
Critères
d’évaluation
Loss
Accuracy
Durée
d’entrainement
Paramètres totaux
0,0433
0,9921
5078s
12.744.130
Comparaison des 3 modèles :
MobileNetv2
0,0296
0,9902
5708s
11.177.521
EfficientNet-B3
0,027494
0,993464
2509s
58.435.694
ResNet152v2
Conclusion :
Pour développer un système de détection de masques faciaux, plusieurs approches
peuvent être utilisées, leur choix dépendra des exigences spécifiques de l'application.
Dans l'ensemble, le développement d'un tel système peut être un moyen efficace de
favoriser la conformité avec les restrictions de port de masque et d'aider à limiter la
propagation du COVID-19. Cependant, il est important de noter que de tels systèmes
doivent être utilisés en conjonction avec d'autres mesures préventives et non comme un
substitut.
Il est primordial de mettre en place des mesures pour prévenir la propagation du
COVID-19, l'une de ces mesures étant l'utilisation de masques faciaux. La détection des
masques faciaux peut être automatisée à l'aide des CNN, ce qui peut être utile dans
différents contextes, tels que les aéroports, les hôpitaux et les transports en commun.
Bibliographie :
https://sh-tsang.medium.com/efficientnet-rethinking-model-scaling-for-convolutional-
neural-networks-image-classification-ef67b0f14a4d
https://www.researchgate.net/figure/Schematic-representation-of-EfficientNet-
B3_fig2_359449935
https://paperswithcode.com/method/squeeze-and-excitation-block
ResNet-50 : notions de base et didacticiel rapide (datagen.tech)
Le ResNet-50 annoté. Expliquer le fonctionnement de ResNet-50 et pourquoi... | par
Suvaditya Mukherjee | Vers la science des données (towardsdatascience.com)
Guide 50 sur les réseaux résiduels profonds (ResNet, ResNet2023) - viso.ai
Understanding and Coding a ResNet in Keras | by Priya Dwivedi | Towards Data Science
https://www.tensorflow.org/api_docs/python/tf/keras/applications/mobilenet_v2/Mo
bileNetV2
https://keras.io/guides/transfer_learning/
https://medium.com/@luis_gonzales/a-look-at-mobilenetv2-inverted-residuals-and-
linear-bottlenecks-d49f85c12423

Contenu connexe

Similaire à IP rapport n.pdf

Rapport Stage ingénieur
Rapport Stage ingénieurRapport Stage ingénieur
Rapport Stage ingénieurMhamdi Imed
 
Démocratiser l'internet haut débit au sénégal
Démocratiser l'internet haut débit au sénégalDémocratiser l'internet haut débit au sénégal
Démocratiser l'internet haut débit au sénégalbasileniane
 
Mesure locale de la vitesse de l’onde de pression par l’IRM dynamique.
Mesure locale de la vitesse de l’onde de pression par l’IRM dynamique.Mesure locale de la vitesse de l’onde de pression par l’IRM dynamique.
Mesure locale de la vitesse de l’onde de pression par l’IRM dynamique.Hassan Nasser
 
Conception et Développement d'un Network Management System ATM Nortel
Conception et Développement d'un Network Management System ATM NortelConception et Développement d'un Network Management System ATM Nortel
Conception et Développement d'un Network Management System ATM NortelTidiane Sylla
 
Support ssm vsm_vers_finale
Support ssm vsm_vers_finaleSupport ssm vsm_vers_finale
Support ssm vsm_vers_finaleLaid Kahloul
 
Opr00 ksq.tmp
Opr00 ksq.tmpOpr00 ksq.tmp
Opr00 ksq.tmpbdiarra3
 
Projet Passerelle sécurisée intelligente pour l'internet des objets
Projet Passerelle sécurisée intelligente pour l'internet des objetsProjet Passerelle sécurisée intelligente pour l'internet des objets
Projet Passerelle sécurisée intelligente pour l'internet des objetsUniversité de Rennes 1
 
Copie giz2014 fr-energies-renouvables-tunisie
Copie giz2014 fr-energies-renouvables-tunisieCopie giz2014 fr-energies-renouvables-tunisie
Copie giz2014 fr-energies-renouvables-tunisieBernard Cyr
 
4 1 reglement projet approuve septembre 2018
4 1 reglement  projet approuve septembre 20184 1 reglement  projet approuve septembre 2018
4 1 reglement projet approuve septembre 2018Orgerus Mairie
 
Profil statistique du secteur des TIC au Québec
Profil statistique du secteur des TIC au QuébecProfil statistique du secteur des TIC au Québec
Profil statistique du secteur des TIC au Québecpolenumerique33
 
Master moi 2010 nihan fisek marketing viral
Master moi 2010 nihan fisek marketing viralMaster moi 2010 nihan fisek marketing viral
Master moi 2010 nihan fisek marketing viralMaster MOI
 
Impl´ementation d’une copule mutilvari´ee.pdf
Impl´ementation d’une copule mutilvari´ee.pdfImpl´ementation d’une copule mutilvari´ee.pdf
Impl´ementation d’une copule mutilvari´ee.pdfNuioKila
 
Object detection and recognition in digital images
Object detection and recognition in digital imagesObject detection and recognition in digital images
Object detection and recognition in digital imagesSakher BELOUADAH
 
Gestion des actifs applicatifs
Gestion des actifs applicatifsGestion des actifs applicatifs
Gestion des actifs applicatifsSafaAballagh
 
Terminaux et Réseaux - Répartir l'intelligence
Terminaux et Réseaux - Répartir l'intelligenceTerminaux et Réseaux - Répartir l'intelligence
Terminaux et Réseaux - Répartir l'intelligencePhilippe DEWOST
 
Initiation au couplage réalité augmentée (RA) - système d’information géograp...
Initiation au couplage réalité augmentée (RA) - système d’information géograp...Initiation au couplage réalité augmentée (RA) - système d’information géograp...
Initiation au couplage réalité augmentée (RA) - système d’information géograp...Guillaume MOCQUET
 

Similaire à IP rapport n.pdf (20)

Rapport Stage ingénieur
Rapport Stage ingénieurRapport Stage ingénieur
Rapport Stage ingénieur
 
Démocratiser l'internet haut débit au sénégal
Démocratiser l'internet haut débit au sénégalDémocratiser l'internet haut débit au sénégal
Démocratiser l'internet haut débit au sénégal
 
Tache 2 B1 V
Tache 2  B1 VTache 2  B1 V
Tache 2 B1 V
 
Mesure locale de la vitesse de l’onde de pression par l’IRM dynamique.
Mesure locale de la vitesse de l’onde de pression par l’IRM dynamique.Mesure locale de la vitesse de l’onde de pression par l’IRM dynamique.
Mesure locale de la vitesse de l’onde de pression par l’IRM dynamique.
 
Conception et Développement d'un Network Management System ATM Nortel
Conception et Développement d'un Network Management System ATM NortelConception et Développement d'un Network Management System ATM Nortel
Conception et Développement d'un Network Management System ATM Nortel
 
Support de cours
Support de coursSupport de cours
Support de cours
 
Support ssm vsm_vers_finale
Support ssm vsm_vers_finaleSupport ssm vsm_vers_finale
Support ssm vsm_vers_finale
 
Opr00 ksq.tmp
Opr00 ksq.tmpOpr00 ksq.tmp
Opr00 ksq.tmp
 
Projet Passerelle sécurisée intelligente pour l'internet des objets
Projet Passerelle sécurisée intelligente pour l'internet des objetsProjet Passerelle sécurisée intelligente pour l'internet des objets
Projet Passerelle sécurisée intelligente pour l'internet des objets
 
Le grafcet
Le grafcet Le grafcet
Le grafcet
 
Copie giz2014 fr-energies-renouvables-tunisie
Copie giz2014 fr-energies-renouvables-tunisieCopie giz2014 fr-energies-renouvables-tunisie
Copie giz2014 fr-energies-renouvables-tunisie
 
4 1 reglement projet approuve septembre 2018
4 1 reglement  projet approuve septembre 20184 1 reglement  projet approuve septembre 2018
4 1 reglement projet approuve septembre 2018
 
Profil statistique du secteur des TIC au Québec
Profil statistique du secteur des TIC au QuébecProfil statistique du secteur des TIC au Québec
Profil statistique du secteur des TIC au Québec
 
Master moi 2010 nihan fisek marketing viral
Master moi 2010 nihan fisek marketing viralMaster moi 2010 nihan fisek marketing viral
Master moi 2010 nihan fisek marketing viral
 
Impl´ementation d’une copule mutilvari´ee.pdf
Impl´ementation d’une copule mutilvari´ee.pdfImpl´ementation d’une copule mutilvari´ee.pdf
Impl´ementation d’une copule mutilvari´ee.pdf
 
Object detection and recognition in digital images
Object detection and recognition in digital imagesObject detection and recognition in digital images
Object detection and recognition in digital images
 
siem.pdf
siem.pdfsiem.pdf
siem.pdf
 
Gestion des actifs applicatifs
Gestion des actifs applicatifsGestion des actifs applicatifs
Gestion des actifs applicatifs
 
Terminaux et Réseaux - Répartir l'intelligence
Terminaux et Réseaux - Répartir l'intelligenceTerminaux et Réseaux - Répartir l'intelligence
Terminaux et Réseaux - Répartir l'intelligence
 
Initiation au couplage réalité augmentée (RA) - système d’information géograp...
Initiation au couplage réalité augmentée (RA) - système d’information géograp...Initiation au couplage réalité augmentée (RA) - système d’information géograp...
Initiation au couplage réalité augmentée (RA) - système d’information géograp...
 

IP rapport n.pdf

  • 1. Projet Image Processing : Détection de port de masque facial avec MobileNetV2, EfficientNet-B3 et ResNet152V2 Année universitaire : 2022/2023.
  • 2. Résume : La pandémie du Covid19 a causé des dégâts indéniables et des changements considérables dans note vie quotidienne. Afin de limiter sa propagation, le port de masque s’avère une mesure de protection dont l’application doit être assurée. Pour ce faire, on utilisera les CNN afin de créer des modèles de détection de masques faciaux. Dans ce rapport, on abordera les réseaux de neurones convolutifs, ou CNN. On passera à trois modèles spécifiques: MobileNetV2, EfficientNet-B3 et ResNet152V2 et on les appliquera afin de détecter la présence ou l’absence de masque facial.
  • 3. Table de matière : Introduction _____________________________________________________________________________________ 7 Contexte : ________________________________________________________________________________________ 8 Problématique : _________________________________________________________________________________ 9 Chapitre 1 : Conception ________________________________________________________________________10 1-2 Réseau Neuronal Convolutif (CNN) : _________________________________________________10 1-2-1 Architecture générale du CNN : __________________________________________________10 1-2-2 Apports majeurs du CNN : ________________________________________________________13 2-1 Modèle : MobileNetV2 _______________________________________________________________15 2-1-1 Définition : _________________________________________________________________________15 2-1-2 Particularités du modèle : ________________________________________________________17 2-2 Modèle : EfficientNet-B3_____________________________________________________________18 2-2-1 Définition : _________________________________________________________________________18 2-2-2 Particularités du modèle : _________________________________________________________19 2-3 Modèle : ResNet152v2 __________________________________________________________________22 2-3-1 Définition : _________________________________________________________________________22 Chapitre 2 : Réalisation ________________________________________________________________________25 2-1 MobileNetV2 : ___________________________________________________________________________25 2-2 ResNet152v2 : ________________________________________________________________________29 2-3 EfficientNet-B3 : _________________________________________________________________________34 Conclusion :_____________________________________________________________________________________40 Bibliographie : __________________________________________________________________________________41
  • 4. Liste des abréviations : DL: Deep Learning GPU: Graphic Processing Unit CNN: Convolutional Neural Network RGB: Red,Green and Blue ReLU: Rectified Linear Unit FC: Fully Connected QNN: Quantum Neural Network BNN: Binary Neural Network NAS: Neural Architecture Search ResNet: Residual Network
  • 5. Liste des figures : Figure 1 : Architecture générale du CNN ............................................................................................ 10 Figure 2 : Fiche de convolution ............................................................................................................. 11 Figure 3 : Fonction d’activation ReLU .................................................................................................... 11 Figure 4 : Pooling ................................................................................................................................... 12 Figure 5 : Couche de normalisation par lots.......................................................................................... 12 Figure 6 : Couche entièrement connectée ............................................................................................ 13 Figure 7 : Performance des CNN par rapport aux QNN et BNN ............................................................ 14 Figure 8 : Linear Bottleneck Layer ......................................................................................................... 15 Figure 9 : Inverted Residual ................................................................................................................... 16 Figure 10 : Architecture du MobileNetV2 ............................................................................................. 17 Figure 11 : Processus du MobileNetV2 ................................................................................................. 18 Figure 12 : compound scaling ................................................................................................................ 19 Figure 13 : Squeeze &Excitation ............................................................................................................ 20 Figure 14 : Architecture du EfficientNet-B3 .......................................................................................... 20 Figure 15 : Connexion skip .................................................................................................................... 22 Figure 16 : ResNet152v2 ....................................................................................................................... 23 Figure 17 : Import des bibliotheques requises ...................................................................................... 25 Figure 18 : Images de la dataset ............................................................................................................ 25 Figure 19 : Présentation des images ..................................................................................................... 25 Figure 20 : Augmentation de la dataset ................................................................................................ 26 Figure 21 : Apprentissage par transfert ................................................................................................ 26 Figure 22 : Utilisation du modèle .......................................................................................................... 26 Figure 23 : Adaptation du modèle ......................................................................................................... 27 Figure 24 : Implémentation du Loss et Accuracy .................................................................................. 27 Figure 25 : Plot du Loss et Accuracy ...................................................................................................... 28 Figure 26 : Prédiction du MobileNetV2 ................................................................................................. 28 Figure 27 : Import des bibliothèques nécessaires ................................................................................. 29 Figure 28 : Appel de la fonction get_data pour xvalid et yvalid ............................................................ 29 Figure 29 : Appel de la fonction get_data pour xtrain et ytrain ............................................................ 29 Figure 30 : Appel de la fonction get_data pour xtrain et ytrain ............................................................ 29 Figure 31 : Fonction get_data ............................................................................................................... 30 Figure 32 : Implémentation du ResNet152v2 ....................................................................................... 30 Figure 33 : Entrainement du Modèle .................................................................................................... 31 Figure 34 : Information d’entrainement ............................................................................................... 31 Figure 35 : Implémentation Loss et Accuracy ....................................................................................... 31 Figure 36 : Graphe de Loss .................................................................................................................... 31 Figure 37 : Graphe de Accuracy ............................................................................................................. 32 Figure 38 : Gestion des prédictions ...................................................................................................... 32 Figure 39 : Fonction de prédiction ........................................................................................................ 33 Figure 40 : Résultats possible pour la prédiction .................................................................................. 33 Figure 41 : Résultat Mask Detected ...................................................................................................... 34 Figure 42 : Résultat Mask Not Detected............................................................................................... 34 Figure 43 : Bibliothèques nécessaires ................................................................................................... 35 Figure 44 : Répertoires de test, validation et d’entrainement .............................................................. 35
  • 6. Figure 45 : Image sans masque ............................................................................................................. Figure 46 : Hyperparamètres................................................................................................................. Figure 47 : Data generator .................................................................................................................... Figure 48 : Construction du modèle ...................................................................................................... Figure 49 : Représentation des labels ................................................................................................... Figure 50 : Fonction du modèle ............................................................................................................. Figure 51 : Modèle final......................................................................................................................... Figure 52 : Surapprentissage du modèle ............................................................................................... Figure 53 : Plot Loss et Accuracy ........................................................................................................... Figure 54 : Prédiction du modèle .......................................................................................................... Figure 55 : Résultats de la prédiction ....................................................................................................
  • 7. Introduction Le Deep Learning (DL) est une branche de l'apprentissage automatique (Machine Learning) qui utilise des réseaux de neurones artificiels profonds pour résoudre des problèmes complexes. Ces réseaux de neurones sont capables d'apprendre à partir de données non structurées, telles que des images, des sons ou du texte, en découvrant des motifs et des relations complexes à travers diverses couches de traitement. Ces dernières années, le DL a connu un grand progrès dû à plusieurs facteurs. Principalement grâce à l'augmentation de la quantité de données disponibles qui a permis de meilleures performances des modèles de DL. De plus, les GPU (Graphic Processing Units) ont permis d’optimiser les calculs et de les accélérer. Cette innovation continue a entraîné un avènement de nouvelles architectures de réseaux de neurones profonds, telles que les réseaux neuronaux convolutifs ou CNN. Ces derniers ont permis de grandes avancées dans des domaines tels que la reconnaissance faciale, la reconnaissance de la parole, la détection d'objets dans des images et la conduite autonome. Ils sont également utilisés dans des applications de traitement du langage naturel, telles que la traduction automatique. On va s’intéresser par l’application des CNN dans le domaine de traitement d’images, plus précisément la détection.
  • 8. Contexte : Nom : Face Mask Detection ~12K Images Dataset Lien : https://www.kaggle.com/datasets/ashishjangra27/face-mask-12k- images-dataset Taille : environ 12000 images, divisées en Train, Test et Validation Classes: 2 classes: with_mask et without_mask Couleur : RGB Taille de stockage : 328.92MB Depuis le début de l'année 2020, le COVID-19, également connu sous le nom du Coronavirus, est devenu une menace sanitaire mondiale. Ce virus hautement contagieux a déjà infecté des millions de personnes à travers le monde et a causé la mort de centaines de milliers d'individus. Malgré les mesures drastiques prises par les gouvernements, le virus continue de se propager dans de nombreux pays, ce qui rend sa lutte difficile. L'une des principales causes de la propagation rapide de ce virus est le contact physique direct. Il existe de nombreuses mesures préventives pour réduire sa propagation, la principale étant le port de masques faciaux dans les lieux publics. La détection des masques faciaux dans les lieux publics est un véritable défi qui doit être relevé pour réduire le risque de propagation du virus. Pour ce faire, de nombreux systèmes automatisés de détection de masques faciaux utilisant des algorithmes d'apprentissage en profondeur (DL) ont été proposés pour contrôler efficacement la propagation de cette maladie infectieuse. Dataset : ➢ ➢ ➢ ➢ ➢ ➢
  • 9. Problématique : Bien que l'objectif de notre projet soit clair, il y a plusieurs défis à relever. Alors, comment peut-on construire un modèle capable de relever ces défis et de garantir une haute performance ? Tout d'abord, il est important de prendre en compte la variété de masques faciaux qui existent. Les masques peuvent varier en taille, forme, couleur, matériau et les personnes peuvent porter des masques de manière incorrecte, par exemple, avec leur nez découvert, ce qui nécessite une reconnaissance et une analyse précises des visages. De plus, les environnements dans lesquels les personnes portent des masques peuvent également poser des défis. Par exemple, les éclairages, les angles de caméra, les arrière- plans et les mouvements des personnes peuvent affecter la précision de la détection.
  • 10. Chapitre 1 : Conception Figure 1 : 1-2 Réseau Neuronal Convolutif (CNN) : Voici une description détaillée de chacune de ses couches : 1. Couche d'entrée (Input Layer) : C'est la première couche du réseau qui reçoit les images en entrée. Chaque pixel de l'image est considéré comme une entrée séparée et est connecté à la première couche de convolution. Couche de convolution (Convolutional Layer) : Cette couche extrait les caractéristiques des images. Elle consiste en plusieurs filtres (kernels) qui Les CNN (Convolutional Neural Networks) constituent une classe de réseaux de neurones profonds utilisés principalement dans le traitement d'images et de vidéos. Ils sont basés sur l'idée de convolutions, qui permet de capturer les caractéristiques locales d'une image. Ils sont composés de plusieurs types de couches utilisées pour extraire les caractéristiques des images et pour classer ces caractéristiques dans des catégories prédéfinies. 1-2-1 Architecture générale du CNN : Architecture générale du CNN 2.
  • 11. 3. Couche de Pooling (Pooling Layer) : Cette couche est utilisée pour réduire la taille de l'image en sélectionnant les valeurs les plus significatives de chaque zone. Le pooling peut être effectué en utilisant différentes méthodes telles que le max- pooling, le min-pooling ou le average-pooling. glissent sur l'image en entrée et appliquent une opération de convolution pour extraire les caractéristiques locales telles que des bords, des contours ou des textures. Cette couche est souvent suivie d'une fonction d'activation (ReLU) pour introduire de la non-linéarité dans le réseau et conséquemment le rendre plus complexe. On obtient en sortie de cette couche un ensemble de features maps Figure 2 : Fiche de convolution Figure 3 : Fonction d’activation ReLU
  • 12. 4. 5. Couche entièrement connectée (Fully Connected Layer): Cette couche est placée en fin d’architecture de CNN et est entièrement connectée à tous les neurones de sorties (d’où le terme fully-connected). Après avoir reçu un vecteur en entrée, la couche FC applique successivement une combinaison linéaire puis une fonction d’activation dans le but final de classifier l’input image (voir schéma suivant). Elle renvoie enfin en sortie un vecteur de taille d correspondant au nombre de classes dans lequel chaque composante représente la probabilité pour l’input image d’appartenir à une classe. Couche de normalisation par lots (Batch Normalization Layer) : Cette couche est utilisée pour normaliser les sorties de la couche précédente afin de garantir que les données sont centrées et réduites. Cela aide à stabiliser le processus de formation et à améliorer les performances du réseau. Figure 4 : Pooling Figure 5 : Couche de normalisation par lots
  • 13. 6. Couche de sortie (Output Layer) : Cette couche fournit la sortie finale du réseau, qui est une prédiction de la classe de l'image en entrée. Le nombre de neurones dans cette couche correspond au nombre de classes de sortie. La fonction d'activation utilisée dépend du problème de classification. Pour une classification binaire, on peut utiliser la fonction d'activation sigmoïde, quant à une classification multiple, on utilise softmax. Les différents modèles de CNN ont permis de grandes avancées dans le domaine de la Computer Vision, notamment dans les tâches de la reconnaissance d'images, la classification d'images, la segmentation d'images, la détection d'objets, etc. Leurs apports majeurs sont : ✓ Traitement d’images de grande taille : Les CNN ont été conçus pour traiter des images de grande taille avec une grande précision. Les réseaux convolutifs peuvent être entraînés sur des images de plusieurs millions de pixels. ✓ Extraction automatique de caractéristiques : Les CNN ont la capacité d'extraire automatiquement les caractéristiques importantes d'une image sans intervention humaine. Cela est possible grâce à la combinaison de différentes couches de convolution et de pooling. Figure 6 : Couche entièrement connectée 1-2-2 Apports majeurs du CNN :
  • 14. Réduction de la dimensionnalité : Les CNN peuvent réduire la dimensionnalité de l'image d'entrée en utilisant des couches de pooling, ce qui permet de réduire le nombre de paramètres dans le modèle et d'accélérer le processus d'apprentissage. Résilience aux transformations : Les CNN sont capables de reconnaître des objets même s'ils sont présentés sous des angles différents, de tailles différentes ou avec des variations d'éclairage. Cette résilience est due à la capacité des couches de convolution à détecter les motifs de manière invariante. Transfert de connaissances : Les CNN peuvent être pré-entraînés sur de grands datasets d'images, les connaissances apprises peuvent alors être transférées à d'autres tâches de Computer Vision, ce qui permet d'accélérer le processus d'apprentissage et d'améliorer la précision des modèles. ✓ ✓ ✓ Figure 7 : Performance des CNN par rapport aux QNN et BNN
  • 15. 2-1 Modèle : MobileNetV2 Figure 8 : Linear Bottleneck Layer 2-1-1 Définition : MobileNetV2 est une architecture de réseau neuronal conçue pour les appareils mobiles et les systèmes embarqués efficaces. Elle a été introduite en 2018, par Mark Sandler and Andrew Howard (Google Research), comme successeur de MobileNetV1, avec des améliorations à la fois en termes de précision et d'efficacité. Avant de présenter l’architecture du modèle MobileNetV2 il est important de définir quelques notions indispensables à ce dernier. ➢ Couche de goulot d'étranglement résiduelle et linéaire inversée (Inverted Residual and Linear Bottleneck Layer): la prémisse de la couche résiduelle inversée est qu'une des cartes sont capables d'être encodées dans des sous- espaces de faible dimension et les activations non linéaires entraînent une perte d'informations malgré leur capacité à augmenter la complexité de représentation.
  • 16. ➢ ➢ ✓ ✓ ✓ Conv2D: Une couche qui peut traiter plusieurs convolutions en parallèle ceci en utilisant plusieurs noyaux, de 4 à 32 généralement. ➢ Une connexion résiduelle (parfois appelée connexion identité ou connexion saute-couche) branche la sortie d’une couche moins profonde (en amont) pour l’ajouter à l’entrée d’une couche plus profonde du réseau (en aval) en sautant par-dessus une ou plusieurs couches. figure Convolutions séparables au niveau de la profondeur (Depth-wise Separable Convolutions): Les convolutions séparables constituent un élément clé pour de nombreuses architectures de réseaux neuronaux efficaces, l’idée de base consiste à remplacer un opérateur convolutif complet par une version factorisée qui divise la convolution en deux parties distinctes qui réduisent le coût de calcul par rapport aux convolutions standard , elle prend la logique suivante : Diviser l'entrée et le filtre en canaux. Nous convolons chaque entrée avec le filtre correspondant. Nous empilons les sorties convolues ensemble. Figure 9 : Inverted Residual
  • 17. 2-1-2 Particularités du modèle : Architecture du MobileNetV2 : Il est basé sur une structure résiduelle inversée où les connexions résiduelles sont entre les couches de bottleneck. La couche d'expansion intermédiaire utilise des convolutions légères en profondeur pour filtrer les entités en tant que source de non-linéarité. Dans son ensemble, l'architecture de MobileNetV2 contient la couche initiale entièrement à convolution avec 32 filtres, suivie de 19 couches de bottleneck résiduelle, le modèle peut être étendu à la détection d'objets et à la segmentation sémantique. Figure 10 : Architecture du MobileNetV2
  • 18. t : représente le taux d'expansion des canaux (expansion factor) c : représente le nombre de canaux d'entrée n : la fréquence de répétition du bloc. s : nous indique si la première répétition d'un bloc a utilisé un stride de 2 pour le processus de sous-échantillonnage. EfficientNetB3 est un modèle de CNN qui fait partie de la famille des EfficientNets. Les EfficientNets (B0–B7) sont des modèles de CNN développés en utilisant la technique de recherche d'architecture neuronale automatique (NAS), permettant de trouver la meilleure architecture pour une tâche donnée tout en minimisant le coû t de calcul. On peut alors dire que EfficientNetB3 est plus efficace en termes de consommation d'énergie et de mémoire que d’autres modèles de CNN ayant des performances similaires, ce qui le rend particulièrement adapté aux environnements à ressources limitées. Bloc résiduel goulot d'étranglement transformant de k en k’ channels avec un pas s et un facteur t. Figure 11 : Processus du MobileNetV2 2-2 Modèle : EfficientNet-B3 2-2-1 Définition :
  • 19. 2-2-2 Particularités du modèle : Figure 12 : Compound scaling ➢ Compound scaling method: ou mise à l’échelle composite, est l’apport majeur que fournit EfficientNet. Elle consiste à trouver un équilibre entre : ✓ depth: nombre de couches du modèle 𝑑=𝛼𝜙 ✓ width: nombre de canaux ou feature maps 𝜔=𝛽𝜙 ✓ resolution: résolution des images d’entrée 𝑟=𝛾𝜙 Avec : facteur de mise à l’échelle et avec les contraintes : 𝛼 . 𝛽 2 . 𝛾 2 ≈ 2 ; 𝛼 ≥ 1 ; 𝛽 ≥ 1 ; 𝛾 ≥ 1 Après un Grid Search, on obtient les valeurs suivantes dans le cas de EfficientNet-B3 : 𝛼 = 1 . 2 𝛽 = 1 . 1 𝛾 = 1 . 1 5 𝜙 = 1 . 2 P.S: ,  et  sont des constantes pour les 8 modèles EfficientNet, mais  varie de 1 (B0) jusqu’à 2 (B7)
  • 20. ➢ ➢ ➢ Data Augmentation : vise à améliorer le modèle et à éviter son surajustement, à travers le rognage, la rotation, le redimensionnement, et bien d’autres transformations sur les images. Couche de goulot d'étranglement résiduelle et linéaire inversée (Inverted Residual and Linear Bottleneck Layer): ou MBConv précédemment définie avec MobileNetV2. Convolutions séparables au niveau de la profondeur (Depth-wise Separable Convolutions) : précédemment définies avec MobileNetV2. Squeeze-and-Excitation (SE): technique permettant de se concentrer sur les features les plus importantes, elle utilise le Average Pooling, ReLU, Sigmoid et une fonction de pondération pour ce faire. Figure 13 : Squeeze &Excitation Figure 14 : Architecture du EfficientNet-B3 ➢ Architecture du EfficientNet-B3 :
  • 21. Une fonction d'activation (Activation) : généralement ReLU. Une couche de normalisation par lots (BatchNormalization) normaliser la sortie de la couche de convolution finale. L’architecture de EfficientNet-B3 est comme suit : ➢ Une couche de convolution de base (Stem convolution): pour traiter l'input. ➢ Sept blocs chacun comprenant un ensemble de couches de convolution et de blocs résiduels inversés, avec un nombre croissant de canaux et une dimensionnalité décroissante. ➢ Une couche de classification (Classifier) pour produire la sortie finale du modèle. En somme, EfficientNet-B3 comprend 40 couches, 33 d’entre elles étant des couches convolutives, 2 couches de pooling et 5 couches entièrement connectées. Les couches convolutives sont différentes, on distingue les couches convolutives standard, séparables au niveau de la profondeur et même quelques blocs résiduels inversés. Deux couches de réduction (Reduction layers) : pour réduire la résolution spatiale de la sortie de chaque bloc. Une couche de convolution finale (top_conv) : pour extraire les caractéristiques de haut niveau de la sortie de la dernière couche de réduction. : pour ➢ ➢ ➢ ➢
  • 22. 2-3 Modèle : ResNet152v2 Figure 15 : Connexion skip 2-3-1 Définition : En termes mathématiques, cela signifierait y = x + F (x) où y est la sortie finale de la couche. En termes d’architecture, si une couche finit par endommager les performances du modèle dans un réseau simple, elle est ignorée en raison de la présence des connexions de saut qui est au cœur des blocs résiduels. Le modèle ResNet152v2 est un réseau de neurones convolutifs profond (CNN). Il s'agit d'une version améliorée du modèle ResNet152, qui a été développé par Microsoft en 2015. Il fait partie de la famille des modèles ResNet (Residual Network), qui ont été développés pour résoudre le problème de la dégradation de la performance avec l'augmentation de la profondeur du réseau. Avant d’aborder l’architecture du modèle ResNet152v2, il convient tout d’abord d’introduire des notions de bases. ➢ Connexions skip : Les connexions skip dans ResNet152v2 permettent à l'information de sauter certaines couches résiduelles qui ont des fonctions d'identité. Ces connexions permettent aux informations provenant de couches antérieures de contourner les couches de blocs et d'être transmises directement à des couches ultérieures, ce qui aide à préserver les informations importantes et à éviter la dégradation de la performance du modèle
  • 23. ➢ ➢ ➢ Couche d'entrée (Input layer) : Cette couche reçoit l'image en entrée et détermine sa taille. Convolution initiale (Initial convolution) : Cette couche de convolution effectue une convolution sur l'image d'entrée à l'aide d'un noyau de 7x7 et d'un pas de 2. Le résultat est une carte de caractéristiques de taille réduite. Blocs d’identités : Les blocs d'identité sont l'un des types de blocs résiduels utilisés dans ResNet152v2, qui sont des blocs qui ne modifient pas la taille spatiale de la sortie. Ils sont utilisés pour maintenir la résolution spatiale des caractéristiques extraites par le réseau, ce qui aide à préserver les détails importants de l'image. L'architecture de ResNet152v2 comprend 152 couches de convolution, ce qui en fait un modèle très profond et complexe. Les couches de convolution sont organisées en blocs résiduels, qui permettent au modèle de conserver des informations importantes tout en limitant les problèmes de disparition du gradient. Architecture du ResNet152v2 : Figure 16 : Architecture ResNet152v2
  • 24. ➢ Couche de normalisation par lot (Batch normalization layer) : Cette couche applique la normalisation par lot pour accélérer l'entraînement et améliorer les performances du réseau. ➢ Fonction d'activation (Activation function) : Cette couche applique une fonction d'activation pour introduire de la non-linéarité dans les sorties de la couche précédente. ➢ Pooling initial (Initial pooling) : Cette couche de pooling réduit la taille de la carte de caractéristiques en prenant le maximum de chaque région de 3x3 sans chevauchement. ➢ Couches résiduelles (Residual blocks) : Ce sont les blocs de convolution résiduels qui permettent au réseau de maintenir une performance élevée malgré sa profondeur. Ils sont composés de plusieurs couches de convolution et de normalisation par lot, ainsi que de connexions résiduelles. ➢ Couches de classification (Classification layers) : Ces couches se composent d'une couche de pooling global, qui agrège les caractéristiques des différentes régions de la carte, et de couches complètement connectées qui effectuent la classification. ➢ Couche de sortie (Output layer) : Cette couche fournit la sortie du réseau, qui représente la probabilité de chaque classe d'objet pour une image donnée. Chaque bloc résiduel dans ResNet152v2 contient plusieurs couches de convolution, suivies d'une couche de normalisation et d'une fonction d'activation ReLU. Le bloc résiduel comprend également la connexion de saut. La structure de blocs résiduels permet à ResNet152v2 d'être beaucoup plus profond tout en évitant les problèmes liés à la profondeur tels que la réduction du taux de convergence ou l'augmentation de l'erreur de généralisation.
  • 25. Chapitre 2 : Réalisation Figure 18 : Images de la dataset Figure 19 : Présentation des images Figure 17 : Import des bibliotheques requises 2-1 MobileNetV2 :
  • 26. Figure 22 : Utilisation du modèle Figure 21 : Apprentissage par transfert Figure 20 : Augmentation de la dataset
  • 27. Figure 23 : Adaptation du modèle Figure 24 : Implémentation du Loss et Accuracy
  • 28. Figure 25 : Plot du Loss et Accuracy Figure 26 : Prédiction du MobileNetV2
  • 29. 2-2 ResNet152v2 : Figure 27 : Import des bibliothèques nécessaires Figure 29 : Appel de la fonction get_data pour xtrain et ytrain Figure 28 : Appel de la fonction get_data pour xvalid et yvalid Figure 30 : Appel de la fonction get_data pour xtrain et ytrain
  • 30. Figure 31 : Fonction get_data Figure 32 : Implémentation du ResNet152v2
  • 31. Figure 36 : Graphe de Loss Figure 33 : Entrainement du Modèle Figure 34 : Information d’entrainement Figure 35 : Implémentation Loss et Accuracy
  • 32. Figure 37 : Graphe de Accuracy Figure 38 : Gestion des prédictions
  • 33. Figure 39 : Fonction de prédiction Figure 40 : Résultats possible pour la prédiction
  • 34. Figure 41 : Résultat Mask Detected Figure 42 : Résultat Mask Not Detected
  • 35. 2-3 EfficientNet-B3 : Figure 46 : Hyperparamètres Figure 45 : Image sans masque Figure 43 : Bibliothèques nécessaires Figure 44 : Répertoires de test, validation et d’entrainement
  • 36. Figure 47 : Data generator Figure 50 : Fonction du modèle Figure 48 : Construction du modèle Figure 49 : Représentation des labels
  • 37. Figure 51 : Modèle final Figure 53 : Plot Loss et Accuracy Figure 52 : Entrainement du modèle
  • 38. Figure 54 : Prédiction du modèle Figure 55 : Résultats de la prédiction
  • 39. ❖ Modèles Critères d’évaluation Loss Accuracy Durée d’entrainement Paramètres totaux 0,0433 0,9921 5078s 12.744.130 Comparaison des 3 modèles : MobileNetv2 0,0296 0,9902 5708s 11.177.521 EfficientNet-B3 0,027494 0,993464 2509s 58.435.694 ResNet152v2
  • 40. Conclusion : Pour développer un système de détection de masques faciaux, plusieurs approches peuvent être utilisées, leur choix dépendra des exigences spécifiques de l'application. Dans l'ensemble, le développement d'un tel système peut être un moyen efficace de favoriser la conformité avec les restrictions de port de masque et d'aider à limiter la propagation du COVID-19. Cependant, il est important de noter que de tels systèmes doivent être utilisés en conjonction avec d'autres mesures préventives et non comme un substitut. Il est primordial de mettre en place des mesures pour prévenir la propagation du COVID-19, l'une de ces mesures étant l'utilisation de masques faciaux. La détection des masques faciaux peut être automatisée à l'aide des CNN, ce qui peut être utile dans différents contextes, tels que les aéroports, les hôpitaux et les transports en commun.
  • 41. Bibliographie : https://sh-tsang.medium.com/efficientnet-rethinking-model-scaling-for-convolutional- neural-networks-image-classification-ef67b0f14a4d https://www.researchgate.net/figure/Schematic-representation-of-EfficientNet- B3_fig2_359449935 https://paperswithcode.com/method/squeeze-and-excitation-block ResNet-50 : notions de base et didacticiel rapide (datagen.tech) Le ResNet-50 annoté. Expliquer le fonctionnement de ResNet-50 et pourquoi... | par Suvaditya Mukherjee | Vers la science des données (towardsdatascience.com) Guide 50 sur les réseaux résiduels profonds (ResNet, ResNet2023) - viso.ai Understanding and Coding a ResNet in Keras | by Priya Dwivedi | Towards Data Science https://www.tensorflow.org/api_docs/python/tf/keras/applications/mobilenet_v2/Mo bileNetV2 https://keras.io/guides/transfer_learning/ https://medium.com/@luis_gonzales/a-look-at-mobilenetv2-inverted-residuals-and- linear-bottlenecks-d49f85c12423