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) :

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)