Art Technique Classifier is an application developed using the Flask python library, which integrates deep learning to solve the task of technique recognition and classification in the art field.
The model is built upon the EfficientNet-B0 architecture. EfficientNet represents a family of Convolutional Neural Networks that aims to achieve high performance while minimizing computational overhead.
The dataset employed for the training is a subset of the original ART500K Dataset, the "toy dataset", made of 43.455 images. The model can recognize eleven different techniques: architecture, drawing, engraving, fresco, glass art, manuscript, mosaic, oil painting, sculpture metal, sculpture stone, tempera on panel.
- dataset/: in this folder you can find the toy_dataset_label.csv. To be able to replicate the training, download the toy_dataset.zip and unzip the content inside the dataset folder. The structure should be dataset/toy_dataset/.
- model/: the folder containing the EfficientNet-B0.tar model with the final weights.
- technique_recognition.ipynb: the Jupyter Notebook used to train and evaluate the model.
- app.py: the application.
- static/ and templates/: containing the html files and the stylesheet for the application interface.
- examples/: containing some images of artworks to test the application.
- requirements.txt: containing the python libraries to download to run the training and the application.
-
Download the repository's .zip and the toy_dataset.zip. Place it inside the dataset folder.
-
Create a virtual environment to install dependencies:
python -m venv venv # Mac/Linux: source venv/bin/activate # Windows: venv\Scripts\activate
-
Install libraries
pip install -r requirements.txt
-
Start the application
python app.py
The application is configured to run exclusively in a local environment. Once the app.py script is run, the interface will only be accessible from your computer's browser at http://127.0.0.1:5000.