/art_deep_ecp

Projet de Deep Learning pour la reconnaissance de styles de peintures

Primary LanguagePython

Deep learning

Art styles recognition

Option ISIA - Centrale Paris
Projet Deep learning
Mars - Avril 2018


Auteurs : Chloé Gobé, Xavier Rettel, Mounia Slassi
Github du projet : https://github.com/ChloeGobe/art_deep_ecp
Article du projet : disponible ici

Index

  1. Description
  2. Articles utilisés
  3. Requirements techniques
  4. Contenu du projet
  5. Installation et lancement

1. Description

Projet de Deep Learning pour la reconnaissance de styles de peintures

2. Articles utilisés

  • Wei Ren Tan, Chee Seng Chan, Hernàn E Aguirre, and Kiyoshi Tanaka. "Ceci n’est pas une pipe: A deep convolutional network for fine-art paintings classification." In Image Processing (ICIP), 2016 IEEE International Conference on, pages 3703–3707. IEEE, 2016. : article

  • Adrian Lecoutre, Benjamin Negrevergne, Florian Yger "Recognizing Art Style Automatically in painting with deep learning", JMLR: Workshop and Conference Proceedings 80:1–17, 2017 article

3. Requirements techniques

  • Keras 2.1.4
  • Tensorflow 1.6
  • Pillow
  • scikit-learn

4. Structure du projet

  • Articles et documents quelques PDFs qui nous ont servi.
  • Ceci n'est pas une pipe clone du répertoire éponyme.
  • RASTA clone du répertoire éponyme.
  • data : la version très réduite du dataset, pour se faire une idée des données manipulées. Pour faire tourner le code ci-dessous, il faut disposer du dataset complet.
  • transfert_resnet.py : code utilisé pour travailler sur le réseau ResNet50, il peut être dupliqué facilement pour utiliser d'autres réseau.
  • activation_map.py : tentative d'utiliser les travaux de Philippe Remy pour visualiser les résultats obtenus par le CNN, mais qui n'a pas eu le temps d'aboutir.

5. Installation et lancement

  • Pour télécharger le dataset (20Go):

    cd data
    wget www.lamsade.dauphine.fr/~bnegrevergne/webpage/software/rasta/wikipaintaings_full.tgz
    tar xzvf wikipaintings_full.tgz
    cd ../
    
  • Pour lancer un entraînement :

    python -u transfer_resnet.py
    
  • Pour lancer l'évaluation sur le set de test :

    python -u evaluation.py --data_path ./data/wikipaintings_test --model_path ./model.h5
    
  • La commande précédente affiche l'accuracy Top-1, Top-3 et Top-5 et crée les fichiers y_pred.npy et y_true.npy qui correspondent aux prédictions et à la ground truth.

  • Pour générer la matrice de confusion :

    python confusion.py