This is a university project for machine learning course. Goal of this project is build a classifier able to understand if a leaf is an ivy,medlar or laurel leave leaf.
This project requires several libraries like torchvision,gradio etc.. . You can install them , running following command:
pip3 install -r requirements.txt
Dataset's gathering is part of this project. To do that, I recordered some videos of leaves placed on a white sheet , rotating device on different axis.
Inside src folder you can find 01_extract-frames.py which allow to extract frames (from config.py file you can select different parameters like frames number).
If you want use video which I recordered make a request here. In this folder you can find videos and frames already extracted.
For this has been used three well-known model: AlexNet, ResNet and SqueezeNet.
This projects has the following structure:
├── csv # Contain all csv generated
├── checkpoint # Contain parameters for each trained models.
├── src # Source files.
├── Extractions # Contains scripts for frames extraction
├── utils # Some utils method like datasets split , optimizer etc... .
├── Training.py
├── Config.py All configuration useful to play with models and data.
├── logs # logs generated with tensorBoard.
...labels*
└── README.md
Since Datasets and frames folder are too big to load on Github, I decided to put them on GDrive . If you want start from scratch you have to put Dataset folder inside Root of this project. You can set some parameters on config. Now you're ready to run:
python -m src.extraction.01_frames
If everything work fine, new folder frames will be created (unless you decided from config file to change destination folder).
To create CSV files run :
python -m src.extraction.02_csv
After running this scripts, CSV for train/validation/test set will be created under csv folder. (Again, you can tuning parameters for creation in config file).
Finally, for launch training phase run:
python -m src.Main
If you want to run models previously trained go to root folder and run:
python -m src.gradio-gui
you will able to open web GUI built with Gradio .You can upload your image and check out if classifier works