Leaf disease image classification model deployed with Streamlit. Project contains also implemented from scratch MLP-Mixer [1] architecture.
main.py
- Streamlit server codeeval.py
- supplementary functions for model inference in Streamlitmodels.py
- model definitions and Pytorch Lightning model wrapperdatasets.py
- contains CassavaDataset classtrain.py
- training script with early stopping and tensorboard logging.
Dataset comes from Cassava Leaf Disease Kaggle competition[2] as .png files labeled with .csv
file.
MlpMixer
- implemented neural network as described in paper[1].
TransferredInception
- class for transfering Inception_v3 architecture.
LightningModelWrapper
- Pytorch Lightning wrapper for models above (or any other for this task). Comes with logging per epoch (for more readable learnig process plots in Tensorboard)
Application is served on Microsoft Azure VM with Streamlit on address: http://51.13.72.28
- Pytorch
- Pytorch Lightning
- Albumentations
- Streamlit
[1]I. Tolstikhin et al., ‘MLP-Mixer: An all-MLP Architecture for Vision’, arXiv:2105.01601 [cs], Jun. 2021, Accessed: Mar. 14, 2022. [Online]. Available: http://arxiv.org/abs/2105.01601
[2]E. Mwebaze, T. Gebru, A. Frome, S. Nsumba, and J. Tusubira, ‘iCassava 2019 Fine-Grained Visual Categorization Challenge’, arXiv:1908.02900 [cs], Dec. 2019, Accessed: Mar. 14, 2022. [Online]. Available: http://arxiv.org/abs/1908.02900