P1 - Projet de classification
Étape 1 : Mise en place de la base
Consultez : Créer une base d’images
On propose dans ce projet de classifier une base d’images avec des catégories originales choisies par vos soins. Vous éviterez les classes trop évidentes comme les dauphins bleus vs les chats noirs. Il peut être amusant de choisir des catégories dans une thématique donnée. Si nous prenons la thématique de la nourriture, nous pouvons avoir comme catégories : pizza, choucroute, burgers, nems, paella… Le choix de la thématique est libre et presque infini : modèles d’avion, races de chien, fruits & légumes, modèles de voiture, type de chapeau… Visez 500 à 5000 images par classe, la notation tient compte de la taille de la base mise en place.
Avertissement
Dans tous les cas, vous devez faire valider votre choix à votre responsable de salle qui vous conseillera de réviser votre choix s’il s’avère trop facile ou trop complexe.
Étape 2 : Mise en place du DataLoader
Consultez : Datasets & Créer une base d’images
Montez vos images sur le drive, transformer votre répertoire en une base d’images exploitable par Keras et implémentez la Data Augmentation.
Étape 3 : réseau FC
Utilisez les réseaux FC vus dans le TD-A pour construire votre premier apprentissage. Relevez les performances atteintes par ce type de réseaux : temps, métriques…
Étape 4 : réseau CNN
Utilisez les réseaux CNN vus dans le TD-B. Les performances devraient s’améliorer. Relevez les performances atteintes par ce type de réseau et comparez les avec ceux de l’étape 3.
Étape 5 : Transfer Learning
Consultez : Sessions multiples/longues
Cette étape consiste à réentrainer un réseau professionnel spécifiquement pour votre problème. On se concentrera sur le réseau MobileNetV2 qui s’avère avoir un des meilleurs ratio performance/taille.
Cette partie s’effectue en autonomie. Pour cela, il faut acquérir plusieurs techniques :
Feature extraction : réinitialisation des couches FC/FC en sortie de réseau et réutilisation des poids des couches CONV pour conserver les features.
Fine Tuning : réentrainement de tous les étages du modèle
Rendons à César ce qui appartient à César ! En effet, le créateur de Keras, François Chollet, a rédigé un excellent chapitre dans son livre sur le deep learning au sujet du Transfer Learning. Nous vous conseillons donc de suivre étape par étape son document :
Vous trouverez aussi le notebook associé à son chapitre de livre sur github (attention, il s’agit de Keras2) :
Transfer learning & fine-tuning sur le site officiel de Keras.
Rendu
Rapport
Style : journal de bord
La base
Indiquez sa volumétrie (taille, résolution, nb échantillons).
Décrivez sa mise en place et le temps utilisé :
Flickr ?
Base externe : indiquez son nom et la description de cette base
API : si vous avez utilisé une API (Deezer, youtube, facebook)
Les difficultés rencontrées
Partagez votre base sur le drive avec moi buzerl@esiee.fr
Pour chaque type de réseau testé, décrivez :
La mise en place
Les différentes approches (sans Data Augmentation, avec, sans fine Tuning, avec…)
Les scores/performances obtenus
Comparaison des performances entre les différentes approches
Problèmes rencontrés
Conclusion
Vidéo
1 à 5 minutes de présentation
Rendu
Par email : buzerl@esiee.fr (wetransfer possible)