SlideShare une entreprise Scribd logo
1  sur  52
COMPUTER
VISION
1
DÉTECTION
AUTOMATIQUE DE LA
RACE DU CHIEN
G r â c e à d e s a l g o r i t h m e s d e D E E P L E A R N I N G
COMPUTER
VISION
2
SOMMAIRE
1. Contexte et problématique du projet.
2. Analyse exploratoire et préparation.
3. Les différentes pistes de modélisation
:
• From scratch
• Transfert Learning
• Fine tuning …
4. Modèle final et ses améliorations.
5. Interface de test du modèle.
COMPUTER
VISION
3
CONTEXTE
& PROBLÉMATIQUE
A C C É L É R E R L’ I N D E X AT I O N D E L A B A S E
COMPUTER
VISION
4
COMPUTER
VISION
D E E P L E A R N I N G
L’idée principale est de pouvoir déterminer la
race d’un chien à partir d’une simple photo
pour accélérer le travail d’indexation de la base
de données.
L’association ne pouvant fournir de banque
d’images, nous allons travailler sur la base de
données Stanford Dogs Dataset.
A partir de ces images, nous allons développer
plusieurs modèles de réseaux de neurones à
convolution pour extraire des features et tenter
de déterminer la race du chien.
Ces réseaux CNN demandent de fortes
ressources en terme de calculs, nous utilisons
donc la plateforme spécialisée Kaggle pour
développer nos scripts (GPU).
COMPUTER
VISION
5
LES DONNEES
S TA N F O R D D O G S D ATA S E T
Le dataset Stanford Dogs contient des images de 120
races de chiens du monde entier. Il a été construit à l'aide
d'images et d'annotations d'ImageNet pour la tâche de
catégorisation fine des images.
Pour notre analyse, nous allons utiliser les 15 races de
chiens préférées des Français.
Si la modélisation est concluante, elle pourra être étendue à
l’ensemble des races.
COMPUTER
VISION
6
PREPROCESSING
DES IMAGES
A N A LYS E E X P L O R ATO I R E E T P R É PA R AT I O N
COMPUTER
VISION
7
NOMBRE D’IMAGES PAR RACE
S O U S - T I T R E I C I
Chacune des 120
races de chien est
alimentée en images.
En moyenne, les
dossiers comptent
171 images ce qui est
relativement peu pour
un algorithme de
classification.
COMPUTER
VISION
8
QUELQUES EXEMPLES DE PHOTOS
Sur cet échantillon de quelques
images, on peut déjà remarquer
plusieurs points :
• Orientation portrait ou
paysage des photos.
• Taille des images très
variable.
• Niveau d’exposition,
contraste et luminosité très
différents.
• Présence d’humains ou
d’objets sur certaines photos.
Des prétraitements vont donc
être appliqués aux images pour
gommer ces différences.
COMPUTER
VISION
9
REDIMENSIONNEMENT DES IMAGES
La première étape consiste à redimensionner les images. La librairie Python OpenCV, spécialisée dans le traitement
des images, a été utilisée. L’image est cependant déformée.
Ainsi, les tableaux de pixels composant l’image ont tous la même shape pour être interprétés par les futurs
modèles.
COMPUTER
VISION
10
MODIFICATIONS D’HISTOGRAMMES
L'histogramme d'une image numérique est une courbe statistique représentant la répartition de ses pixels selon
leur intensité.
L’image RGB classique est convertie au format YUV, codé en 3 composantes : Y étant la luminance, U et V les
chrominances.
On remarque ici des pics importants au centre de l’histogramme. La lumière n’est donc pas répartie
équitablement dans l’image.
COMPUTER
VISION
11
EGALISATION DES HISTOGRAMMES
En agissant sur le canal Y de l’image YUV avec la fonction equalizeHist d’OpenCV, l’histogramme est égalisé.
La lumière est donc répartie sur l’ensemble du spectre de l’image. La distribution cumulative ici en rouge est
linéaire.
Cette opération permet de ne pas focaliser la feature extraction sur des zones particulièrement exposées.
COMPUTER
VISION
12
FILTRE DE DÉBRUITAGE
Le bruit correspond à des pixels atypiques qui peuvent fausser la détection de features. Ce bruit à plusieurs
origines :
• Compression des images JPEG
• Mauvaise résolution d’une image téléchargée …
Pour débruiter nos images, nous allons appliquer un filtre non-local means, qui est un des meilleur filtres de
débruitage. Il existe d’autres types de filtres : filtres linéaires (gaussien) ou non-linéaires (filtre médian).
Image bruitée Image originale Bruit
COMPUTER
VISION
13
DÉBRUITAGE DES IMAGES
La fonction fastNlMeansDenoisingColored d’OpenCV est donc appliquée à nos images pour supprimer ce bruit.
On remarque ici un léger flou de l’image filtrée. En effet, le filtre n’est pas appliqué en local sur les pixels proches,
mais sur la moyenne de l’ensemble de l’image (pondérée par les valeurs des pixels locaux). Cette étape est très
importante pour obtenir de meilleurs résultats de détection de features.
COMPUTER
VISION
14
L’AUGMENTATION DES DONNÉES
Comme nous l’avons vu
précédemment, nous disposons
d’environ 170 images par race
de chien. Pour un modèle de
deep learning, cela reste faible.
Le risque principal est donc le
surentrainement du modèle qui
ne pourra pas développer de
règle de décisions
généralisables.
Nous allons donc augmenter
artificiellement le nombre
d’images (Data augmentation)
en réalisant des zoom, des
rotations, du mirroring …
Cette augmentation sera réalisée
dans des générateurs Keras.
COMPUTER
VISION
15
SYNTHÈSE
PREPROCESSING
Nous allons donc appliquer à nos images une
fonction globale de preprocessing qui comprendra
les étapes :
• Redimensionnement de l’image
• Egalisation des histogrammes
• Application du filtre de débruitage
• Conversion des images en tenseur (4D array)
• Séparation des tableaux d’images et des
labels à identifier pour la classification
supervisée (X et y).
Cette fonction est appliquée aux 15 races de
chiens préférées des Français, pour éviter des
temps de calculs et des ressources mémoire trop
COMPUTER
VISION
16
LES DIFFÉRENTES
MODÉLISATIONS
C N N , P R E - T R A I N E D E T T R A N S F E R T
L E A R N I N G
COMPUTER
VISION
17
LE RÉSEAU DE NEURONES À CONVOLUTION
Pour les problématiques de computer vision, nous allons développer des réseaux de neurones à convolution
(CNN).
Ces réseaux spécifiques comportent des couches spécifiques à l’apprentissage des features (convolution,
activation et pooling) et une couche de sortie destinée à la classification avec une activation Softmax dans notre
cas de classification multi-classes.
COMPUTER
VISION
18
CNN
FROM SCRATCH
R E S E A U D E N E U R O N E S A
C O N V O L U T I O N
COMPUTER
VISION
19
ARCHITECTURE DU CNN SIMPLE
 La première étape du traitement de nos
images consiste à les mélanger (pour ne
pas que les images d’une même race se
suivent).
 Dans un second temps, vous créons un
split d’entrainement et un split de test
(qui sera utilisé sur le modèle final). Dans
le jeu d’entrainement, nous créons un split
de validation.
 Enfin, nous procédons à la Data
Augmentation via un générateur d’images
Keras.
Data Generator Keras
COMPUTER
VISION
20
ARCHITECTURE DU CNN SIMPLE
Notre CNN est très peu profond et comptera
3 blocs principaux ayant tous la même
architecture :
 Une couche de convolution
 Une couche de normalisation
 1 couche d’activation ReLu
 1 couche de Pooling
Le nombre de filtres de sortie varie sur
chaque bloc. La taille de la fenêtre de
convolution (kernel_size) reste de 3 x 3.
Premier bloc du CNN
COMPUTER
VISION
21
ARCHITECTURE DU CNN SIMPLE
Le second bloc garde la même architecture
mais le nombre de filtres est doublé et passe
à 32.
On ajoute également une couche DropOut.
Cette couche va limiter le surentrainement en
désactivant aléatoirement certains neurones
(ici, 20%).
Second bloc du CNN
COMPUTER
VISION
22
RÉSULTATS DU CNN FROM SCRATCH
Les 2 métriques sur ce modèle développé de zéro ne sont pas très bonnes.
On remarque également que le modèle continu à apprendre après 20 époques. Il faudrait certainement multiplier le
nombre d’époques pour obtenir de meilleurs résultats.
Ce modèle de CNN servira de baseline pour les autres modélisations.
COMPUTER
VISION
23
TRANSFERT
LEARNING
U T I L I S AT I O N D ’ U N R É S E A U E N T R A I N É
COMPUTER
VISION
24
Images d’origine
Modèle
Pré-entrainé
Classifier d’origine
Xception
LE TRANSFERT LEARNING
Nos images
Nouveau Classifier
Modèle
Pré-entrainé
« gelé »
Transfe
rt
Learnin
g
On pourrait schématiser (très
simplement) le Transfert Learning ainsi.
• Des modèles très profonds (Deep
Learning) sont pré-entrainés sur de
grosses bases d’images.
• Nous allons utiliser les poids de
ces modèles sur nos données,
sans modifier les couches
profondes.
• Nous entrainons uniquement un
nouveau classifier qui correspond
à nos besoins.
En d’autres termes, nous transférons le
savoir du modèle qui a déjà apprit à
nos données pour classifier nos
propres images.
COMPUTER
VISION
25
2 architectures de CNN testées
Modèle Xception Modèle ResNet50
COMPUTER
VISION
26
MODÈLE
XCEPTION
T R A N S F E R T L E A R N I N G
COMPUTER
VISION
27
XCEPTION TRANSFERT LEARNING
1. Importation du modèle Xception pré-entrainé de
Keras.
• Les poids correspondent à la base ImageNet.
• Le classifier d’origine n’est pas importé.
2. Les différentes couches Xception ne sont pas ré-
entrainées. Les poids d’origine sont conservés.
3. On ajoute notre propre bloc supérieur de
classification.
• 1 couche fully connected avec activation ReLu
• 1 DropOut sur 20% des neurones
• 1 classifier avec activation Softmax pour obtenir
les probabilités pour chaque classe sur un total
de 100%.
COMPUTER
VISION
28
RÉSULTATS DU MODÈLE XCEPTION
Les 2 métriques sur ce modèle son bien meilleures que sur le modèle from scratch
On obtient ici une accuracy de 0,76 en moyenne sur le jeu de validation et un score F1 sur le même set de 2,05. Le
modèle semble continuer à apprendre au delà des 20 époques mais les scores de validation sont plus sur un
plateau.
COMPUTER
VISION
29
COMPARAISON DES RÉSULTATS
On constate que la courbe
d’apprentissage du modèle from
scratch est beaucoup plus lente.
Le modèle de transfert learning
Xception apprend beaucoup plus
vite et les résultats sont bien
supérieurs.
Les temps d’entrainement sur 20
époques sont également
relativement similaires.
COMPUTER
VISION
30
MODÈLE
RESNET50
T R A N S F E R T L E A R N I N G
COMPUTER
VISION
31
RESNET50 TRANSFERT LEARNING
Une seconde architecture est testée pour la
comparer au modèle Xception précédent.
Le modèle ResNet50 de Keras est donc
importé, toujours avec les poids basés sur
ImageNet.
La procédure est la même que pour Xception,
à noter simplement que les preprocessor
appliqués diffèrent d’un modèle à l’autre
dans les générateurs d’images Keras.
COMPUTER
VISION
32
RÉSULTATS DU MODÈLE RESNET50
Les métriques calculées sur chaque époque sont à nouveau stockées dans une variable history.
Les courbes de résultats indiquent également un apprentissage rapide et les résultats sont également meilleurs
que notre modèle développé de zéro.
COMPUTER
VISION
33
COMPARAISON DES RÉSULTATS
Le modèle ResNet50 suit la même
tendance que le modèle Xception
mais ses métriques sur le jeu
d’entrainement sont moins bonnes.
En effet, l’accuracy sur le train set
est 10% moins élevée avec le
modèle ResNet50.
Le modèle Xception est donc
conservé pour les prochaines
étapes.
COMPUTER
VISION
34
SYNTHÈSE
TRANSFERT LEARNING
Sur ces premières modélisations, nous avons
développé un réseau de neurones à convolution à
partir de zéro puis testé le Transfert Learning sur
2 architectures :
• Le CNN from scratch offre des
performances très limitées et a besoin de
beaucoup d’entrainement.
• Le transfert learning testé sur Xception et
ResNet50 offre des métriques bien
meilleures sans ré-entrainer les réseaux
profonds.
• Xception avec les poids ImageNet offre les
meilleurs performances pour cette étape.
COMPUTER
VISION
35
AMÉLIORATION
DU CLASSIFIER
T R A N S F E R T L E A R N I N G
COMPUTER
VISION
36
TUNING DES HYPERPARAMÈTRES
Sur ces méthodes de Transfert Learning, nous
avons ajouté notre propre couche de
classification.
Les Hyperparamètres de la couche fully-
connected peuvent être testés pour améliorer
le modèle grâce à Keras_tuner :
• Nombre de neurones de sortie,
dense_units, entre 32 et 300 avec un pas
de 32.
Le Learning Rate, taux d’apprentissage
(contrôle la vitesse à laquelle un algorithme
met à jour les estimations de paramètres), est
également tuné.
COMPUTER
VISION
37
TUNING DES HYPERPARAMÈTRES
Pour ne pas démultiplier les temps de calculs, une
RandomSearch, une recherche aléatoire sur les paramètres,
est pratiquée.
On définit également un EarlyStopping pour ne pas
continuer à entrainer le modèle si les scores d’accuracy en
validation n’évoluent plus sur 5 essais.
Puis la recherche aléatoire est lancée et les meilleurs
paramètres sont estimés et stockés pour pouvoir les
appliquer à un nouveau modèle.
COMPUTER
VISION
38
RÉSULTATS TUNING DES HYPERPARAMÈTRES
Le tuning des hyperparamètres sur notre
modèle Xception est assez long, même en
RandomSearch.
Une fois les meilleurs paramètres définis, le
modèle est ré-entrainé sur 30 époques et une
accuracy supérieure à 0,80 est obtenue sur
le jeu de validation. (Elle était de 0,78 sans
tuning des hyperparamètres sur Xception).
Le modèle Xception ainsi entrainé est
sauvegardé pour les prochaines étapes.
COMPUTER
VISION
39
FINE-TUNING
XCEPTION
F E AT U R E D E T E C T I O N
COMPUTER
VISION
40
LE FINE-TUNING
Xception
pré-entrainé
Fine-tuned
Xception
Couche de
fine-tuning
Poids fixes
Mise à jour des
poids
retro-propagation
Classe 1
Classe 2
Classe 3
…
Classe n
Classifier
Le fine-tuning nous permet de mieux détecter les features propres à notre problématique.
En effet, seules quelques couches hautes vont être ré-entrainées, les poids recalculés et rétro-propagés dans
le modèle pré-entrainé. Les couches les plus profondes restent inchangées, figées.
COMPUTER
VISION
41
FINE-TUNING DU MODÈLE XCEPTION
Comme nous l’avons vu,
Xception possède 3 blocs
principaux.
Dans le cadre du fine-tuning,
nous allons ré-entrainer les
layers du bloc de sortie.
Cette opération est réalisée
sur le modèle Xception dont
les paramètres ont été
améliorés à l’étape précédente
et que nous avons
sauvegardé.
COMPUTER
VISION
42
FINE-TUNING DU MODÈLE XCEPTION
• Le modèle Xception pré-
entrainé et amélioré est chargé.
• On détermine le nombre de
layers qui ne seront pas ré-
entrainés. Ici, 115 layers
restent inchangés.
• On conserve le classifier car il
correspond déjà à notre
problématique.
COMPUTER
VISION
43
RÉSULTATS DU FINE-TUNING XCEPTION
Le modèle avec Fine-tuning atteint très vite des scores importants en entrainement.
Grâce au EarlyStopping sur le score accuracy du set de validation, 5 époques seulement sont nécessaires pour
obtenir les meilleures métriques sur ce modèle.
COMPUTER
VISION
44
COMPARAISON DES RÉSULTATS
Le modèle Xception Fine-tuned,
dont les hyper-paramètres des
couches de classifier avaient été
préalablement améliorés, offre des
résultats encore meilleurs avec
moins d’époques.
Nous allons donc conserver ce
modèle et l’évaluer sur le jeu de
test.
COMPUTER
VISION
45
ÉVALUATION DU
MEILLEUR MODÈLE
X C E P T I O N F I N E - T U N E D
COMPUTER
VISION
46
ÉVALUATION SUR LE SPLIT DE TEST
L’évaluation du meilleur modèle est
réalisée sur le split de test réalisé
au début du processus et qui
comporte 505 images de
différentes races de chien.
L’accuracy obtenue est de 0,745 et
le score F1 de 1,41.
Le modèle est donc à priori assez
performant pour cette
classification supervisée multi-
classes.
COMPUTER
VISION
47
MATRICE DE CONFUSION
Pour obtenir les prédictions du modèle, nous
utilisons la méthode predict de Keras (sans suffle
des données).
Nous obtenons ainsi les probabilités de chaque
classes (grâce à Softmax) sur un total de 100%.
La plus forte probabilité nous indique la race
prédite pour l’image.
En réalisant la transformation inverse du
Label_encoder, il est possible de visualiser la
matrice de confusion avec les labels des races de
chien.
On constate que le modèle est fiable et performant
sur toutes les races de chien.
COMPUTER
VISION
48
RAPPORT DE CLASSIFICATION
On remarque que les résultats sont satisfaisant sur
la plupart des races de chien.
Le labrador et Golder Retriver obtiennent
cependant des résultats moindre en score de
précision.
L’accuracy moyenne sur le je de test étant de 0,72.
COMPUTER
VISION
49
VISUALISATION DES PRÉDICTIONS
En projetant quelques prédictions et leurs labels
réels, cette constatation est la même. Peu de
prédictions sont fausses.
Pour vérifier les performance de ce modèle, en
conditions de production, un script de prédiction
via une interface d’upload d’image est
développé et déployé en ligne.
COMPUTER
VISION
50
SYNTHÈSE
MODÉLISATION
Sur toutes les modélisations effectuées, le
modèle Xception avec tuning des hyper-
paramètres de la couche de classification et
fine-tuning sur le dernier bloc offre des
performances satisfaisantes.
• L’accuracy sur les données test est supérieure
à 72%
• La matrice de confusion laisse présager de
bons résultats sur des images inconnues.
• Une interface de test online peut nous
permettre de tester l’algorithme en conditions
de production pour déterminer s’il est utilisable
par l’association.
COMPUTER
VISION
51
WEB APP DE TEST
Il est possible de tester
l’algorithme de
prédiction de race de
chien à partir de photos
uploadées !
Pour cela, rendez-vous à
l’adresse suivante :
https://dogs-breeds-
detection-
cnn.herokuapp.com/
COMPUTER
VISION
52
MERCI
N ’ h é s i t e z p a s à p o s e r v o s q u e s t i o n s .
MICHAEL FUMERY
+33 6.59.20.65.39
michael@mf-data-science.fr

Contenu connexe

Tendances

5.1 K plus proches voisins
5.1 K plus proches voisins5.1 K plus proches voisins
5.1 K plus proches voisinsBoris Guarisma
 
Apprentissage supervisé.pdf
Apprentissage supervisé.pdfApprentissage supervisé.pdf
Apprentissage supervisé.pdfhanamettali
 
AI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigAI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigFelipe Sanchez Garzon
 
Introduction au Machine Learning
Introduction au Machine Learning Introduction au Machine Learning
Introduction au Machine Learning Novagen Conseil
 
Convolutional Neural Networks
Convolutional Neural NetworksConvolutional Neural Networks
Convolutional Neural Networksmilad abbasi
 
Exposé segmentation
Exposé segmentationExposé segmentation
Exposé segmentationDonia Hammami
 
Les réseaux de neurones convolutifs pour la classification des tumeurs cérébr...
Les réseaux de neurones convolutifs pour la classification des tumeurs cérébr...Les réseaux de neurones convolutifs pour la classification des tumeurs cérébr...
Les réseaux de neurones convolutifs pour la classification des tumeurs cérébr...Juba Ait idir
 
An Introduction to Supervised Machine Learning and Pattern Classification: Th...
An Introduction to Supervised Machine Learning and Pattern Classification: Th...An Introduction to Supervised Machine Learning and Pattern Classification: Th...
An Introduction to Supervised Machine Learning and Pattern Classification: Th...Sebastian Raschka
 
Techniques du data mining
Techniques du data miningTechniques du data mining
Techniques du data miningDonia Hammami
 
TP / Traitement d'image : Discrimination de Texture
TP / Traitement d'image : Discrimination de TextureTP / Traitement d'image : Discrimination de Texture
TP / Traitement d'image : Discrimination de TextureAhmed EL ATARI
 
Chapitre 4-Apprentissage non supervisé (1) (1).pdf
Chapitre 4-Apprentissage non supervisé (1) (1).pdfChapitre 4-Apprentissage non supervisé (1) (1).pdf
Chapitre 4-Apprentissage non supervisé (1) (1).pdfZizoAziz
 
Convolutional Neural Network Models - Deep Learning
Convolutional Neural Network Models - Deep LearningConvolutional Neural Network Models - Deep Learning
Convolutional Neural Network Models - Deep LearningMohamed Loey
 
réseaux de neurones artificiels
réseaux de neurones artificiels réseaux de neurones artificiels
réseaux de neurones artificiels Oussama Werfelli
 
Vision Transformer(ViT) / An Image is Worth 16*16 Words: Transformers for Ima...
Vision Transformer(ViT) / An Image is Worth 16*16 Words: Transformers for Ima...Vision Transformer(ViT) / An Image is Worth 16*16 Words: Transformers for Ima...
Vision Transformer(ViT) / An Image is Worth 16*16 Words: Transformers for Ima...changedaeoh
 
Transformers in Vision: From Zero to Hero
Transformers in Vision: From Zero to HeroTransformers in Vision: From Zero to Hero
Transformers in Vision: From Zero to HeroBill Liu
 
Présentation sur le Data Mining
Présentation sur le Data MiningPrésentation sur le Data Mining
Présentation sur le Data MiningTakfarinas KENOUCHE
 

Tendances (20)

5.1 K plus proches voisins
5.1 K plus proches voisins5.1 K plus proches voisins
5.1 K plus proches voisins
 
Deep learning
Deep learningDeep learning
Deep learning
 
Apprentissage supervisé.pdf
Apprentissage supervisé.pdfApprentissage supervisé.pdf
Apprentissage supervisé.pdf
 
Demystifying Xgboost
Demystifying XgboostDemystifying Xgboost
Demystifying Xgboost
 
AI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigAI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine Learnig
 
Introduction au Machine Learning
Introduction au Machine Learning Introduction au Machine Learning
Introduction au Machine Learning
 
Convolutional Neural Networks
Convolutional Neural NetworksConvolutional Neural Networks
Convolutional Neural Networks
 
Exposé segmentation
Exposé segmentationExposé segmentation
Exposé segmentation
 
Les réseaux de neurones convolutifs pour la classification des tumeurs cérébr...
Les réseaux de neurones convolutifs pour la classification des tumeurs cérébr...Les réseaux de neurones convolutifs pour la classification des tumeurs cérébr...
Les réseaux de neurones convolutifs pour la classification des tumeurs cérébr...
 
An Introduction to Supervised Machine Learning and Pattern Classification: Th...
An Introduction to Supervised Machine Learning and Pattern Classification: Th...An Introduction to Supervised Machine Learning and Pattern Classification: Th...
An Introduction to Supervised Machine Learning and Pattern Classification: Th...
 
Techniques du data mining
Techniques du data miningTechniques du data mining
Techniques du data mining
 
arbres de decision.ppt
arbres de decision.pptarbres de decision.ppt
arbres de decision.ppt
 
TP / Traitement d'image : Discrimination de Texture
TP / Traitement d'image : Discrimination de TextureTP / Traitement d'image : Discrimination de Texture
TP / Traitement d'image : Discrimination de Texture
 
Arbre de décision
Arbre de décisionArbre de décision
Arbre de décision
 
Chapitre 4-Apprentissage non supervisé (1) (1).pdf
Chapitre 4-Apprentissage non supervisé (1) (1).pdfChapitre 4-Apprentissage non supervisé (1) (1).pdf
Chapitre 4-Apprentissage non supervisé (1) (1).pdf
 
Convolutional Neural Network Models - Deep Learning
Convolutional Neural Network Models - Deep LearningConvolutional Neural Network Models - Deep Learning
Convolutional Neural Network Models - Deep Learning
 
réseaux de neurones artificiels
réseaux de neurones artificiels réseaux de neurones artificiels
réseaux de neurones artificiels
 
Vision Transformer(ViT) / An Image is Worth 16*16 Words: Transformers for Ima...
Vision Transformer(ViT) / An Image is Worth 16*16 Words: Transformers for Ima...Vision Transformer(ViT) / An Image is Worth 16*16 Words: Transformers for Ima...
Vision Transformer(ViT) / An Image is Worth 16*16 Words: Transformers for Ima...
 
Transformers in Vision: From Zero to Hero
Transformers in Vision: From Zero to HeroTransformers in Vision: From Zero to Hero
Transformers in Vision: From Zero to Hero
 
Présentation sur le Data Mining
Présentation sur le Data MiningPrésentation sur le Data Mining
Présentation sur le Data Mining
 

Similaire à Computer Vision - Classification automatique des races de chien à partir de photos

Convolutional Neural Networks (CNNs)
Convolutional Neural Networks (CNNs)Convolutional Neural Networks (CNNs)
Convolutional Neural Networks (CNNs)Hajar Bouchriha
 
TP_Réseaux_de_neurones_Safae_ElOmari.pdf
TP_Réseaux_de_neurones_Safae_ElOmari.pdfTP_Réseaux_de_neurones_Safae_ElOmari.pdf
TP_Réseaux_de_neurones_Safae_ElOmari.pdfSafaeElOmari
 
Les réseaux de neurones convolutifs CNN
Les réseaux de neurones convolutifs CNNLes réseaux de neurones convolutifs CNN
Les réseaux de neurones convolutifs CNNSALMARACHIDI1
 
Rapport-du-projet CNN.docx
Rapport-du-projet CNN.docxRapport-du-projet CNN.docx
Rapport-du-projet CNN.docxkhalil Ismail
 
Real time human pose recognition in parts from single
Real time human pose recognition in parts from singleReal time human pose recognition in parts from single
Real time human pose recognition in parts from singleMontassir Rabhi
 
Aiguille dans botte de foin: scikit-learn et joblib
Aiguille dans botte de foin: scikit-learn et joblibAiguille dans botte de foin: scikit-learn et joblib
Aiguille dans botte de foin: scikit-learn et joblibGael Varoquaux
 
622 vision-industrielle-principes
622 vision-industrielle-principes622 vision-industrielle-principes
622 vision-industrielle-principesBen Fethi
 
Visual Transformer Overview
Visual Transformer OverviewVisual Transformer Overview
Visual Transformer OverviewDr Hajji Hicham
 
Presentation meetup ml bd
Presentation meetup ml bdPresentation meetup ml bd
Presentation meetup ml bdantoine vastel
 
Reconnaissance de panneaux de signalisation routière en utilisant la détectio...
Reconnaissance de panneaux de signalisation routière en utilisant la détectio...Reconnaissance de panneaux de signalisation routière en utilisant la détectio...
Reconnaissance de panneaux de signalisation routière en utilisant la détectio...Loghin Dumitru
 
OpenCR__Rapport_soutenance_Finale
OpenCR__Rapport_soutenance_FinaleOpenCR__Rapport_soutenance_Finale
OpenCR__Rapport_soutenance_FinaleChady Dimachkie
 
Extrait Pour la science n°538 - Quand une photo sort de l’ombre
Extrait Pour la science n°538 - Quand une photo sort de l’ombreExtrait Pour la science n°538 - Quand une photo sort de l’ombre
Extrait Pour la science n°538 - Quand une photo sort de l’ombreInria
 
Les réseaux de neurones
Les réseaux de neuronesLes réseaux de neurones
Les réseaux de neuronesMariam Amchayd
 
Fondements du machine learning
Fondements du machine learningFondements du machine learning
Fondements du machine learningFrederic Simard
 
Conférence du 10 novembre 2O22 par Yvon Gervaise.pdf
Conférence du 10 novembre 2O22  par Yvon Gervaise.pdfConférence du 10 novembre 2O22  par Yvon Gervaise.pdf
Conférence du 10 novembre 2O22 par Yvon Gervaise.pdfYvon Gervaise
 
Traitement d'images CCD avec PixInsight
Traitement d'images CCD avec PixInsightTraitement d'images CCD avec PixInsight
Traitement d'images CCD avec PixInsightDidier Walliang
 
Éditeurs d'applications mobiles : augmentez la résolution des photos de vos c...
Éditeurs d'applications mobiles : augmentez la résolution des photos de vos c...Éditeurs d'applications mobiles : augmentez la résolution des photos de vos c...
Éditeurs d'applications mobiles : augmentez la résolution des photos de vos c...Scaleway
 

Similaire à Computer Vision - Classification automatique des races de chien à partir de photos (20)

Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1
 
Convolutional Neural Networks (CNNs)
Convolutional Neural Networks (CNNs)Convolutional Neural Networks (CNNs)
Convolutional Neural Networks (CNNs)
 
TP_Réseaux_de_neurones_Safae_ElOmari.pdf
TP_Réseaux_de_neurones_Safae_ElOmari.pdfTP_Réseaux_de_neurones_Safae_ElOmari.pdf
TP_Réseaux_de_neurones_Safae_ElOmari.pdf
 
Les réseaux de neurones convolutifs CNN
Les réseaux de neurones convolutifs CNNLes réseaux de neurones convolutifs CNN
Les réseaux de neurones convolutifs CNN
 
Rapport-du-projet CNN.docx
Rapport-du-projet CNN.docxRapport-du-projet CNN.docx
Rapport-du-projet CNN.docx
 
Real time human pose recognition in parts from single
Real time human pose recognition in parts from singleReal time human pose recognition in parts from single
Real time human pose recognition in parts from single
 
Aiguille dans botte de foin: scikit-learn et joblib
Aiguille dans botte de foin: scikit-learn et joblibAiguille dans botte de foin: scikit-learn et joblib
Aiguille dans botte de foin: scikit-learn et joblib
 
622 vision-industrielle-principes
622 vision-industrielle-principes622 vision-industrielle-principes
622 vision-industrielle-principes
 
Visual Transformer Overview
Visual Transformer OverviewVisual Transformer Overview
Visual Transformer Overview
 
Presentation meetup ml bd
Presentation meetup ml bdPresentation meetup ml bd
Presentation meetup ml bd
 
Reconnaissance de panneaux de signalisation routière en utilisant la détectio...
Reconnaissance de panneaux de signalisation routière en utilisant la détectio...Reconnaissance de panneaux de signalisation routière en utilisant la détectio...
Reconnaissance de panneaux de signalisation routière en utilisant la détectio...
 
Compression JPEG
Compression JPEGCompression JPEG
Compression JPEG
 
OpenCR__Rapport_soutenance_Finale
OpenCR__Rapport_soutenance_FinaleOpenCR__Rapport_soutenance_Finale
OpenCR__Rapport_soutenance_Finale
 
Extrait Pour la science n°538 - Quand une photo sort de l’ombre
Extrait Pour la science n°538 - Quand une photo sort de l’ombreExtrait Pour la science n°538 - Quand une photo sort de l’ombre
Extrait Pour la science n°538 - Quand une photo sort de l’ombre
 
Les réseaux de neurones
Les réseaux de neuronesLes réseaux de neurones
Les réseaux de neurones
 
Fondements du machine learning
Fondements du machine learningFondements du machine learning
Fondements du machine learning
 
Conférence du 10 novembre 2O22 par Yvon Gervaise.pdf
Conférence du 10 novembre 2O22  par Yvon Gervaise.pdfConférence du 10 novembre 2O22  par Yvon Gervaise.pdf
Conférence du 10 novembre 2O22 par Yvon Gervaise.pdf
 
Projet vision
Projet visionProjet vision
Projet vision
 
Traitement d'images CCD avec PixInsight
Traitement d'images CCD avec PixInsightTraitement d'images CCD avec PixInsight
Traitement d'images CCD avec PixInsight
 
Éditeurs d'applications mobiles : augmentez la résolution des photos de vos c...
Éditeurs d'applications mobiles : augmentez la résolution des photos de vos c...Éditeurs d'applications mobiles : augmentez la résolution des photos de vos c...
Éditeurs d'applications mobiles : augmentez la résolution des photos de vos c...
 

Plus de FUMERY Michael

Anticiper les besoins en consommation d'énergie de Seattle
Anticiper les besoins en consommation d'énergie de SeattleAnticiper les besoins en consommation d'énergie de Seattle
Anticiper les besoins en consommation d'énergie de SeattleFUMERY Michael
 
Application au service_de_la_sante_publique
Application au service_de_la_sante_publiqueApplication au service_de_la_sante_publique
Application au service_de_la_sante_publiqueFUMERY Michael
 
La Data peut-elle améliorer la sécurité routière.
La Data peut-elle améliorer la sécurité routière.La Data peut-elle améliorer la sécurité routière.
La Data peut-elle améliorer la sécurité routière.FUMERY Michael
 
Prédisez la demande en électricité
Prédisez la demande en électricitéPrédisez la demande en électricité
Prédisez la demande en électricitéFUMERY Michael
 
Effectuez une prédiction de revenus
Effectuez une prédiction de revenusEffectuez une prédiction de revenus
Effectuez une prédiction de revenusFUMERY Michael
 
Détectez des faux billets
Détectez des faux billetsDétectez des faux billets
Détectez des faux billetsFUMERY Michael
 
Produisez une étude de marché
Produisez une étude de marchéProduisez une étude de marché
Produisez une étude de marchéFUMERY Michael
 
Analysez les ventes de votre entreprise
Analysez les ventes de votre entrepriseAnalysez les ventes de votre entreprise
Analysez les ventes de votre entrepriseFUMERY Michael
 
Réalisez une étude de santé publique | Data Analyst
Réalisez une étude de santé publique | Data AnalystRéalisez une étude de santé publique | Data Analyst
Réalisez une étude de santé publique | Data AnalystFUMERY Michael
 

Plus de FUMERY Michael (9)

Anticiper les besoins en consommation d'énergie de Seattle
Anticiper les besoins en consommation d'énergie de SeattleAnticiper les besoins en consommation d'énergie de Seattle
Anticiper les besoins en consommation d'énergie de Seattle
 
Application au service_de_la_sante_publique
Application au service_de_la_sante_publiqueApplication au service_de_la_sante_publique
Application au service_de_la_sante_publique
 
La Data peut-elle améliorer la sécurité routière.
La Data peut-elle améliorer la sécurité routière.La Data peut-elle améliorer la sécurité routière.
La Data peut-elle améliorer la sécurité routière.
 
Prédisez la demande en électricité
Prédisez la demande en électricitéPrédisez la demande en électricité
Prédisez la demande en électricité
 
Effectuez une prédiction de revenus
Effectuez une prédiction de revenusEffectuez une prédiction de revenus
Effectuez une prédiction de revenus
 
Détectez des faux billets
Détectez des faux billetsDétectez des faux billets
Détectez des faux billets
 
Produisez une étude de marché
Produisez une étude de marchéProduisez une étude de marché
Produisez une étude de marché
 
Analysez les ventes de votre entreprise
Analysez les ventes de votre entrepriseAnalysez les ventes de votre entreprise
Analysez les ventes de votre entreprise
 
Réalisez une étude de santé publique | Data Analyst
Réalisez une étude de santé publique | Data AnalystRéalisez une étude de santé publique | Data Analyst
Réalisez une étude de santé publique | Data Analyst
 

Dernier

Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfssuser40e112
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.docKarimKhrifech
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurdinaelchaine
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxpopzair
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptssusercbaa22
 

Dernier (20)

Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.doc
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteur
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptx
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
 

Computer Vision - Classification automatique des races de chien à partir de photos

  • 1. COMPUTER VISION 1 DÉTECTION AUTOMATIQUE DE LA RACE DU CHIEN G r â c e à d e s a l g o r i t h m e s d e D E E P L E A R N I N G
  • 2. COMPUTER VISION 2 SOMMAIRE 1. Contexte et problématique du projet. 2. Analyse exploratoire et préparation. 3. Les différentes pistes de modélisation : • From scratch • Transfert Learning • Fine tuning … 4. Modèle final et ses améliorations. 5. Interface de test du modèle.
  • 3. COMPUTER VISION 3 CONTEXTE & PROBLÉMATIQUE A C C É L É R E R L’ I N D E X AT I O N D E L A B A S E
  • 4. COMPUTER VISION 4 COMPUTER VISION D E E P L E A R N I N G L’idée principale est de pouvoir déterminer la race d’un chien à partir d’une simple photo pour accélérer le travail d’indexation de la base de données. L’association ne pouvant fournir de banque d’images, nous allons travailler sur la base de données Stanford Dogs Dataset. A partir de ces images, nous allons développer plusieurs modèles de réseaux de neurones à convolution pour extraire des features et tenter de déterminer la race du chien. Ces réseaux CNN demandent de fortes ressources en terme de calculs, nous utilisons donc la plateforme spécialisée Kaggle pour développer nos scripts (GPU).
  • 5. COMPUTER VISION 5 LES DONNEES S TA N F O R D D O G S D ATA S E T Le dataset Stanford Dogs contient des images de 120 races de chiens du monde entier. Il a été construit à l'aide d'images et d'annotations d'ImageNet pour la tâche de catégorisation fine des images. Pour notre analyse, nous allons utiliser les 15 races de chiens préférées des Français. Si la modélisation est concluante, elle pourra être étendue à l’ensemble des races.
  • 6. COMPUTER VISION 6 PREPROCESSING DES IMAGES A N A LYS E E X P L O R ATO I R E E T P R É PA R AT I O N
  • 7. COMPUTER VISION 7 NOMBRE D’IMAGES PAR RACE S O U S - T I T R E I C I Chacune des 120 races de chien est alimentée en images. En moyenne, les dossiers comptent 171 images ce qui est relativement peu pour un algorithme de classification.
  • 8. COMPUTER VISION 8 QUELQUES EXEMPLES DE PHOTOS Sur cet échantillon de quelques images, on peut déjà remarquer plusieurs points : • Orientation portrait ou paysage des photos. • Taille des images très variable. • Niveau d’exposition, contraste et luminosité très différents. • Présence d’humains ou d’objets sur certaines photos. Des prétraitements vont donc être appliqués aux images pour gommer ces différences.
  • 9. COMPUTER VISION 9 REDIMENSIONNEMENT DES IMAGES La première étape consiste à redimensionner les images. La librairie Python OpenCV, spécialisée dans le traitement des images, a été utilisée. L’image est cependant déformée. Ainsi, les tableaux de pixels composant l’image ont tous la même shape pour être interprétés par les futurs modèles.
  • 10. COMPUTER VISION 10 MODIFICATIONS D’HISTOGRAMMES L'histogramme d'une image numérique est une courbe statistique représentant la répartition de ses pixels selon leur intensité. L’image RGB classique est convertie au format YUV, codé en 3 composantes : Y étant la luminance, U et V les chrominances. On remarque ici des pics importants au centre de l’histogramme. La lumière n’est donc pas répartie équitablement dans l’image.
  • 11. COMPUTER VISION 11 EGALISATION DES HISTOGRAMMES En agissant sur le canal Y de l’image YUV avec la fonction equalizeHist d’OpenCV, l’histogramme est égalisé. La lumière est donc répartie sur l’ensemble du spectre de l’image. La distribution cumulative ici en rouge est linéaire. Cette opération permet de ne pas focaliser la feature extraction sur des zones particulièrement exposées.
  • 12. COMPUTER VISION 12 FILTRE DE DÉBRUITAGE Le bruit correspond à des pixels atypiques qui peuvent fausser la détection de features. Ce bruit à plusieurs origines : • Compression des images JPEG • Mauvaise résolution d’une image téléchargée … Pour débruiter nos images, nous allons appliquer un filtre non-local means, qui est un des meilleur filtres de débruitage. Il existe d’autres types de filtres : filtres linéaires (gaussien) ou non-linéaires (filtre médian). Image bruitée Image originale Bruit
  • 13. COMPUTER VISION 13 DÉBRUITAGE DES IMAGES La fonction fastNlMeansDenoisingColored d’OpenCV est donc appliquée à nos images pour supprimer ce bruit. On remarque ici un léger flou de l’image filtrée. En effet, le filtre n’est pas appliqué en local sur les pixels proches, mais sur la moyenne de l’ensemble de l’image (pondérée par les valeurs des pixels locaux). Cette étape est très importante pour obtenir de meilleurs résultats de détection de features.
  • 14. COMPUTER VISION 14 L’AUGMENTATION DES DONNÉES Comme nous l’avons vu précédemment, nous disposons d’environ 170 images par race de chien. Pour un modèle de deep learning, cela reste faible. Le risque principal est donc le surentrainement du modèle qui ne pourra pas développer de règle de décisions généralisables. Nous allons donc augmenter artificiellement le nombre d’images (Data augmentation) en réalisant des zoom, des rotations, du mirroring … Cette augmentation sera réalisée dans des générateurs Keras.
  • 15. COMPUTER VISION 15 SYNTHÈSE PREPROCESSING Nous allons donc appliquer à nos images une fonction globale de preprocessing qui comprendra les étapes : • Redimensionnement de l’image • Egalisation des histogrammes • Application du filtre de débruitage • Conversion des images en tenseur (4D array) • Séparation des tableaux d’images et des labels à identifier pour la classification supervisée (X et y). Cette fonction est appliquée aux 15 races de chiens préférées des Français, pour éviter des temps de calculs et des ressources mémoire trop
  • 16. COMPUTER VISION 16 LES DIFFÉRENTES MODÉLISATIONS C N N , P R E - T R A I N E D E T T R A N S F E R T L E A R N I N G
  • 17. COMPUTER VISION 17 LE RÉSEAU DE NEURONES À CONVOLUTION Pour les problématiques de computer vision, nous allons développer des réseaux de neurones à convolution (CNN). Ces réseaux spécifiques comportent des couches spécifiques à l’apprentissage des features (convolution, activation et pooling) et une couche de sortie destinée à la classification avec une activation Softmax dans notre cas de classification multi-classes.
  • 18. COMPUTER VISION 18 CNN FROM SCRATCH R E S E A U D E N E U R O N E S A C O N V O L U T I O N
  • 19. COMPUTER VISION 19 ARCHITECTURE DU CNN SIMPLE  La première étape du traitement de nos images consiste à les mélanger (pour ne pas que les images d’une même race se suivent).  Dans un second temps, vous créons un split d’entrainement et un split de test (qui sera utilisé sur le modèle final). Dans le jeu d’entrainement, nous créons un split de validation.  Enfin, nous procédons à la Data Augmentation via un générateur d’images Keras. Data Generator Keras
  • 20. COMPUTER VISION 20 ARCHITECTURE DU CNN SIMPLE Notre CNN est très peu profond et comptera 3 blocs principaux ayant tous la même architecture :  Une couche de convolution  Une couche de normalisation  1 couche d’activation ReLu  1 couche de Pooling Le nombre de filtres de sortie varie sur chaque bloc. La taille de la fenêtre de convolution (kernel_size) reste de 3 x 3. Premier bloc du CNN
  • 21. COMPUTER VISION 21 ARCHITECTURE DU CNN SIMPLE Le second bloc garde la même architecture mais le nombre de filtres est doublé et passe à 32. On ajoute également une couche DropOut. Cette couche va limiter le surentrainement en désactivant aléatoirement certains neurones (ici, 20%). Second bloc du CNN
  • 22. COMPUTER VISION 22 RÉSULTATS DU CNN FROM SCRATCH Les 2 métriques sur ce modèle développé de zéro ne sont pas très bonnes. On remarque également que le modèle continu à apprendre après 20 époques. Il faudrait certainement multiplier le nombre d’époques pour obtenir de meilleurs résultats. Ce modèle de CNN servira de baseline pour les autres modélisations.
  • 23. COMPUTER VISION 23 TRANSFERT LEARNING U T I L I S AT I O N D ’ U N R É S E A U E N T R A I N É
  • 24. COMPUTER VISION 24 Images d’origine Modèle Pré-entrainé Classifier d’origine Xception LE TRANSFERT LEARNING Nos images Nouveau Classifier Modèle Pré-entrainé « gelé » Transfe rt Learnin g On pourrait schématiser (très simplement) le Transfert Learning ainsi. • Des modèles très profonds (Deep Learning) sont pré-entrainés sur de grosses bases d’images. • Nous allons utiliser les poids de ces modèles sur nos données, sans modifier les couches profondes. • Nous entrainons uniquement un nouveau classifier qui correspond à nos besoins. En d’autres termes, nous transférons le savoir du modèle qui a déjà apprit à nos données pour classifier nos propres images.
  • 25. COMPUTER VISION 25 2 architectures de CNN testées Modèle Xception Modèle ResNet50
  • 26. COMPUTER VISION 26 MODÈLE XCEPTION T R A N S F E R T L E A R N I N G
  • 27. COMPUTER VISION 27 XCEPTION TRANSFERT LEARNING 1. Importation du modèle Xception pré-entrainé de Keras. • Les poids correspondent à la base ImageNet. • Le classifier d’origine n’est pas importé. 2. Les différentes couches Xception ne sont pas ré- entrainées. Les poids d’origine sont conservés. 3. On ajoute notre propre bloc supérieur de classification. • 1 couche fully connected avec activation ReLu • 1 DropOut sur 20% des neurones • 1 classifier avec activation Softmax pour obtenir les probabilités pour chaque classe sur un total de 100%.
  • 28. COMPUTER VISION 28 RÉSULTATS DU MODÈLE XCEPTION Les 2 métriques sur ce modèle son bien meilleures que sur le modèle from scratch On obtient ici une accuracy de 0,76 en moyenne sur le jeu de validation et un score F1 sur le même set de 2,05. Le modèle semble continuer à apprendre au delà des 20 époques mais les scores de validation sont plus sur un plateau.
  • 29. COMPUTER VISION 29 COMPARAISON DES RÉSULTATS On constate que la courbe d’apprentissage du modèle from scratch est beaucoup plus lente. Le modèle de transfert learning Xception apprend beaucoup plus vite et les résultats sont bien supérieurs. Les temps d’entrainement sur 20 époques sont également relativement similaires.
  • 30. COMPUTER VISION 30 MODÈLE RESNET50 T R A N S F E R T L E A R N I N G
  • 31. COMPUTER VISION 31 RESNET50 TRANSFERT LEARNING Une seconde architecture est testée pour la comparer au modèle Xception précédent. Le modèle ResNet50 de Keras est donc importé, toujours avec les poids basés sur ImageNet. La procédure est la même que pour Xception, à noter simplement que les preprocessor appliqués diffèrent d’un modèle à l’autre dans les générateurs d’images Keras.
  • 32. COMPUTER VISION 32 RÉSULTATS DU MODÈLE RESNET50 Les métriques calculées sur chaque époque sont à nouveau stockées dans une variable history. Les courbes de résultats indiquent également un apprentissage rapide et les résultats sont également meilleurs que notre modèle développé de zéro.
  • 33. COMPUTER VISION 33 COMPARAISON DES RÉSULTATS Le modèle ResNet50 suit la même tendance que le modèle Xception mais ses métriques sur le jeu d’entrainement sont moins bonnes. En effet, l’accuracy sur le train set est 10% moins élevée avec le modèle ResNet50. Le modèle Xception est donc conservé pour les prochaines étapes.
  • 34. COMPUTER VISION 34 SYNTHÈSE TRANSFERT LEARNING Sur ces premières modélisations, nous avons développé un réseau de neurones à convolution à partir de zéro puis testé le Transfert Learning sur 2 architectures : • Le CNN from scratch offre des performances très limitées et a besoin de beaucoup d’entrainement. • Le transfert learning testé sur Xception et ResNet50 offre des métriques bien meilleures sans ré-entrainer les réseaux profonds. • Xception avec les poids ImageNet offre les meilleurs performances pour cette étape.
  • 35. COMPUTER VISION 35 AMÉLIORATION DU CLASSIFIER T R A N S F E R T L E A R N I N G
  • 36. COMPUTER VISION 36 TUNING DES HYPERPARAMÈTRES Sur ces méthodes de Transfert Learning, nous avons ajouté notre propre couche de classification. Les Hyperparamètres de la couche fully- connected peuvent être testés pour améliorer le modèle grâce à Keras_tuner : • Nombre de neurones de sortie, dense_units, entre 32 et 300 avec un pas de 32. Le Learning Rate, taux d’apprentissage (contrôle la vitesse à laquelle un algorithme met à jour les estimations de paramètres), est également tuné.
  • 37. COMPUTER VISION 37 TUNING DES HYPERPARAMÈTRES Pour ne pas démultiplier les temps de calculs, une RandomSearch, une recherche aléatoire sur les paramètres, est pratiquée. On définit également un EarlyStopping pour ne pas continuer à entrainer le modèle si les scores d’accuracy en validation n’évoluent plus sur 5 essais. Puis la recherche aléatoire est lancée et les meilleurs paramètres sont estimés et stockés pour pouvoir les appliquer à un nouveau modèle.
  • 38. COMPUTER VISION 38 RÉSULTATS TUNING DES HYPERPARAMÈTRES Le tuning des hyperparamètres sur notre modèle Xception est assez long, même en RandomSearch. Une fois les meilleurs paramètres définis, le modèle est ré-entrainé sur 30 époques et une accuracy supérieure à 0,80 est obtenue sur le jeu de validation. (Elle était de 0,78 sans tuning des hyperparamètres sur Xception). Le modèle Xception ainsi entrainé est sauvegardé pour les prochaines étapes.
  • 40. COMPUTER VISION 40 LE FINE-TUNING Xception pré-entrainé Fine-tuned Xception Couche de fine-tuning Poids fixes Mise à jour des poids retro-propagation Classe 1 Classe 2 Classe 3 … Classe n Classifier Le fine-tuning nous permet de mieux détecter les features propres à notre problématique. En effet, seules quelques couches hautes vont être ré-entrainées, les poids recalculés et rétro-propagés dans le modèle pré-entrainé. Les couches les plus profondes restent inchangées, figées.
  • 41. COMPUTER VISION 41 FINE-TUNING DU MODÈLE XCEPTION Comme nous l’avons vu, Xception possède 3 blocs principaux. Dans le cadre du fine-tuning, nous allons ré-entrainer les layers du bloc de sortie. Cette opération est réalisée sur le modèle Xception dont les paramètres ont été améliorés à l’étape précédente et que nous avons sauvegardé.
  • 42. COMPUTER VISION 42 FINE-TUNING DU MODÈLE XCEPTION • Le modèle Xception pré- entrainé et amélioré est chargé. • On détermine le nombre de layers qui ne seront pas ré- entrainés. Ici, 115 layers restent inchangés. • On conserve le classifier car il correspond déjà à notre problématique.
  • 43. COMPUTER VISION 43 RÉSULTATS DU FINE-TUNING XCEPTION Le modèle avec Fine-tuning atteint très vite des scores importants en entrainement. Grâce au EarlyStopping sur le score accuracy du set de validation, 5 époques seulement sont nécessaires pour obtenir les meilleures métriques sur ce modèle.
  • 44. COMPUTER VISION 44 COMPARAISON DES RÉSULTATS Le modèle Xception Fine-tuned, dont les hyper-paramètres des couches de classifier avaient été préalablement améliorés, offre des résultats encore meilleurs avec moins d’époques. Nous allons donc conserver ce modèle et l’évaluer sur le jeu de test.
  • 45. COMPUTER VISION 45 ÉVALUATION DU MEILLEUR MODÈLE X C E P T I O N F I N E - T U N E D
  • 46. COMPUTER VISION 46 ÉVALUATION SUR LE SPLIT DE TEST L’évaluation du meilleur modèle est réalisée sur le split de test réalisé au début du processus et qui comporte 505 images de différentes races de chien. L’accuracy obtenue est de 0,745 et le score F1 de 1,41. Le modèle est donc à priori assez performant pour cette classification supervisée multi- classes.
  • 47. COMPUTER VISION 47 MATRICE DE CONFUSION Pour obtenir les prédictions du modèle, nous utilisons la méthode predict de Keras (sans suffle des données). Nous obtenons ainsi les probabilités de chaque classes (grâce à Softmax) sur un total de 100%. La plus forte probabilité nous indique la race prédite pour l’image. En réalisant la transformation inverse du Label_encoder, il est possible de visualiser la matrice de confusion avec les labels des races de chien. On constate que le modèle est fiable et performant sur toutes les races de chien.
  • 48. COMPUTER VISION 48 RAPPORT DE CLASSIFICATION On remarque que les résultats sont satisfaisant sur la plupart des races de chien. Le labrador et Golder Retriver obtiennent cependant des résultats moindre en score de précision. L’accuracy moyenne sur le je de test étant de 0,72.
  • 49. COMPUTER VISION 49 VISUALISATION DES PRÉDICTIONS En projetant quelques prédictions et leurs labels réels, cette constatation est la même. Peu de prédictions sont fausses. Pour vérifier les performance de ce modèle, en conditions de production, un script de prédiction via une interface d’upload d’image est développé et déployé en ligne.
  • 50. COMPUTER VISION 50 SYNTHÈSE MODÉLISATION Sur toutes les modélisations effectuées, le modèle Xception avec tuning des hyper- paramètres de la couche de classification et fine-tuning sur le dernier bloc offre des performances satisfaisantes. • L’accuracy sur les données test est supérieure à 72% • La matrice de confusion laisse présager de bons résultats sur des images inconnues. • Une interface de test online peut nous permettre de tester l’algorithme en conditions de production pour déterminer s’il est utilisable par l’association.
  • 51. COMPUTER VISION 51 WEB APP DE TEST Il est possible de tester l’algorithme de prédiction de race de chien à partir de photos uploadées ! Pour cela, rendez-vous à l’adresse suivante : https://dogs-breeds- detection- cnn.herokuapp.com/
  • 52. COMPUTER VISION 52 MERCI N ’ h é s i t e z p a s à p o s e r v o s q u e s t i o n s . MICHAEL FUMERY +33 6.59.20.65.39 michael@mf-data-science.fr