The objective of this study is to develop a deep learning model that will identify the natural scenes from images. This type of problem comes under multi label image classification where an instance can be classified into multiple classes among the predefined classes. https://suraj-deshmukh.github.io/Keras-Multi-Label-Image-Classification/
The complete description of dataset is given on http://lamda.nju.edu.cn/data_MIMLimage.ashx. https://www.kaggle.com/twopothead/miml-image-data/tasks The dataset contains 2000 natural scenes images.
Resized all images to 100 by 100 pixels and created two sets i.e train set and test set. Train set contains 1600 images and test set contains 200 images.
As this is multi label image classification, the loss function was binary crossentropy and activation function used was sigmoid at the output layer. Keras doesn't have provision to provide multi label output so after training there is one probabilistic threshold method which find out the best threshold value for each label seperately, the performance of threshold values are evaluated using Matthews Correlation Coefficient and then uses this thresholds to convert those probabilites into one's and zero's.
Below table shows the result on test set
Accuracy | Value |
---|---|
Hamming loss | 0.1395 |
Exact Match | 0.54 |
Dataset: https://github.com/suraj-deshmukh/Keras-Multi-Label-Image-Classification/blob/master/dataset.h5
Weight file: https://github.com/suraj-deshmukh/Keras-Multi-Label-Image-Classification/blob/master/weights.hdf5
Jupyter/iPython Notebook has been provided to know about the model and its working. https://github.com/suraj-deshmukh/Keras-Multi-Label-Image-Classification/blob/master/miml.ipynb
Command:
python visualization.py
link: localhost:5000