To get all the Dependencies (run the command) after forking / cloning this repository :
pip install requirements.txt
(Step-1) Load & Pickle Train dataset (run the command) :
python train.py
(Step-2) Load & Pickle Test dataset (run the command) :
python test.py
A Convolutional Neural Network is trained over CERTH_ImageBlurDataset (~3.7 GB) yielding accuracy of 58.18% on evaluation dataset. Accuracy can further be improved by increase input dimensions (of first layer) / model's complexity or tweaking number of epochs.
(Step-3) To train the CNN model (run the command) :
python model.py
Here we calculate variance of Laplcian; giving value which defines blurry metric. If it's below certain threshold (here it's 435) image can be classified as burry else it is going to be non-blurry. This model gave accuracy of around 87.57%. It's also, performed over the above given dataset only.
(Step-1) To run the script for Laplacian approach (run the command) :
python Laplacian.py