Classification d’images
Objectifs
Dans ce TP, nous allons nous intéresser à la classification d’images. L’objectif est de prédire quel personnage des simpsons est représenté dans l’image.
Analyse et préparation des données
Récupérez la base de données ici.
Commencez par charger les données. Après avoir analysé les données, répon- dez à ces questions:
• Combien de classes ?
• Combien d’exemples ?
• Combien d’exemples de chaque classe ?
• Comment sont organisées les données ?
Travail
Création des générateurs
Les données sont organisées de telle sorte que chaque classe (i.e. personnage des simpsons) est stockée dans un dossier. Heureusement Keras permet une lecture facile d’une telle base. Regardez la documentation de traitement d’image et en particulier:
• https://keras.io/preprocessing/image/#imagedatagenerator-class
• https://keras.io/preprocessing/image/#flow_from_directory Vous allez tout d’abord devoir créer un ImageDataGenerator, avec comme valeur devalidation_split0.1. Créez ensuite les générateurs de train et de validation, avec comme options minimums:
• target_size=(img_width, img_height),
• shuffle=True,
• class_mode=’categorical’,
• batch_size=batch_size,
• subset="training"or subset="validation".
Dans un premier temps vous pouvez choisir 150 comme valeurs de img_width etimg_height.
1
Génération du modèle
Il faut maintenant générer un modèle. La topologie du réseau est laissée libre.
Comme vu dans l’exemple de cours, il est conseillé de d’avoir (au moins) une première couche convolutionnelle et ensuite (au moins) une couche dense. Com- mencez par un réseau de petite taille, et n’hésitez pas à rajouter des couches après les premiers résultats.
Entrainement
Regardez la documention defit_generator.
Exemple de résultats attendus
Avec 10 itérations, une couche convolutionnelle de 128 filtres 3x3, suivi d’une couche dense de 32 neurones et enfin d’une couche dense de 8 neurones et d’un dropout de 0.5, j’obtiens:
2