A bengali fish image recognizer that can classify in between: -
Ayre | Catla | Chital | Ilish |
---|---|---|---|
Kachki | Kajoli | Koi | Magur |
Mola Dhela | Mrigal | Pabda | Pangash |
Poa | Puti | Rui | Shing |
Silver Carp | Taki | Telapia | Tengra |
After model training, when the results were not satisfactory, I found the classes with most losses and repeated the cleaning process. Therefore, a noticeable change can be found in image numbers in the case of some categories. Such as, previously the class Rui had less images whereas after cleaning it contains the most number of images. Some classes like Shing, Silver Carp, Taki faced the decreasing number of images. In the end, if you look at the images distribution table, you will find out that it turned out to be an imbalanced dataset. Check out the final dataset here.
Images Distribution | |
---|---|
Before Cleaning | After Cleaning |
- VGG-19
- DenseNet-121
- ResNet-50
- Firstly, I freezed the pre-trained layers for each model.
- Secondly I found the suitable learning rate range using fastai's lr_find.
- I trained the models for 30 epochs for both fit_one_cycle using learning rate range and fine_tune method using auto learning rate tuning.
- Lastly, I unfreezed the models and repeated the processes from 2-3.
Model | Accuracy(%) |
---|---|
Resnet-50 | 81.379 |
VGG-19 | 77.471 |
Densenet-121 | 80.229 |
Correctly classified visualizations | |||
---|---|---|---|
Actual Image | ResNet-50 | DenseNet-121 | VGG-19 |
Rui |
Rui |
Rui |
Rui |
Mis-classified visualizations | |||
Actual Image | ResNet-50 | DenseNet-121 | VGG-19 |
Koi |
Telapia |
Taki |
Telapia |
The recognizer model is integrated using github pages and jekyll remote theme.
Check out my website ingtegration of .