This repo contains the code for conference paper titled Flower Species Recognition System using Convolutional Neural Networks and Transfer Learning, by I.Gogul and V.Sathiesh Kumar, Proceedings of ICSCN-2017 conference, IEEE Xplore Digital Library.
- Pretrained state-of-the-art neural networks are used on University of Oxford's FLOWERS17 and FLOWERS102 dataset.
- Models used - Xception, Inception-v3, OverFeat, ResNet50, VGG16, VGG19.
- Weights used - ImageNet
- Classifier used - Logistic Regression
- Tutorial for this work is available at - Flower Recognition using Deep Learning.
Update (16/12/2017): Included two new deep neural net models namely InceptionResNetv2
and MobileNet
.
- Theano or TensorFlow
sudo pip install theano
orsudo pip install tensorflow
- Keras
sudo pip install keras
- NumPy
sudo pip install numpy
- matplotlib
sudo pip install matplotlib
and you also need to do thissudo apt-get install python-dev
- seaborn
sudo pip install seaborn
- h5py
sudo pip install h5py
- scikit-learn
sudo pip install scikit-learn
- This project used Windows 10 for development purposes and Odroid-XU4 for testing purposes.
MIT License
- Organize dataset -
python organize_flowers17.py
- Feature extraction using CNN -
python extract_features.py
- Train model using Logistic Regression -
python train.py
The below tables shows the accuracies obtained for every Deep Neural Net model used to extract features from FLOWERS17 dataset using different parameter settings.
-
Result-1
- test_size : 0.10
- classifier : Logistic Regression
Model | Rank-1 accuracy | Rank-5 accuracy |
---|---|---|
Xception | 97.06% | 99.26% |
Inception-v3 | 96.32% | 99.26% |
VGG16 | 85.29% | 98.53% |
VGG19 | 88.24% | 99.26% |
ResNet50 | 56.62% | 90.44% |
MobileNet | 98.53% | 100.00% |
Inception ResNetV2 |
91.91% | 98.53% |
-
Result-2
- test_size : 0.30
- classifier : Logistic Regression
Model | Rank-1 accuracy | Rank-5 accuracy |
---|---|---|
Xception | 93.38% | 99.75% |
Inception-v3 | 96.81% | 99.51% |
VGG16 | 88.24% | 99.02% |
VGG19 | 88.73% | 98.77% |
ResNet50 | 59.80% | 86.52% |
MobileNet | 96.32% | 99.75% |
Inception ResNetV2 |
88.48% | 99.51% |