This is an ongoing attempt to build a deep learning based tool for identifying photographic processes using a digital copy.
You can try out the current models here:
- A Binary model that tries to distinguish between Salted Paper Print and Albumen Print. Current accuracy for this model is around 90%.
- A Multiclass model that tries to predict one of the following processes: Albumen Print, Ambrotype/Tintype/Ferrotype, Carbon Print, Cyanotpye, Daguerreotpye, Silver Developing-out Papers (DOP), Silver Printing-out Papers (POP), Platinotype/Palladiotype, Salted Paper Print. Current accuracy for this model is around 70%.
The source code for the tool is available trough this repository and you can clone it and change it according to the license.
The repository contains
- A general configuration file:
config.yaml
- A web crawler that retrieves metadata from publicly available image sites and stores it into a local database:
image_metadata_crawler.py
- A module to download images to disk:
image_downloader.py
- A module to standardize the description of photographic processes:
medium_mapper.py
- A module to interact with a SQLite database:
database.py
You can find an example on how to use these modules in this notebook: Fetch and prepare image data
Note: make sure you only crawl websites for which you have permissions to do so!
After data is available and cropped as expected, you need to copy it into google drive and execute the following colab notebooks for generating the models:
You can try running this locally, but unless you have appropriate resources (GPUs), training will be slow. Copies of the notebooks are available in the colab_noteboks directory.
The models need to be converted into TensorFlow.js.
Afterwards, they can be run in the browser. Please see the code under docs
for this, or take a look at this tutorial.