SlideShare une entreprise Scribd logo
1  sur  52
Télécharger pour lire hors ligne
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

réseaux de neurones artificiels
réseaux de neurones artificiels réseaux de neurones artificiels
réseaux de neurones artificiels Oussama Werfelli
 
AI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigAI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigFelipe Sanchez Garzon
 
Data mining - ACP Analyse en Composantes Principales
Data mining - ACP Analyse en Composantes PrincipalesData mining - ACP Analyse en Composantes Principales
Data mining - ACP Analyse en Composantes PrincipalesMohamed Heny SELMI
 
Présentation sur le Data Mining
Présentation sur le Data MiningPrésentation sur le Data Mining
Présentation sur le Data MiningTakfarinas KENOUCHE
 
Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learningQuentin Ambard
 
Machine Learning et Intelligence Artificielle
Machine Learning et Intelligence ArtificielleMachine Learning et Intelligence Artificielle
Machine Learning et Intelligence ArtificielleSoft Computing
 
Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsMohamed Heny SELMI
 
Comprendre l’intelligence artificielle [webinaire]
Comprendre l’intelligence artificielle [webinaire]Comprendre l’intelligence artificielle [webinaire]
Comprendre l’intelligence artificielle [webinaire]Technologia Formation
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRouâa Ben Hammouda
 
Intelligence artificielle
Intelligence artificielleIntelligence artificielle
Intelligence artificiellehadjerdermane
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1Amal Abid
 
Techniques du data mining
Techniques du data miningTechniques du data mining
Techniques du data miningDonia Hammami
 
Data mining - Introduction générale
Data mining - Introduction généraleData mining - Introduction générale
Data mining - Introduction généraleMohamed Heny SELMI
 
Intelligence artificielle
Intelligence artificielleIntelligence artificielle
Intelligence artificielleMed Zaibi
 
Les 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learningLes 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learningHakim Nasaoui
 
Les réseaux de neurones
Les réseaux de neuronesLes réseaux de neurones
Les réseaux de neuronesMariam Amchayd
 
Les applications du Deep Learning
Les applications du Deep LearningLes applications du Deep Learning
Les applications du Deep LearningJedha Bootcamp
 

Tendances (20)

réseaux de neurones artificiels
réseaux de neurones artificiels réseaux de neurones artificiels
réseaux de neurones artificiels
 
AI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine LearnigAI Apprentissage Automatique, Machine Learnig
AI Apprentissage Automatique, Machine Learnig
 
Data mining - ACP Analyse en Composantes Principales
Data mining - ACP Analyse en Composantes PrincipalesData mining - ACP Analyse en Composantes Principales
Data mining - ACP Analyse en Composantes Principales
 
Présentation sur le Data Mining
Présentation sur le Data MiningPrésentation sur le Data Mining
Présentation sur le Data Mining
 
Introduction to Machine learning
Introduction to Machine learningIntroduction to Machine learning
Introduction to Machine learning
 
Cours datamining
Cours dataminingCours datamining
Cours datamining
 
Les systèmes intelligents
Les systèmes intelligentsLes systèmes intelligents
Les systèmes intelligents
 
Machine Learning et Intelligence Artificielle
Machine Learning et Intelligence ArtificielleMachine Learning et Intelligence Artificielle
Machine Learning et Intelligence Artificielle
 
Intelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes expertsIntelligence Artificielle - Systèmes experts
Intelligence Artificielle - Systèmes experts
 
Comprendre l’intelligence artificielle [webinaire]
Comprendre l’intelligence artificielle [webinaire]Comprendre l’intelligence artificielle [webinaire]
Comprendre l’intelligence artificielle [webinaire]
 
cahier des charges
cahier des chargescahier des charges
cahier des charges
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learning
 
Intelligence artificielle
Intelligence artificielleIntelligence artificielle
Intelligence artificielle
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
 
Techniques du data mining
Techniques du data miningTechniques du data mining
Techniques du data mining
 
Data mining - Introduction générale
Data mining - Introduction généraleData mining - Introduction générale
Data mining - Introduction générale
 
Intelligence artificielle
Intelligence artificielleIntelligence artificielle
Intelligence artificielle
 
Les 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learningLes 10 plus populaires algorithmes du machine learning
Les 10 plus populaires algorithmes du machine learning
 
Les réseaux de neurones
Les réseaux de neuronesLes réseaux de neurones
Les réseaux de neurones
 
Les applications du Deep Learning
Les applications du Deep LearningLes applications du Deep Learning
Les applications du Deep Learning
 

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
 
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
 
Algorithmes machine learning/ neural network / deep learning
Algorithmes machine learning/ neural network / deep learningAlgorithmes machine learning/ neural network / deep learning
Algorithmes machine learning/ neural network / deep learningBassem Brayek
 

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
 
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...
 
Algorithmes machine learning/ neural network / deep learning
Algorithmes machine learning/ neural network / deep learningAlgorithmes machine learning/ neural network / deep learning
Algorithmes machine learning/ neural network / deep learning
 

Plus de FUMERY Michael

NLP - Prédictions de tags sur les questions Stackoverflow
NLP - Prédictions de tags sur les questions StackoverflowNLP - Prédictions de tags sur les questions Stackoverflow
NLP - Prédictions de tags sur les questions StackoverflowFUMERY Michael
 
Segmentation d'un fichier client | Machine Learning
Segmentation d'un fichier client | Machine LearningSegmentation d'un fichier client | Machine Learning
Segmentation d'un fichier client | Machine LearningFUMERY 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 (11)

NLP - Prédictions de tags sur les questions Stackoverflow
NLP - Prédictions de tags sur les questions StackoverflowNLP - Prédictions de tags sur les questions Stackoverflow
NLP - Prédictions de tags sur les questions Stackoverflow
 
Segmentation d'un fichier client | Machine Learning
Segmentation d'un fichier client | Machine LearningSegmentation d'un fichier client | Machine Learning
Segmentation d'un fichier client | Machine Learning
 
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

Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24BenotGeorges3
 
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...Unidad de Espiritualidad Eudista
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfbdp12
 
Copilot your everyday AI companion- OFFICE 365-
Copilot your everyday AI companion- OFFICE 365-Copilot your everyday AI companion- OFFICE 365-
Copilot your everyday AI companion- OFFICE 365-Majida Antonios, M.Ed.
 
Aux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAmar LAKEL, PhD
 
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfAtelier Canopé 37 - Tours
 
Calendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilCalendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilfrizzole
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneTxaruka
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxJCAC
 
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfAtelier Canopé 37 - Tours
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film françaisTxaruka
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Atelier Canopé 37 - Tours
 

Dernier (13)

Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
 
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
L'Unité de Spiritualité Eudiste se joint à toute l'Église Universelle et en p...
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
 
Copilot your everyday AI companion- OFFICE 365-
Copilot your everyday AI companion- OFFICE 365-Copilot your everyday AI companion- OFFICE 365-
Copilot your everyday AI companion- OFFICE 365-
 
Aux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècle
 
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
 
Calendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilCalendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avril
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienne
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
 
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film français
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
 
Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024
 

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