Académique Documents
Professionnel Documents
Culture Documents
TP
Classification d'images par
Deeplearning.
Partie 2
Question 1
- La classification d’images : Elle consiste à attribuer une étiquette ou une classe à toute une image.
On peut par exemple vouloir donner une liste d’images à une IA afin de lui demander de les
classifier en deux catégories, les images de villes et les images de campagne, ou encore de
montagne. Il faut que l’IA reconnaisse des motifs pour lui permettre d’apprendre les
caractéristiques discriminatives de chaque classe.
On peut distinguer plusieurs grandes solutions de détections d’objets à travers les réseaux de neurones
convolutifs :
- SSD (Single Shot Detector) : SSD est une solution de détection d'objets qui se distingue par sa
capacité à prédire des boîtes englobantes de différentes échelles et ratios directement à partir de
différentes couches du réseau. Cela permet à SSD de détecter des objets de différentes tailles dans
une seule passe (single shot), ce qui le rend rapide et précis.
- Faster R-CNN : C’est l'une des premières architectures de détection d'objets qui a introduit le
concept de régions d'intérêt (Region of Interest, ROI) et de propositions d'ancres. Il combine un
réseau de neurones convolutionnels pour l'extraction de caractéristiques avec une région de
proposition (Region Proposal Network, RPN) pour générer des propositions d'ancres. Ces
propositions sont ensuite utilisées pour prédire les boîtes englobantes et les classes des objets
détectés.
- RetinaNet : C’est une architecture de détection d'objets qui résout le problème du déséquilibre de
classe souvent rencontré dans la détection d'objets. Il introduit une nouvelle fonction de perte
appelée Focal Loss, qui donne plus de poids aux exemples difficiles (objets moins fréquents ou mal
classifiés avant). Cela permet de traiter efficacement les classes d'objets rares et d'améliorer la
détection des petits objets.
Question 2
On s’intéresse à l’exemple suivant
https://colab.research.google.com/github/tensorflow/docs/blob/master/site/en/hub/tutorials/tf2_object_
detection.ipynb
(Attention pour une raison curieuse si le code ne marche pas une solution peut être d’utiliser une autre
version de object_detection, en ajoutant par exemple une cellule avant le moment qui pose problème : !pip
install object_detection==0.0.3)
o Tête de détection : Couches de convolutions pour prédire les points clés des objets
(centres), ainsi que les largeurs et hauteurs des boîtes englobantes.
- EfficientDet :
o Branche du réseau bi-directionnel (BiFPN) : EfficientDet utilise une structure appelée BiFPN
(Bidirectional Feature Pyramid Network) pour agréger et fusionner les caractéristiques
extraites à différentes échelles spatiales. Cela aide à créer une pyramide de caractéristiques
(feature pyramid) qui est utilisée pour la détection d'objets à différentes tailles.
o Backbone : Couches convolutionnelles (par exemple, VGG, ResNet) pour l'extraction des
caractéristiques.
- Faster R-CNN :
o RPN (Region Proposal Network) : Couches de convolutions pour générer des propositions
de régions (boîtes englobantes).
o RoI (Region of Interest) Pooling : Opération de RoI Pooling pour extraire des
caractéristiques de régions d'intérêt.
- Mask R-CNN :
o Backbone : Couches convolutionnelles (comme ResNet) pour l'extraction des
caractéristiques.
o RPN (Region Proposal Network) : Couches de convolutions pour générer des propositions
de régions.
o RoI Align : Opération de RoI Align pour extraire des caractéristiques de régions d'intérêt
sans perte de précision.
2.d Tester sur une douzaine d’images de votre choix (Essayer sur des images
contenant le plus de classes possibles reconnus) et faites un tableau comparatif
Faster Mask
CenterNe EfficientDe
Images/Model SSD R- R-
t t
CNN CNN
9 (1
8 8 8 faux 8
positif)
29 (3 20 (2
22 (1
faux faux
26 17 faux
positifs positifs
positif)
) )
4 (1
4 (1 faux
3 3 3 faux
positif)
positif)
14 (8
16 (10 14 ( 5
12 (6 faux 6 (1 faux faux
faux faux
positifs) positif) positifs
positif) positif)
)
9 (5
13 (9 14 (9
7 (5 faux 4 (2 faux faux
faux faux
positifs) positifs) positifs
positif) positif)
)
8 (3
9 (4 8 (4
6 (2 faux 5 (1 faux faux
faux faux
positifs) positif) positifs
positif) positif)
)
6 (4
4 (1
7 (2 faux 5 (1 faux faux
faux 5
positifs) positif) positifs
positif)
)
11 (3 28 (3
faux 11 (6 faux
32 4 faux
positifs positifs
) positifs )
)
Question 3
- Hugging Face Transformers : Une bibliothèque appelée "Transformers" qui met à disposition des
modèles de traitement du langage naturel (NLP) pré-entraînés. Ces modèles peuvent être utilisés
pour des tâches telles que la classification de texte, la traduction, la génération de texte, etc. La
bibliothèque est très populaire dans la communauté de la recherche en NLP.
- PyTorch Hub : C’est l'équivalent de TensorFlow Hub pour PyTorch, un autre framework de machine
learning. Il offre un moyen simple de partager et de réutiliser des modèles pré-entraînés dans
l'écosystème PyTorch.
- ONNX Model Zoo : L'Open Neural Network Exchange (ONNX) est un format open-source pour
représenter des modèles de machine learning. Le ONNX Model Zoo est un référentiel de modèles
ONNX pré-entraînés, qui peuvent être utilisés avec différents frameworks de machine learning
prenant en charge le format ONNX.
- Apache MXNet Model Zoo : C’est aussi un zoo de modèles qui inclut des modèles pré-entraînés
pour diverses tâches telles que la classification d'images, la détection d'objets, etc.
3.b Combien trouve t-on sur Tensorflow Hub de réseaux de détection d’objets ?
On trouve 101 réseaux de neurones différents.
3.c Quelles sont les architectures de ces réseaux ?
On retrouve de nombreuses architectures de réseau de détection d’objets :
- CenterNet
- EfficientDet
- FastDepth
- Faster R-CNN
- Mask R-CNN
- MobileNet V2
- Multiple
- RetinaNet
- RNN
- SSD
- SSD Mobilenet V1
- SSD Mobilenet V2
- SSD Spaghettinet
- YOLOv5
- Tridentnet
- FCOS
- FSAF
- RegNetX
- YOLO
https://www.tensorflow.org/hub/tutorials/tf2_image_retraining?hl=en