Project Goal: Create a classifier that can classify paintings by their respective artist
- Clay Kaufmann
- John Richardson
- Colin Giles
The dataset is titled "Best Artworks of All Time", and is available on Kaggle here. The license for the dataset is available here.
The dataset includes over 16,000 paintings by 50 different artists. We decided to cut down the number of artists to just 10, in order to simplify classification. We took the top 10 artists by their number of paintings in the dataset.
The artists:
- Vincent Van Goph
- Edgar Degas
- Pablo Picasso
- Pierre Auguste Renoir
- Albrecht Dürer
- Paul Gauguin
- Francisco Goya
- Rembrandt
- Alfred Sisley
- Titian
The file main.ipynb
illustrates our data processing approach, as well as a
very simple (and bad) CNN. A classification report and confusion matrix for the
model are also included.
Keras image generators are used here to augment the small dataset
To see Clay's model, go to the file clay_model.ipynb
. This file contains the
same data loading procedures as the main file, but with his model. The file
clay_model.py
is a normal python version of the model, that does not include
the classification report and confusion matrix. This version was used in the
Vermont Advanced Computing Core to train the model.
This model takes advantage of InceptionV3 using transfer learning with Keras. After InceptionV3, a flattening layer is added, followed by a BatchNormalization layer, a fully connected layer wth 256 neurons, a dropout layer, and finally an output layer of 10 neurons with a softmax activation function.
To see Colin's model, go to the file colin_model.ipynb
. This file contains a similar data loading procedure as the main file, but with his model.
This model takes advantage of ResNet50 using transfer learning with Keras. After ResNet50, a flattening layer is added, followed by a BatchNormalization layer, a fully conneced layer of 512 neurons with ReLU activation function, then a fully connected layer of 16 neurons with ReLU activation function, and finally an output layer of 10 neurons with a softmax activation function.