Deep Image Classification Tool based on Keras. Tool implements light versions of VGG, ResNet and InceptionV3 for small images. Tool uses python 3.5.
Tool has 3 modes:
- Training of new deep neural network (train_flag = True, tune_flag = False).
- Tuning of existing deep neural network (train_flag = True, tune_flag = True).
- Testing of existing (trained) deep neural network (train_flag = False, tune_flag = False) or (train_flag = False, tune_flag = True).
For training and tune mode you need two folders:
- Training folder with subfolders - one for each image class
- Test folder with subfolders - one for each image class
Example of folders tree:
train/ImageClass1
/ImageClass2
/ImageClass3
/ImageClass4
...
test/ImageClass1
/ImageClass2
/ImageClass3
/ImageClass4
...
Here each subfolder 'ImageClassi' consists set of images of i-th class.
Description of main modules:
deepClassificationTool.py - main module for training and testing of deep neural network
testFunctions.py - functions for testing of trained deep neural network on one image, two images and folder of images (with calculation of recall, precision for each class and accuracy)
modelVGGm.py - Light version of VGG for small images - Inspired from VGG, 2014 - VGGm(modified)
modelResNetM.py - Light version of ResNet for small images - resNetM (modified)
# Reference - [Deep Residual Learning for Image Recognition](https://arxiv.org/abs/1512.03385)
# Reference - [https://github.com/fchollet/keras/blob/master/keras/applications/resnet50.py]
modelInceptionV3m.py - Light version of inceptionV3 - inceptionV3m (modified)
# Reference - [https://github.com/fchollet/keras/blob/master/keras/applications/inception_v3.py]
# Reference - [Rethinking the Inception Architecture for Computer Vision](http://arxiv.org/abs/1512.00567)